matlab的fir高通数字滤波器的设计和分析
用MATLAB设计FIR数字滤波器

实验八 用MATLAB 设计FIR 数字滤波器(二)一、实验目旳:1、加深对窗函数法设计FIR 数字滤波器旳基本原理旳理解。
2、学习用MATLAB 语言旳窗函数法编写设计FIR 数字滤波器旳程序。
3、理解MATLAB 语言有关窗函数法设计FIR 数字滤波器旳常用函数用法。
二、实验原理:1、用窗函数法设计FIR 数字滤波器 FIR 数字滤波器旳系统函数为N-1-n n=0H(z)=h(n)z ∑这个公式也可以当作是离散LSI 系统旳系统函数M-m -1-2-mmm=0012m N -1-2-k-k12k k k=1bz b +b z +b z ++b z Y(z)b(z)H(z)====X(z)a(z)1+a z +a z ++a z1+a z ∑∑ 分母a 0为1,其他a k 全都为0时旳一种特例。
由于极点所有集中在零点,稳定和线性相位特性是FIR 滤波器旳突出长处,因此在实际中广泛使用。
FIR 滤波器旳设计任务是选择有限长度旳h(n),使传播函数H(e j ω)满足技术规定。
重要设计措施有窗函数法、频率采样法和切比雪夫等波纹逼近法等。
本实验重要简介窗函数法。
用窗函数法设计FIR 数字滤波器旳基本环节如下:(1)根据过渡带和阻带衰减指标选择窗函数旳类型,估算滤波器旳阶数N 。
(2)由数字滤波器旳抱负频率响应H(e j ω)求出其单位脉冲响应h d (n)。
可用自定义函数ideal_lp实现抱负数字低通滤波器单位脉冲响应旳求解。
程序清单如下:function hd=ideal_lp(wc,N) %点0到N-1之间旳抱负脉冲响应%wc=截止频率(弧度)%N=抱负滤波器旳长度tao=(N-1)/2;n=[0:(N-1)];m=n-tao+eps; %加一种小数以避免0作除数hd=sin(wc*m)./(pi*m);其他选频滤波器可以由低通频响特性合成。
如一种通带在ωc1~ωc2之间旳带通滤波器在给定N值旳条件下,可以用下列程序实现:Hd=ideal_lp(wc2,N)-ideal_lp(wc1,N)(3)计算数字滤波器旳单位冲激响应h(n)=w(n)h d(n)。
matlabfir滤波器设计

matlabfir滤波器设计在数字信号处理中,滤波器是一种常用的工具,用于处理信号的频率特性。
其中,FIR(有限脉冲响应)滤波器是一种常见的滤波器类型之一。
MATLAB提供了方便的工具和函数来设计和实现FIR滤波器。
在本文中,我们将介绍MATLAB中如何使用fir1函数来设计FIR滤波器。
要使用fir1函数设计FIR滤波器,需要指定滤波器的阶数和截止频率。
阶数决定了滤波器的复杂度,而截止频率则决定了滤波器的频率响应特性。
通过调整这两个参数,可以设计出不同类型的滤波器,如低通滤波器、高通滤波器、带通滤波器和带阻滤波器。
接下来,我们可以使用fir1函数来设计一个简单的低通滤波器。
例如,我们可以指定一个4阶低通滤波器,截止频率为0.5(归一化频率,取值范围为0到1)。
通过调用fir1函数并传入相应的参数,即可得到设计好的滤波器系数。
设计好滤波器系数后,我们可以将其应用于信号处理中。
例如,我们可以使用filter函数来对信号进行滤波。
将设计好的滤波器系数和待处理的信号作为输入参数传入filter函数,即可得到滤波后的信号。
这样,我们就可以实现对信号的滤波处理。
除了fir1函数外,MATLAB还提供了其他用于滤波器设计的函数,如firpm、fircls、firls等。
这些函数可以实现更复杂的滤波器设计,满足不同的需求。
通过选择合适的函数和参数,可以设计出性能优越的滤波器,用于各种信号处理应用中。
MATLAB提供了强大的工具和函数来设计和实现各种类型的滤波器。
通过合理选择滤波器的阶数和截止频率,以及使用适当的函数来设计滤波器系数,可以实现对信号的有效滤波处理。
希望本文能够帮助读者了解MATLAB中fir1函数的使用方法,进一步掌握滤波器设计的技巧,提高信号处理的效率和质量。
matlab的fir高通数字滤波器的设计及分析

摘要无限长脉冲数字滤波器的设计方法只考虑了幅度特性,没有考虑相位特性,所设的滤波器一般是某种确定的非线性相位特性。
有限脉冲响应(FIR)滤波器在保证了幅度特性满足技术要求的同时,很容易做到有严格的线性相位特性。
本课题利用MATLAB软件实现。
MATLAB是“矩阵实验室”(MATrix LABoratoy)的缩写,是一种科学计算软件,它使用方便,输入简捷,运算高效,内容丰富,因此利用MATLAB软件,通过一系列较为系统的函数法,根据已知的技术指标,就可以设计出满足要求的滤波器。
关键字:MATLAB;窗函数;FIR带阻数字滤波器;线性相位目录1.FIR滤波器简介 (3)1.1 FIR的特点 (3)2.2线性相位 (3)2.主要设计内容 (5)3.窗函数 (6)3.1常用窗函数 (6)3.2窗函数的指标 (9)4应用窗函数法设计 FIR 数字滤波器的步骤 (10)4.1数字高通滤波器的设计: (10)总结 (11)参考文献 (12)附录 (13)1.FIR 滤波器简介数字滤波器是一种用来过滤时间离散信号的数字系统,通过对抽样数据进行数学处理来达到频域滤波的目的。
根据其单位冲激响应函数的时域特性可分为两类:无限冲激响应(IIR )滤波器和有限冲激响应(FIR )滤波器。
1.1 FIR 的特点FIR 滤波器的主要优点为:系统总是稳定的,FIR 滤波器的系统函数可以表示为 (2-1) 易知,H (z ) 在 Z 平面上有 N -1个零点,z =0 是 N -1 阶极点,因此FIR 系统总是稳定的(极点都在单位圆内)。
FIR 滤波器的优点之二:容易实现线性相位。
当 FIR 系统的单位冲激响应满足 时,该系统具有线性相位。
(N 为奇数) (2-2)(N 为偶数) (2-3) FIR 滤波器的优点之三:允许设置多通带(或多阻带)滤波器。
FIR 滤波器的优点之四:FIR 滤波器可以采用 FFT 方法实现其功能,从而大大提高效率。
使用MATLAB设计FIR滤波器

使⽤MATLAB设计FIR滤波器1. 采⽤fir1函数设计,fir1函数可以设计低通、带通、⾼通、带阻等多种类型的具有严格线性相位特性的FIR滤波器。
语法形式:b = fir1(n, wn)b = fir1(n, wn, ‘ftype’)b = fir1(n, wn, ‘ftype’, window)b = fir1(n, wn, ‘ftype’, window, ‘noscale’)参数的意义及作⽤:b:返回的FIR滤波器单位脉冲响应,脉冲响应为偶对称,长度为n+1;n:滤波器的介数;wn:滤波器的截⽌频率,取值范围为0<wn<1,1对应信号采样频率⼀半。
如果wn是单个数值,且ftype参数为low,则表⽰设计截⽌频率为wn的低通滤波器,如果ftype参数为high,则表⽰设计截⽌频率为wn的⾼通滤波器;如果wn是有两个数组成的向量[wn1wn2],ftype为stop,则表⽰设计带阻滤波器,ftype为bandpass,则表⽰设计带通滤波器;如果wn是由多个数组成的向量,则根据ftype的值设计多个通带或阻带范围的滤波器,ftype为DC-1,表⽰设计的第⼀个频带为通带,ftype为DC-0,表⽰设计的第⼀个频带为阻带;window:指定使⽤的窗函数,默认为海明窗;noscale:指定是否归⼀化滤波器的幅度。
⽰例:N=41; %滤波器长度fs=2000; %采样频率%各种滤波器的特征频率fc_lpf=200;fc_hpf=200;fp_bandpass=[200 400];fc_stop=[200 400];%以采样频率的⼀半,对频率进⾏归⼀化处理wn_lpf=fc_lpf*2/fs;wn_hpf=fc_hpf*2/fs;wn_bandpass=fp_bandpass*2/fs;wn_stop=fc_stop*2/fs;%采⽤fir1函数设计FIR滤波器b_lpf=fir1(N-1,wn_lpf);b_hpf=fir1(N-1,wn_hpf,'high');b_bandpass=fir1(N-1,wn_bandpass,'bandpass');b_stop=fir1(N-1,wn_stop,'stop');%求滤波器的幅频响应m_lpf=20*log(abs(fft(b_lpf)))/log(10);m_hpf=20*log(abs(fft(b_hpf)))/log(10);m_bandpass=20*log(abs(fft(b_bandpass)))/log(10);m_stop=20*log(abs(fft(b_stop)))/log(10);%设置幅频响应的横坐标单位为Hzx_f=0:(fs/length(m_lpf)):fs/2;%绘制单位脉冲响应%绘制单位脉冲响应subplot(421);stem(b_lpf);xlabel('n');ylabel('h(n)');subplot(423);stem(b_hpf);xlabel('n');ylabel('h(n)');subplot(425);stem(b_bandpass);xlabel('n');ylabel('h(n)');subplot(427);stem(b_stop);xlabel('n');ylabel('h(n)');%绘制幅频响应曲线subplot(422);plot(x_f,m_lpf(1:length(x_f)));xlabel('频率(Hz)','fontsize',8);ylabel('幅度(dB)','fontsize',8);subplot(424);plot(x_f,m_hpf(1:length(x_f)));xlabel('频率(Hz)','fontsize',8);ylabel('幅度(dB)','fontsize',8);subplot(426);plot(x_f,m_bandpass(1:length(x_f)));xlabel('频率(Hz)','fontsize',8);ylabel('幅度(dB)','fontsize',8);subplot(428);plot(x_f,m_stop(1:length(x_f)));xlabel('频率(Hz)','fontsize',8);ylabel('幅度(dB)','fontsize',8);2. 采⽤fir2函数设计,函数算法是:⾸先根据要求的幅频响应向量形式进⾏插值,然后进⾏傅⾥叶变换得到理想滤波器的单位脉冲响应,最后利⽤窗函数对理想滤波器的单位脉冲响应激进型截断处理,由此得到FIR滤波器系数。
Matlab设计FIR数字滤波器

FIR数字滤波器专业:学号:XX:一课题目的:1学会使用Matlab的各项功能。
2学会把自己在课堂上学习的知识运用到实践当中。
3了解利用Matlab设计FIR数字滤波器的基本方法。
4在课程设计的过程中掌握程序编译及软件设计的基本方法。
5提高自己对于新知识的学习能力及进行实际操作的能力。
二课题要求:在信号处理过程中所处理的信号往往混有噪音,从接受到的信号中消除或减弱噪音是信号处理过程中十分重要的问题。
根据有用信号和噪音的不同特性,提取有用信号的过程称为滤波,实现滤波功能的系统称为滤波器。
而数字滤波器又是滤波器中运用极为广泛的一种滤波器。
数值滤波技术是数字信号处理的一个重要组成部分,滤波器的设计是信号处理的核心问题之一。
FIR数字滤波器在保证幅度特性满足技术要求的同时,很容易做到有严格的线性相位特性。
要求通过网络及各种资料解决实际问题设计一个符合要求的FIR数字滤波器。
三课题内容:数字滤波器和模拟滤波器有着相同的滤波概念,根据其频率响应特性可分为低通、高通、带通、带阻等类型。
与模拟滤波器相比,数字滤波器除了具有数字信号处理固有优点外,还有滤波精度高、稳定性好、灵活性强等优点。
在数字信号处理中,由于信号中经常混有各种复杂成分,所以很多信号分析都是基于滤波器而进行的,FIR数字滤波器在数字信号处理中发挥着重要作用,采用Matlab软件对FIR数字滤波器进行仿真设计,简化了设计中繁琐的计算。
设计中采用窗函数法,频率采样法和优化设计方法,通过调用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滤波器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数字滤波器的设计

设计方法
• 一、窗函数设计法 • 二、频率抽样设计法 • 三、最小二乘逼近设计法
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滤波器(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滤波器对音频信号进行去噪处理,或者对图像进行锐化处理等。
基于MATLAB的FIR数字高通滤波器的设计

基于MATLAB的FIR数字高通滤波器的设计[摘要]本文根据FIR高通滤波器的设计原理,提出了MATLAB 环境下基于窗函数法的FIR高通滤波器设计方法。
【关键词】FIR数字滤波器;高通滤波;窗函数;MATLAB一、数字滤波器1.1 数字滤波器概述数字滤波器,是指输入、输出均为数字信号,通过一定运算关系改变输入信号所含频率成分的相对比例或者滤除某些频率成分的器件。
数字滤波器分类的方法很多,可从以下几个方面进行分类:1.根据功能分类,可以分为低通滤波器、高通滤波器、带通滤波器和带阻滤波器。
2.根据滤波器的单位脉冲响应分类,可以分为无限长脉冲响应数字滤波器和有限长脉冲响应数字滤波器,它们一般被称为IIR数字滤波器和FIR数字滤波器。
3.根据数字滤波器的实现方法分类,可以分为递归型数字滤波器RDF (Recursive Digital Filter)和非递归型数字滤波器NDF(Nonrecursive Digital Filter)。
1.2 数字滤波器的设计1.2.1 数字滤波器的设计要求数字滤波器的频响特性函数一般为复函数,所以通常表示为(1-1)其中,称为幅频特性函数;称为相频特性函数。
幅频特性表示信号通过该滤波器后各频率成分的衰减情况,而相频特性反映各频率通过滤波器后在时间上的延时情况。
1.2.2 数字滤波器的设计方法IIR滤波器设计方法有两类,经常用到的一类设计方法是借助于模拟滤波器的设计方法进行。
其设计思路是:先设计模拟滤波器得到的传输函数,然后将按某种方法转换成数字滤波器的系统函数。
这一类方法是基于模拟滤波器的设计方法,相对比较成熟,它不仅有完整的设计公式,也有完整的图表供查阅,更可以直接调用MATLAB中的对应的函数进行设计。
另一类是直接在频域或者时域中进行设计的,设计时必须用计算机作辅助设计,直接调用MATLAB中的一些程序或设函数可以很方便地设计出所需要的滤波器。
二、FIR数字滤波器设计2.1 FIR数字滤波器的原理FIR滤波器的传递函数为:(2-1)可得FIR滤波器的系统系数差分方程,当FIR滤波器的系数满足下列中心对称条件时:(2-2)线性相位滤波器的相位滞后和延迟在整个频带上是相等且不变的。
基于matlab程序的fir滤波器设计实现

基于matlab程序的fir滤波器设计实现随着科学技术的发展,电子设备的设计要求也在不断提高,需要功能更加齐全的电子设备。
滤波器作为重要的电子元件,可以降低噪声,提高电子设备的工作效率,广泛应用在通信、仪器仪表、电力系统等领域。
fir滤波器由具有非常特殊结构的线性系统组成。
在传输特性中,它具有稳定的延迟,具有良好的频率分析和回波抑制功能。
为了使用fir滤波器,我们必须对其进行合理的设计,实现滤波器的功能。
本文介绍使用matlab程序来设计和实现fir滤波器的方法。
首先,我们需要确定滤波器的目标,包括滤波器的截止频率、阻带频率以及期望的功率谱,然后将这些参数输入matlab程序中,并使用合适的算法来计算滤波器的系数。
在matlab中实现fir滤波器的各种算法有很多种,包括传统的窗函数法,频率响应插值法,自适应法和波束形成法等。
算法的选择取决于优化目标,可以根据滤波器的要求自由选择。
当确定了滤波器要求和设计算法之后,就可以使用matlab编写程序来实现这些算法。
matlab有丰富的函数库,可以很容易地实现fir滤波器的设计。
具体的程序设计步骤如下:首先,选择所需的设计参数,包括滤波器阶数、归一化频率、幅值和相位等;然后,选择所需的算法,计算出匹配的滤波器系数;最后,编写一个完整的程序来实现fir滤波器的设计,测试滤波器的参数,并输出实现结果。
本文介绍了使用matlab程序来实现fir滤波器设计的方法,它可以实现滤波器的质量分析和测试,可以根据滤波器要求进行精确的设计。
使用matlab来设计fir滤波器,不仅可以缩短设计时间,而且能够节省大量的金钱和人力,具有非常重要的意义。
总之,fir滤波器在电子设备设计中有着重要的作用,使用matlab程序来设计和实现fir滤波器有着非常重要的意义。
通过此次研究,有助于我们更好地理解和应用matlab程序来设计和实现fir 滤波器,从而提高滤波器的性能,从而更好地满足电子设备设计的要求。
基于MATLAB的FIR滤波器的设计及应用(信号去噪)

数字信号处理课程设计报告书课题名称 基于MATLAB 的FIR 滤波器的设计及应用(信号去噪)姓 名 孙磊 学 号 20086373 院、系、部 电气系 专 业 电子信息 指导教师刘鑫淼2011年 7月1日※※※※※※※※※※※※※ ※※ ※※※※※※※※※2008级数字信号处理 课程设计基于MATLAB的FIR滤波器的设计及应用(信号去噪)20086373 孙磊摘要数字滤波器是一种用来过滤时间离散信号的数字系统,目前数字滤波器的设计有许多现成的高级语言设计程序, 但它们的设计效率较低, 不具有可视图形, 不便于修改参数等缺点, 而MATLAB 语言正好能弥补以上缺点。
本文就如何使用MATLAB 语言来设计和实现FIR 数字滤波器进行了探究。
本文主要是通过使用blackman窗设计一个FIR滤波器以对信号进行滤波去噪处理。
本设计首先自己编一段信号,依据对该信号的频谱分析,给定相关指标。
以MATLAB软件为平台,采用blackman窗设计满足指标的FIR滤波器,以该音乐信号进行滤波去噪处理。
通过对比滤波前后的波形图,深入了解滤波器的基本方法。
一、设计目的1.学会MATLAB的使用,掌握MATLAB的程序设计方法;2.掌握数字信号处理的基本概念、基本理论和基本方法;3. 在Matlab环境下产生噪声信号4.掌握MATLAB设计FIR数字滤波器的窗函数设计方法;5.学会用MATLAB对信号进行分析和处理。
二、设计要求1.噪声信号的频谱分析2.设计数字滤波器和画出频率响应利用窗函数的方法和最佳逼近法设计FIR滤波器;最后,利用MATLAB中的函数freqz画出各滤波器的频率响应。
3.用滤波器对噪声信号进行滤波4.比较几种滤波器去滤波前后噪声信号的波形及频谱三、设计原理及思想如果所希望的滤波器的理想的频率响应函数为()ωjdeH,则其对应的单位脉冲响应为()()ωπωωππd e e H n h j j d d ⎰-=21 (4.1)窗函数设计法的基本原理是用有限长单位脉冲响应序列()n h 逼近()n h d 。
matlab 信号过fir数字滤波器设计

一、概述Matlab 是一种用于算法开发、数据分析和可视化的高级技术计算语言和交互式环境。
在信号处理领域,Matlab 是一种非常强大的工具,可以用来设计和实现数字滤波器。
本文将重点介绍如何使用 Matlab 过FIR (Finite Impulse Response) 数字滤波器设计。
二、FIR 数字滤波器概述FIR 数字滤波器是一种常见的数字滤波器,它的特点是其单位脉冲响应有限,并且没有反馈。
FIR 滤波器的频率响应可以通过其线性相位特性来描述,因此在许多应用中非常有用。
三、Matlab 中的 FIR 数字滤波器设计工具Matlab 中提供了许多用于数字滤波器设计的工具,其中包括 fdatool 和 fir1 函数。
1. fdatoolfdatool 是 Matlab 中的一个交互式工具,可以帮助用户设计各种类型的数字滤波器。
用户可以通过图形界面选择滤波器类型、滤波器阶数、截止频率等参数,并实时查看滤波器的频率响应和单位脉冲响应。
使用 fdatool 可以快速方便地设计出所需的 FIR 数字滤波器。
2. fir1 函数fir1 函数是 Matlab 中用于设计标准的低通、高通、带通和带阻 FIR数字滤波器的函数。
用户可以通过指定滤波器类型、截止频率、滤波器阶数等参数来调用 fir1 函数,从而得到所需的数字滤波器的系数。
四、利用 Matlab 设计 FIR 数字滤波器的步骤1. 确定滤波器类型首先要确定所需的数字滤波器的类型,包括低通滤波器、高通滤波器、带通滤波器和带阻滤波器。
2. 确定滤波器的频率特性根据具体的应用需求,确定滤波器的截止频率、通带和阻带的大小,以及过渡带的宽度等参数。
3. 计算滤波器的系数根据所需的滤波器类型、频率特性和滤波器阶数等参数,使用 fdaool 工具或 fir1 函数计算出滤波器的系数。
4. 应用滤波器将得到的滤波器系数应用到需要滤波的信号上,即可得到滤波后的信号。
matlabfir滤波器设计

matlabfir滤波器设计由于滤波器设计的复杂性,在matlab中完成滤波器设计过程可以减少大量的计算工作,下面将介绍在matlab中的FIR滤波器的设计。
一、matlab入口1. matlab工作环境:(1)安装matlab软件,在matlab中运行“dspstart”,启动数字信号处理的工作环境,包括了一些常用处理的函数和示例程序,在这种环境下可以进行滤波器设计的研究。
(2)matlab可以完成离散时间信号处理,因此,滤波器的设计需要在离散时间信号领域完成,即用离散时间信号的算法来完成滤波器设计。
2. matlab工具箱:(1)安装滤波器设计工具箱,这是一个专门用于滤波器设计的matlab库,包括了四种基本滤波器:抗谐波滤波器(notched filter),低通滤波器(low pass filter),带阻滤波器(band stop filter),以及带通滤波器(band pass filter)。
(2)安装滤波器设计高级工具箱,这是一个高级的matlab 库,可以支持滤波器的更复杂的设计,包括滤波器的参数优化,非线性滤波器,以及多种滤波器结构的数字滤波器。
3. matlab辅助性的工具:(1)安装滤波器设计助手,这是一个滤波器设计的可视化工具,可以帮助滤波器的初学者快速上手,了解滤波器设计的基本思想,并运行滤波器的例子及示例程序。
(2)安装滤波器设计指南,这是一个matlab脚本文件,可以帮助滤波器的更高级的使用者了解滤波器设计的原理,以及各种滤波器的不同之处,可以大大提高滤波器的设计效率。
二、 matlab 滤波器设计思路1. FIR滤波器的设计:(1)首先要明确滤波器的工作频率范围,记录滤波器的输入信号精度以及输出精度。
(2)设计滤波器的类型,选择适用于该频率范围内的滤波器类型,如低通滤波器,带阻滤波器等。
(3)定义滤波器的功率频谱,根据滤波器的类型,定义滤波器的功率频谱,包括最大值,超调因数以及滤波器的边带幅度。
Matlab实现数字FIR的高通_、带通、低通、带阻滤波器的解析

Matlab实现数字FIR的高通_、带通、低通、带阻滤波器的解析利用汉宁窗设计Ⅰ型数字高通滤波器clear all;Wp=0.6*pi;Ws=0.4*pi;tr_width=Wp-Ws; %过渡带宽度N=ceil(6.2*pi/tr_width %滤波器长度n=0:1:N-1;Wc=(Ws+Wp/2; %理想低通滤波器的截止频率hd=ideal_hp1(Wc,N; %理想低通滤波器的单位冲激响应w_han=(hanning(N'; %汉宁窗h=hd.*w_han; %截取得到实际的单位脉冲响应[db,mag,pha,w]=freqz_m2(h,[1]; %计算实际滤波器的幅度响应delta_w=2*pi/1000;Ap=-(min(db(Wp/delta_w+1:1:501 %实际通带纹波As=-round(max(db(1:1:Ws/delta_w+1 %实际阻带纹波subplot(221stem(n,hdtitle('理想单位脉冲响应hd(n'subplot(222stem(n,w_hantitle('汉宁窗w(n'subplot(223stem(n,htitle('实际单位脉冲响应hd(n'subplot(224plot(w/pi,dbtitle('幅度响应(dB'axis([0,1,-100,10]clear all;Wp=0.6*pi;Ws=0.4*pi;tr_width=Wp-Ws; %过渡带宽度N=ceil(6.2*pi/tr_width %滤波器长度n=0:1:N-1;Wc=(Ws+Wp/2; %理想低通滤波器的截止频率hd=ideal_hp1(Wc,N; %理想低通滤波器的单位冲激响应w_han=(hanning(N'; %汉宁窗h=hd.*w_han; %截取得到实际的单位脉冲响应[db,mag,pha,w]=freqz_m2(h,[1]; %计算实际滤波器的幅度响应delta_w=2*pi/1000;Ap=-(min(db(Wp/delta_w+1:1:501 %实际通带纹波As=-round(max(db(1:1:Ws/delta_w+1 %实际阻带纹波subplot(221stem(n,hdtitle('理想单位脉冲响应hd(n'subplot(222stem(n,w_hantitle('汉宁窗w(n'subplot(223stem(n,htitle('实际单位脉冲响应hd(n'subplot(224plot(w/pi,dbtitle('幅度响应(dB'axis([0,1,-100,10]基于切比雪夫一致逼近法设计FIR数字低通滤波器clear all;f=[0 0.6 0.7 1]; %给定频率轴分点A=[1 1 0 0]; %给定在这些频率分点上理想的幅频响应weigh=[1 10]; %给定在这些频率分点上的加权b=remez(32,f,A,weigh; %设计出切比雪夫最佳一致逼近滤波器[h,w]=freqz(b,1,256,1;h=abs(h;h=20*log10(h;subplot(211stem(b,'.';grid;title('切比雪夫逼近滤波器的抽样值'subplot(212plot(w,h;grid;title('滤波器幅频特性(dB'利用汉宁窗设计Ⅰ型数字带阻滤波器clear all;Wpl=0.2*pi;Wph=0.8*pi;Wsl=0.4*pi;Wsh=0.6*pi;tr_width=min((Wsl-Wpl,(Wph-Wsh; %过渡带宽度N=ceil(6.2*pi/tr_width %滤波器长度n=0:1:N-1;Wcl=(Wsl+Wpl/2; %理想低通滤波器的截止频率Wch=(Wsh+Wph/2;hd=ideal_bs(Wcl,Wch,N; %理想低通滤波器的单位冲激响应w_hann=(hanning(N'; %汉宁窗h=hd.*w_hann; %截取得到实际的单位脉冲响应[db,mag,pha,w]=freqz_m2(h,[1]; %计算实际滤波器的幅度响应delta_w=2*pi/1000;Ap=-(min(db(1:1:Wpl/delta_w+1 %实际通带纹波As=-round(max(db(Wsl/delta_w+1:1:Wsh/delta_w+1 %实际阻带纹波subplot(221stem(n,hdtitle('理想单位脉冲响应hd(n'subplot(222stem(n,w_hanntitle('汉宁窗w(n'subplot(223stem(n,htitle('实际单位脉冲响应hd(n'subplot(224plot(w/pi,dbtitle('幅度响应(dB'axis([0,1,-100,10]利用三角窗设计Ⅲ型数字带通滤波器clear all;Wpl=0.4*pi;Wph=0.6*pi;Wsl=0.2*pi;Wsh=0.8*pi;tr_width=min((Wpl-Wsl,(Wsh-Wph; %过渡带宽度N=ceil(6.1*pi/tr_width %滤波器长度n=0:1:N-1;Wcl=(Wsl+Wpl/2; %理想低通滤波器的截止频率Wch=(Wsh+Wph/2;hd=ideal_bp2(Wcl,Wch,N; %理想低通滤波器的单位冲激响应w_tri=(triang(N'; %三角窗h=hd.*w_tri; %截取得到实际的单位脉冲响应[db,mag,pha,w]=freqz_m2(h,[1]; %计算实际滤波器的幅度响应delta_w=2*pi/1000;Ap=-(min(db(Wpl/delta_w+1:1:Wph/delta_w+1 %实际通带纹波As=-round(max(db(Wsh/delta_w+1:1:501 %实际阻带纹波subplot(221stem(n,hdtitle('理想单位脉冲响应hd(n'subplot(222stem(n,w_trititle('三角窗w(n'subplot(223stem(n,htitle('实际单位脉冲响应hd(n'subplot(224plot(w/pi,dbtitle('幅度响应(dB'axis([0,1,-100,10]利用布拉克曼窗设计Ⅱ型数字带通滤波器clear all;Wpl=0.4*pi;Wph=0.6*pi;Wsl=0.2*pi;Wsh=0.8*pi;tr_width=min((Wpl-Wsl,(Wsh-Wph; %过渡带宽度N=ceil(11*pi/tr_width+1 %滤波器长度n=0:1:N-1;Wcl=(Wsl+Wpl/2; %理想低通滤波器的截止频率Wch=(Wsh+Wph/2;hd=ideal_bp1(Wcl,Wch,N; %理想低通滤波器的单位冲激响应w_bman=(blackman(N'; %布拉克曼窗h=hd.*w_bman; %截取得到实际的单位脉冲响应[db,mag,pha,w]=freqz_m2(h,[1]; %计算实际滤波器的幅度响应delta_w=2*pi/1000;Ap=-(min(db(Wpl/delta_w+1:1:Wph/delta_w+1 %实际通带纹波As=-round(max(db(Wsh/delta_w+1:1:501 %实际阻带纹波subplot(221stem(n,hdtitle('理想单位脉冲响应hd(n'subplot(222stem(n,w_bmantitle('布拉克曼窗w(n'subplot(223stem(n,htitle('实际单位脉冲响应hd(n'subplot(224plot(w/pi,dbtitle('幅度响应(dB'axis([0,1,-100,10]利用海明窗设计Ⅱ型数字低通滤波器clear all;Wp=0.2*pi;Ws=0.4*pi;tr_width=Ws-Wp; %过渡带宽度N=ceil(6.6*pi/tr_width+1 %滤波器长度n=0:1:N-1;Wc=(Ws+Wp/2; %理想低通滤波器的截止频率hd=ideal_lp1(Wc,N; %理想低通滤波器的单位冲激响应w_ham=(hamming(N'; %海明窗h=hd.*w_ham; %截取得到实际的单位脉冲响应[db,mag,pha,w]=freqz_m2(h,[1]; %计算实际滤波器的幅度响应delta_w=2*pi/1000;Ap=-(min(db(1:1:Wp/delta_w+1 %实际通带纹波As=-round(max(db(Ws/delta_w+1:1:501 %实际阻带纹波subplot(221stem(n,hdtitle('理想单位脉冲响应hd(n'subplot(222stem(n,w_hamtitle('海明窗w(n'subplot(223stem(n,htitle('实际单位脉冲响应hd(n'subplot(224plot(w/pi,dbtitle('幅度响应(dB'axis([0,1,-100,10]%-------------------------------------------------------- function[db,mag,pha,w]=freqz_m2(b,a%滤波器的幅值响应(相对、绝对、相位响应%db:相对幅值响应%mag:绝对幅值响应%pha: 相位响应%w 采样频率;%b 系统函数H(z的分子项(对FIR,b=h%a 系统函数H(z的分母项(对FIR,a=1[H,w]=freqz(b,a,1000,'whole';H=(H(1:1:501';w=(w(1:1:501';mag=abs(H; %绝对幅值响应db=20*log10((mag+eps/max(mag; %相对幅值响应pha=angle(H; %相位响应利用模拟Butterworth滤波器设计数字低通滤波器% exa4-8_pulseDF for example4-8% using Butterworth analog lowpass filter to design digital lowpass filter %利用模拟Butterworth滤波器设计数字低通滤波器%脉冲响应不变法wp=0.2*pi;ws=0.3*pi;Rp=1;As=15;T=1;%性能指标Rip=10^(-Rp/20;Atn=10^(-As/20;OmgP=wp*T;OmgS=ws*T;[N,OmgC]=buttord(OmgP,OmgS,Rp,As,'s';%选取模拟滤波器的阶数[cs,ds]=butter(N,OmgC,'s'; %设计出所需的模拟低通滤波器[b,a]=impinvar(cs,ds,T; %应用脉冲响应不变法进行转换%求得相对、绝对频响及相位、群迟延响应[db,mag,pha,grd,w]=freqz_m(b,a;%下面绘出各条曲线subplot(2,2,1;plot(w/pi,mag;title('幅频特性';xlabel('w(/pi';ylabel('|H(jw|';axis([0,1,0,1.1];set(gca,'XTickMode','manual','XTick',[0 0.2 0.3 0.5 1]; set(gca,'YTickMode','manual','YTick',[0 Atn Rip 1]; grid subplot(2,2,2;plot(w/pi,db;title('幅频特性(dB';xlabel('w(/pi';ylabel('dB';axis([0,1,-40,5];set(gca,'XTickMode','manual','XTick',[0 0.2 0.3 0.5 1]; set(gca,'YTickMode','manual','YTick',[-40 -As -Rp 0]; grid subplot(2,2,3;plot(w/pi,pha/pi;title('相频特性';xlabel('w(/pi';ylabel('pha(/pi';axis([0,1,-1,1];set(gca,'XTickMode','manual','XTick',[0 0.2 0.3 0.5 1];gridsubplot(2,2,4;plot(w/pi,grd;title('群延迟';xlabel('w(/pi';ylabel('Sample';axis([0,1,0,12];set(gca,'XTickMode','manual','XTick',[0 0.2 0.3 0.5 1];gridfunction[db,mag,pha,grd,w]=freqz_m(b,a%滤波器幅值响应(绝对、相对、相位响应及群延迟%Usage: [db,mag,pha,grd,w]=freqz_m(b,a %500点对应[0,pi] %db 相对幅值响应;mag 绝对幅值响应;pha 相位响应;grd 群延迟响应%w 采样频率;b 系统函数H(z的分子项(对FIR,b=h%a 系统函数H(z的分母项(对FIR,a=1[H,w]=freqz(b,a,500;%500点的复频响应mag=abs(H;db=20*log10((mag+eps/max(mag;pha=angle(H;grd=grpdelay(b,a,w;基于频域抽样法的FIR数字带阻滤波器设计clear all;N=41;T1=0.598;alpha= (N-1/2;l=0:N-1;wl= (2*pi/N*l;Hrs=[ones(1,6,T1,zeros(1,7,T1,ones(1,11,T1,zeros(1,7,T1,ones (1,6]; %理想振幅采样响应Hdr=[1,1,0,0,1,1];wdl=[0,0.3,0.3,0.7,0.7,1];k1=0:floor((N-1/2;k2=floor((N-1/2+1:N-1;angH=[pi/2-alpha*(2*pi/N*(k1+0.5,-pi/2+alpha*(2*pi/N*(N-k2-0.5]; %相位约束条件Hdk=Hrs.*exp(j*angH; %构成Hd(kh1=ifft(Hdk,N;n=0:1:N-1;h=real(h1.*exp(j*pi*n/N; %实际单位冲激响应[db,mag,pha,w]=freqz_m2(h,[1];[Hr,ww,a,L]=hr_type3(h; %实际振幅响应subplot(221plot(wl/pi+1/N,Hrs,'.',wdl,Hdrtitle('频率样本Hd(k :N=41'axis([0 1 -0.1 1.2]subplot(222stem(l,htitle('实际单位脉冲响应h(n'subplot(223plot(ww/pi,Hr,wl/pi+1/N,Hrs,'.'title('实际振幅响应H(w'axis([0 1 -0.1 1.2]subplot(224plot(w/pi,dbtitle('幅度响应(dB'axis([0 1 -80 10]function [db,mag,pha,w] = freqz_m(b,a;%滤波器的幅值响应(相对、绝对、相位响应%db:相对幅值响应%mag:绝对幅值响应%pha: 相位响应%w 采样频率;%b 系统函数H(z的分子项(对FIR,b=h%a 系统函数H(z的分母项(对FIR,a=1 [H,w] = freqz(b,a,1000,'whole';H = (H(1:1:501'; w = (w(1:1:501';mag = abs(H;db = 20*log10((mag+eps/max(mag;pha = angle(H;% pha = unwrap(angle(H;function [Hr,w,c,L]=hr_type3(h;%计算所设计的3型滤波器的振幅响应%Hr=振幅响应%b=3型滤波器的系数%L=Hr的阶次%h=3型滤波器的单位冲击响应M=length(h;L=(M-1/2;c= [2*h(L+1:-1:1];n=[0:1:L];w=[0:1:500]'*2*pi/500;Hr=sin(w*n*c';基于频域抽样法的FIR数字带通滤波器设计wsl=0.12*pi;%低阻带边缘wsh=0.82*pi;%高阻带边缘wpl=0.32*pi;%低通带边缘wph=0.62*pi;%高通带边缘delta=(wpl-wsl;%过度带M=ceil(2*pi*3/delta;%抽样点数al=(M-1/2;wl=(2*pi/M; %抽样间隔k=0:M-1;T1=0.12; T2=0.6;%过渡带样本点Hrs=[zeros(1,ceil(0.12*pi/wl+1,T2,T1,ones(1,ceil(0.3*pi/wl,T1 ,T2,zeros(1,ceil(0.37 34*pi/wl,T2,T1,ones(1,c eil(0.3*pi/wl,T1,T2,zeros(1,ceil(0.12*pi/wl+1];wdl=[0 0.12 0.32 0.62 0.82 1];k1=0:floor((M-1/2;k2=floor((M-1/2+1:M-1;angH=[-al*(2*pi/M*k1,al*(2*pi/M*(M-k2];H=Hrs.*exp(j*angH;h=real(ifft(H;%傅立叶反变换figure(1;%冲击响应图stem(k,h;title('impulse response';xlabel('n';ylabel('h(n'; grid;figure(2;%幅频曲线图Hf=abs(H;w=k*wl/pi; plot(w,Hf,'*b-'axis([0 1 -0.1 1.1];。
matlab的fir高通数字滤波器的设计及分析

摘要无限长脉冲数字滤波器的设计方法只考虑了幅度特性,没有考虑相位特性,所设的滤波器一般是某种确定的非线性相位特性。
有限脉冲响应(FIR)滤波器在保证了幅度特性满足技术要求的同时,很容易做到有严格的线性相位特性。
本课题利用MATLAB软件实现。
MATLAB是“矩阵实验室”(MATrix LABoratoy)的缩写,是一种科学计算软件,它使用方便,输入简捷,运算高效,内容丰富,因此利用MATLAB软件,通过一系列较为系统的函数法,根据已知的技术指标,就可以设计出满足要求的滤波器。
关键字:MATLAB;窗函数;FIR带阻数字滤波器;线性相位目录1.FIR滤波器简介 (3)1.1 FIR的特点 (3)2.2线性相位 (3)2.主要设计内容 (5)3.窗函数 (6)3.1常用窗函数 (6)3.2窗函数的指标 (9)4应用窗函数法设计 FIR 数字滤波器的步骤 (10)4.1数字高通滤波器的设计: (10)总结 (11)参考文献 (12)附录 (13)1.FIR 滤波器简介数字滤波器是一种用来过滤时间离散信号的数字系统,通过对抽样数据进行数学处理来达到频域滤波的目的。
根据其单位冲激响应函数的时域特性可分为两类:无限冲激响应(IIR )滤波器和有限冲激响应(FIR )滤波器。
1.1 FIR 的特点FIR 滤波器的主要优点为:系统总是稳定的,FIR 滤波器的系统函数可以表示为 (2-1) 易知,H (z ) 在 Z 平面上有 N -1个零点,z =0 是 N -1 阶极点,因此FIR 系统总是稳定的(极点都在单位圆内)。
FIR 滤波器的优点之二:容易实现线性相位。
当 FIR 系统的单位冲激响应满足 时,该系统具有线性相位。
(N 为奇数) (2-2)(N 为偶数) (2-3) FIR 滤波器的优点之三:允许设置多通带(或多阻带)滤波器。
FIR 滤波器的优点之四:FIR 滤波器可以采用 FFT 方法实现其功能,从而大大提高效率。
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 滤波器那样容易取得比较好的通带与阻带衰减特性。
matlab的fir高通数字滤波器的设计和分析

基于MATLAB的FIR高通数字滤波器的设计和分析陆锐勇(2009012303)通信工程09级02班摘要:以MATLAB中FIR高通数字滤波器为例,对滤波进行工作原理分析。
利用声音处理函数作为数据接口,使用FDAtool设计滤波器,对仿真前后的音频进行波形和频谱的对比分析,加深对滤波的理解。
关键词:高通滤波,数字滤波,matlab,FIR0、引言数字信号处理的目的包括设计某种设备或者建立某个算法用来处理信号序列,使序列具有一些确定的性质,这个设备或者算法结构就成为数字滤波器。
数字滤波器的主要功能是对数字信号进行处理,最常见的处理是保留数字信号中的有用频率成分,去除信号中的无用频率成分。
通常是用有限精度的算法实现的离散时间线性时不变系统,它本身既可以有硬件也可以由软件来实现,还可以用DSP处理器配合软件实现。
数字滤波器可以分为有限冲激响应FIR和无线冲激响应IIR两种。
FIR滤波器可以通过窗函数法、频率抽样法和最优化设计方案来设计【1】。
首先解释FIR 数字高通滤波的物理过程,然后用FDAtool采用窗函数法设计语音高通滤波器。
1、数字滤波器的工作原理数字滤波器具有一定传输特性的数字信号处理功能,它的输入以及输出都是离散的数字信号,并借助于数字器件和一定的数值计算方法,对输入信号进行处理,改变输入信号,进而达到除去信号中无用成分而保留有用成分的功能。
数字滤波器是一个离散的数字信号处理装置,也是一个离散的时间系统,输入和输出都是一个时间序列。
这里设H(z)为数字滤波器的系统函数,h(n)为其相应的脉冲序列,则在时域内有y(n)=x(n)*h(n)在z域内有Y(z)=H(z)*X(z)上式中,X(z),Y(z)分别为输入x(n)和输出y(n)的Z变换。
在频域内有Y(jw)=H(jw)X(jw)上式中,H(jw)为数字滤波器的频率特性;X(jw)和Y(jw)分别为输入x(n)和输出y(n)的频谱.由以上论述可知,一个合适的滤波器系统函数H(z)可以改变输入x(n)的频率特性,经数字滤波处理后得到信号y(n),保留x(n)中的有用频率成分,而去掉其中无用的成分。
matlab的fir滤波器设计

matlab的fir滤波器设计FIR(Finite Impulse Response)滤波器是指响应有限长度序列输入的数字滤波器,它可以用于信号去噪、信号滤波和信号重构等领域。
MATLAB软件是目前应用广泛的数学软件工具箱,它可以实现数字信号处理、信号滤波和滤波器设计等功能。
下面我们来分步骤解析如何利用MATLAB完成FIR滤波器设计。
第一步,确定滤波器参数要设计FIR滤波器,需要明确设计的目的,例如信号去噪还是信号滤波。
同时,需要确定滤波器的参数,包括滤波器的采样率、通带边界、阻带边界等。
第二步,调用MATLAB工具箱并加载数据打开MATLAB软件,选择Digital Signal Processing Toolbox,调用fir1函数,该函数用于设计一般的低通、高通、带通和带阻FIR 滤波器。
加载需要滤波的数据,并将其存储在一个变量中。
第三步,进行滤波器设计在MATLAB命令行窗口中输入以下命令,来进行FIR滤波器的设计。
h = fir1(N, Wn, 'type');其中,N是滤波器的阶数,Wn是正规化的截止频率值,type是滤波器的类型,可以是低通、高通、带通和带阻滤波器。
例如,我们要设计一个30阶的低通滤波器,带通频带为0.3至0.7,采样率为1000Hz,输入以下命令:N = 30;Wn = [0.3 0.7];Btype = 'low';FIR_filter = fir1(N, Wn, Btype);第四步,使用FIR滤波器进行滤波使用filter函数,可以将设计好的FIR滤波器应用到加载的数据上,进行滤波操作。
Y_filtered = filter(FIR_filter, 1, X);其中,FIR_filter是设计好的FIR滤波器,X是加载的待滤波数据,Y_filtered是经过滤波器处理后的数据。
第五步,可视化输出结果通过绘制函数将滤波器的输入和输出信号进行可视化处理,观察滤波效果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
摘要无限长脉冲数字滤波器的设计方法只考虑了幅度特性,没有考虑相位特性,所设的滤波器一般是某种确定的非线性相位特性。
有限脉冲响应(FIR)滤波器在保证了幅度特性满足技术要求的同时,很容易做到有严格的线性相位特性。
本课题利用MATLAB软件实现。
MATLAB是“矩阵实验室”(MATrix LABoratoy)的缩写,是一种科学计算软件,它使用方便,输入简捷,运算高效,内容丰富,因此利用MATLAB软件,通过一系列较为系统的函数法,根据已知的技术指标,就可以设计出满足要求的滤波器。
关键字:MATLAB;窗函数;FIR带阻数字滤波器;线性相位目录1.FIR滤波器简介 (3)1.1 FIR的特点 (3)2.2线性相位 (3)2.主要设计内容 (5)3.窗函数 (6)3.1常用窗函数 (6)3.2窗函数的指标 (9)4应用窗函数法设计 FIR 数字滤波器的步骤 (10)4.1数字高通滤波器的设计: (10)总结 (11)参考文献 (12)附录 (13)1.FIR 滤波器简介数字滤波器是一种用来过滤时间离散信号的数字系统,通过对抽样数据进行数学处理来达到频域滤波的目的。
根据其单位冲激响应函数的时域特性可分为两类:无限冲激响应(IIR )滤波器和有限冲激响应(FIR )滤波器。
1.1 FIR 的特点FIR 滤波器的主要优点为:系统总是稳定的,FIR 滤波器的系统函数可以表示为(2-1)易知,H (z ) 在 Z 平面上有 N -1个零点,z =0 是 N -1 阶极点,因此FIR 系统总是稳定的(极点都在单位圆内)。
FIR 滤波器的优点之二:容易实现线性相位。
当 FIR 系统的单位冲激响应满足 时,该系统具有线性相位。
(N 为奇数) (2-2)(N 为偶数) (2-3) FIR 滤波器的优点之三:允许设置多通带(或多阻带)滤波器。
FIR 滤波器的优点之四:FIR 滤波器可以采用 FFT 方法实现其功能,从而大大提高效率。
FIR 滤波器的缺点:由于 FIR 系统只有零点,因此这类系统不像FIR 滤波器不像 IIR 滤波器那样容易取得比较好的通带与阻带衰减特性。
要取得较好的衰减特性,一般要求 H (z ) 的阶次较高。
综合起来看, FIR 滤波器具有IIR 滤波器没有的许多特点,得到了越来越广泛的应用。
FIR 滤波器的设计方法主要有三种:a.窗函数设计法;b.频率抽样发;c.最小平法抽样法;这里我主要讨论在MATLAB 环境下通过调用信号分析与处理工具箱的几类窗函数来设计滤波器并分析与比较其性能2.2线性相位一个单一频率的正弦信号通过一个系统,假设它通过这个系统的时间需要t ,则这个信号的输出相位落后原来信号wt 的相位。
从这边可以看出,一个正弦信号通过一个系统落后的相位等于它的w *t ;反过来说,如果一个频率为w 的正弦信号通过系统后,它的相位落后delta ,则该信号被延迟了delta /w 的时间。
在实111)1(10)()()()(--=-----=-===∑∑N N n nN N N n nz z f z n h z z n h z H )1()(n N h n h --±=2/)1()(--=N ωωϕ2/)1(2/)(--=N ωπωϕ际系统中,一个输入信号可以分解为多个正弦信号的叠加,为了使得输出信号不会产生相位失真,必须要求它所包含的这些正弦信号通过系统的时间是一样的。
因此每一个正弦信号的相位分别落后,w1*t,w2*t,w3*t。
因此,落后的相位正比于频率w,如果超前,超前相位的大小也是正比于频率w。
从系统的频率响应来看,就是要求它的相频特性是一条直线。
在FIR滤波器的设计中,为了得到线性相位的性质,通常利用实偶对称序列的相频特性为常数0和实奇对称序列为相频特性为常数90度的特点。
因此得到的是对称序列,不是因果序列,是不可实现系统,为了称为物理可实现系统,需要将它向右移动半个周期,这就造成了相移特性随时间的变化,同时也是线性变化。
单位脉冲响应h(n)(为实数)具有偶对称或奇对称性,则FIR数字滤波器具有严格的线性相位特性。
2.主要设计内容利用窗函数法、频率取样法及优化设计方法设计FIR滤波器,绘制出滤波器的特性图。
利用所设计的滤波器对多个频带叠加的正弦信号进行处理,对比滤波前后的信号时域和频域图,验证滤波器的效果。
基本思路:从时域出发设计 h(n)逼近理想 hd(n)。
设理想滤波器的单位响应在时域表达为hd(n),则Hd(n) 一般是无限长的,且是非因果的,不能直接作为FIR 滤波器的单位脉冲响应。
要想得到一个因果的有限长的滤波器单位抽样响应 h(n),最直接的方法是先将hd(n)往右平移,再迕行截断,即截取为有限长因果序列:h(n)=hd(n)w(n),并用合适的窗函数迕行加权作为FIR滤波器的单位脉冲响应。
按照线性相位滤波器的要求,线性相位FIR数字低通滤波器的单位抽样响应h(n)必须是偶对称的。
对称中心必须等于滤波器的延时常数,即用矩形窗设计的FIR 低通滤波器,所设计滤波器的幅度函数在通带和阻带都呈现出振荡现象,且最大波纹大约为幅度的9%,返个现象称为吉布斯(Gibbs)效应。
为了消除吉布斯效应,一般采用其他类型的窗函数。
MATLAB 设计 FIR 滤波器有多种方法和对应的函数。
窗函数设计法不仅在数字滤波器的设计中占有重要的地位,同时可以用于功率谱的估计,从根本上讲,使用窗函数的目的就是消除由无限序列的截短而引起的Gibbs现象所带来的影响。
3.窗函数加窗处理使得得滤波器的频率响应与理想滤波器的频率响应之间产生差异,表现为过渡带和波动的出现。
我们希望所设计的滤波器尽量逼近理想滤波器,就要设法减少波动的幅度,同时使过渡带变窄。
在设计 FIR 数字滤波器时,窗函数的频谱应该满足: 1主瓣宽度尽可能的窄,以使过渡带尽量陡峭;2最大旁瓣相对于主瓣尽可能的小,使能量尽可能集中于主瓣内,这样能够使得波动减小。
3.1常用窗函数1汉宁(Hanning )窗汉宁窗函数的时域形式表示为:(3-1)频域形式为(3-2)汉宁窗函数的最大旁瓣值比主瓣值低31dB ,但是主瓣宽度比矩形窗函数的主瓣宽度增加了1倍,为8π/N 。
hanning 函数:生成汉宁窗 调用方式:(1) w = hanning (n ):输入参数n 是窗函数的长度;输出参数w 是由窗函数的值组成的n 阶向量。
注意:此函数不返回是零点的窗函数的首尾两个元素。
(2) w = hanning (n ,'symmetric '):与上面相类似。
(3) w = hanning (n ,'periodic '):此函数返回包括为零点的窗函数的首尾两个元素。
1,,2,1,0 ),12cos(5.05.0)(-=--=N n N n n w πωπωπωωω21)2()2(25.0)(5.0)(--⎭⎬⎫⎩⎨⎧⎥⎦⎤⎢⎣⎡++-+≈N j R R R eN W N W W j W图3-1汉宁窗及其频谱特性注释:汉宁窗又被称为升余弦窗,汉宁窗可以看做三个矩形时间窗的频谱之和,汉宁窗主瓣加宽并降低,旁瓣显著减小,分辨率下降2汉明(Hamming )窗:函数的时域形式可以表示为⎪⎭⎫ ⎝⎛--=1π2cos 46.054.0)(N k k w N k ,,2,1 = (3-3)频域形式为:⎥⎦⎤⎢⎣⎡⎪⎭⎫ ⎝⎛-++⎪⎭⎫ ⎝⎛--+=1π21π223.0)(54.0)(N W N W W W R R R ωωωω (3-4) 其中,)(ωR W 为矩形窗函数的幅度频率特性函数。
海明窗函数的最大旁瓣值比主瓣值低41dB ,但它和汉宁窗函数的主瓣宽度是一样大的。
Hamming 函数:生成海明窗 调用方式(1) w = hamming (n ):输入参数n 是窗函数的长度;输出参数w 是由窗函数的值组成的n 阶向量。
(2) w = hamming (n ,sflag ):参数sflag 用来控制窗函数首尾的两个元素值;其取值为symmetric 或periodic ;默认值为symmetric 。
图3-2 汉明窗及其频谱特性注释:汉明窗和汉宁窗都是余弦窗,只是加权系数不同,汉明窗旁瓣更小3布莱克曼窗函数的时域形式可以表示为⎪⎭⎫ ⎝⎛--+⎪⎭⎫ ⎝⎛---=11π4cos 08.011π2cos 5.042.0)(N k N k k w N k ,,2,1 = (3-5) 它的频域特性为=)(ωW 42.0()ωR W +25.0+⎥⎦⎤⎢⎣⎡⎪⎭⎫ ⎝⎛-++⎪⎭⎫ ⎝⎛--1212N W N W R R πωπω⎥⎦⎤⎢⎣⎡⎪⎭⎫ ⎝⎛-++⎪⎭⎫ ⎝⎛--1π41π404.0N W N W R R ωω(3-6)其中,)(ωR W 为矩形窗函数的幅度频率特性函数。
布莱克曼窗函数的最大旁瓣值比主瓣值低57dB ,但是主瓣宽度是矩形窗函数的主瓣宽度的3倍,为12π/N 。
Blackman 函数:生成海明窗 调用方式(1) w = blackman (n ):输入参数n 是窗函数的长度;输出参数w 是由窗函数的值组成的n 阶向量。
(2) w = blackman (n ,sflag ):参数sflag 用来控制窗函数首尾的两个元素值;其取值为symmetric 或periodic ;默认值为symmetric 。
图3-3 布莱克曼窗及其频谱特性注释:布莱克曼窗最大旁瓣值比主瓣值滴57db,但主瓣宽度是矩形窗的3倍3.2窗函数的指标表3-1如图所示对于任意一个窗函数,求出它的频域值,并求出在主瓣边笫1个零点的位置;2,求出主瓣在-3dB处的位置;3,把笫1个零点的位置-(-3dB)处的位置,就是过渡带的精确带宽。
矩形窗最简单,但其 -21dB 的阻带最小衰减在实际应用中远远不够。
另外,矩形窗还会造成很强的吉布斯效应。
三角窗的阻带衰减性能与矩形窗相比有所改善,但代价是过度带加宽。
4应用窗函数法设计 FIR 数字滤波器的步骤4.1数字高通滤波器的设计:令高通滤波器的频率响应为(4-1) 则(4-2) 从上述结果可以看出,一个高通滤波器相当于用一个全通滤波器减去一个低通滤波器。
0 ,0 ,)(⎪⎩⎪⎨⎧<≤≤≤=-c c j d e j H ωωπωωωωτ[][]()()11()221cos[()]sin[()]221cos[()]sin[()]22sin ()sin ()()= c c c c c c j n j n d c h n e d e d j n d n d j n d n d n n n ωπωτωτπωωωππππωωωωππωτωωτωππωτωωτωπππτωτπτ--------=+-+-+-+----=-⎰⎰⎰⎰⎰⎰总结设计带通滤波器时首先要计算出过渡带,然后查表得到不同窗函数所需要的阶数,不同的窗函数所设计的滤波器的形状各有差异,尤其在主瓣宽度、旁瓣的形状以及主瓣与旁瓣的高度差上有比较明显得差别,实际应用中应根据实际情况,折衷处理,兼顾各项指标。