基于matlab的FIR低通高通带通带阻滤波器设计

合集下载

用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滤波器设计

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滤波器

使用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滤波器设计

matlab的fir滤波器设计

matlab的fir滤波器设计Matlab是一种常用的科学计算软件,可以广泛应用于信号处理领域。

其中一个常用的信号处理技术就是滤波器。

FIR滤波器是数字滤波器的一种,它具有线性相位特性和稳定性,并且在数字信号处理中应用非常广泛。

在Matlab中,设计FIR滤波器有多种方法,其中最常用的是窗函数法和最小二乘法。

窗函数法是基于理想滤波器的幅频响应,在频域上与希望的滤波器响应相乘的方式得到FIR滤波器系数。

而最小二乘法则是通过最小化滤波器输出与希望的输出之间的误差平方和来设计FIR滤波器。

在Matlab中,可以使用fir1函数实现FIR滤波器设计。

这个函数的输入参数包括滤波器阶数、截止频率、滤波器类型等。

例如,下面的代码可以实现一个低通FIR滤波器的设计:fs = 1000; % 采样频率fc = 100; % 截止频率N = 100; % 滤波器阶数h = fir1(N, fc/(fs/2), 'low'); % 低通FIR滤波器在上面的代码中,fs表示采样频率,fc表示截止频率,N表示滤波器阶数,h表示设计得到的FIR滤波器系数。

'low'表示设计的是低通滤波器,如果要设计高通、带通或带阻滤波器,可以将'low'换成'high'、'bandpass'或'bandstop'。

设计好FIR滤波器后,可以使用filter函数将滤波器应用于信号中。

例如,下面的代码可以将一个信号x通过上面设计得到的FIR 滤波器h进行滤波:y = filter(h, 1, x);在上面的代码中,h表示设计得到的FIR滤波器系数,x表示需要进行滤波的信号,y表示滤波后的信号。

'1'表示滤波器的分母系数为1,因为FIR滤波器的分母系数恒为1。

综上所述,Matlab的FIR滤波器设计方法包括窗函数法和最小二乘法,可以使用fir1函数实现滤波器设计,使用filter函数将滤波器应用于信号中。

基于Matlab的FIR滤波器设计与实现

基于Matlab的FIR滤波器设计与实现

二、实验平台Matlab7.1三、实验原理以低通滤波器为例,其常用的设计指标有:1.通带边缘频率f p(数字频率为Ωp)2.阻带边缘频率f st (数字频率为Ωst)3.通带内最大纹波衰减δp=-20log10(1-αp),单位为dB4.阻带最小衰减αs=-20log10(αs),单位为dB5.阻带起伏αs6.通带峰值起伏αp其中,以1、2、3、4条最为常用。

5、6条在程序中估算滤波器阶数等参数时会用到。

数字频率= 模拟频率/采样频率四、实例分析例1 用凯塞窗设计一FIR低通滤波器,通带边界频率Ωp=0.3pi,阻带边界频率Ωs=0.5pi,阻带衰减δs不小于50dB。

方法一:手动计算滤波器阶数N和β值,之后在通过程序设计出滤波器。

第一步:通过过渡带宽度和阻带衰减,计算滤波器的阶数B和β值。

第二步:通过程序设计滤波器。

程序如下:b = fir1(29,0.4,kaiser(30,4.55));[h1,w1]=freqz(b,1);figure (1)plot(w1/pi, abs(h1));grid;xlabel('归一化频率/p') ;ylabel('幅度/dB') ;figure (2)plot(w1/pi,angle(h1));grid;xlabel('归一化频率/p') ;ylabel('相位') ;波形如下:例2 利用雷米兹交替算法设计等波纹滤波器,设计一个线性相位低通FIR数字滤波器,其指标为:通带边界频率fc=800Hz,阻带边界fr=1000Hz,通带波动阻带最小衰减At=40dB,采样频率fs=4000Hz。

一般调用MATLAB信号处理工具箱函数remezord来计算等波纹滤波器阶数N和加权函数W (ω),调用函数remez可进行等波纹滤波器的设计,直接求出滤波器系数。

函数remezord中的数组fedge为通带和阻带边界频率,数组mval是两个边界处的幅值,而数组dev是通带和阻带的波动,fs是采样频率单位为Hz。

根据matlab的FIR低通,高通,带通,带阻滤波器设计

根据matlab的FIR低通,高通,带通,带阻滤波器设计

北京师范大学课程设计报告课程名称:DSP设计名称:FIR 低通、高通带通和带阻数字滤波器的设计姓名:学号:班级:指导教师:起止日期:课程设计任务书学生班级:学生姓名:学号:设计名称:FIR 低通、高通带通和带阻数字滤波器的设计起止日期:指导教师:FIR 低通、高通带通和带阻数字滤波器的设计 一、 设计目的和意义1、熟练掌握使用窗函数的设计滤波器的方法,学会设计低通、带通、带阻滤波器。

2、通过对滤波器的设计,了解几种窗函数的性能,学会针对不同的指标选择不同的窗函数。

二、 设计原理一般,设计线性相位FIR 数字滤波器采用窗函数法或频率抽样法,本设计采用窗函数法,分别采用海明窗和凯泽窗设计带通、带阻和低通。

如果所希望的滤波器的理想频率响应函数为)(jw d e H ,如理想的低通,由信号系统的知识知道,在时域系统的冲击响应h d (n)将是无限长的,如图2、图3所示。

H d (w)-w c w c图2图3若时域响应是无限长的,则不可能实现,因此需要对其截断,即设计一个FIR 滤波器频率响应∑-=-=10)()(N n jwn jwe n h e H 来逼近)(jw d e H ,即用一个窗函数w(n)来截断h d (n),如式3所示:)()()(n w n h n h d =(式1)。

最简单的截断方法是矩形窗,实际操作中,直接取h d (n)的主要数据即可。

)(n h 作为实际设计的FIR 数字滤波器的单位脉冲响应序列,其频率响应函数为:∑-=-=10)()(N n jwn jwe n h e H(式2)令jw e z =,则∑-=-=10)()(N n n z n h z H(式3),式中,N 为所选窗函数)(n w 的长度。

如果要求线性相位特性,)(n h 还必须满足:)1()(n N h n h --±= (式6),根据式6中的正、负和长度N 的奇偶性又将线性相位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数字滤波器

抽样频率为f 为1KHZ的数字带通滤波器,性能要求为:通带范围从200HZ到250HZ,在此两频率处衰减不大于3dB,在100HZ和400HZ频率处频率衰减不得小于20dB,采用巴特沃斯滤波器4阶Butterworth滤波器源代码n = 2;Wn = [200 250]/500;[b,a] = butter(n,Wn);freqz(b,a,512,1000);这个滤波器100Hz、400Hz处衰减在-30db以上。

可以通过增大n增加衰减。

用MATLAB设计低通带通高通和带阻FIR数字滤波器(1)低通滤波器的技术指标:H(ejw)=1,0<w<0.3pi;H(ejw)=0,0.3pi<w<pi.(2)带通滤波器的技术指标:H(ejw=0,0<w<0.4pi;H(ejw)=1;0.4pi<w<0.6pi;H(ejw)=0,0.6<w<pi;(3)高通滤波器的技术指标:H(ejw)=0,0<w<0.7pi;H(ejw)=1,0.7pi<w<pi.(4)带阻滤波器的技术指标:H(ejw)=1,0<w<0.3pi;H(ejw)=0;0.3pi<w<0.7pi;H(ejw)=1,0.7<w<pi;低通采样定理实验1.1 实验目的1.了解数字信号处理系统的一般构成;2.掌握奈奎斯特抽样定理。

1.2 实验仪器1.YBLD智能综合信号源测试仪1台2.双踪示波器1台3.MCOM-TG305数字信号处理与现代通信技术实验箱1台4.PC机(装有MATLAB、MCOM-TG305配套实验软件)1台1.3 实验原理一个典型的DSP系统除了数字信号处理部分外,还包括A/D和D/A两部分。

这是因为自然界的信号,如声音、图像等大多是模拟信号,因此需要将其数字化后进行数字信号处理,模拟信号的数字化即称为A/D转换。

基于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滤波器的简要步骤和代码示例。

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

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滤波器对音频信号进行去噪处理,或者对图像进行锐化处理等。

基于MATLAB的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低通,高通,带通,带阻滤波器设计

北京师范大学课程设计报告课程名称: DSP设计名称:FIR 低通、高通带通和带阻数字滤波器的设计姓名:学号:班级:指导教师:起止日期:课程设计任务书学生班级: 学生姓名: 学号:设计名称: FIR 低通、高通带通和带阻数字滤波器的设计 起止日期: 指导教师:设计目标:1、采用Kaiser 窗设计一个低通FIR 滤波器 要求:采样频率为8kHz ;通带:0Hz~1kHz ,带内波动小于5%; 阻带:1.5kHz ,带内最小衰减:Rs=40dB 。

2、采用hamming 窗设计一个高通FIR 滤波器 要求:通带截至频率wp=rad π6.0, 阻带截止频率ws=rad π4.0,通带最大衰减dB p 25.0=α,阻带最小衰减dB s 50=α3、采用hamming 设计一个带通滤波器低端阻带截止频率 wls = 0.2*pi ;低端通带截止频率 wlp = 0.35*pi ; 高端通带截止频率 whp = 0.65*pi ; 高端阻带截止频率 whs = 0.8*pi ;4、采用Hamming 窗设计一个带阻FIR 滤波器 要求:通带:0.35pi~0.65pi ,带内最小衰减Rs=50dB ; 阻带:0~0.2pi 和0.8pi~pi ,带内最大衰减:Rp=1dB 。

FIR 低通、高通带通和带阻数字滤波器的设计 一、 设计目的和意义1、熟练掌握使用窗函数的设计滤波器的方法,学会设计低通、带通、带阻滤波器。

2、通过对滤波器的设计,了解几种窗函数的性能,学会针对不同的指标选择不同的窗函数。

二、 设计原理一般,设计线性相位FIR 数字滤波器采用窗函数法或频率抽样法,本设计采用窗函数法,分别采用海明窗和凯泽窗设计带通、带阻和低通。

如果所希望的滤波器的理想频率响应函数为)(jw d e H ,如理想的低通,由信号系统的知识知道,在时域系统的冲击响应h d (n)将是无限长的,如图2、图3所示。

H d (w)-w c w c图2图3若时域响应是无限长的,则不可能实现,因此需要对其截断,即设计一个FIR 滤波器频率响应∑-=-=10)()(N n jwn jwe n h e H 来逼近)(jw d e H ,即用一个窗函数w(n)来截断h d (n),如式3所示:)()()(n w n h n h d =(式1)。

matlab 信号过fir数字滤波器设计

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. 应用滤波器将得到的滤波器系数应用到需要滤波的信号上,即可得到滤波后的信号。

Matlab实现数字FIR的高通、带通、低通、带阻滤波器的程序

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(221)stem(n,hd)title('理想单位脉冲响应hd(n)')subplot(222)stem(n,w_han)title('汉宁窗w(n)')subplot(223)stem(n,h)title('实际单位脉冲响应hd(n)')subplot(224)plot(w/pi,db)title('幅度响应(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(221)stem(n,hd)title('理想单位脉冲响应hd(n)')subplot(222)stem(n,w_han)title('汉宁窗w(n)')subplot(223)stem(n,h)title('实际单位脉冲响应hd(n)')subplot(224)plot(w/pi,db)title('幅度响应(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(211)stem(b,'.');grid;title('切比雪夫逼近滤波器的抽样值')subplot(212)plot(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(221)stem(n,hd)title('理想单位脉冲响应hd(n)')subplot(222)stem(n,w_hann)title('汉宁窗w(n)')subplot(223)stem(n,h)title('实际单位脉冲响应hd(n)')subplot(224)plot(w/pi,db)title('幅度响应(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(221)stem(n,hd)title('理想单位脉冲响应hd(n)')subplot(222)stem(n,w_tri)title('三角窗w(n)')subplot(223)stem(n,h)title('实际单位脉冲响应hd(n)')。

MATLAB窗函数法实现FIR的高通-带通和低通滤波器的程序要点

MATLAB窗函数法实现FIR的高通-带通和低通滤波器的程序要点

MATLAB课程设计报告学院:地球物理与石油资源学院班级: 测井(基)11001姓名:大牛啊啊啊学号:班内编号:指导教师: 陈义群完成日期: 2013年6月3日一、 题目 FIR 滤波器的窗函数设计法及性能比较1. FI R滤波器简介数字滤波器是一种用来过滤时间离散信号的数字系统,通过对抽样数据进行数学处理来达到频域滤波的目的。

根据其单位冲激响应函数的时域特性可分为两类:无限冲激响应(IIR)滤波器和有限冲激响应(FIR)滤波器。

与I IR滤波器相比,FIR 滤波器的主要特点为: a. 线性相位;b.非递归运算。

2. FIR滤波器的设计FIR 滤波器的设计方法主要有三种:a.窗函数设计法;b.频率抽样发;c.最小平法抽样法; 这里我主要讨论在MA TLAB 环境下通过调用信号分析与处理工具箱的几类窗函数来设计滤波器并分析与比较其性能。

窗函数法设计F IR 滤波器的一般步骤如下:a. 根据实际问题确定要设计的滤波器类型;b. 根据给定的技术指标,确定期望滤波器的理想频率特性;c. 求期望滤波器的单位脉冲响应;d. 求数字滤波器的单位脉冲响应;e. 应用。

常用的窗函数有同。

时与布莱克曼窗结果相当时与海明窗结果相同;时与矩形窗一致;当当885.84414.50]!)2/([1)(120===+=∑∞=x x x m x x I m m4. 常用窗函数的参数函数,可定义为是零阶式中Bessel x I n R I N n I n w windowKaiser n R N n N n n w windowBalckm an n R N n n w windowHam m ing n R N n n w windowHanning N N N N )()5.2.9()(])(})]1/(2[1{[)()4()4.2.9()()]14cos(08.0)12cos(5.042.0[)()3()3.2.9()()]12cos(46.054.0[)()2()2.2.9()()]1cos(5.05.0[)()1(0020ββππππ--=-+--=--=--=5.FIR滤波器的MATLAB实现方式在MATLAB信号分析与处理工具箱中提供了大量FIR窗函数的设计函数,本次用到主要有以下几种:hanning(N) hanning窗函数的调用hamming(N) hamming窗函数的调用blackman(N) blackman窗函数的调用kaiser(n+1,beta) kaiser窗函数的调用kaiserord 计算kaiser窗函数的相关参数freqz求取频率响应filter 对信号进行滤波的函数6.实验具体步骤本次实验分别通过调用hanning ,hamming ,Blackman,kaiser窗函数,给以相同的技术参数,来设计低通,带通,高通滤波器,用上述窗函数的选择标准来比较各种窗函数的优劣,并给以一个简谐波进行滤波处理,比较滤波前后的效果。

MATLAB FIR滤波器

MATLAB FIR滤波器

Matlab中,函数fir1()和fir2()利用加窗傅里叶级数法设计FIR滤波器。

函数fir1()用来设计传统的LP(低通)、HP(高通)、BP(带通)、BS(带阻)和多频带FIR滤波器;而函数fir2()用来设计具有任意幅度响应的的FIR滤波器。

一、函数fir1的各种形式如下:b= fir1(N,Wn)b= fir1(N,Wn,'ftype')b= fir1(N,Wn,window)b= fir1(N,Wn,'ftype',window)b= fir1(...,'normalization')其中,1、N为滤波器节点个数;2、Wn(0<Wn<1)为归一化截止频率;3、ftype为滤波器类型(默认(缺省时)是low):•'high' for a highpass filter with cutoff frequency Wn.•'stop' for a bandstop filter, if Wn = [w1 w2]. The stopband frequency range is specified by this interval.•'DC-1' to make the first band of a multiband filter a passband.•'DC-0' to make the first band of a multiband filter a stopband.4、window为所加窗的类型(默认的是hamming窗),e.g hamming、chebwin、blackman、hanning、kaiser等。

5、normalization为是否将滤波器的幅度进行归一化:•'scale' (default): Normalize the filter so that the magnitude response of the filter at the center frequency of the passband is 0 dB.•'noscale': Do not normalize the filter.fir1()举例:设计一个低通滤波器二、函数fir2的各种形式如下:b = fir2(n,f,m)b = fir2(n,f,m,window)b = fir2(n,f,m,npt)b = fir2(n,f,m,npt,window)b = fir2(n,f,m,npt,lap)b = fir2(n,f,m,npt,lap,window)其中,向量f是指定频率点的幅度响应样本,与m定义的幅度响应样本对应;f和m具有相同的长度,并且f的第一个和最后一个分量分别是0和1;可以对f中的频点进行复制,从而跳变地逼近幅度响应指标。

基于MATLAB设计FIR滤波器

基于MATLAB设计FIR滤波器

目录摘要 (I)Abstract (II)第一章引言 (1)1.1课题背景 (1)1.2 课题研究的现状与前沿 (1)1.3 本课题主要研究内容 (2)第二章基本原理概念 (3)2.1 数字滤波器简介 (3)2.2 MATLAB简介 (4)2.2.1 MATLAB系统的功能及特点 (4)2.2.2 MATLAB的发展 (4)第三章 FIR数字滤波器的原理与设计 (6)3.1 FIR数字滤波器的结构特点 (6)3.2 FIR的线性相位特性 (7)3.3 FIR数字滤波器设计的基本步骤 (7)3.4 FIR数字滤波器的设计方法 (8)3.4.1 频率取样法 (8)3.4.2 FIR滤波器的最优化方法 (9)3.4.3 窗函数法 (12)3.3.4 三种设计方法的比较 (12)第四章窗函数设计 (13)4.1 窗函数设计法的基本原理 (13)4.1.1 窗函数的理论根据 (13)4.1.2 常用窗函数 (14)4.1.3 MATLAB方法 (16)4.2 窗函数设计法的步骤 (17)第五章利用窗函数设计给定参数的FIR滤波器 (19)第六章结论分析 (22)参考文献 (24)致谢 .................................................................................................... 错误!未定义书签。

附录程序清单. (25)基于MATLAB的窗函数法设计FIR滤波器摘要:数字滤波是数字信号处理中一个非常重要且应用普遍的技术。

FIR数字滤波器因其严格的线性相位等优点得到了广泛应用。

MATLAB是国际控制界的标准计算软件。

本文根据FIR数字滤波器设计的基本原理,介绍了窗函数,分析了数字滤波器的设计方法,对基于窗函数设计的FIR滤波器的特性进行了分析。

分别采用Hanning窗、Hamming窗、Blackman窗和Kaiser窗,利用MATLAB语言设计数字FIR低通滤波器并给出了实验结果,达到了性能指标要求,引入了MATLAB工具软件进行设计。

matlab的fir滤波器设计

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. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于matlab的FIR低通-高通-带通-带阻滤波器设计————————————————————————————————作者:————————————————————————————————日期:北京师范大学课程设计报告课程名称: DSP设计名称:FIR 低通、高通带通和带阻数字滤波器的设计姓名:学号:班级:指导教师:起止日期:课程设计任务书学生班级: 学生姓名: 学号:设计名称: FIR 低通、高通带通和带阻数字滤波器的设计 起止日期: 指导教师:设计目标:1、采用Kaiser 窗设计一个低通FIR 滤波器 要求:采样频率为8kHz ;通带:0Hz~1kHz ,带内波动小于5%; 阻带:1.5kHz ,带内最小衰减:Rs=40dB 。

2、采用hamming 窗设计一个高通FIR 滤波器 要求:通带截至频率wp=rad π6.0, 阻带截止频率ws=rad π4.0,通带最大衰减dB p 25.0=α,阻带最小衰减dB s 50=α3、采用hamming 设计一个带通滤波器低端阻带截止频率 wls = 0.2*pi ;低端通带截止频率 wlp = 0.35*pi ; 高端通带截止频率 whp = 0.65*pi ; 高端阻带截止频率 whs = 0.8*pi ;4、采用Hamming 窗设计一个带阻FIR 滤波器 要求:通带:0.35pi~0.65pi ,带内最小衰减Rs=50dB ; 阻带:0~0.2pi 和0.8pi~pi ,带内最大衰减:Rp=1dB 。

FIR 低通、高通带通和带阻数字滤波器的设计 一、 设计目的和意义1、熟练掌握使用窗函数的设计滤波器的方法,学会设计低通、带通、带阻滤波器。

2、通过对滤波器的设计,了解几种窗函数的性能,学会针对不同的指标选择不同的窗函数。

二、 设计原理一般,设计线性相位FIR 数字滤波器采用窗函数法或频率抽样法,本设计采用窗函数法,分别采用海明窗和凯泽窗设计带通、带阻和低通。

如果所希望的滤波器的理想频率响应函数为)(jw d e H ,如理想的低通,由信号系统的知识知道,在时域系统的冲击响应h d (n)将是无限长的,如图2、图3所示。

H d (w)-w c w c图2图3若时域响应是无限长的,则不可能实现,因此需要对其截断,即设计一个FIR 滤波器频率响应∑-=-=10)()(N n jwn jwe n h e H 来逼近)(jw d e H ,即用一个窗函数w(n)来截断h d (n),如式3所示:)()()(n w n h n h d =(式1)。

最简单的截断方法是矩形窗,实际操作中,直接取h d (n)的主要数据即可。

)(n h 作为实际设计的FIR 数字滤波器的单位脉冲响应序列,其频率响应函数为:∑-=-=10)()(N n jwn jwe n h e H(式2)令jw e z =,则∑-=-=10)()(N n n z n h z H(式3),式中,N 为所选窗函数)(n w 的长度。

如果要求线性相位特性,)(n h 还必须满足:)1()(n N h n h --±= (式6),根据式6中的正、负和长度N 的奇偶性又将线性相位FIR 滤波器分成四类。

要根据所设计的滤波器特性正确选择其中一类。

例如:要设计线性相位低通特性,可选择)1()(n N h n h --=类。

三、 详细设计步骤s S f T Ω=Ω=ω(公式4)表1窗函数过滤带宽/(2π/N )阻带最小带宽海明窗3.3-53凯泽窗5-801、采用Kaiser 窗设计一个低通FIR 滤波器要求:采样频率为8kHz ;通带:0Hz~1kHz ,带内波动小于5%; 阻带:1.5kHz ,带内最小衰减:Rs=40dB思路分析:根据公式4可以得到通带截止频率p ω为0.25π,阻带截止频率s ω为0.375π。

根据表1可算得ωπ∆=10N ,则凯泽窗的时域表达式可以通过n ω=kaiser(N)得到。

低通滤波器的时域表达式是()()()()∂-∂-=n pi n n h dn ωsin ,其中∂应该关于21-N 对称。

这样,滤波器就得到了为:()()n dn d n h n h ω=。

最后利用函数freqz 得到加窗后的滤波器的幅频响应和相频响应。

2、采用Hamming 窗设计一个高通线性相位FIR 滤波器要求:设计用窗函数法设计线性相位高通滤波器,要求截至频率wp=rad π6.0,阻带截止频率ws=rad π4.0,通带最大衰减dB p 25.0=α,阻带最小衰减dB s 50=α。

有如下公式计算高通滤波器的通带截止频率以及阻带截止频率:s p p F f w /2π= (1)s s s F f w /2π= (2))1(log 2010p P δα+= (3)s s δα10log 20-= (4)分析:根据设计要求给出的高通滤波器的性能指标以及(1) (2) (3) (4)公式计算得出该高通滤波器性能指标的另一种表示为:通带偏差 =p δ0.0292 阻带偏差 =s δ0.0032 通带边沿频率 =p f 1000 KHZ 阻带边沿频率 =s f 600 KHZ选择窗函数W(n),计算窗函数长度N ,由已知条件知:阻带最小衰减dB s 40=α参照表(1)可知汉宁窗和哈明窗都满足要求。

我选择的窗函数是汉宁窗。

过渡带宽度π2.0=-≤s p t w w B 汉宁窗的精确过度带宽N B t /2.6π= 故要求ππ2.0)/2.6(≤=N B t ,解得:31≥N又根据前面分析的四种类型的FIR 滤波器的可知,对于高通滤波器,N 必须取奇数, 故 N=31与汉宁窗函数的可以得知 )()]12cos(1[5.0)(31n R nn w π-=3、采用Hamming 窗设计一个带通线性相位FIR 滤波器要求:低端阻带截止频率 wls = 0.2*pi ;低端通带截止频率 wlp = 0.35*pi ; 高端通带截止频率 whp = 0.65*pi ;高端阻带截止频率 whs = 0.8*pi ;思路分析:由条件可知通带为0.3pi,由通带大小可设计滤波器。

这样,滤波器就得到了为:()()n dn n dn d h n h n h ωω21+=。

最后利用函数freqz 得到加窗后的滤波器的幅频响应和相频响应。

4、采用Hamming 窗设计一个带阻FIR 滤波器要求:阻带:0.35pi~0.65pi ,带内最小衰减Rs=50dB ; 通带:0~0.2pi 和0.8pi~pi ,带内最大衰减:Rp=1dB思路分析:根据要求知阻带截止频率s ω分别为0.35π,π65.0。

通带截止频率为0.2π和0.8π。

.根据表1可算得ωπ∆=6.6N ,则海明窗的时域表达式可以通过n ω=hamming(N)得到。

带阻滤波器可以看成是高通加低通。

它的时域表达式是()()()()()()()()()()∂-∂-+∂-∂--∂-∂-=n pi n n pi n n pi n n h l h dn ωωπsin sin sin ,其中∂应该关于21-N 对称。

这样,滤波器就得到了为:()()n dn d n h n h ω=。

最后利用函数freqz 得到加窗后的滤波器的幅频响应和相频响应。

附程序:%子函数,产生理想滤波器的时域波形function hd=ideal(w,N);%1,2型理想低通滤波器单位单位脉冲响应hd(n),w 为窗口长度,N 为截止频率% alpha=(N-1)/2; n=[0:N-1];m=n-alpha+eps;%加一个小数以避免零作除数 hd=sin(w*m)./(pi*m);四 程序代码1、低通FIR 滤波器: % 采样频率为8kHz ;% 通带:0Hz~1kHz,带内波动小于5%;wp=0.、25pi% 阻带:1.5kHz,带内最小衰减:Rs=40dB。

wst=0.375pi%clcclearRs=40;Wp=0.25*pi; %根据通带:0Hz~1kHz,带内波动小于5%;得wp=0.125piWst=0.375*pi; % 阻带:1.5kHz,带内最小衰减:Rs=40dB。

得wst=0.1875pidert_w=Wst-Wp;% N=ceil((Rs-7.95)*2*pi/(14.36*dert_w)+1);N=ceil((10*pi/dert_w)+1);beta=0.5842*(Rs-21)^0.4+0.07886*(Rs-21);hd=ideal((Wst-Wp)/2,N); %滤波器在时域系统的冲击响应B=kaiser(N,beta); %凯泽窗h=hd.*(B)'; %加窗后[H,m]=freqz(h,[1],1024,'whole'); %获取频率响应mag=abs(H); %幅值db=20*log10((mag+eps)/max(mag)); %分贝数pha=angle(H); %相位%绘图w=m/pifigure(1);subplot(2,2,1);stem(hd);xlabel('n');ylabel('hd');title('滤波器时域');subplot(2,2,2);plot(w,mag);xlabel('w');ylabel('h');title('加窗后幅度响应');subplot(2,2,3);plot(w,db);xlabel('w');ylabel('db');title('分贝数');axis([0 1 -100 0]);subplot(2,2,4);plot(w,pha);%实际低通滤波器单位脉冲响应xlabel('w');ylabel('相位');title('相频响应');axis([0 1 -4 4]);2:高通滤波器设计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(2,2,1),stem(n,hd)title('理想单位脉冲响应hd(n)')subplot(2,2,2)stem(n,w_han)title('汉宁窗w(n)')subplot(2,2,3)stem(n,h)title('实际单位脉冲响应h(n)')subplot(2,2,4)plot(w/pi,db)title('幅度相应(db)')axis([0,1,-100,10])3:带通滤波器设计wls = 0.2*pi;wlp = 0.35*pi;whp = 0.65*pi;wc = [wlp/pi,whp/pi];B = wlp-wls;N = ceil(8/0.15);n=0:N-1;window= hanning(N);[h1,w]=freqz(window,1);figure(1);stem(window);axis([0 60 0 1.2]);grid;xlabel('n');title('Hanning窗函数');figure(2);plot(w/pi,20*log(abs(h1)/abs(h1(1)))); axis([0 1 -350 0]);grid;xlabel('w/pi');ylabel('幅度(dB)');title('Hanning窗函数的频谱');hn = fir1(N-1,wc, hanning (N));[h2,w]=freqz(hn,1,512);figure(3);stem(n,hn);axis([0 60 -0.25 0.25]);grid;xlabel('n');ylabel('h(n)');title(‘Hanning窗函数的单位脉冲响应’); figure(4);plot(w/pi,20*log(abs(h2)/abs(h2(1)))); grid;xlabel('w/pi');ylabel('幅度(dB)');4.带阻滤波器设计% 采用Hamming窗设计一个带阻FIR滤波器% 要求:% 阻带:0.35pi~0.65pi,带内最小衰减Rs=50dB;% 通带:0~0.2pi和0.8pi~pi,带内最大衰减:Rp=1dB。

相关文档
最新文档