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

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

3天内不再提示

DSP C6000教学实验箱操作案例分享丨有限冲激响应滤波器(FIR)算法(LCD显示)

创龙教仪 2024-09-13 08:08 次阅读

1

产品概述

DSP 教学实验箱

5b0aeb24-7164-11ef-bb4b-92fbcf53809c.jpg

产品型号:TL6748-PlusTEB

处理器TI TMS320C6748

应用专业:电子、电信、通信等相关专业

应用课程:数字信号处理》、《音视频编解码》、《图像处理与识别》、《电机控制系统设计》、《DSP系统设计与应用》

5b28b348-7164-11ef-bb4b-92fbcf53809c.jpg

向下滑动查看所有实验列表内容

2

案例分享


一、实验名称:

4-4 有限冲激响应滤波器(FIR)算法(LCD显示)

二、实验目的:

(1) 了解FIR滤波器的特点;

(2) 掌握程序算法生成滤波器系数的方法;

(3)实现FIR滤波器滤除高频信号,并在LCD上显示结果。

三、实验原理:

FIR滤波器

FIR(Finite Impulse Response)滤波器:有限长单位冲激响应滤波器,又称为非递归型滤波器,是数字信号处理系统中最基本的元件,它可以在保证任意幅频特性的同时具有严格的线性相频特性,同时其单位抽样响应是有限长的,因而滤波器是稳定的系统。因此,FIR滤波器在通信、图像处理、模式识别等领域都有着广泛的应用。

有限脉冲响应(FIR)滤波器(N-1阶),不存在输出对输入的反馈支路,其单位脉冲h(n)是有限长。对于一个FIR滤波器系统,它的冲激响应总是有限长的,其系统函数可记为:

5b4e824e-7164-11ef-bb4b-92fbcf53809c.png

带有常系数的FIR滤波器是一种LTI(线性时不变)数字滤波器。冲激响应是有限的意味着在滤波器中没有发反馈。长度为N的FIR输出对应于输入时间序列x(n)的关系由一种有限卷积和的形式给出,最基本的具体形式如下:

5b6528d2-7164-11ef-bb4b-92fbcf53809c.png

FIR滤波器特性

有限长单位冲激响应(FIR)滤波器有以下特点:

系统的单位冲激响应h (n)在有限个n值处不为零;

系统函数H(z)在|z|>0处收敛,极点全部在z = 0处(因果系统);

结构上主要是非递归结构,没有输出到输入的反馈,但有些结构中(例如频率抽样结构)也包含有反馈的递归部分。设FIR滤波器的单位冲激响应h (n)为一个N点序列,0 ≤ n ≤N -1,则滤波器的系统函数为:H(z)=∑h(n)* z^(-n),就是说,它有(N-1)阶极点在z = 0处,有(N-1)个零点位于有限z平面的任何位置;

FIR滤波器的设计

FIR滤波器的设计比较简单,就是要设计一个数字滤波器去逼近一个理想的低通滤波器。通常这个理想的低通滤波器在频域上是一个矩形窗。

在数字信号处理中,傅里叶变换用来求取时域信号的频率成分。因此,通过对特定频率幅度和相位的响应,求取傅里叶变换的逆变换(IDFT),就可以求出满足要求的数字滤波器。

设计FIR滤波器需要提供的参数

滤波器的类型:低通、高通、带通、带阻 ;

滤波器的采样频率;

滤波器的系数个数;

阻带衰减(dB);

通带纹波(dB);

过渡带带宽(Hz)。

FIR 滤波器软件实现方法

FIR 滤波器软件实现方法有两种,一种是借助Matlab工具生成滤波器,另外一种是纯算法生成滤波器。本实验中是借助Matlab FIR 滤波器辅助设计,生成滤波器系数。

算法生成FIR滤波器系数

本实验利用Kaiser窗设计一个FIR低通滤波器,有用信号为100Hz,需要滤掉的信号为450Hz。

Kaiser窗是一种应用广泛的可调节窗,它可以通过改变窗函数的形状来控制窗函数旁瓣的大小,从而在设计中可用滤波器的衰减指标来确定窗函数的形状。与其他窗相比,Kaiser窗最大的特点是可以同时调整主瓣和旁瓣宽度。Kaiser窗的定义如下:

5b73f268-7164-11ef-bb4b-92fbcf53809c.png

其中n=1,2,⋯,N-1 ,N 表示窗函数的总长度, I_0是第一类贝瑟尔函数。β是一个可调参数,可以通过改变β的值来调整窗函数的形状,从而达到不同的阻带衰减要求。

算法生成FIR滤波系数

void filter_coefficient(int n, int band, float fs, float fln, float fhn, float wn, float beta, float h[])

n:滤波器阶数(偶数);

band:滤波器类型,1=低通,2=高通,3=带通,4=带阻;

Fs:采样频率;

fln:通带上边界频率(低通) 、通带下边界频率(高通、带通、带阻);

fhn:无意义(低通、高通)、通带上边界频率(带通、带阻);

wn:滤波器窗体,1=retangular,2=tapered rectangular,3=triangular,4=Hanning,5=Hamming,6=Blackman,7=Kaiser ;

beta:Kaiser窗口的β参数(3< β <10);

h:滤波器系数 ;

程序流程设计

程序流程设计中首先要进行外设使能配置;

然后进行LCD管脚复用配置和LCD中断配置;

接着进行LCD显示和触摸的初始化;

然后通过FIR滤波器系数算法生成滤波因子;

最后产生带有噪声的原始信号并进行FIR滤波和FFT运算,将结果显示在LCD屏幕上,在循环中进行触摸检测,根据标志位判断显示时域或者频域波形。

5b851264-7164-11ef-bb4b-92fbcf53809c.png

数字信号处理库

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

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

TMS320C6748处理器使用的是dsplib_c674x_3_4_0_0。

5b9d2bd8-7164-11ef-bb4b-92fbcf53809c.png

函数源码

FIR滤波函数

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

第一个参数是指向大小为 nr+nh-1 的输入数组的指针;

第二个参数是指向大小为 nh 的系数数组的指针;

第三个参数是指向大小为 nr 的输出数组的指针;

第四个参数是系数个数;

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

5baf269e-7164-11ef-bb4b-92fbcf53809c.png

FFT运算函数

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

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

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

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

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

第五个参数是指向包含 64 个条目的位反转表的指针;

如果样本的FFT长度可以表示为 4 的幂,第六个参数是4,否则第六个参数是2;

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

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

5bc24508-7164-11ef-bb4b-92fbcf53809c.png

FFT逆变换函数

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

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

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

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

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

第五个参数是指向包含 64 个条目的位反转表的指针;

如果样本的FFT长度可以表示为 4 的幂,第六个参数是4,否则第六个参数是 2;

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

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

5bda3bea-7164-11ef-bb4b-92fbcf53809c.png

四、实验操作:

实验设备

本实验使用的硬件接口为LCD,所需硬件为实验板、仿真器、LCD和电源

5bf103de-7164-11ef-bb4b-92fbcf53809c.png5c0dbeac-7164-11ef-bb4b-92fbcf53809c.png5c1edebc-7164-11ef-bb4b-92fbcf53809c.png5c317a22-7164-11ef-bb4b-92fbcf53809c.png

硬件连接

连接仿真器和电脑USB接口;

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

5c444ef4-7164-11ef-bb4b-92fbcf53809c.png

软件操作

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

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

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

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

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

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

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

5c5e6ce4-7164-11ef-bb4b-92fbcf53809c.jpg

5c72f696-7164-11ef-bb4b-92fbcf53809c.jpg

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

    关注

    551

    文章

    7821

    浏览量

    346781
  • 滤波器
    +关注

    关注

    158

    文章

    7588

    浏览量

    176529
  • FIR
    FIR
    +关注

    关注

    4

    文章

    145

    浏览量

    32943
  • LCD显示
    +关注

    关注

    0

    文章

    132

    浏览量

    18290
收藏 人收藏

    评论

    相关推荐

    FIR滤波器的工作原理和特点

    FIR(Finite Impulse Response)滤波器,即有限长单位冲激响应滤波器,又称为非递归型
    的头像 发表于 08-05 16:33 377次阅读
    <b class='flag-5'>FIR</b><b class='flag-5'>滤波器</b>的工作原理和特点

    如何区分fir与iir的系统函数

    在数字信号处理领域,FIR有限冲激响应)和IIR(无限冲激响应滤波器是两种常见的滤波器类型。
    的头像 发表于 07-19 09:39 247次阅读

    DSP教学实验_DSP算法实验_嵌入式教程:4-3 有限冲激响应滤波器FIR算法(CCS显示

    有限长单位冲激响应滤波器,又称为非递归型滤波器,是数字信号处理系统中最基本的元件,它可以在保证任意幅频特性的同时具有严格的线性相频特性,同时其单位抽样
    发表于 05-16 09:30

    DSP ARM FPGA 实验_音频处理_滤波操作教程:3-9 音频信号的滤波实验

    一、实验目的 掌握Matlab辅助设计滤波器系数的方法,并实现音频混噪及IIR滤波器滤除,并在LCD显示音频信号的FFT计算结果。 二、
    发表于 05-10 10:24

    DSP C6000 数字图像、信号处理专业实验室解决方案

    ►基于TIDSPC6000教学实验基于TITMS320C6748定点/浮点DSPC674x处
    的头像 发表于 04-23 08:32 425次阅读
    <b class='flag-5'>DSP</b> <b class='flag-5'>C6000</b> 数字图像、信号处理专业<b class='flag-5'>实验</b>室解决方案

    Vivado 使用Simulink设计FIR滤波器

    今天给大侠带来Vivado经典案例:使用Simulink设计FIR滤波器,话不多说,上货。 FIR(Finite Impulse Response)滤波器
    发表于 04-17 17:29

    Vivado经典案例:使用Simulink设计FIR滤波器

    FIR(Finite Impulse Response)滤波器有限长单位冲激响应滤波器,又称为非递归型
    的头像 发表于 03-25 09:18 1605次阅读
    Vivado经典案例:使用Simulink设计<b class='flag-5'>FIR</b><b class='flag-5'>滤波器</b>

    TI C6000教学实验操作教程:5-8 直方图均衡化(LCD显示

    数据显示LCD上,并保存图像。 三、实验操作 实验设备 本实验使用的硬件接口为
    发表于 12-07 14:20

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

    了解IIR滤波器的特点,掌握Matlab辅助设计滤波器系数的方法,并实现IIR滤波器滤除高频信号,并在LCD显示结果。
    的头像 发表于 11-16 17:34 1920次阅读
    Matlab辅助设计无限<b class='flag-5'>冲激响应</b><b class='flag-5'>滤波器</b>(IIR)<b class='flag-5'>算法</b>的方法

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

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

    DSP操作教程:有限冲激响应滤波器算法LCD显示

    了解FIR滤波器的特点,掌握程序算法生成滤波器系数的方法,并实现FIR滤波器滤除高频信号,并在
    的头像 发表于 11-08 16:55 1201次阅读
    <b class='flag-5'>DSP</b><b class='flag-5'>操作</b>教程:<b class='flag-5'>有限</b><b class='flag-5'>冲激响应</b><b class='flag-5'>滤波器</b><b class='flag-5'>算法</b>(<b class='flag-5'>LCD</b><b class='flag-5'>显示</b>)

    国产教学实验_DSP教学实验_操作教程:4-4 有限冲激响应滤波器FIR算法LCD显示

    一、实验目的 了解FIR滤波器的特点,掌握程序算法生成滤波器系数的方法,并实现FIR
    发表于 11-08 15:40

    FIR滤波器的实现方法有哪几种?

    漂移和噪声等问题。 有限冲激响应FIR滤波器能在设计任意幅频特性的同时保证严格的线性相位特性。 一、FIR数字
    的头像 发表于 10-20 01:30 3292次阅读
    <b class='flag-5'>FIR</b><b class='flag-5'>滤波器</b>的实现方法有哪几种?

    基于Matlab和DSP设计FIR数字滤波器方案

    介绍了基于Matlab和DSP设计FIR数字滤波器的四种方法,并经过实验,将一个多频率成分的信号通过该滤波器并进行比对,
    发表于 10-19 16:29 0次下载
    基于Matlab和<b class='flag-5'>DSP</b>设计<b class='flag-5'>FIR</b>数字<b class='flag-5'>滤波器</b>方案

    利用Matlab工具设计FIR和IIR滤波器

    利用Matlab工具设计FIR和IIR滤波器
    的头像 发表于 09-26 14:59 842次阅读