基于matlab的FIR低通高通带通带阻滤波器设计
- 格式:docx
- 大小:186.53 KB
- 文档页数:14
MATLAB窗函数法实现FIR的高通,带通和低通滤波器的程序MATLAB 学院:地球物理与石油资源学院班级:姓名:学号:班内编号:指导教师:完成日期:测井11001大牛啊啊啊陈义群2013年6月3日课程设计报告一、题目FIR滤波器的窗函数设计法及性能比较 1. FIR滤波器简介数字滤波器是一种用来过滤时间离散信号的数字系统,通过对抽样数据进行数学处理来达到频域滤波的目的。
根据其单位冲激响应函数的时域特性可分为两类:无限冲激响应滤波器和有限冲激响应滤波器。
与IIR滤波器相比,FIR滤波器的主要特点为: a. 线性相位;b.非递归运算。
2. FIR 滤波器的设计FIR滤波器的设计方法主要有三种:a.窗函数设计法;b.频率抽样发;c.最小平法抽样法;这里我主要讨论在MATLAB环境下通过调用信号分析与处理工具箱的几类窗函数来设计滤波器并分析与比较其性能。
窗函数法设计FIR滤波器的一般步骤如下: a. 根据实际问题确定要设计的滤波器类型; b. 根据给定的技术指标,确定期望滤波器的理想频率特性;c. 求期望滤波器的单位脉冲响应;d. 求数字滤波器的单位脉冲响应; e. 应用。
常用的窗函数有(1)Hanningwindoww(n)?[?((2)Hammingw indoww(n)?[?((3)Balckmanwindoww(n)?[ ?((4)KaiserwindowI0{?1?[2n/(N?1)]2}w(n )?RN(n)I0(?)式中I0(x)是零阶Bessel函数,可定义为()2?n4?n)?()]RN(n)N?1N?1()2?n)]RN(n)N ?1() ?nN?1)]RN(n)() (x/2)m2I0(x)?1??m!m?1? 当x?0时与矩形窗一致;当x?时与海明窗结果相同;当x?时与布莱克曼窗结果相同。
3.窗函数的选择标准 1. 较低的旁瓣幅度,尤其是第一旁瓣; 2. 旁瓣幅度要下降得快,以利于增加阻带衰减;3. 主瓣宽度要窄,这样滤波器过渡带较窄。
使⽤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滤波器有多种方法,其中最常用的是窗函数法和最小二乘法。
窗函数法是基于理想滤波器的幅频响应,在频域上与希望的滤波器响应相乘的方式得到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函数将滤波器应用于信号中。
北京师范大学课程设计报告课程名称: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 滤波器分成四类。
抽样频率为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滤波器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滤波器(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滤波器对音频信号进行去噪处理,或者对图像进行锐化处理等。
北京师范大学课程设计报告课程名称: 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滤波器设计姓名:何其兵杨冰清岳裕旭学号:20124055066 2012405506720124055068专业:通信工程(物联网方向)年级:2012级指导教师:雷可君2015年11 月一、项目介绍与设计目的1.项目介绍FIR数字滤波器的设计方法有很多,比较常用的有窗函数设计法、频率采样设计法、等波纹逼近法等。
本课题通过运用窗函数设计FIR数字低通滤波器,并实现对给定的信号进行滤波。
窗函数设计法是最基本的数字滤波方法,是利用傅里叶反变换(IDTFT)计算给定的频响的理想单位脉冲响应,再加以窗函数进行截断和平滑[2]。
Matlab软件的信号处理工具箱提供了FIR数字滤波器设计的子函数,运用Matlab软件设计可以避免繁杂的数学运算,而且具有丰富的绘图功能,可以方便地查看所设计的数字滤波器的幅度响应和相位响应是否满足设计要求。
因此,本课题在理论分析各种FIR数字滤波器设计方法的基础上,运用Matlab软件进行仿真分析。
随着信息科学和计算机技术的不断发展,数字信号处理(DSP,Digital Signal Processing)的理论和技术也得到了飞速的发展,并逐渐成为一门重要的学科,它的重要性在日常通信、图像处理、遥感、声纳、生物医学、地震、消费电子、国防军事、医疗方面等显得尤为突出。
在我们面临的信息革命中,数字信号处理几乎涉及了所有的工程技术领域[1]。
2.设计目的(1)增进对MATLAB的认识,加深对数字信号处理理论方面的理解;(2)掌握数字信号处理中IIR和FIR滤波器的设计;(3)了解和掌握用MATLAB实现IIR和FIR滤波器的设计方法、过程,为以后的设计打下良好基础。
二、设计方案1.项目环境要求MATLAB 7.0一台PC2.设计目的(1)增进对MATLAB的认识,加深对数字信号处理理论方面的理解;(2)掌握数字信号处理中IIR和FIR滤波器的设计;(3)了解和掌握用MATLAB实现IIR和FIR滤波器的设计方法、过程,为以后的设计打下良好基础。
Matlab技术滤波器设计方法引言:滤波器在信号处理中起到了至关重要的作用,广泛应用于音频处理、图像处理、通信系统等领域。
Matlab是一款功能强大的数学软件,为我们提供了丰富的工具和函数来进行滤波器设计和分析。
本文将介绍几种常用的Matlab技术滤波器设计方法,并探讨它们的优缺点及适用范围。
一、FIR滤波器设计FIR(Finite Impulse Response)滤波器是一种常见且重要的数字滤波器。
它的设计基于一组有限长度的冲激响应。
Matlab提供了多种设计FIR滤波器的函数,例如fir1、fir2和firpm等。
其中,fir1函数采用窗函数的方法设计低通、高通、带通和带阻滤波器。
在使用fir1函数时,我们需要指定滤波器的阶数和截止频率。
阶数的选择直接影响了滤波器的性能,阶数越高,滤波器的频率响应越陡峭。
截止频率用于控制滤波器的通带或阻带频率范围。
FIR滤波器的优点是相对简单易用,具有线性相位特性,不会引入相位失真。
然而,FIR滤波器的计算复杂度较高,对阶数的选择也需要一定的经验和调试。
二、IIR滤波器设计IIR(Infinite Impulse Response)滤波器是另一种常见的数字滤波器。
与FIR滤波器不同,IIR滤波器的冲激响应为无限长,可以实现更复杂的频率响应。
Matlab提供了多种设计IIR滤波器的函数,例如butter、cheby1和ellip等。
这些函数基于不同的设计方法,如巴特沃斯(Butterworth)设计、切比雪夫(Chebyshev)设计和椭圆(Elliptic)设计。
使用这些函数时,我们需要指定滤波器的类型、阶数和截止频率等参数。
与FIR滤波器类似,阶数的选择影响滤波器的性能,而截止频率用于控制通带或阻带的频率范围。
相比于FIR滤波器,IIR滤波器具有更低的计算复杂度,尤其在高阶滤波器的设计中表现出更好的性能。
然而,IIR滤波器的非线性相位特性可能引入相位失真,并且不易以线性常态方式实现。
基于m a t l a b的F I R低通高通带通带阻滤波器设计Pleasure Group Office【T985AB-B866SYT-B182C-BS682T-STT18】北京师范大学课程设计报告课程名称: DSP设计名称:FIR 低通、高通带通和带阻数字滤波器的设计姓名:学号:班级:指导教师:起止日期:课程设计任务书学生班级:学生姓名:学号:设计名称: FIR 低通、高通带通和带阻数字滤波器的设计起止日期:指导教师:一、设计目的和意义1、熟练掌握使用窗函数的设计滤波器的方法,学会设计低通、带通、带阻滤波器。
2、通过对滤波器的设计,了解几种窗函数的性能,学会针对不同的指标选择不同的窗函数。
二、设计原理一般,设计线性相位FIR数字滤波器采用窗函数法或频率抽样法,本设计采用窗函数法,分别采用海明窗和凯泽窗设计带通、带阻和低通。
如果所希望的滤波器的理想频率响应函数为)(jw d e H ,如理想的低通,由信号系统的知识知道,在时域系统的冲击响应h d (n)将是无限长的,如图2、图3所示。
图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)表11、采用Kaiser 窗设计一个低通FIR 滤波器要求:采样频率为8kHz ;通带:0Hz~1kHz ,带内波动小于5%;阻带:,带内最小衰减:Rs=40dB思路分析:根据公式4可以得到通带截止频率p ω为π,阻带截止频率s ω为π。
根据表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 δ阻带偏差 =s δ通带边沿频率 =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 n n w π-= 3、采用Hamming 窗设计一个带通线性相位FIR 滤波器要求:低端阻带截止频率 wls = *pi ;低端通带截止频率 wlp = *pi ;高端通带截止频率 whp = *pi ;高端阻带截止频率 whs = *pi ;思路分析:由条件可知通带为,由通带大小可设计滤波器。
这样,滤波器就得到了为:()()n dn n dn d h n h n h ωω21+=。
最后利用函数freqz 得到加窗后的滤波器的幅频响应和相频响应。
4、采用Hamming 窗设计一个带阻FIR 滤波器要求:阻带:~,带内最小衰减Rs=50dB ;通带:0~和~pi ,带内最大衰减:Rp=1dB思路分析:根据要求知阻带截止频率s ω分别为π,π65.0。
通带截止频率为π和π。
.根据表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% 阻带:,带内最小衰减:Rs=40dB。
wst=%clcclearRs=40;Wp=*pi; %根据通带:0Hz~1kHz,带内波动小于5%;得 wp= Wst=*pi; % 阻带:,带内最小衰减:Rs=40dB。
得wst=dert_w=Wst-Wp;% N=ceil(*2*pi/*dert_w)+1);N=ceil((10*pi/dert_w)+1);beta=*(Rs-21)^+*(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=*pi;ws=*pi;tr_width=wp-ws;N=ceil*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 = *pi;wlp = *pi;whp = *pi;wc = [wlp/pi,whp/pi];B = wlp-wls;N = ceil(8/;n=0:N-1;window= hanning(N);[h1,w]=freqz(window,1);figure(1);stem(window);axis([0 60 0 ]);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 ]);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滤波器% 要求:% 阻带:~,带内最小衰减Rs=50dB;% 通带:0~和~pi,带内最大衰减:Rp=1dB。