FIR数字滤波器设计及MATLAB实现

合集下载

FIR数字滤波器的Matlab实现

FIR数字滤波器的Matlab实现

第7章 FIR 数字滤波器的Matlab 真止之阳早格格创做7.1 真验手段●教习用窗函数法安排FIR 数字滤波器的本理及其安排步调;●教习编写数字滤波器的安排步调的要领,并能举止精确编程;●根据给定的滤波器指标,给出安排步调.7.2 真验本理及真例分解FIR 矮通数字滤波器的安排本理如果系统的冲激赞同)(n h d 为已知,则系统的输进/输出闭系为:对付于矮通滤波器,只消安排出矮通滤波器的冲激赞同函数,便不妨由上式得到系统的输出了.假设所期视的数字滤波器的频次赞同为)(jwd e H ,它是频域的周期函数,周期为2 ,那么它与)(jwd e H 相对付应的傅坐叶系数为 以)(n h d 为冲激赞同的数字滤波器将具备频域响)(jwd e H . 然而是将)(n h d 动做滤波器脉冲赞同有二个问题:(1)它是无限少的,与FIP 滤波器脉冲赞同有限少那一前提纷歧致(2)它利害果果的,0,0)(<≠n n h d对付此,要采与以下的步伐,(1)将)(n h d 截短 (2)将其往左仄移,由此得到)(2n h 的本质频域赞同jnwN n jwd e n h e H ∑-==102)()(,与理念频域赞同)(jwd e H 相近,然而没有真足普遍.表里说明上述局里是对付)(n h d 举止简朴截弊端理的必定停止,普遍称为凶布斯局里,为尽大概的缩小凶布斯局里,应付于)(n h d 举止加窗截与,即以)()()(n W n h n h N d ⋅=动做FIR 滤波器的系数.时常使用的窗函数有矩形窗、海明窗战布莱克曼窗等.用窗函数法安排FIR 滤波器Matlab 安排FIR 滤波器有多种要领战对付应的函数,睹表7-1.表7-1 matlab 安排FIR 滤波器的要领战函数窗函数要领没有然而正在数字滤波器的安排中占有要害的职位,共时不妨用于功率谱的预计,从基础上道,使用窗函数的手段便是与消由无限序列的截短而引起的Gibbs局里所戴去的做用.窗函数安排线性相位FIR 滤波器步调如下:(1) 决定数字滤波器的本能央供,临界频次}{k w ,滤波器单位脉冲赞同少度N(2) 根据本能央供,合理采用单位脉冲赞同h(n)的奇奇对付称性,进而决定理念频次赞同)(jwd e H 的幅频个性战相频个性(3) 供理念单位脉冲赞同)(n h d,正在本质预计中,可对付)(jwd e H 采样,并对付其供IDFT 的)(n h M ,用)(n h M 代替)(n h d(4) 采用适合的窗函数w (n ),根据)()()(n W n h n h N d ⋅=供所需安排的FIR 滤波器单位脉冲赞同(5) 供)(jwd e H ,分解其幅频个性,若没有谦脚央供,可适合改变窗函数形式或者少度N ,沉复上述安排历程,以得到谦意的停止 调用要领:a) b=fir1(N,wn)b)b=fir1(N,wn,’hign ’)N 为滤波器的阶次,wn 是通戴停止频次,其值正在0~1之间,1对付应抽样频次的一半;b 是安排佳的滤波器系数h(n).对付于要领a),若wn 是标量,则用去安排矮通滤波器,若wn 是1×L 的背量,则用去安排戴通(戴阻)滤波器.其要领为:b=fir1(N,wn,’DC-1’)或者b=fir1(N,wn,’DC-0’),其中,前者包管第一个戴为通戴,后者包管第一个戴为阻戴. b )用去安排下通滤波器.用于爆收窗函数的matlab 文献犹如下8个: bartlett.m(巴特利特窗) blackman.m(布莱克曼窗) rectangle.m(矩形窗) hamming.m (汉明窗) hanning.m (汉宁窗) triang.m(三角窗)chebwin.m (切比雪妇窗) Kaiser.m (凯泽窗)【真例7-1π,使东西备30dB 波纹的chebyshev 窗. 解:源步调如下:b=fir1(34,0.48,'high',chebwin(35,30));freqz(b,1,512)其赞同波形如图7-1所示.图7-1 戴通FIR 滤波器【真例7-2】安排一个24阶FIR 戴通滤波器,通戴频次0.350.65w ππ≤≤.解:源步调如下: wn=[0.35 0.65]; N=24;b=fir1(2*N,wn,'DC-0');% DC-0表示第一个戴为阻戴,那样安排出去的滤波器为戴通滤波器. freqz(b,1,512)图7-2 戴通FIR滤波器【真例7-3】安排具备底下指目标矮通FIR滤波器由于其最小阻戴衰减为50dB,果此不妨采用hamming窗去真止那个滤波器,果为它具备较小的过度戴.解:MATLAB源步调为%数字滤波器指标wp=0.2*pi;ws=0.3*pi;tr_width=ws-wp;%通戴宽度N=ceil(6.6*pi/tr_width)+1;%滤波器少度if rem(N,2)==0N=N+1;endNw=N;%滤波器少度为奇数n=[0:1:Nw-1];wc=(ws+wp)/2;%停止频次alpha=(Nw-1)/2;m=n-alpha+0.00001;%如果没有加0.00001,当n= alpha时,m为0,下式分母为0,没有克没有及真止hd=sin(wc*m)./(pi*m);%理念滤波器的冲激赞同% 死成hamming窗w_ham=(hamming(Nw))';% 频域图像的画造h=hd.*w_ham;% 滤波器本质冲激赞同freqz (h,[1])figure(2);subplot(2,2,1),stem(n,hd);title('理念脉冲赞同')axis([0 Nw-1 -0.3 0.3]);xlabel('n');ylabel('hd(n)') subplot(2,2,2),stem(n,w_ham);title('hamming窗') axis([0 Nw-1 -0.3 1.2]);xlabel('n');ylabel('w(n)') subplot(2,2,3),stem(n,h);title('本质脉冲赞同')axis([0 Nw-1 -0.3 0.3]);xlabel('n');ylabel('h(n)')其赞同波形如图7-2所示.图7-3hamming窗函数安排FIR滤波器【真例7-4】设戴通滤波器的指标为采用Blackman窗去真止那个滤波器.解:MATLAB源步调为% 数字滤波器指标ws1=0.2*pi;wp1=0.35*pi;ws2=0.65*pi;wp2=0.8*pi;As=60;tr_width=min((wp1-ws1),(wp2-ws2));% 过度戴戴宽N=ceil(11*pi/tr_width)+1;if rem(N,2)==0N=N+1;endNw=N;n=[0:1:Nw-1];wc1=(ws1+wp1)/2;wc2=(ws2+wp2)/2;alpha=(Nw-1)/2;m=n-alpha+0.00001;%如果没有加0.00001,当n= alpha时,m为0,下式分母为0,没有克没有及真止hd=sin(wc2*m)./(pi*m)-sin(wc1*m)./(pi*m);%理念滤波器的冲激赞同% 死成blackman窗w_bla=(blackman(M))';h=hd.*w_bla;% 频域图像的画造freqz(h,[1])figure(2);subplot(2,2,1),stem(n,hd);title('idael impulse response')axis([0 Nw-1 -0.4 0.5]);xlabel('n');ylabel('hd(n)')subplot(2,2,2),stem(n,w_bla);title('blackman window')axis([0 Nw-1 0 1.1]);xlabel('n');ylabel('w(n)')subplot(2,2,3),stem(n,h);title('actual impulse response')axis([0 Nw-1 -0.4 0.5]);xlabel('n');ylabel('h(n)') 其赞同波形如图7-4所示.图7-4blackman 窗函数安排FIR 滤波器7.3编程训练1. 安排一个48阶FIR 戴阻滤波器,通戴频次00.35,0.65w w πππ≤≤≤≤.2.用窗函数安排一个线性相位FIR 下通滤波器,并谦脚本能指标:通戴鸿沟频次0.66wp π=,阻戴鸿沟频次0.5ws π=,阻戴衰减没有小于40db.提示:参照例7-3,4;最先根据阻戴衰减,采用符合的窗函数,睹课本P342,表7-3.再根据P345,式7-74写出理念滤波器的冲激赞同hd.。

FIR数字滤波器在MATLAB中的实现

FIR数字滤波器在MATLAB中的实现

FIR数字滤波器在MATLAB中的实现淮北师范大学信息学院2 012届学士学位论文FIR数字滤波器在MATLAB中的实现系别:专业:学号:姓名:指导教师:指导教师职称:2012年 5 月 10 日FIR数字滤波器在MATLAB中的实现姓名学校名邮编摘要数字滤波器是由数字乘法器、加法器和延时单元组成的一种装置。

数字滤波器的功能是对输入离散信号的数字代码进行运算处理,以达到改变信号频谱的目的。

近年来数字滤波在通信、图像编码、语言编码、雷达等许多领域中有着十分广泛的应用。

本文首先介绍了数字滤波器的研究背景及其发展现状,然后介绍了FIR数字滤波器的设计原理。

在理解设计方法的基础上,最后基于MATLAB软件利用窗函数法实现了FIR数字带通滤波器的设计。

仿真结果表明,所设计的滤波器具有良好的滤波器特性,所设计的指标符合设计任务要求。

关键词MATLAB;FIR数字滤波器;窗函数;带通滤波器Realization of FIR Digital Filter Based On matlabName###########################Abstract Digital Filter is a kind of instrument which is assembled with Digital multiplier, adder, and delay element , the function of the Digital Filter is operating and dealing with the digital code of discrete signal which is inputted to change the frequency spectrum . In recent years , Digital Filter is widely applied to all kinds of areas, such as Signal communication, image coding ,language coding ,radar and so on.This paper firstly introduces the studying background and current developing status of Digital FIR Filter, and then shows its design principle .Finally we realize the design of FIR Bandpass Digital Filter with Window Function based MATLAB software at the basement of understanding design methods. The outcome of simulation indicates that the Digital Filter does well in meeting the filter characters, at the same time ,indexes from the filter complies with the design requirements.Keywords MATLAB; FIR Filter; Window Function Design; Band Pass Filter目次1 引言 (1)1.1 数字滤波器的研究背景和意义 (1)1.2 数字滤波器的发展及其现状 (1)1.3 数字滤波器的实现方法 (2)1.4 MATLAB简介 (2)2 FIR数字滤波器的设计原理 (4)2.1 FIR数字滤波器的特点 (4)2.2 FIR数字滤波器的实现结构 (4)2.3 窗函数法的设计原理 (7)3 FIR数字滤波器的设计与实现 (10)3.1几种常用的窗函数 (10)3.2 利用窗函数设计FIR带通滤波器的设计步骤 (14)3.3 基于MATLAB的FIR数字带通滤波器的仿真实现 (15)结论 (20)参考文献 (21)致谢 (22)1 引言在线性系统中,信号滤波过程一般定义为,当输入波形通过一个系统时,对它作一个线性运算,在时间域上这种变换如像内插,外插微分和积分,在频率域上这种变换则如低通滤波或平滑,带通滤波,谱设计和谱分析。

FIR数字滤波器的设计与matlab实现

FIR数字滤波器的设计与matlab实现

W
(e
j
)

{0.5WR
()

0.25[WR
(

2 )
N 1
WR
(

2
)]}e N 1
j(
N 1) 2
W ()e ja
W
()

0.5WR
()

0.25[WR
(

2 )
N 1
WR
(

2 )]
N 1
(6-2-12b)
W () 是三项矩形窗的幅度响应 WR() 的移位加权和,
n0

H (z) z(N1)H (z1)
则有
H (z) 1 [H (z) z(N1)H (z1)] 2

1
N 1
h(n)[ z n

z (N 1) z n ]
2 n0

z ( N 1) / 2
N 1
h(n)
1
(n N 1)
[z 2

(n N 1)
❖ 滤波器设计任务的中心就是求得系统函数。 数字滤波器的系统函数最主要的特征有三个: 幅度平方响应、相位响应和群延迟。
❖ IIR滤波器可以用较少的阶数获得较好的幅度响应, 但由于其结构存在反馈,可能造成系统的不稳定, 其优异幅度响应一般是以相位的非线性为代价的, 非线性相位会引起频率色散。
❖ FIR系统的最主要特性之一就是可以构成具有线性 相位特性的滤波器。所谓线性相位特性是指滤波 器对不同频率的正弦波所产生的相移和正弦波的 频率成直线关系。因此,在滤波器通带内的信号 通过滤波器后,除了由相频特性的斜率决定的延 迟外,可以不失真地保留通带以内的全部信号。

FIR滤波器的MATLAB设计与实现

FIR滤波器的MATLAB设计与实现

FIR滤波器的MATLAB设计与实现1、设计任务1、用MATLAB软件实现FIR滤波器;2、设计基于DSP的FIR滤波器硬件框图;3、了解用DSP实现FIR滤波器的关键问题;4、完成必要的软件流程图;2.前言在通信与电子信息当中,在对信号作分析与处理时,常会遇到有用信号叠加无用噪声的问题;这些噪声信号有的是与信号同时产生的,有的是在传输过程中混入的,在接收的信号中,必须消除或减弱噪声干扰,这是信号处理中十分重要的问题;根据有用信号与噪声的不同特性,消除或减弱噪声,提取有用信号的过程就称为滤波;滤波器的种类很多,实现方法也多种多样;随着数字技术的飞速发展,数字滤波理论也得到了长足的进步;因此,对数字滤波系统硬件实现的要求也越来越高,而软件模拟的方法不仅能及时地提供系统运行的信息,还可以随时改变系统结构从而验证全新的系统,所以软件仿真变得非常重要;Matlab 是具有很强的科学计算和图形显示功能的软件系统,可以对数字滤波器进行精确设计,并且方便地进行FFT 频谱分析与频谱图显示,从而对数字滤波器进行快速地检验和分析;本文讨论在MATLAB 平台下的FIR 数字滤波器设计与分析;DSP是一种实时、快速、特别适合于实现各种数字信号处理运算的微处理器;由于它由具有丰富的硬件资源、高速数据处理能力和强大的指令系统,而在通信、航空、航天、雷达、工业控制、网络及家用电器等各个领域得到广泛应用;DSP分为定点和浮点两种,本文以定点DSP芯片为例,讨论FIR滤波器实现的几个关键问题;所讨论的这些问题,在DSP系统设计中有实际的参考和应用价值;3.FIR 滤波器的原理与MATLAB仿真设计滤波器概述数字滤波在数字信号处理中占有重要的地位,是广泛使用的一种基本线性处理模块,它可以实现模拟器件很难达到的准确线性相位关系特性;数字滤波器分为无限冲激响应滤波器IIR和有限冲激响应滤波器FIR;由于FIR系统只有零点,因此这类滤波器不像IIR 滤波器那样容易取得比较好的通带与阻带衰减特性;要取得好的衰减特性,一般要求Hz 的阶次要高,即N 要大;FIR 滤波器有自己突出的优点,其一是系统总是稳定的,其二是易实现线性相位,其三是只要经过一定的时延,任何非因果有现场序列都能变成因果有限长序列,因而总能用因果系统来实现,其四是FIR 滤波器由于单位冲击响应是有限长的,因而可以用快速傅里叶变换算法来实现过滤信号,从而可以大大提高运算效率;由于FIR 滤波器在阶数相同的条件下运算速度比IIR 滤波器快,同时FIR 滤波器具有不含反馈环路、结构简单以及可以实现的严格线性相位等优点,因而在对相位要求比较严格的条件下,常常采用FIR 数字滤波器;目前常用的设计方法主要有窗函数法、频率取样法及等波纹逼近法;本文应用窗函数法设计FIR 数字低通滤波器;具体参数见表一;FIR 数字滤波器基本原理3.2.1窗函数法的基本思想先构造一个线性相位理想滤波器的频率响应()jw d H e ,然后用一个N 点的窗函数wn, (01)n N ≤≤-去截取理想滤波器的单位抽样响应()d h n 通常为无限长,从而得到具有线性相位的实际滤波器的有限长单位抽样响()()()d h n h n w n =;3.2.2基本方法1构造线性相位理想滤波器的频率响应()jw d H e ,为简单起见,若没有90°相移的特殊要求,一般选择滤波器具有第一类线性相位;2求理想滤波器的单位抽样响应()d h n ;3根据技术指标要求和4种形式的线性相位FIR 数字滤波器的特点,选择合适的窗函数wn 及其长度N,然后对()d h n 加窗函数截取,得到具有线性相应的实际FIR 数字滤波器的单位抽样相应()()()d h n h n w n =,(01)n N ≤≤-;4检验实际滤波器的频率响应()[()]jw H e DTFT h n =是否满足设计指标要求;3.2.3用窗函数设计FIR 滤波器的步骤1根据技术要求确定线性相位理想滤波器的频率响应()jw d H e ;2求理想滤波器的单位抽样响应()d h n ;3根据对过渡带及阻带衰减的要求,选择窗函数的形式,并估计窗口长度N,设待求滤波器的过渡带用△w 表示,它近似等于窗函数主瓣的宽度;4计算滤波器的单位抽样响应()()()d h n h n w n =5验算技术指标是否满足要求,设计出的滤波器频率响应用下式计算10()()N jwjwn n H e h n e --==∑ 3.2.4用窗函数设计FIR 滤波器设滤波器的通带截止频率为p f ,阻带截止频率为s f ,系统采样频率为samp f ,则其过渡带宽带为tw s p f f f =-,抽样周期为 2S sampT f π= 则过渡带数字角频率为22s p tw tw samp samp f f f w f f ππ-== 各种窗函数的过渡带宽可用x Nπ来表示,其中N 是滤波器阶数,x 是一个整数,对应于矩形窗,三角窗,汉宁窗,汉明窗,其值分别为4,8,8,8,所以滤波器的阶数N 可由下式求得2()samp tw s p xf x N w f f π==- 理想低通滤波器的冲击响应为()sin(())()c d n w n h n π-∂=-∂ 其中(1)2N -∂=, c w 是3dB 通带截止数字角频率,其值为 ()()2p s Sp s c samp f f T f f w f π++==加窗后的低通滤波器的冲击响应为()()()n d n n h h w =检验实际滤波器的频率响应()[()]jw H e DTFT h n =是否满足设计指标要求;表1 几种常见的窗函数对比例:用窗函数设计一个线性相位FIR低通滤波器,并满足性能要求:通带边界的归一化频率wp=,阻带边界的归一化频率ws=,阻带衰减不小于30dB,.通带波纹不大于3dB,假设一个信号,其中f1=5Hz,f2=20Hz.;信号的采样频率为50Hz.;并将原信号与通过滤波器的信号进行比较;由题意值,阻带衰减不小于30dB,根据表1,选取汉宁窗,因为汉宁窗的第一旁瓣相对主瓣衰减为31dB,满足滤波要求;wp=pi;ws=pi; %滤波器的边界频率wdelta=ws-wp; %过渡带宽度N=ceil8pi/wdelta; %根据过渡带宽等于表中汉宁窗函数的主瓣宽度求得滤波器所用常函数的最小带宽Wn=+pi/2; %截止频率取通带和阻带边界频率的中点b=fir1N,Wn/pi,hanningN+1;%设计FIR滤波器H,f=freqzb,1,512,50; %采用50Hz的采样频率绘出该滤波器的幅频和相频响应subplot2,1,1,plotf,20log10absH;xlabel'频率';ylabel'振幅';grid on;subplot2,1,2,plotf,180/piunwrapangleH;xlabel'频率';ylabel'相位';grid on;f1=3;f2=20;dt=;t=0:dt:3; %采样间隔和检测信号的时间序列x=sin2pif1t+cos2pif2t; %检测信号y=fftfiltb,x; %给出滤波器的输出figure2subplot2,1,1,plott,x,title'输入信号' %绘出输入信号subplot2,1,2,plott,y %绘出输出信号hold on;plot1 1N-1/2dt,ylim,'r' %绘出延迟到的时刻xlabel'时间',title'输出信号'图1 所设计滤波器的幅频响应上图和相频响应下图图2 所设计滤波器的输入和输出信号程序运行结果如图1,2.该例对应于50Hz的采样频率通带边界频率为fp=50/2=,fs=50/2=;有图1上图得,在小于的频段上,几乎看不到下降,即满足通带波纹不大于3dB的要求;在大于的频段上,阻带衰减大于30dB,满足题目要求;由图1下图得,在通带范围内,相位频率响应为一条直线,表面该滤波器为线性相位;图2给出了滤波器的输入信号和输出信号,输入信号包括3Hz和20Hz的信号,由图1可知,20Hz的信号不能通过该滤波器,通过滤波器后只剩下3Hz的信号;由于FIR滤波所需的阶数较高,信号延迟N-1/2也较大,输出信号前面有一段直线就是延迟造成的; 4.FIR滤波器的DSP实现FIR滤波器的DSP实现方案DSP与一般的微处理器相比有很大的区别;它所特有的结构和指令集合为解决复杂的数字信号处理问题提供了便利;在DSP处理器上实现FIR滤波时,一般使用实系数的FIR滤波器,其最基本的操作是MAC乘-累加指令;本文介绍在TMS320C54X上实现FIR 滤波器;C54X上有一个17位17位的乘法器和一个40位的加法器,用于在单周期内实现MAC运算;同时,C54X使用了先进的多总线体系结构,包含1条程序总线,3条数据总线及4条辅助地址总线;这些特殊的硬件结构使得C54X支持单指令循环,快循环,数据块搬移及循环寻址;所以这些都有利于高效的实现FIR滤波器;硬件框图图3 系统总体框图JTAGJoint Test Action Group联合测试行动小组是一种国际标准测试协议IEEE兼容,主要用于芯片内部测试;基本原理是在器件内部定义一个TAPTest Access Port&0;测试访问口通过专用的JTAG测试工具对内部节点进行测试;JTAG测试允许多个器件通过JTAG接口串联在一起,形成一个JTAG链,能实现对各个器件分别测试;FLASE存储器具有性价比高,体积小,功耗低,可电擦写,使用方便等优点;在DSP应用系统中采用Flash存储器和固定数据是一种比较好的选择;SRAM静态存储器,读写速度快,但价格较高;适合于外部存放需要经常访问或更新的临时数据;RS232电平转换模块,将外部电平转换为适合DSP芯片内部要求的电平;图3是系统的总体框图;主要包括输入信号缓冲及调理电路、A/D 变换器、输入缓冲 FIFO、DSP及外围电路、输出缓冲FIFO、D/A变换器等几部分;其中DSP及外围电路包括程序存储器、串行口、显示及键盘接口等;串行口用于实现和PC机的通信,可以通过PC机对滤波器的控制;假定输入模拟信号为带限信号;该信号经缓冲和调理后经A/D变换进入输入缓冲FIFO,当 FIFO中的数据达到一定数量时产生中断,DSP将数据读入内存中并进行计算和处理,这里DSP主要实现FIR滤波运算;处理后的数据写入输出FIFO中,之后通过D/A变换后输出模拟信号;输出的信号是低通滤波后的结果;用DSP实现FIR滤波器的关键问题定点数的定标在滤波器的实现过程中,DSP所要处理的数可能是整数,也可能是小数或混合小数;然而,DSP在执行算术运算指令时,并不知道当前所处理的数据是整数还是小数,更不能指出小数点的位置在哪里;因此,在编程时必须指定一个数的小数点处于哪一位,这就是定标;通过定标,可以在16位数的不同位置上确定小数点,从而表示出一个范围大小不同且精度也不同的小数;误差问题因为在用定点DSP实现时,所有的数据都是定长的,运算也都是定点运算,因而会产生有限字长效应;所产生的误差主要包括:数模转换引起的量化误差、系数量化引起的误差以及运算过程中的舍入误差;在用定点DSP时,产生误差是不能避免的;循环寻址循环寻址是DSP中经常用到的一种寻址方式;该寻址方法可以对一块特定存储区实现循环的操作;可以把循环寻址理解为实现一个滑动窗,新数据引入后将覆盖老的数据,便得该窗中包含了需处理的最新数据;在数字信号处理中的FIR、卷积等运算中,循环寻址具有极其重要的意义;运算量估计及D SP 芯片的选取;滤波器必须做到实时处理,因此对运算量应该有一个精确的估计,然后选择合适的D SP 处理器;估计运算量时应按最高采样率时计算,主要估算其乘加次数;A/D 及D/A 变换器的选取A/D 及D/A 变换器的选取主要考虑速度和数据宽度;变换器的速度一定要大于所设计滤波器的最高采样速率并要考虑一定的裕量,变换器的数据宽度则根据实际需要的计算精度选择;DDS 芯片的选取DDS 芯片的选择主要考虑频率的调整步长,当可调滤波器的调整步长较大时,可以选择精度稍低的D DS 芯片;软件流程滤波器的软件要实现的功能主要是FIR滤波;工作流程为:根据按键输入的频率,DSP计算出应对AD9850设置的状态字并对AD9850进行设置,AD9850将按设置的频率输出时钟;A/D 转换后的数据进入FIFO中,当到达设置的数据量时将产生中断,DSP将输入 FIFO 中的数据读入DSP并进行FIR运算;运算完成后的数据写入输出FIFO;输出FIFO中的数据将按照与A/D转换同样的速率输出到 D/A 变换器中并产生模拟输出;这样,只要保证FIR运算足够快就可以既不会产生数据溢出,也不会输出数据不足;图4 软件流程图5.结束语由于数字技术的飞速发展,数字滤波理论得到飞速发展,对数字滤波器的设计也提出了更高的要求;现代数字滤波器可以用软件或硬件2 种方式来实现,软件方式实现的优点是可以通过参数的修改进行滤波器性能的仿真和优化;本文运用MATLAB软件,根据设计要求进行了FIR滤波器的仿真;并分析了用DSP实现FIR滤波器的硬件结构和几个关键问题,这些关键问题在实际设计中都有着重要义; 6.参考文献1程佩青.数字信号处理教程M.北京:清华大学出版社,2008,323-369.2万永革.数字信号处理的MATLAB实现M.北京:科学出版社,2007,187-234.3张卫宁.DSP原理及应用教程M.北京:科学出版社,2008,282-296.4张雄伟,邹霞,贾冲.DSP芯片原理与应用M.北京:机械工业出版社,2005,48-76.5罗军辉,罗勇江,白义臣,庞娜.Matlab在数字信号处理中的应用M.北京:机械工业出版社,2005,99-115.6赵顺珍,马英..基于DSP的FIR数字滤波器设计与实现J..微计算机信息,2009 ,25 2:29-31.7张萍.基于MATLAB与DSP的FIR数字滤波器的设计J.中国科技信息,200723:80 – 81.8周辉,董正宏.数字信号处理基础及Matlab实现M.北京:希望电子出版社,2006,116-121.9彭红平,杨福宝.基于Matlab 的FIR 数字滤波器设计J.武汉理工大学学报,2005,105: 275-278.7.个人总结这次课设题目是FIR滤波器的MATLAB设计与实现,通过这次课设使我受益匪浅,首先,我先去图书馆下载各种论文,在网上查找各种资料,但FIR滤波器的知识已经忘得差不多了,一些资料看不懂,把数字信号课件又了一遍,然后是MATLAB编程,以前虽然做实验的时候接触过MATLAB软件,但并不很熟练,这次编程中出现了一些不应该的错误;在这次课设中,需要了解怎么用DSP实现FIR滤波器,由于我们没有学过DSP,所以查了一些资料,但还是觉得很不明白;在写课设报告过程中,越写越觉得自己很无知,平时学习不扎实,对各种知识点没有进行及时积累与总结,导致做课设时临时抱佛脚;以后一定要认真学习,拓展学习知识面,也要加强团队合作与沟通;。

基于matlab的fir数字滤波器的设计

基于matlab的fir数字滤波器的设计

一、引言数字滤波器是数字信号处理中至关重要的组成部分,它能够对数字信号进行滤波处理,去除噪音和干扰,提取信号中的有效信息。

其中,fir数字滤波器作为一种常见的数字滤波器类型,具有稳定性强、相位响应线性等特点,在数字信号处理领域得到了广泛的应用。

本文将基于matlab软件,探讨fir数字滤波器的设计原理、方法和实现过程,以期能够全面、系统地了解fir数字滤波器的设计流程。

二、fir数字滤波器的基本原理fir数字滤波器是一种有限长冲激响应(finite impulse response, FIR)的数字滤波器,其基本原理是利用线性相位特性的滤波器来实现对数字信号的筛选和处理。

fir数字滤波器的表达式为:$$y(n) = \sum_{k=0}^{M}h(k)x(n-k)$$其中,y(n)为输出信号,x(n)为输入信号,h(k)为滤波器的系数,M为滤波器的长度。

fir数字滤波器的频率响应特性由其系数h(k)决定,通过设计合适的系数,可以实现对不同频率成分的滤波效果。

三、fir数字滤波器的设计方法fir数字滤波器的设计方法主要包括窗函数法、频率抽样法、最小最大法等。

在matlab中,可以通过信号处理工具箱提供的fir1函数和firls函数等来实现fir数字滤波器的设计。

下面将分别介绍这两种设计方法的基本原理及实现步骤。

1. 窗函数法窗函数法是fir数字滤波器设计中最为常见的方法之一,其基本原理是通过对理想滤波器的频率响应进行窗函数加权来满足设计要求。

在matlab中,可以使用fir1函数实现fir数字滤波器的设计,其调用格式为:h = fir1(N, Wn, type)其中,N为滤波器的阶数,Wn为滤波器的截止频率,type为窗函数的类型。

通过调用fir1函数,可以灵活地设计出满足特定要求的fir数字滤波器。

2. 频率抽样法频率抽样法是fir数字滤波器设计中的另一种重要方法,其基本原理是在频域上对理想滤波器的频率响应进行抽样,并拟合出一个最优的滤波器。

基于MATLAB设计FIR滤波器

基于MATLAB设计FIR滤波器

基于MATLAB设计FIR滤波器FIR(Finite Impulse Response)滤波器是一种数字滤波器,它具有有限的冲激响应长度。

基于MATLAB设计FIR滤波器可以使用signal工具箱中的fir1函数。

fir1函数的语法如下:b = fir1(N, Wn, window)其中,N是滤波器的阶数,Wn是截止频率,window是窗函数。

要设计一个FIR低通滤波器,可以按照以下步骤进行:步骤1:确定滤波器的阶数。

阶数决定了滤波器的截止频率的陡峭程度。

一般情况下,阶数越高,滤波器的陡峭度越高,但计算复杂度也会增加。

步骤2:确定滤波器的截止频率。

截止频率是指在滤波器中将信号的频率限制在一定范围内的频率。

根据应用的需求,可以选择适当的截止频率。

步骤3:选择窗函数。

窗函数是为了在时域上窗口函数中心增加频率衰减因子而使用的函数。

常用的窗函数有Hamming、Hanning等。

窗函数可以用来控制滤波器的幅度响应特性,使得它更平滑。

步骤4:使用fir1函数设计滤波器。

根据以上步骤确定滤波器的阶数、截止频率和窗函数,可以使用fir1函数设计FIR滤波器。

具体代码如下:N=50;%设定阶数Wn=0.5;%设定截止频率window = hanning(N + 1); % 使用Hanning窗函数步骤5:使用filter函数对信号进行滤波。

设计好FIR滤波器后,可以使用filter函数对信号进行滤波。

具体代码如下:filtered_signal = filter(b, 1, input_signal);其中,input_signal是输入信号,filtered_signal是滤波后的信号。

以上,便是基于MATLAB设计FIR滤波器的简要步骤和代码示例。

根据具体需求和信号特性,可以进行相应的调整和优化。

用MAtlab实现FIR数字滤波器的设计

用MAtlab实现FIR数字滤波器的设计

设计方法
• 一、窗函数设计法 • 二、频率抽样设计法 • 三、最小二乘逼近设计法
FIR 数 字 滤 波 器 的 文 件
一、fir1.m
• 本文件采用窗函数法设计FIR数字滤波器,其调用格式是
• 1)b=fir1(N ,W c)
• 2)b=fir1(N,W c ,’high’) • 3)b=fir1(N,W c ,’stop’)
实践课题
FIR 数 字 滤 波 器 的 设 计
实践目的


通过实践加深对Matlab软件的认识。 能熟练应用并基本掌握Matlab软件, 通过实践对课本以外的内容有初步的 了解。 通过设计FIR数字滤波器,对滤波器 的功能和原理有初步的认识和了解。
实践课题简介
在数字信号处理的许多领域中, 如图像处理、数字通信等领域,常 常要求滤波器具有线性相位。FIR数 字滤波器的最大优点就是容易设计 成线性相位特性,而且它的单位冲 激响应是有限长的,所以它永远是 稳定的。

Hale Waihona Puke 上式中N为滤波器的阶次,W c是通带截止频率,其值在0~1之间, 1对应采样频率的一半,b是设计好的滤波器系数(单位冲激响应序 列)其长度为N+1。
对于格式(1)若W c是一标量,则可用来设计低通滤波器;若W c 是 的向量,则用来设计带通滤波器。 格式(2)用来设计高通滤波器。 格式(3)用来设计带阻滤波器。
部分滤波器的例子(频率抽样法)

部分滤波器的例子(最小二乘逼近设计法)

Fircls1设计的低通滤波器,归一化截止频率 为0.3,通带波纹为0.02,阻带波纹为0.008。
实践总结

通过这次实践课题的设计与制作,使我 对Matlab这个软件有了进一步的了解,并且 加深了课本上的知识。与此同时,使我对 滤波器有了初步的认识。提高了我的理解 以及分析能力,理论和实践相结合,不仅 巩固了我的理论知识,同时更提高了我的 实践能力,使我受益匪浅。

FIR滤波器的MATLAB设计与实现

FIR滤波器的MATLAB设计与实现

FIR滤波器的MATLAB设计与实现FIR滤波器(Finite Impulse Response Filter)是一种数字滤波器,其特点是其响应仅由有限长度的序列决定。

在MATLAB中,我们可以使用信号处理工具箱中的函数来设计和实现FIR滤波器。

首先,需要明确FIR滤波器的设计目标,包括滤波器类型(低通、高通、带通、带阻)、通带和阻带的频率范围、通带和阻带的增益等。

这些目标将决定滤波器的系数及其顺序。

在MATLAB中,我们可以使用`fir1`函数来设计FIR滤波器。

该函数的使用方式如下:```matlabh = fir1(N, Wn, type);```其中,`N`是滤波器长度,`Wn`是通带边缘频率(0到0.5之间),`type`是滤波器的类型('low'低通、'high'高通、'bandpass'带通、'stop'带阻)。

该函数会返回一个长度为`N+1`的滤波器系数向量`h`。

例如,如果要设计一个采样频率为10kHz的低通滤波器,通带截止频率为2kHz,阻带频率为3kHz,可以使用以下代码:```matlabfc = 2000; % 通带截止频率h = fir1(50, fc/(fs/2), 'low');```上述代码中,`50`表示滤波器的长度。

注意,滤波器的长度越大,滤波器的频率响应越陡峭,但计算成本也更高。

在设计完成后,可以使用`freqz`函数来分析滤波器的频率响应。

例如,可以绘制滤波器的幅度响应和相位响应曲线:```matlabfreqz(h);```除了使用`fir1`函数外,MATLAB还提供了其他函数来设计FIR滤波器,如`fir2`、`firpm`、`firls`等,具体使用方式可以参考MATLAB的文档。

在实际应用中,我们可以将FIR滤波器应用于音频处理、图像处理、信号降噪等方面。

例如,可以使用FIR滤波器对音频信号进行去噪处理,或者对图像进行锐化处理等。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2. FIR滤波器
2.1 FIR数字滤波器设计原理 FIR滤波器的单位脉冲响应h(n)是有限长的(0≤n ≤N-1),只有N个点的值,滤波器的输出y(n)只与当 前的输入x(n)和有限个过去的输入有关,其表达式为:
系统函数:
由于FIR滤波器的单位冲激响应h(n)是一个有限长序 列,系统函数H(Z)是Z-1的(N-1)次多项式,它在Z平面有 (N-1)个零点,同时在原点有(N-1)阶重极点。因此,H(Z) 永远稳定。
信息系统工程 │ 2010.பைடு நூலகம்.20
参考文献 [1]伯晓晨,李涛,刘路.MATLAB工具箱应用指南[M]. 电子工业出 版社,2000. [2]Sanjit K. Mitra. 数字信号处理---基于计算机的方法(第二版) [M].北京:电子工业出版社,2005. [3]周辉,董正宏.数字信号处理基础及MATLAB实现[M].北京:北 京希望电子出版社,2006. [4]程永进,马冲.基于Matlab的FIR滤波器在DSP中的实现[J].电子 技术, 2009,12. [5]潘永才,王子旭,游治. 数字FIR滤波器的MATLAB设计[J]. 半导 体技术 ,2001. [6]杨大柱. MATLAB环境下FIR滤波器的设计与仿真[J]. 集成电 路应用,2006,9:101—102. [7]丁磊,潘贞存,丛伟. 基于MATLAB 信号处理工具箱的数字滤 波器设计与仿真[J].继电器, 2003,31(9):49-50.
2.2设计方法 FIR数字滤波器的设计方法有窗函数设计法、频率抽样设计 法和最优设计法等,其中窗函数设计是FIR滤波器设计的主要方 法之一,由于其运算简便,物理意义直观,已成为工程实际中 应有最广泛的方法
3.窗函数设计的基本思想
窗函数法设计的基本思想是把给定的频率响应通过离散傅 里叶逆变换,求得脉冲响应,然后利用加窗函数对它进行截断 和平滑,以实现一个物理可实现且具有线性相位的FIR滤波器的 设计目的。其核心是从给定的频率特性,通过加窗确定有限长 单位脉冲响应序列h(n) ,过程如下:
关键词:数字滤波器;脉冲响应;幅频特性;仿真
1. 引言
数字信号处理是在20世纪60年代,用数字的数值计算方法 对信号进行处理,以达到提取有用信息便于应用的目的,目前 数字信号处理技术已广泛应用于多个领域.
数字滤波器根据其单位冲激响应函数的时域特性可分为两 类:无限冲激响应IIR滤波器和有限冲激响应FIR滤波器。FIR滤 波器最重要的优点就是由于不存在系统极点,FIR滤波器是绝对 稳定的系统。MATLAB为数字滤波的研究提供了一个直观、高 效、便捷的利器。它以矩阵运算为基础,把计算、可视化、程 序设计融合到一个交互式的工作环境中。
[h,w]=freqz(window,1); Subplot(1,2,1),stem(window) Subplot(1,2,2),plot(w/pi,20*log(abs(h)/abs(h(1)))) grid
此外,MATLAB信号处理工具箱提供了两个窗函数法设计 FIR滤波器的函数
fir1:用窗函数法设计具有标准频率响应FIR滤波器 fir2:用窗函数法设计具有任意频率响应的多带FIR滤波器 b=fir1(n,Wn)返回n阶FIR低通滤波器,截止频率为Wn, b为滤波器的系数向量当Wn为二元向量,即Wn=[W1 W2] (W1<W2)时,b=fir1(n,Wn) 返回一个n阶数字带通滤波器,其通带为 例如:设计一个37阶的FIR带通滤波器,
SYS PRACTICE 系统实践
29
FIR数字滤波器设计及MATLAB实现
冯冠超 (哈尔滨工业大学(威海) 山东威海 264209)
摘要:主要研究在MATIAB环境下FIR数字滤波器的典型设计方法,应用MATLAB信号处理工具箱及其扩展函数,使得如 何在数字信号处理过程中较复杂的数字滤波器设计问题得以解决。
4.常用的窗函数
常用的窗函数有矩形窗(Rectangle Window)、三角形窗 (Triangular Window)、汉宁窗(Hanning Window)、布拉克曼窗 (Blackman Window)和凯泽窗(Kaiser Window)等。
在MATLAB中产生窗函数十分简单 例如,生成一个长度为51的汉宁窗,并观察其频率特性 (使用归一化的幅值和频率) n=51; window=hanning(n);
。 语句如下:b=fir1(37,[0.35 0.65]); 5.总结 FIR滤波器的应用十分广泛,当今的许多信号处理系统,如 图象处理等系统要求具有线性相化特性,在这方面FIR滤波器有 独特的优点,在MATLAB环境下可以方便、快捷地设计出具有 严格线性相位的FIR滤波器,节省大量的编程时间,提高编程效 率,且参数的修改也十分方便,还可以进一步进行优化设计。H
相关文档
最新文档