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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1841|回复: 0

[求助] 请教IIR数字滤波器实现过程中的截位问题。

[复制链接]
发表于 2015-4-15 09:14:02 | 显示全部楼层 |阅读模式

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

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

x
我在fdatool中设计了一个IIR巴特沃斯低通滤波器,阶数为4阶,2个sos结构,系数按照48位定点数进行量化。然后在菜单“Targets”中选择“Generate HDL”,生成了一个filter.v文件和filter_tb.v文件。我自己更改了那个filter_tb.v文件,输入了一个信号加噪声的一个东东,结果发现滤波器输出一直为零。然后就是那个filter.v文件里的具体的滤波处理过程,流程我可以看懂,但是涉及到那些截位、移位的操作,我就不理解了。有哪位大侠懂这方面的吗?请不吝赐教,在下非常感谢!filter.v文件里的滤波器系数如下:

parameter signed [47:0] scaleconst1 = 48'h52A5AB39CDC4; //sfix48_En63
  parameter signed [47:0] coeff_b1_section1 = 48'h200000000000; //sfix48_En45
  parameter signed [47:0] coeff_b2_section1 = 48'h400000000000; //sfix48_En45
  parameter signed [47:0] coeff_b3_section1 = 48'h200000000000; //sfix48_En45
  parameter signed [47:0] coeff_a2_section1 = 48'h804F457BF9B7; //sfix48_En46
  parameter signed [47:0] coeff_a3_section1 = 48'h3FB15FCF5CBC; //sfix48_En46
  parameter signed [47:0] scaleconst2 = 48'h525E1DB7DF35; //sfix48_En63
  parameter signed [47:0] coeff_b1_section2 = 48'h200000000000; //sfix48_En45
  parameter signed [47:0] coeff_b2_section2 = 48'h400000000000; //sfix48_En45
  parameter signed [47:0] coeff_b3_section2 = 48'h200000000000; //sfix48_En45
  parameter signed [47:0] coeff_a2_section2 = 48'h80BDD2256AED; //sfix48_En46
  parameter signed [47:0] coeff_a3_section2 = 48'h3F42D296D083; //sfix48_En46



然后看到下面几行我就看不懂了:
  assign mul_temp = input_register * scaleconst1;
  assign scale1 = $signed({{5{mul_temp[63]}}, mul_temp});//这里符号位扩5位的准则是什么?

  assign scaletypeconvert1 = (scale1[68:0] + {scale1[53], {52{~scale1[53]}}})>>>53;//结果保留16bit,从哪个bit开始截位是怎么来定的?


请看我的注释,有懂的老师可以教教我吗?谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-12-31 00:32 , Processed in 0.012892 second(s), 6 queries , Gzip On, Redis On.

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