2015-06-20 127 views
1

如果我要通过以下代码在数字采样阵列上实现低通滤波器,其中original是原始数据阵列,并且new是已过滤数据的阵列,而c在一定恒定:具有特定截止的低通和高通滤波器

new[0] = original[0]; 
for(int i=1; i<original.length; i++){ 
    new[i] = new[i-1] + c * (original[i] - new[i-1]); 
} 

或者与所述第三线的高通滤波器替换为:

new[i] = c * (new[i-1] + original[i] - original[i-1]); 

什么是c并且每个的截止频率之间的关系?

回答

0

两个滤波器都是单极无限脉冲响应(IIR) filters

IIR滤波器在连续时域中具有类似物(例如简单的LC和RC电路)。分析通常以所需的传递函数H(ω)开始 - 使用z-tranform转换为离散时间。稍微重新排列会产生一个方程式,您可以为您的滤波器系数求解。 [H(ω)在截止频率下为-3dB]。

这种材料通常在电子工程学士学位的第一和第二年授课,所以会有大量的在线免费课件。你需要随附的纯数学课程。许多实际的过滤器设计都是分析不可溶的(或者至少是困难的)。一个常用的方法是数值求解。 MATLAB是众多工具的首选。 NI LabView也有一个滤波器设计器。两者都不便宜。

单极滤波器很容易解决。 this可能会有所帮助。如果您想设计更复杂或更高阶的过滤器,还有各种联机filter solvers

+1

我认为这种事情的一个很好的学习点是Julius Smiths的过滤器设计在线书籍。自由和美丽的书面。 https://ccrma.stanford.edu/~jos/filters/他特别重视这一点。 – PicnicTripper