作者:王 斌 解放军91413部队
在信号处理系统中,数字滤波器是一项重要且普遍应用的技术。它通过一定的数学函数关系来改变输入滤波器信号中所含频率成分的相对比例或滤除某些频率成分。IIR滤波是数字信号处理领域中最基本的一种处理方法,可用较低阶数获得较高的选择性,在相同的时钟采样速率和相同的晶体管数量的前提下能提供更好的过渡带下降速率,已广泛应用于通信等众多领域。
1 基本原理
1.1 Visual DSP++简介
Visual DSP++是ADI公司提供的用于DSP程序开发的可视化集成开发环境,支持对Tiger SHARC系列DSP芯片的编程、调试和开发。Visual DSP++通过图形窗口的方式与用户进行信息交换,采用直观的、易于使用的用户界面,针对处理器进行操作。
1.2 算法及实现原理
无限脉冲响应(IIR)的系统函数为
2 实现方法及步骤
2.1 算法实现及编程
将1.2中提到的算法进行编程实现,利用Visual DSP++中的函数,用C语言编程实现。程序结构见图1。
2.2 调入并编译程序
将编好的源代码插入到建好的工程中,注意需将相应头文件加入。然后进行编译、链接。注意选择session为ADSP-TS201 Rev.1.0 Single Processor Simulator。
3 结果分析
查看inputs[]和output[]的时域图和频谱图,并把output[]的时域图和频谱图与expected output[]的时域图和频谱图进行比较。
时域图如图2所示,频谱图如图3所示。也可以通过存储空问直接比较output[]和expectedoutput[]的值。比较结果见表1。
由图2可以看出,经IIR滤波后,输出时域变得平滑,且趋近于止弦曲线。
图3显示的是经过IIR滤波后的输出频谱。可以看到,经滤波后,输出数据的频谱较输入数据已有了较大程度的改善。
4 结束语
本文介绍了IIR数字滤波器的原理、设计以及在Visual DSP++中的实现力法。在实际使用中,可以根据不同精度要求,方便地对该IIR滤波器参数进行修改以满足不同的指标要求,灵活地组成任意阶不同类型的滤波器。在Visual DSP++软环境中调试滤波器,可进一步节省硬件资源和缩短运行周期。