用C / Java生成DSP滤波器系数用于时域卷积

我正在写一个智能手机( Android,iPhone)应用程序,它做一些DSP.我是一位经验丰富的程序员.我还参加了DSP的一个本科EE课程,并且知道如何使用Matlab.

我想将低通和带通滤波器应用于我的时域信号.根据我的理解,我需要对时域样本和滤波器系数进行卷积.在Matlab中,我将使用fir1()函数来获取滤波器系数,并使用conv()/ filter()函数来应用卷积.

我知道如何在Java / C中编写卷积函数,但我不知道如何生成滤波器系数.我知道对于低通滤波器,系数来自sinc函数,带通滤波器基本上是移位的低通滤波器.如何以编程方式生成这些系数?

解决方法

存在使用windowed-sinc方法 on the nicholson.com dsp web page为低通和带通滤波器生成FIR系数的代码.该代码大约是10行老式Basic,但应该可以简单地转换为C或Java.如果要重新派生代码,可以在该页面上进行说明.

当使用窗口sinc时,艺术是选择最佳窗口.更现代的方法,需要更少的猜测工作,是使用Remez交换算法从规范生成过滤器.

相关文章

一.C语言中的static关键字 在C语言中,static可以用来修饰局...
浅谈C/C++中的指针和数组(二) 前面已经讨论了指针...
浅谈C/C++中的指针和数组(一)指针是C/C++...
从两个例子分析C语言的声明 在读《C专家编程》一书的第三章时...
C语言文件操作解析(一)在讨论C语言文件操作之前,先了解一下...
C语言文件操作解析(三) 在前面已经讨论了文件打开操作,下面...