在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2546|回复: 8

[求助] 怎么验证verilog写的希尔伯特滤波器对不对

[复制链接]
发表于 2017-6-1 15:11:25 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
最近在用verilog实现希尔伯特滤波器。该滤波器是一种全通滤波器,只对频率做90度相移,不改变幅度。采用的方法是:将输入数据移位存入和滤波器系数一样多的寄存器里面,然后将寄存器中的值和系数对应相乘,将相乘以后的数据相加,得到输出数据。滤波器为25阶,滤波器系数是从matlab里导出来的,是浮点数,浮点乘法采用先扩大2的n次方,然后右移n位还原的方法。


尝试过给定输入数据为1到25,比较verilog和matlab输出结果,结果差很远,matlab结果是49个数,最大值不超过25,且正负都有,是浮点数,而verilog显示数值很大,最大到900多,全是正数,也是49个值。这个结果不知道是我滤波器的功能写的不对,还是给的数值不对,还是matlab和verilog在处理这种问题上本来就存在的差异。

现小女子存在的问题主要有:
实现滤波器的思路是否有问题?
现在编译通过了,不知道怎么去验证滤波器的功能对不对?

写滤波器有什么更好的方法吗?


恳求各位高手指点指点,十分感谢。
发表于 2017-6-1 15:16:24 | 显示全部楼层




   

我也不懂


不过
不知道
verilog 一般要如何写出
filter?

以前找过
delta sigma
sincfilter ,

但是看不懂

 楼主| 发表于 2017-6-2 08:35:27 | 显示全部楼层
自己顶
 楼主| 发表于 2017-6-2 14:21:57 | 显示全部楼层
求大神解答
发表于 2017-6-2 14:33:26 | 显示全部楼层
verilog使用补码表示负数,你看看你转换以后是不是和matlab的一样呢?
 楼主| 发表于 2017-6-5 09:31:32 | 显示全部楼层
回复 5# gaurson


   我在改代码中有关负数运算的地方,还没完成,谢谢您的建议。
发表于 2017-6-5 10:56:52 | 显示全部楼层
在matlab中将滤波器系数变成定点数,输入正弦信号后,verilog的输出还是正弦吗?
发表于 2017-6-6 08:38:49 | 显示全部楼层
首先你要把matlab的模型搭好。
先是浮点模型,然后在满足精度要求下把模型定点化。

有了定点换模型,再开始搞verilog代码。
verilog代码不对,就对着定点化模型调试比较。
发表于 2017-6-6 08:59:09 | 显示全部楼层
希尔伯特可正交化,你输入实信号,可输出复信号查看频谱,即可验证
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-26 07:38 , Processed in 0.024603 second(s), 6 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表