MATLAB在实时信号处理中的作用:性能仿真,设计合理可能的算法;产生仿真系数;与实际DSP结果进行比较、验证。MATLAB不适用于实时信号处理,因为MATLAB是解释型语言,程序运行起来太慢,并且MATLAB要在计算机上才能运行,因此计算机是不适合于实时信号处理的。
MATLAB中的数字信号处理工具:MATLA中有很多用于信号处理的函数,还有一些用于信号处理的工具,例如FDAtool ,Blockset Fixed point , Embedded Target for TI C6000 DSP等等。
滤波器设计
一、题目
滤波器设计,要求通带分别为50%和20%两种,波纹1%,阻带65db,对过渡带没有要求。各自分别用IIR和FIR设计,且比较系数分别取浮点、16位、12位定点的差别。
二、题目分析
采用FDAtool设计为低通滤波器,采样频率设置为4000Hz。
50%通带时,通带截止频率为Fpass=1000Hz,阻带截止频率为Fstop=1100Hz,过渡带设计为100Hz。 通带波纹1%,即通带最大衰减为Apass=-20lg(1-1%)=0.087,留一定余量取0.06。阻带衰减为Astop=65dB,取68dB。
通带为20%时,通带截止频率为400Hz, 阻带截止频率为Fstop=500Hz,过渡带设计为100Hz。 通带波纹1%,即通带最大衰减为Apass=-20lg(1-1%)=0.087,留一定余量取0.06。阻带衰减为Astop=65dB,取68dB。计算精度默认为双精度。
IIR选择切比雪夫II型,FIR选择等波纹法。
三、设计过程
1.IIR滤波器设计参数
通带50%
通带截止频率:Fpass=1000Hz
阻带截止频率:Fstop=1100Hz
通带最大衰减:Apass=0.06
阻带最小衰减:Astop=68dB
- 双精度
- 定点12位
- 定点16位
分析:50%的通带,定点和浮点型对滤波器的性能并没有多大的影响,原因是他们的极点都保持在单位圆内部,如下图所示。
双精度
16位定点
通带20%
通带截止频率:Fpass=400Hz
阻带截止频率:Fstop=500Hz
通带最大衰减:Apass=0.06
阻带最小衰减:Astop=68dB
(1)双精度
(2)定点12位
(3)定点16位
分析:20%的通带与50%的通带相比,20%所需要的滤波器阶数要高一些。定点和浮点型对滤波器的性能并没有多大的影响,原因是他们的极点都保持在单位圆内部,如下图所示。
双精度极点分布
定点16位极点分布
2.FIR滤波器设计参数
通带50%
通带截止频率:Fpass=1000Hz
阻带截止频率:Fstop=1100Hz
通带最大衰减:Apass=0.06
阻带最小衰减:Astop=68dB
(1)双精度
(2)定点12位
(3)定点16位
分析:滤波器达到相同的性能,FIR的阶数要比IIR的阶数要高很多。12位量化效果非常差,在阻带部分已经不满足我们需要的最小衰减了。16位的效果稍微好一点,但是还是有一些误差。
通带20%
通带截止频率:Fpass=400Hz
阻带截止频率:Fstop=500Hz
通带最大衰减:Apass=0.06
阻带最小衰减:Astop=68dB
- 双精度
- 定点12位
- 定点16位
分析:20%的定点12位效果也是非常差,阻带最小衰减已经不满足我们的要求了,定点16位勉强能满足我们的要求,但是还是有略微的误差,原因是量化具有误差。