MATLAB有限冲激响应(FIR)滤波器和无限冲激响应(IIR)滤波器设计
附MATLAB代码
摘要
文章设计了一个数字信号处理仿真实验,产生一个信号,其频率成分为f1和f2,并对其进行理想采样,采样频率为fs;对采样后的信号采用快速傅里叶变换进行频谱分析,以验证信号频率的正确性;并设计有限冲激响应(FIR)滤波器和无限冲激响应(IIR)滤波器将信号分离为仅有f1或f2的正弦信号。
1采样定理
在进行模拟/数字信号的转换过程中,当采样频率fs.max大于信号中最高频率fmax的2倍时,即fs.max>2fmax,采样之后的数字信号完整地保留了原始信号中的信息,一般实际应用中保证采样频率为信号最高频率的2.56到4倍;采样定理又称奈奎斯特定理。如果不能满足采样定理,采样后信号的频率就会重叠,即高于采样频率一半的频率成分将被重建成低于采样频率一半的信号。
2快速傅里叶变换
快速傅里叶变换(FFT),是离散傅里叶变换(DFT)的快速算法,它是根据DFT的奇、偶、虚、实等特性,对DFT的算法进行改进获得的。设x(n)为N项的复数序列,由DFT求出N项复数序列的X(n),即N点DFT大约就需要N^2次复乘,N(N-1)次复加。在FFT中,利用WN的周期性和对称性,把一个N项序列分为两个N/2项的子序列,直到分成两两一组的DFT运算单元,那么N点的DFT变换就只需要Nlog2N次的运算。这就是FFT的优越性。
3IIR滤波器
IIR 数字滤波器的特征是,具有无限持续时间冲激响应,需要用递归模型来实现。IIR数字滤波器的间接设计法是常用的IIR滤波器设计方法。它的原理是根据所要设计滤波器的参数去确定一个模拟滤波器的传输函数。模拟巴特沃斯滤波器是最为有名的模拟滤波器,由于它设计简单,性能方面又没有明显的缺点,因而得到了广泛应用。其中,巴特沃斯滤波器的特点是通频带的频率响应曲线最平滑。滤波器的截止频率的变换是通过先求出待设计滤波器的截止频率与基准滤波器的截止频率的比值M,再用这个M去除滤波器中的所有元件值来实现的,其计算公式如下:M=待设计滤波器的截止频率/基准滤波器的截止频率巴特沃斯模拟滤波器是常用的滤波器形式。
根据模拟滤波器传输函数,通过双线性变换、或冲激响应不变法来进行数字滤波器的设计。冲激响应不变法使数字滤波器的单位脉冲响应模仿模拟滤波器的单位冲激响应。由于脉冲响应不变法存在缺点,从s平面直接映射到z平面时会产生混叠现象,而且脉冲响应不变法只适合频率响应在高频处单调递减的模拟原型滤波器,因此其应用范围受到限制。
双线性变换法的主要目的是从根本上解决上述脉冲响应不变法的问题,但是相位是非线性的。双线性变换法:将整个s平面压缩变换到一中介平面的一条横带里,再将此横带变换到整个z平面。
4FIR滤波器
由于理想滤波器在边界频率处不连续,故时域信号hd(n)一定是无限时宽的