【eBox生态圈】fir滤波器四模式,不用FDAtool计算,非常强大!

2019-12-15 11:00发布

本帖最后由 shentqlf 于 2017-8-18 11:31 编辑

eBox最新支持Fir滤波器,支持低通、高通、带通、带阻四种模式。

最重要的是他不需要FDAtool计算参数表。自带了参数的计算工具。而且支持多种窗体RECTANGULAR, BARTLETT, HANNING, HAMMING, BLACKMAN
首先要感谢:http://www.labbookpages.co.uk/audio/firWindowing.html
这个库真是太好用了,网上看了各种代码,都觉得不太好,从GitHub上找到了一份代码,顺便找到了那个愿网址,看到这个代码后觉得非常厉害!果断移植。

  1.    
  2.             int kaiserWindowLength;
  3.         float sampFreq = 1000;//采样率
  4.    
  5.         // Low and high pass filters
  6.         float transFreq1 = 20;
  7.         float transFreq2 = 70;

  8. //设定滤波器特性,0.01:ripple;10: transition band width;sampFreq:采样率
  9.     //该函数会根据前两个值得设定,计算出滤波器阶数。
  10.         fir.calculateKaiserParams(0.01, 10, sampFreq, &kaiserWindowLength, &beta);
  11. //根据生成的窗口长度,初始化一个自己想要的滤波器
  12. //        float *lpf = fir.create1TransSinc(kaiserWindowLength, transFreq1, sampFreq, LOW_PASS);
  13.         float *lpf = fir.create1TransSinc(kaiserWindowLength, transFreq1, sampFreq, HIGH_PASS);
  14. //        float *lpf = fir.create2TransSinc(kaiserWindowLength, transFreq1,transFreq2, sampFreq, BAND_PASS);
  15. //        float *lpf = fir.create2TransSinc(kaiserWindowLength, transFreq1,transFreq2, sampFreq, BAND_STOP);
  16.         float *lpf_kaiser = fir.createKaiserWindow(lpf, NULL, kaiserWindowLength, beta);
  17.     uart1.printf("kaiserWindowLength = %d ",kaiserWindowLength);
  18.     uart1.printf("beta = %d ",beta);
  19. //使用Kaiser Window数据设置滤波器的参数。
  20.     fir.set(lpf_kaiser,kaiserWindowLength);
复制代码

fir.calculateKaiserParams(0.01, 10, sampFreq, &kaiserWindowLength, &beta);
999999.png (96.38 KB, 下载次数: 0) 下载附件 2017-8-18 10:22 上传

eBox最新代码请关注:
eBox_STM32F1

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
63条回答
shentqlf
1楼-- · 2019-12-16 21:19
河图洛书 发表于 2017-8-18 08:34
这个硬件有要求吗,还是说51,stm32都可以实现

最好是STM32或者其他32位MCU,计算量不小。内存占用也挺大的。
FIR至少也得好几十阶,效果才会比较理想
shentqlf
2楼-- · 2019-12-17 02:29
kinsno 发表于 2017-8-18 08:43
超实用的滤波器算法。

这个是真的要给楼主1万个攒,这种东西,不要太爽。

已经在更新在上面了。
这里内存和速度还可以有优化的空间
shentqlf
3楼-- · 2019-12-17 04:27
tianheyun12 发表于 2017-8-18 09:40
这个非常好,不过还是硬件滤波方便。

是的,能用硬件的还是用硬件。硬件做不到的时候可以用软件的
eliterxzgxu
4楼-- · 2019-12-17 09:19
 精彩回答 2  元偷偷看……
lwy86
5楼-- · 2019-12-17 10:11
点赞  
   
sjh18256
6楼-- · 2019-12-17 13:27
谢谢分享,下载学习下。

一周热门 更多>