版主: 51FPGA |
dreamjsc
![]()
最后登陆时间:2012-06-04 16:42:28 |
另外,COE文件是可以识别小数的,没有必要量化为整数作为滤波器系数。你的滤波器系数量化为整数后,显示的通带增益近110dB,也实现的滤波器是不符合的,虽然只差一个倍数。 |
![]() 大山里的娃儿。 |
|
wwmumu
![]()
最后登陆时间:2012-12-12 18:59:26 |
把Input Sampling Frequency跟Clock Frequency设置成一个频率,这怎么可能,这样一设置光这个滤波器占用DSP48A就需要259个,我的FPGA芯片一共才126个。
而且Clock Frequency/Input Sampling Frequency越大,资源占用越小,我这个数据流可不是毫无控制的同步采样到FIR滤波器中(每个工作时钟往滤波器写入一个数据),而是一个采样点到了我才输入到滤波器中,跟过采样这个概念可毫无关系啊。 |
wwmumu
![]()
最后登陆时间:2012-12-12 18:59:26 |
我要做的滤波器是可重新配置系数的,不是系数配置进了coe文件就不变了,所以必须要量化了才能配置,即便是在coe文件中写成小数,它内部也会自动有个量化的过程,才能做硬件计算吧,再说了这个又不影响波形,我现在关心的是这个波形滤出来为啥就乱七八糟了。
|
dreamjsc
![]()
最后登陆时间:2012-06-04 16:42:28 |
你的数据流并不是一个时钟周期打入一拍的话,将Input Sampling Frequency与Clock Frequency确实没有必要设置为同一频率,那你输给FIR滤波器的数据率与Input Sampling Frequency的关系是什么样子的? 我让输给FIR滤波器的数据率与Input Sampling Frequency相等,做了Modelsim的仿真,是可以出正确的波形的。 |
![]() 大山里的娃儿。 |
|
wwmumu
![]()
最后登陆时间:2012-12-12 18:59:26 |
我的ADC采样频率范围在2~100k可变,所以Input Sampling Frequency设了个0.125M,ADC每采一个点,我就把这个点送给FIR滤波器,然后等待下一个采样点到来在送入滤波器。这样滤波器的输出数据频率跟采样频率其实是一样的。
我现在用的是ISE13.4,有点怀疑这个版本有问题,准备换个10.1的试一下。 |
dreamjsc
![]()
最后登陆时间:2012-06-04 16:42:28 |
我用的版本是ISE13.1,FIR Compiler是5.0,设置跟你几乎是一样的,仿真没有问题。 |
![]() 大山里的娃儿。 |
|
wwmumu
![]()
最后登陆时间:2012-12-12 18:59:26 |
找到问题了,滤波器没有问题,是我的采集软件因为按字节读出48位数据后重组时,由于隐式转换限制在了int变量32位的缘故。天啦,一个这么小的问题困扰了我好些天。
谢谢dreamjsc好心答复。 |
此贴由wwmumu于2012-04-18 19:37:15最后编辑
|
|
dreamjsc
![]()
最后登陆时间:2012-06-04 16:42:28 |
找到问题就好,有的时候,因为自己的粗心,会花很多时间才能找到这个bug,写程序的,都会犯类似的错误。 |
![]() 大山里的娃儿。 |
|
pengyanyun
![]()
最后登陆时间:2014-12-13 15:02:18 |
请问一下各位大虾们,我用FIR IP Core设计滤波器时,使用Import Coefficient Set导入的滤波器系数是整数形式还是小数形式?
|