EDN China > 设计实例 > EDA工具与服务 > 仿真与验证 > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

(多图) 基于Maflab的IIR数字滤波器设计及DSP实现

电子设计工程 耶晓东?? 2011年10月12日 ?? 收藏0

  摘要:IIR滤波器是一种被广泛应用的基本的数字信号处理部件。基于DSP信号处理的优越性,将Matlab与DSP相结合应用于IIR滤波器的设计。介绍了IIR数字滤波器的理论及其Matlab常用设计函数,并针对TI公司的TMS320VC5416 DSP,结合某高通滤波器的设计,给出了其Matlab仿真设计及在DSP上的实现过程及结果。该方法具有较强的实用性,对其它数字滤波器设计及DSP实现提供了参考价值。

  21世纪是数字化的时代,随着越来越多的电子产品将数字信号处理(DSP)作为技术核心,DSP已经成为推动数字化进程的动力。在数字信号处理中,数字滤波占有极其重要的地位。在经典滤波中,常用的数字滤波器有FIR滤波器和IIR滤波器,其中IIR数字滤波器因具有结构简单、占用存储空间少、运算速度快、较高的计算精度和能够用较低的阶数实现、较好的选频特性等特点,得到了广泛应用。

  1 IIR数字滤波器的基本理论及设计方法

  数字滤波器的功能是把输入序列x(n)通过一定的运算变换成输出序列y(n)。不同的运算处理方法决定了滤波器实现结构的不同。IIR数字滤波器的单位抽样响应h(n)是无限长的,其差分方程如式(1)所示,是递归式的,即结构上存在着输出信号到输入信号的反馈。其系统函数如式(2)所示,因此在z平面的有限区间(0<|z|<∞)有极点存在。

系统函数

  目前,IIR数字滤波器设计最通用的方法是借助于模拟滤波器的设计方法。模拟滤波器设计已经有了一套相当成熟的方法,它不但有完整的设计公式,而且还有较为完整的图表供查询,因此,充分利用这些已有的资源将会给数字滤波器的设计带来很大方便,IIR数字滤波器的设计步骤是:

  1)按一定规则将给出的数字滤波器的技术指标转换为模拟滤波器的技术指标;

  2)根据转换后的技术指标设计模拟低通滤波器H(s);

  3)在按一定规则将H(s)转换为H(z);

  若所设计的数字滤波器是低通的,那么上述设计工作可以结束,若所设计的是高通、带通或者带阻滤波器,那么还有步骤4);

  4)将高通、带通或者带阻数字滤波器的技术指标先转化为低通滤波器的技术指标,然后按上述步骤2)设计出模拟低通滤波器H(s),再由冲击响应不变法或双线性变换将H(s)转换为所需的H(z)。

  2 IIR数字滤波器的Matlab设计

  Matlab信号工具箱提供了几个直接设计IIR数字滤波器的函数,直接调用这些函数就可以很方便地对滤波器进行设计。用巴特沃斯法、切比雪夫I、切比雪夫Ⅱ、椭圆法设计数字滤波器的函数如下:

椭圆法设计数字滤波器的函数

  本文设计一个三阶的切比雪夫I型高通数字滤波器,其采样频率为1 200 Hz,截止频率为200 Hz,通带的最大衰减Rp为0.5 dB。输入信号为100Hz和300Hz的合成信号,目的是通过所设计的滤波器将100 Hz的信号滤掉,余下300 Hz的信号成份,达到滤波的效果。高通滤波器仿真结果如图1所示,用高通滤波器进行滤波仿真结果如图2~4。从图中可看出,IIR数字滤波器设计正确,达到预期效果。

高通滤波器仿真结果

高通滤波器进行滤波仿真结果

  在编写汇编语言程序之前。首先确定滤波器的参数,从上面滤波器的设计中得出滤波器的参数如下:

Numemtor:?? 0.323557 -0.970672 0.970672? -0323557
Denominator:1.000000 -0.921478 0.642247? -0024733

  若设计参数有大于1的的数据.这样一个大于1的数据要直接用到DSP中,需要进行数据格式的浮点运算,这将增加编程的复杂度,而且会导致DSP运行程序速度的降低。一般情况下都不这样使用,而是将数据做一定比例的压缩后计算。例如将上面数据做8倍的压缩(即将上面数据除以8),得到新的数据为:

Numerator:? 0.040 45?? -0.121 334? 0.121 334? -0.040 45
Denominator:1.000 000? -0.115 185? 0.080 28?? -0.003 092


上一页12下一页
?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

数字滤波器? IIR? DSP?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈