前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >matlab fir带通滤波,基于Matlab的FIR带通滤波器设计与实现

matlab fir带通滤波,基于Matlab的FIR带通滤波器设计与实现

作者头像
全栈程序员站长
发布于 2022-09-05 11:56:38
发布于 2022-09-05 11:56:38
7050
举报

大家好,又见面了,我是你们的朋友全栈君。

mal”>3.2 软件设计

3.2.1 数据组织方式

若输入信号x(n)和滤波器的单位冲激响应h(n)在频域分别为

,则其输出信号的频率响应为

。根据离散傅氏变换的性质,可以得到滤波系统的差分方程:

从上文Matlab的仿真过程可得到滤波器的级数N和滤波器系数h(n)。从上述可知数字滤波器实现时,主要是进行乘和加运算以及数据存取操作。

在定点DSP上实现FIR滤波有两种方式:一种是用线性缓冲区实现z-1,该方式能保证新老数据在存储器中的存放位置直接明了,新的数据存放在缓冲区的固定位置;另一种方式是循环缓冲区实现z-1,该方式新老数据在缓冲区的位置不直接明了,新的数据没有固定位置,但可以方便地完成滤波器窗口的自动更新。考虑到本方案中使用的是汇编语言编程,还有N的阶数较大,为提高速率,因此在选择FIR滤波器的方式时选择循环缓冲区实现z-1的方式。

对于N级的FIR滤波器,在数据存储器中开辟一个称之为滑窗的N个单元的缓冲区,滑窗中存放最新的N个输入样本。每次输入新的样本时,一新样本改滑窗中的最老数据,而滑窗中的其他数据不需要移动。利用片内BK(循环缓冲区长度)寄存器对滑窗进行间接寻址,环缓冲区地址首位相邻。

3.2.2 程序设计思路

程序设计的总体思路是:启动ADS7864对输入的模拟信号进行A/D转换,每采集到一个数据就送入DSP进行滤波运算,运算结果送DAC76 25转换为模拟量。不断地重复上述过程,在DAC7625的输出端就得到滤波后的模拟信号。

为了精确地控制ADS7864的采样率,使用TMS320C5402内部的定时器控制采样时间间隔T。设置定时器的定时时间等于采样时间间隔T,并让它工作在中断方式,则定时器每过T时间间隔就向CPU发出中断请求,CPU响应中断请求,转去执行中断服务程序。在中断服务程序中读取A/D转换结果,对转换结果进行滤波运算,并将运算结果送D/A转换器转换为模拟量。因此,程序分为主程序和定时器中断服务程序两部分,流程图如图4,图5所示。

3.2.3 FIR滤波源程序

FIR滤波器指令,使用MAC指令执行FIR滤波,将滤波输出放在累加器A中:

3.2.4 结果分析

利用已做好的TMS320C5402开发平台,下载在CCS中已经通过编译的数字带通滤波器的程序,该程序的实验结果波形由CCS提供的显示时频图来显示。由于实际需求只涉及数字滤波器的幅频特性,所以结果分析没有对数字滤波器的相频特性进

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/137872.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年6月1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
简谈FIR滤波器和IIR滤波器的区别
大侠好,欢迎来到FPGA技术江湖,江湖偌大,相见即是缘分。大侠可以关注FPGA技术江湖,在“闯荡江湖”、"行侠仗义"栏里获取其他感兴趣的资源,或者一起煮酒言欢。
FPGA技术江湖
2020/12/29
2K0
简谈FIR滤波器和IIR滤波器的区别
基于micropython的数字滤波器
刚参加了昨天的硕士研究生考试,专业课考的信号与系统,报考学校今年出题出的有点偏,不是题型偏而是考察知识点有明显的偏重,简单说考纲里所罗列的考点最多只考了百分之三十,考系统输入输出方程的提有好几道,傅立叶的题好几道,考试前我特意巩固的离散系统没怎么考,拉普拉斯没怎么考,上场前画了个信号流熟悉了熟悉梅森公式热热身也没考,滤波器也没按正常套路考。。。。。总之今年专业课有点诡异。 不管怎样已经考完了过去了就不再去想了静待结果吧。 今天从实用的角度好好学习学习滤波器以及傅立叶变换,先搞滤波器。考前star了一个git
企鹅号小编
2018/01/25
1.6K0
带通滤波器的matlab程序设计
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/144159.html原文链接:https://javaforall.cn
全栈程序员站长
2022/08/26
6820
1.巴特沃斯模拟滤波器(低通,高通,带通,带阻)设计-MATLAB实现
本文是模拟滤波器设计,如果需要了解数字滤波器的内容,可以按顺序看我写的另外两篇博客,如下:
全栈程序员站长
2022/08/29
8K0
1.巴特沃斯模拟滤波器(低通,高通,带通,带阻)设计-MATLAB实现
FIR数字滤波器设计(上)
今天给大侠带来FIR数字滤波器设计,由于篇幅较长,分三篇。今天带来第一篇,数字滤波器介绍,包括数字滤波器概述、分类以及设计指标。话不多说,上货。
FPGA技术江湖
2021/04/21
8190
FIR数字滤波器设计(上)
TI应用手册-数字滤波器解惑
手册里面的图是FIR滤波器,因为频率响应里面最后解出来有sin,最后是因为离散系统周期研究2Π就行:
云深无际
2024/09/12
1030
TI应用手册-数字滤波器解惑
IIR 数字滤波器全极点格型的MATLAB实现
一、实验目的 1. 掌握IIR 数字滤波器全极点格型的表达方式特点及信号流图。 2. 掌握IIR 数字滤波器全极点格型的基本特点并根据给定的传递函数形式正确选择是否 采用全极点格型。 3. 掌握全极点格型软件实现的编程方法。 二、实验原理 IIR 滤波器的一种格型结构是局限为全极点的系统函数。它可以有FIR 滤波器的格型结 构演变而来。设一全极点系统函数给出为:
timerring
2022/07/20
4740
IIR 数字滤波器全极点格型的MATLAB实现
【DSP教程】第42章 IIR无限冲击响应滤波器设计
完整版教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=94547 第42章 IIR无限冲击响应滤波器设计 IIR滤波器涉及
Simon223
2021/08/18
1.7K0
【DSP教程】第42章       IIR无限冲击响应滤波器设计
【DSP教程】第43章 IIR滤波器的Matlab设计
完整版教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=94547 第43章 IIR滤波器的Matlab设计 本章节讲解II
Simon223
2021/08/18
2.1K0
【DSP教程】第43章       IIR滤波器的Matlab设计
基于Matlab的FIR滤波器设计与实现
前面一篇文章介绍了通过FDATool工具箱实现滤波器的设计,见“基于Matlab中FDATool工具箱的滤波器设计及相关文件的生成”,这里通过几个例子说明采用Matlab语言设计FIR滤波器的过程。
AIHGF
2019/02/18
2.2K0
FIR数字滤波器设计(上)
今天给大侠带来FIR数字滤波器设计,由于篇幅较长,分三篇。今天带来第一篇,数字滤波器介绍,包括数字滤波器概述、分类以及设计指标。话不多说,上货。
FPGA技术江湖
2020/12/30
8340
【DSP教程】第35章 FIR有限冲击响应滤波器设计
FIR滤波器设计到的内容比较多,本章节主要经行了总结性的介绍,以帮助没有数字信号处理基础的读者能够有个整体的认识,有了这个整体的认识之后再去查阅相关资料可以到达事半功倍的效果。
Simon223
2021/07/15
9370
【STM32F407&F429&H7的DSP教程】第34章 滤波器基础知识
在数字信号处理中,滤波器占有及其重要的地位。数字滤波器是语音处理,图像处理,模式识别,频谱分析等应用的基本处理算法。从本章起,我们将开始讲解滤波器设计。
Simon223
2021/07/15
7140
FIR 带通滤波器设计
%本文将针对一个含有 5Hz 、 15Hz 和 30Hz 的混和正弦波信号, 设计一个 FIR 带通滤波器, %给出利用 MATLAB 实现的三种方法: 程序设计法、 FDATool 设计法和 SPTool 设计法。 参 %数要求:采样频率 fs=100Hz ,通带下限截止频率 fc1=10 Hz ,通带上限截止频率 fc2=20Hz ,过渡带宽 6 Hz,通阻带波动 0.01 ,采用凯塞窗设计。 fc1 =10 ; fc2 =20 ; fs=100 ; [n,Wn,beta,ftype]=kaiserord([7 13 17 23],[0 1 0],[0.01 0.01 0.01],100); %得出滤波器的阶数 n=38 , beta=3.4 w1=2*fc1/fs; w2=2*fc2/fs;% 将模拟滤波器的技术指标转换为数字滤波器的技术指 window=kaiser(n+1,beta);% 使用 kaiser 窗函数 b=fir1(n,[w1 w2],window); %使用标准频率响应的加窗设计函数 fir1 freqz(b,1,512);% 数字滤波器频率响应 t = (0:100)/fs; s = sin(2*pi*t*5)+sin(2*pi*t*15)+sin(2*pi*t*30);% 混和正弦波信号 sf = filter(b,1,s); %对信号 s 进行滤波
全栈程序员站长
2022/08/18
7760
FIR 带通滤波器设计
基于MATLAB的数字信号处理(5) FIR数字滤波器设计及软件实现
MATLAB函数 fir1 和 fftfilt 的功能及其调用格式可以用 help 命令查阅;
叶庭云
2021/12/01
8.9K0
基于MATLAB的数字信号处理(5)    FIR数字滤波器设计及软件实现
matlab与FPGA数字滤波器设计(6)—— Vivado 中使用 Verilog 实现并行 FIR 滤波器/截位操作
在 FPGA 实现 FIR 滤波器时,最常用的是直接型结构,简单方便,在实现直接型结构时,可以选择串行结构/并行结构/分布式结构。
FPGA探索者
2021/03/15
4.9K0
手把手教系列之FIR滤波器设计
【导读】:前面的文章介绍了移动平均滤波器、IIR滤波器、梳状滤波器,今天来谈谈FIR滤波器的设计实现。
逸珺
2020/06/03
1.5K0
手把手教系列之FIR滤波器设计
毕设:基于FPGA的FIR数字滤波器设计
大侠好,欢迎来到FPGA技术江湖,江湖偌大,相见即是缘分。大侠可以关注FPGA技术江湖,在“闯荡江湖”、"行侠仗义"栏里获取其他感兴趣的资源,或者一起煮酒言欢。
FPGA技术江湖
2020/12/30
2.2K0
matlab与FPGA数字滤波器设计(4)—— Vivado DDS 与 FIR IP核设计 FIR 数字滤波器系统
本讲使用两个 DDS 产生待滤波的信号和matlab产生带滤波信号,结合 FIR 滤波器搭建一个信号产生及滤波的系统,并编写 testbench 进行仿真分析,第五讲、第六讲开始编写 verilog 代码设计FIR滤波器,不再调用IP核。
FPGA探索者
2021/03/15
2.2K0
频率采样法设计FIR 数字滤波器MATLAB版
一、实验目的 1.  掌握用频率采样法设计线性相位 FIR  数字滤波器的方法。 2.  熟悉频率取样理论,熟悉内插函数及其应用。 3.  了解 FIR  数字滤波器的频率特性和相位特性,观察过渡带取样点对滤波器幅频特性的影响。 4.如何由线性相位条件决定采样值。
timerring
2022/07/20
1.5K0
频率采样法设计FIR 数字滤波器MATLAB版
推荐阅读
相关推荐
简谈FIR滤波器和IIR滤波器的区别
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文