FIR低通滤波器的输入值是16位的ADC编码值,还是转换后的电压值?
我要对一个直流信号进行采样,选了个16位的ADC输入范围(+-10V)。采样频率10khz,信号截止频率20hz(因为是直流信号)我要在FPGA里面做个低通滤波器,用ip核已经生成好了。
1、请问FIR滤波器的输出是ADC的16位编码值,还是ADC转换后的电压值?
2、假设滤波完成后,我还得求个平均值吧,比如求1秒的平均电压值,大概有10000个采集值,我是不是还得搞个FIFO进行缓存呀?
3、是不是我的ADC采样频率高了,换成1Khz更好? 1,看你设计是什么类型,定点浮点
2,平均值可以用累加呀,为啥非得缓存起来
3,采样率根据需要把 转换为电压值还是AD值,看需求吧,一般都是AD值吧 chenchaoting 发表于 2020-8-26 13:45
1,看你设计是什么类型,定点浮点
2,平均值可以用累加呀,为啥非得缓存起来
3,采样率根据需要把 ...
最后肯定要弄成整数,比如1.234V转为1234mV。
也对,把平均值累加吧
icexiong 发表于 2020-8-26 14:52
转换为电压值还是AD值,看需求吧,一般都是AD值吧
嗯嗯,ADC是双极型的,负电压的ADC的码值是补码。不知道有影响不?
刚刚把代码写好了,滤波器输出0!!! 最好是转换后在滤波,因为当adc从正跳到负(补吗)时,波形有一个很大的跳变,滤波器会对这个有影响。如果adc码值在进滤波器之前处理掉这个跳变,则在前在后都可以 jjl3 发表于 2020-8-27 09:00
最好是转换后在滤波,因为当adc从正跳到负(补吗)时,波形有一个很大的跳变,滤波器会对这个有影响。如果a ...
我在quartus 里生成的IP核,输入固定数据值,FIR滤波器输出的结果为啥不一致呀,小很多 竹叶听筝 发表于 2020-8-27 14:29
我在quartus 里生成的IP核,输入固定数据值,FIR滤波器输出的结果为啥不一致呀,小很多 ...
输入常数?这样只会在滤波开始前几个值有变换,后面应该是常数了 jjl3 发表于 2020-8-27 14:57
输入常数?这样只会在滤波开始前几个值有变换,后面应该是常数了
嗯。单独写了一个verlog程序测试FIR滤波器。每隔1ms产生一个信号,输入一个固定值到滤波器里面。滤波器的输出结果跟输入不一样。
另外,我还发现不同的采样率,输出结果都差别很大。这个FIR核,我感觉我用不好呀。。。
竹叶听筝 发表于 2020-8-27 15:39
嗯。单独写了一个verlog程序测试FIR滤波器。每隔1ms产生一个信号,输入一个固定值到滤波器里面。滤波器的 ...
阶数不高可以自己写一个FIR滤波器验证一下。1万多个数缓存会很浪费资源的,用个累加器和计数器就可以了 jjl3 发表于 2020-8-27 18:46
阶数不高可以自己写一个FIR滤波器验证一下。1万多个数缓存会很浪费资源的,用个累加器和计数器就可以了 ...
采样频率100khz,截止频率200hz,设计出的fir滤波器阶数很高,有没有优化办法 justdomyself 发表于 2020-8-27 20:01
采样频率100khz,截止频率200hz,设计出的fir滤波器阶数很高,有没有优化办法 ...
ADC前面用RC作为抗混叠滤波器,然后把采样率降下来 justdomyself 发表于 2020-8-27 20:01
采样频率100khz,截止频率200hz,设计出的fir滤波器阶数很高,有没有优化办法 ...
我下午用matlab计算了一下,10k,20hz最小都要100阶。只能降低采样率才能降低阶数,不要用等纹波,要用窗函数。等纹波阶数更多 jjl3 发表于 2020-8-27 18:46
阶数不高可以自己写一个FIR滤波器验证一下。1万多个数缓存会很浪费资源的,用个累加器和计数器就可以了 ...
32阶是高还是不高?我下午下了个matlab,感觉随随便便都好几十阶了 竹叶听筝 发表于 2020-8-27 22:30
32阶是高还是不高?我下午下了个matlab,感觉随随便便都好几十阶了
直流干嘛用那么高采样率?阶数高不高,看fpga里乘法器够不够,做验证不考虑资源的话,自己实现个低通fir很容易 jjl3 发表于 2020-8-28 10:28
直流干嘛用那么高采样率?阶数高不高,看fpga里乘法器够不够,做验证不考虑资源的话,自己实现个低通fir ...
我改成500HZ的采样率了,50hz的截止频率了,8阶。
输出值跟输出值还是对不上,是不是直流信号(固定值),不能通过FIR低通滤波器呀? 竹叶听筝 发表于 2020-8-27 22:27
我下午用matlab计算了一下,10k,20hz最小都要100阶。只能降低采样率才能降低阶数,不要用等纹波,要用窗 ...
是的,我实际用了2000多阶的fir,运算量很大,只能计算机上算。单片机根本带不动。DSP估计也够呛。 jjl3 发表于 2020-8-27 20:10
ADC前面用RC作为抗混叠滤波器,然后把采样率降下来
我是做的正交锁相放大器,adc出来的数据要和两路相位差90度的方波相乘,然后才是fir
页:
[1]