0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Matlab辅助设计无限冲激响应滤波器(IIR)算法的方法

冬至子 来源:创龙教仪-木江鹏 作者:创龙教仪-木江鹏 2023-11-16 17:34 次阅读

一、实验目的

了解IIR滤波器的特点,掌握Matlab辅助设计滤波器系数的方法,并实现IIR滤波器滤除高频信号,并在LCD上显示结果。

二、实验原理

IIR滤波器

IIR无限冲激响应数字滤波器(infinite impulse response digital filter)是对单位冲激的输入信号的响应为无限长序列的数字滤波器。可分为一维、二维或多维无限冲激响应数字滤波器。

它的输出y(n)由当前的和过去的输入信号x(n)及过去的输出信号共同决定。IIR的幅频特性精度很高,不是线性相位的,可以应用于对相位信息不敏感的音频信号上。

对于IIR滤波器,冲激响应理论上应会无限持续,其输出不仅取决于当前和过去的输入信号值,也取决于过去的信号输出值。其系统函数如下:

image.png

IIR滤波器的一种结构和差分方程可见图示,由IIR的系统函数出发,可视作两个系统的级联,并且合并了公共的延时支路。

image.png

IIR滤波器特性

无限冲激响应数字滤波器具有以下特性:

(1)系统函数可以写成封闭函数的形式。

(2)采用递归型结构,即结构上带有反馈环路。IIR滤波器运算结构通常由延时、乘以系数和相加等基本运算组成,可以组合成直接型、正准型、级联型、并联型四种结构形式,都具有反馈回路。由于运算中的舍入处理,使误差不断累积,有时会产生微弱的寄生振荡。

(3)在设计上可以借助成熟的模拟滤波器的成果,如巴特沃斯、契比雪夫和椭圆滤波器等,有现成的设计数据或图表可查,其设计工作量比较小,对计算工具的要求不高。

(4)相位特性不好控制,对相位要求较高时,需加相位校准网络

IIR滤波器的设计

设计IIR数字滤波器实质上就是找到一个使其频率响应H(Z)满足给定的通带截止频率、通带衰减系数、阻带截止频率及阻带衰减系数的可以在物理上实现的系统函数H(Z)。

根据所要设计滤波器的参数去确定一个模拟滤波器的传输函数,然后再根据这个传输函数,通过双线性变换、或脉冲响应不变法来进行数字滤波器的设计。它的设计比较复杂,复杂在于它的模拟滤波器传输函数H(s)的确定。这一点可以让软件来实现。具体实现步骤:

(1)先确定需要一个什么样的滤波器,巴特沃斯型,切比雪夫型,还是其它什么型的滤波器。

(2)当选定一个型号后,就可以根据设计参数和这个滤波器的计算公式来确定其阶数、传输函数的表达式。通常这个过程中还存在预扭曲的问题(这只是双线性变换法所需要注意的问题,脉冲响应不变法不存在这种问题)。

(3)确定H(S)后,就可以通过双线性变换得到其数字域的差分方程。

MATLAB FIR 滤波器辅助设计,生成滤波器系数。

打开Matlab 软件,并打开"Filter Designed&Analaysis Tool"工具,在弹出的界面中按照所需滤波器修改以下参数:

(1)滤波器类型:低通Lowpass;

(2)滤波方式:巴特沃斯IIR(Butterworth);

(3)滤波器阶数:Specify order(4+1阶);

(4)采样频率:1000Hz;

(5)通带截止频率:150Hz;

image.png

程序流程设计

设计中首先要进行外设使能配置,然后进行LCD管脚复用配置和LCD中断配置,接着进行LCD显示和触摸的初始化。最后产生带有噪声的原始信号并进行IIR滤波和FFT运算,将结果显示在LCD屏幕上,在循环中进行触摸检测,根据标志位判断显示时域或者频域波形。

程序功能:使用MATLAB 辅助设计滤波器系数实现IIR滤波,并在LCD上显示结果。

image.png

数字信号处理库

DSPLIB 包含优化的、C语言可调用的通用信号处理例程,用于计算密集型实时应用程序。 调用这些例程的运行速度比直接用C语言编写的等效代码快得多。使用DSPLIB可以缩短应用程序开发时间。

DSPLIB 3_4_0_0包括适用于 C64x+ 或 C66x 或 C674x 处理器的 Windows 或 Linux 安装可执行文件。 每个可执行文件安装一个组件包存储库、一个文档目录、一个 Eclipse 插件目录和一个扩展的组件目录结构,其中包含组件库、头文件和测试示例。

TMS320C6748处理器使用的是dsplib_c674x_3_4_0_0。

image.png

函数源码

程序使用DSPLIB 的库来进行IIR滤波,调用的程序源码和使用说明可以安装DSPLIB后查看。调用的IIR滤波函数中,

第一个参数是延迟元素值。

第二个参数是指向输入数组的指针。

第三个参数是指向输出数组的指针。

第四个参数是自回归滤波器系数。

第五个参数是动态平均滤波器系数。

第六个参数是输出样本数。

image.png

程序使用DSPLIB 的库来进行FFT运算,调用的程序源码和使用说明可以安装DSPLIB后查看。调用的FFT函数中,

第一个参数是样本中FFT 的长度,

第二个参数是指向数据输入的指针。

第三个参数是指向复杂旋转因子的指针。

第四个参数是指向复杂输出数据的指针。

第五个参数是指向包含64 个条目的位反转表的指针。如果样本的FFT长度可以表示为 4 的幂,

第六个参数是4,否则第六个参数是2 。

第七个参数是从主FFT开始的样本中的子 FFT偏移索引

第八个参数是样本中主FFT的大小。

image.png

程序使用DSPLIB 的库来进行FFT逆变换,调用的程序源码和使用说明可以安装DSPLIB后查看。调用的IFFT函数中,

第一个参数是样本中FFT 的长度。

第二个参数是指向数据输入的指针。

第三个参数是指向复杂旋转因子的指针。

第四个参数是指向复杂输出数据的指针。

第五个参数是指向包含64 个条目的位反转表的指针 。如果样本的FFT长度可以表示为 4 的幂,

第六个参数是4,否则第六个参数是 2 。

第七个参数是从主FFT开始的复杂样本中的子FFT偏移索引 。

第八个参数是样本中主FFT的大小。

三、操作现象

硬件连接

(1)连接仿真器电脑USB接口

(2)将拨码开关拨到DEBUG模式01111,连接实验箱电源,拨动电源开关上电。

image.png

操作现象

导入工程,选择Demo文件夹下的对应工程

编译工程,生成可执行文件

将CCS连接实验箱并加载程序

程序加载完成后点击运行程序

运行程序后,LCD会显示IIR滤波前后的时域波形,上方为100Hz信号与450Hz噪声组成的混合信号,下方为滤波后得到的结果(保留100Hz信号)。

点击一下LCD屏幕,会切换频域波形,上方显示原始频域信号+噪声,下方显示滤波后的频域波形,输入波形为一个低频率的正弦波与一个高频的正弦波叠加而成,通过观察频域图可知输入波形中的低频波形通过了滤波器,而高频部分被滤除。

实验结束后,先点击黄色按钮暂停程序运行,再点击红色按钮退出CCS与实验板的连接,最后实验箱断电即可。

image.png

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • matlab
    +关注

    关注

    175

    文章

    2924

    浏览量

    228455
  • 信号处理
    +关注

    关注

    47

    文章

    855

    浏览量

    102542
  • FFT
    FFT
    +关注

    关注

    15

    文章

    425

    浏览量

    58645
  • LCD显示
    +关注

    关注

    0

    文章

    122

    浏览量

    18188
  • IIR滤波器
    +关注

    关注

    0

    文章

    26

    浏览量

    11473
收藏 人收藏

    评论

    相关推荐

    IIR滤波器种类和设计

    IIR滤波器(Infinite Impulse Response Filter)是一种数字滤波器,具有无限冲激响应特性。
    的头像 发表于 06-20 11:31 6702次阅读

    IIR滤波器和FIR滤波器的对比分析介绍

    1.两种滤波器都是数字滤波器。根据冲激响应的不同,将数字滤波器分为有限冲激响应(FIR)滤波器
    发表于 06-26 06:15

    怎么实现有限冲激响应滤波器的设计?

    本文介绍了应用Altera 公司的FLEX10K系列CPLD快速完成卷积的方法实现有限冲激响应(FIR)滤波器的设计。
    发表于 05-18 06:56

    本次视频讲解的是有限冲激响应滤波器算法实验,MATLAB辅助,LCD显示

    本帖最后由 创龙教仪 于 2023-5-30 10:28 编辑 1、实验目的本次教程是基于创龙教仪DSP教学实验箱:TL6748-PlusTEB完成的本次视频讲解的是有限冲激响应滤波器算法实验
    发表于 05-29 14:10

    4-6 无限冲激响应滤波器IIR算法MATLAB辅助,LCD显示)

    的特点,掌握Matlab辅助设计滤波器系数的方法,并实现IIR滤波器滤除高频信号,并在LCD上显
    发表于 06-08 12:04

    嵌入式操作教程:4-6 无限冲激响应滤波器IIR算法MATLAB 辅助,LCD显示)

    一、实验目的 了解IIR滤波器的特点,掌握Matlab辅助设计滤波器系数的方法,并实现
    发表于 11-16 15:08

    数字信号处理实验指导 -无限长单位脉冲响应(IIR)滤波器

    数字信号处理实验指导实验四、 无限长单位脉冲响应(IIR)滤波器的设计方法(一) 实验目的加深对
    发表于 05-10 11:22 42次下载

    有限长单位冲激响应FIR数字滤波器的设计方法

    有限长单位冲激响应FIR数字滤波器的设计方法一、IIR滤波器的优缺点二、FIR DF 优点FIR滤波器
    发表于 07-25 11:47 40次下载

    MATLAB辅助设计IIR数字滤波器

    MATLAB辅助设计IIR数字滤波器摘 要:论述了用MATLAB求解IIR数字
    发表于 05-14 14:08 74次下载

    IIR与FIR滤波器的比较和区别

    两种滤波器都是数字滤波器。根据冲激响应的不同,将数字滤波器分为有限冲激响应(FIR)滤波器
    发表于 11-12 10:02 4.7w次阅读

    如何使用随机结构进行无乘法无限冲激响应的数字滤波器设计方法概述

    针对现有的无乘法无限冲激响应IIR)数字滤波器设计方法存在结构固定、滤波器性能不佳的问题,提
    发表于 12-28 16:01 0次下载
    如何使用随机结构进行无乘法<b class='flag-5'>无限</b><b class='flag-5'>冲激响应</b>的数字<b class='flag-5'>滤波器</b>设计<b class='flag-5'>方法</b>概述

    如何使用随机结构进行无乘法无限冲激响应的数字滤波器设计方法概述

    针对现有的无乘法无限冲激响应IIR)数字滤波器设计方法存在结构固定、滤波器性能不佳的问题,提
    发表于 12-28 16:01 2次下载
    如何使用随机结构进行无乘法<b class='flag-5'>无限</b><b class='flag-5'>冲激响应</b>的数字<b class='flag-5'>滤波器</b>设计<b class='flag-5'>方法</b>概述

    IIR滤波器和FIR滤波器详细对比

    1.两种滤波器都是数字滤波器。根据冲激响应的不同,将数字滤波器分为有限冲激响应(FIR)滤波器
    发表于 10-30 10:40 5次下载
    <b class='flag-5'>IIR</b><b class='flag-5'>滤波器</b>和FIR<b class='flag-5'>滤波器</b>详细对比

    FIR滤波器IIR滤波器之间有何区别

    1. 两种滤波器都是数字滤波器。根据冲激响应的不同,将数字滤波器分为有限冲激响应(FIR)滤波器
    的头像 发表于 10-30 02:25 1363次阅读

    FIR滤波器IIR滤波器的区别与联系

    1.根据冲激响应的不同,将数字滤波器分为有限冲激响应(FIR)滤波器无限冲激响应
    的头像 发表于 12-30 23:45 2546次阅读