带通滤波器matlab设计
- 格式:docx
- 大小:37.19 KB
- 文档页数:4
matlabfir滤波器设计MATLAB是一个高级编程语言和交互式环境,被广泛应用于各种科学和工程问题的数值分析、数据可视化和编程开发等领域。
FIR滤波器是数字信号处理中经常使用的一种滤波器,它是基于有限长冲激响应的滤波器。
在MATLAB平台上,我们可以使用fir1函数来设计FIR滤波器。
一、FIR滤波器设计基础1.1 什么是FIR滤波器FIR滤波器是有限长冲激响应滤波器,由于其具有线性相位特性和可控阶数等优点,在数字信号处理中得到了广泛的应用。
一般来说,FIR滤波器的频率响应特性由滤波器的系数函数确定。
FIR滤波器的设计一般采用窗函数法、最小二乘法、频率抽取法等方法。
窗函数法是最常见的一种方法,大部分情况下选择的是矩形窗、汉宁窗、布莱克曼窗等。
1.3 fir1函数介绍fir1函数是MATLAB中用于FIR滤波器设计的函数,用法为:h = fir1(N, Wn, type)N为滤波器的阶数,Wn是用于指定滤波器截止频率的参数,type指定滤波器类型,可以是低通、高通、带通、带阻等。
二、使用fir1函数设计FIR滤波器2.1 设计要求采样率为300Hz;滤波器阶数为50;截止频率为50Hz。
2.2 实现步骤(1)计算规范化截止频率规范化截止频率是指在数字滤波器设计中使用的无单位量,通常范围为0到1。
在本例中,我们需要将50Hz的截止频率转化为规范化截止频率。
Wn = 2*50/300 = 1/3根据计算出的规范化截止频率和滤波器阶数,我们可以使用fir1函数来进行滤波器设计。
此处滤波器的阶数为50,规范化截止频率为1/3,类型为低通。
(3)绘制滤波器的幅频响应图为了验证设计的低通FIR滤波器是否符合要求,我们需要绘制其幅频响应图。
freqz(h,1,1024,300)经过上述步骤后,我们就得到了一张低通FIR滤波器的幅频响应图,如下图所示:图1.低通FIR滤波器的幅频响应图三、总结通过上述例子,我们可以看出在MATLAB中与fir1函数可以非常方便的进行FIR滤波器的设计。
一、概述Matlab是一个流行的科学计算软件,其中包含了许多用于数字信号处理的工具箱。
滤波器设计是数字信号处理中的重要部分,Matlab提供了丰富的滤波器设计指令和函数,方便用户设计各种类型的滤波器。
二、滤波器设计类型在Matlab中,可以设计各种类型的滤波器,包括低通滤波器、高通滤波器、带通滤波器、带阻滤波器等。
用户可以根据自己的需要,选择合适的滤波器类型进行设计。
三、滤波器设计指令Matlab提供了许多用于滤波器设计的指令和函数,常用的包括:fir1、fir2、firls、firpm、iirfilter等。
这些指令和函数可以根据用户给定的滤波器规格,自动生成滤波器的系数。
四、fir1指令fir1是Matlab中用于设计标准的低通、高通、带通和带阻FIR滤波器的函数。
其基本语法为:h = fir1(n, Wn, type)其中,n为滤波器的阶数;Wn为归一化的截止频率或者截止频率的一半;type为滤波器类型,可以是'high'、'low'、'stop'、'pass'等。
五、fir2指令fir2是Matlab中用于设计任意幅度频率特性的FIR滤波器的函数。
其基本语法为:b = fir2(n, f, a)其中,n为滤波器的阶数;f为频率的归一化值;a为频率点对应的幅度值。
六、firls指令firls是Matlab中用于最小二乘设计有限脉冲响应(FIR)滤波器的函数。
其基本语法为:h = firls(n, f, a)其中,n为滤波器的阶数;f为频率的归一化值;a为频率点对应的幅度值。
七、firpm指令firpm是Matlab中用于设计逼近线性相位的FIR滤波器的函数。
其基本语法为:b = firpm(n, f, a)其中,n为滤波器的阶数;f为频率的归一化值;a为频率点对应的幅度值。
八、iirfilter指令iirfilter是Matlab中用于设计无限脉冲响应(IIR)滤波器的函数。
[Matlab]切⽐雪夫Ⅰ型滤波器设计:低通、⾼通、带通和带阻切⽐雪夫Ⅰ型滤波器特点:1、幅度特性是在⼀个频带内(通带或阻带)范围内具有等波纹特性;2、Ⅰ型在通带范围内是等波纹的,在阻带范围内是单调的。
测试代码:% Cheby1Filter.m% 切⽐雪夫Ⅰ型滤波器的设计%clear;close all;clc;fs = 1000; %Hz 采样频率Ts = 1/fs;N = 1000; %序列长度t = (0:N-1)*Ts;delta_f = 1*fs/N;f1 = 50;f2 = 100;f3 = 200;f4 = 400;x1 = 2*0.5*sin(2*pi*f1*t);x2 = 2*0.5*sin(2*pi*f2*t);x3 = 2*0.5*sin(2*pi*f3*t);x4 = 2*0.5*sin(2*pi*f4*t);x = x1 + x2 + x3 + x4; %待处理信号由四个分量组成X = fftshift(abs(fft(x)))/N;X_angle = fftshift(angle(fft(x)));f = (-N/2:N/2-1)*delta_f;figure(1);subplot(3,1,1);plot(t,x);title('原信号');subplot(3,1,2);plot(f,X);grid on;title('原信号频谱幅度特性');subplot(3,1,3);plot(f,X_angle);title('原信号频谱相位特性');grid on;%设计⼀个切⽐雪夫低通滤波器,要求把50Hz的频率分量保留,其他分量滤掉wp = 55/(fs/2); %通带截⽌频率,取50~100中间的值,并对其归⼀化ws = 90/(fs/2); %阻带截⽌频率,取50~100中间的值,并对其归⼀化alpha_p = 3; %通带允许最⼤衰减为 dbalpha_s = 40;%阻带允许最⼩衰减为 db%获取阶数和截⽌频率[ N1 wc1 ] = cheb1ord( wp , ws , alpha_p , alpha_s);%获得转移函数系数[ b a ] = cheby1(N1,alpha_p,wc1,'low');%滤波filter_lp_s = filter(b,a,x);X_lp_s = fftshift(abs(fft(filter_lp_s)))/N;X_lp_s_angle = fftshift(angle(fft(filter_lp_s)));figure(2);freqz(b,a); %滤波器频谱特性figure(3);subplot(3,1,1);plot(t,filter_lp_s);grid on;title('低通滤波后时域图形');subplot(3,1,2);plot(f,X_lp_s);title('低通滤波后频域幅度特性');subplot(3,1,3);plot(f,X_lp_s_angle);title('低通滤波后频域相位特性');%设计⼀个⾼通滤波器,要求把400Hz的频率分量保留,其他分量滤掉wp = 350/(fs/2); %通带截⽌频率,取200~400中间的值,并对其归⼀化ws = 380/(fs/2); %阻带截⽌频率,取200~400中间的值,并对其归⼀化alpha_p = 3; %通带允许最⼤衰减为 dbalpha_s = 20;%阻带允许最⼩衰减为 db%获取阶数和截⽌频率[ N2 wc2 ] = cheb1ord( wp , ws , alpha_p , alpha_s);%获得转移函数系数[ b a ] = cheby1(N2,alpha_p,wc2,'high');%滤波filter_hp_s = filter(b,a,x);X_hp_s = fftshift(abs(fft(filter_hp_s)))/N;X_hp_s_angle = fftshift(angle(fft(filter_hp_s)));figure(4);freqz(b,a); %滤波器频谱特性figure(5);subplot(3,1,1);plot(t,filter_hp_s);grid on;title('⾼通滤波后时域图形');subplot(3,1,2);plot(f,X_hp_s);title('⾼通滤波后频域幅度特性');subplot(3,1,3);plot(f,X_hp_s_angle);title('⾼通滤波后频域相位特性');%设计⼀个带通滤波器,要求把50Hz和400Hz的频率分量滤掉,其他分量保留wp = [65 385 ] / (fs/2); %通带截⽌频率,50~100、200~400中间各取⼀个值,并对其归⼀化ws = [75 375 ] / (fs/2); %阻带截⽌频率,50~100、200~400中间各取⼀个值,并对其归⼀化alpha_p = 3; %通带允许最⼤衰减为 dbalpha_s = 20;%阻带允许最⼩衰减为 db%获取阶数和截⽌频率[ N3 wn ] = cheb1ord( wp , ws , alpha_p , alpha_s);%获得转移函数系数[ b a ] = cheby1(N3,alpha_p,wn,'bandpass');%滤波filter_bp_s = filter(b,a,x);X_bp_s = fftshift(abs(fft(filter_bp_s)))/N;X_bp_s_angle = fftshift(angle(fft(filter_bp_s)));figure(6);freqz(b,a); %滤波器频谱特性figure(7);subplot(3,1,1);plot(t,filter_bp_s);grid on;title('带通滤波后时域图形');subplot(3,1,2);plot(f,X_bp_s);title('带通滤波后频域幅度特性');subplot(3,1,3);plot(f,X_bp_s_angle);title('带通滤波后频域相位特性');%设计⼀个带阻滤波器,要求把50Hz和400Hz的频率分量保留,其他分量滤掉wp = [65 385 ] / (fs/2); %通带截⽌频率?,50~100、200~400中间各取⼀个值,并对其归⼀化ws = [75 375 ] / (fs/2); %阻带截⽌频率?,50~100、200~400中间各取⼀个值,并对其归⼀化alpha_p = 3; %通带允许最⼤衰减为 dbalpha_s = 20;%阻带允许最⼩衰减为 db%获取阶数和截⽌频率[ N4 wn ] = cheb1ord( wp , ws , alpha_p , alpha_s);%获得转移函数系数[ b a ] = cheby1(N4,alpha_p,wn,'stop');%滤波filter_bs_s = filter(b,a,x);X_bs_s = fftshift(abs(fft(filter_bs_s)))/N;X_bs_s_angle = fftshift(angle(fft(filter_bs_s)));figure(8);freqz(b,a); %滤波器频谱特性figure(9);subplot(3,1,1);plot(t,filter_bs_s);grid on;title('带阻滤波后时域图形');subplot(3,1,2);plot(f,X_bs_s);title('带阻滤波后频域幅度特性');subplot(3,1,3);plot(f,X_bs_s_angle);title('带阻滤波后频域相位特性');效果:原始信号:⽣成的低通滤波器和滤波后的效果:⽣成的⾼通滤波器和滤波后的结果:⽣成的带通滤波器和滤波后的结果:⽣成的带阻滤波器和滤波后的结果:。
北京师范大学课程设计报告课程名称: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 滤波器分成四类。
南华大学数字信号处理课程设计学院:电气工程学院学生姓名:刘梦尧专业班级:本电子091题目编号:0702设计题目:等波纹数字FIR带通滤波器起止时间:2012年12月26日至2013年1月11日****:***2013年1月11日2.对课程设计成果的要求〔包括图表(或实物)等硬件要求〕:滤波器的初始设计通过手工计算完成;在计算机辅助计算基础上分析滤波器结构对其性能指标的影响(至少选择两种以上合适的滤波器结构进行分析);在计算机辅助计算基础上分析滤波器参数的字长对其性能指标的影响;以上各项要有理论分析和推导、原程序以及表示计算结果的图表;课程设计结束时提交设计说明书。
3.主要参考文献:[1]高息全丁美玉.《数字信号处理》[M].西安:西安电子科技大学出版社,2008.8[2]陈怀琛.《数字信号处理教程——MATLAB释义与实现》[M].北京:电子工业出版社,2004.12[3]张德丰.《详解MATLAB数字信号处理》[M].北京:电子工业出版社,2010.6[4]飞思科技产品研发中心.《MATLAB7辅助信号处理技术与应用》[M].北京:电子工业出版社,2005.34.课程设计工作进度计划:序号起迄日期工作内容接到题目,搜集资料1 2012.12.26-2013.12.31整理资料,构思设计方案2 2012.12.31-2013.1.3手工计算进行滤波器的初步设计3 2013.1.3-2013.1.5完善初步设计,学习Matlab软件操作4 2013.1.5-2013.1.7通过Matlab软件分析设计内容,逐步落实课题目标5 2013.1.8-2013.1.9上交课程设计,并做细节修改并完成设计6 2013.1.10-2013.1.11主指导教师日期:年月日一 手工计算完成等波纹FIR 带通滤波器初始设计1.设计要求滤波器的设计指标要求为: ⑴阻带下截止频率rad e d sl i πω2.050⋅= ⑵通带下截止频率rad e d pl i πω3.050⋅= ⑶通带上截止频率rad e d pu i πω7.050⋅= ⑷阻带上截止频率rad e d i su πω8.050⋅= ⑸通带最大衰减dB a p 1= ⑹阻带最小衰减dB a s 60=其中d i 为学号的后两位,我的学号为20094470120,所以d i =20 由此计算性能指标得: ⑴阻带下截止频率:rad ed sl i πω2.050⋅==rad e π2.05020•=0.2984πrad⑵通带下截止频率:rad ed pl i πω3.050⋅==rad e π3.05020•=0.4475πrad⑶通带上截止频率:rad e d pu i πω7.050⋅==rad e π7.05020•=1.0443πrad⑷阻带上截止频率:rad ed i su πω8.050⋅==rad e π8.05020•=1.1935πrad⑸通带最大衰减:dB a p 1= ⑹阻带最小衰减:dB a s 60=2.手工计算设采样频率Fs=8000Hz ,由公式f =Fs/2πω可将截止频率的单位转换为Hz : ⑴6.1193=sl f Hz ⑵4.1790=pl f Hz ⑶6.4177=pu f Hz ⑷4.4774=su f Hz再将其除以采样频率Fs 转换为归一化频率: 阻带下截止频率:0.1492 通带下截止频率:0.2238 通带上截止频率:0.5222 阻带上截止频率:0.5968将dB a p 1=,dB a s 60=带入公式ξ1=(11020-pa )/(11020+pa ), ξ2=2010s a - 中:得ξ1=0.057501128,ξ2=0.001 由凯泽逼近n 的公式: n=f∆--6.1413lg 2021ξξ, Δf =πωω2ps - 求得ωs -ωp =(0.4475π-0.2984π)+(1.1935π-1.0443π)=0.2984π Δf = 0.1492 , n=543.在Matlab中利用REMEZ函数计算程序如下:f=[0.1492 0.2238 0.5222 0.5968];m=[0 1 0];rp=1;rs=60;dat1=(10^(rp/20)-1)/(10^(rp/20)+1);dat2=10^(-rs/20);rip=[dat2,dat1,dat2];[M,fo,mo,w]=remezord(f,m,rip); hn=remez(M,fo,mo,w); figure(1)freqz (hn);调用REMEZ函数进行运算的结果如图1和图2图1Remez函数运算结果图2 hn计算值(传递函数中分子各项前系数)由图1和图2可得:M为FIR数字滤波器阶数,hn长度N=M+1求得M=53,N=M+1=54通带振荡波纹幅度ξ1=dat1=0.0575阻带振荡波纹幅度ξ2=dat2=0.001误差加权函数W=[1,57.5011]传递函数中分子各项前系数hn见附录4.手工计算和利用REMEZ函数计算结果比较通过比较手工计算与运用Matlab中REMEZ函数计算结果可以发现,由手工计算得出的滤波器阶数N、通带振荡波纹幅度ξ1、阻带振荡波纹幅度ξ2与由REMEZ函数计算得出的N、ξ1与ξ2相等,证明计算无误。
毕业设计说明书中文摘要毕业设计说明书外文摘要1 绪论 (1)1.1 数字滤波器的优点 (2)1.2 数字滤波器的发展概况 (3)1.3 开发工具 (4)1.3.1 MATLAB软件简介 (4)1.3.2 MATLAB特点 (5)2 数字滤波器理论研究 (6)2.1 滤波器的设计 (6)2.2 数字滤波器的定义 (7)2.3 滤波器的设计步骤 (8)2.4 数字滤波器的类型 (8)2.5 滤波器的选择 (9)2.5.1 FIR和IIR数字滤波器的比较 (9)2.5.2 FIR或IIR滤波器的选取原则 (10)2.6 数字滤波器的实现方法 (10)3 IIR滤波器的设计 (11)3.1 数字滤波器 (11)3.2 IIR数字滤波器设计方法 (12)3.2.1用脉冲相应不变法设计IIR数字滤波器 (13)3.2.2 用双线性变换法设计IIR数字滤波器 (15)4 IIR数字带通滤波器设计过程 (18)4.1 设计步骤: (18)4.2 程序流程框图: (19)4.3 MATLAB程序: (19)结论 (22)参考文献 (23)致谢 (24)基于MATLAB的IIR数字带通滤波器设计1 绪论凡是有能力进行信号处理的装置都可以称为滤波器。
在近代电信设备和各类控制系统中,滤波器应用极为广泛;在所有的电子部件中,使用最多,技术最为复杂的要算滤波器了。
滤波器的优劣直接决定产品的优劣,所以,对滤波器的研究和生产历来为各国所重视。
1917年美国和德国科学家分别发明了LC滤波器,次年导致了美国第一个多路复用系统的出现。
20世纪50年代无源滤波器日趋成熟。
自60年代起由于计算机技术、集成工艺和材料工业的发展,滤波器发展上了一个新台阶,并且朝着低功耗、高精度、小体积、多功能、稳定可靠和价廉方向努力,其中小体积、多功能、高精度、稳定可靠成为70年代以后的主攻方向。
导致RC有源滤波器、数字滤波器、开关电容滤波器和电荷转移器等各种滤波器的飞速发展,到70年代后期,上述几种滤波器的单片集成已被研制出来并得到应用。
matlab 切比雪夫带通滤波器实现切比雪夫带通滤波器是一种数字滤波器,用于去除信号中的噪声和杂波。
该滤波器可以滤波信号的特定频率段内的噪声,并在此频率段外保留信号的有效信息。
本文将介绍matlab中如何实现切比雪夫带通滤波器。
切比雪夫带通滤波器是一种设计采用无限脉冲响应(IIR)数字滤波器的方法。
它是根据Chebyshev多项式来设计滤波器的,其设计目标是让通带中的波形误差最小化,同时让阻带的响应最大化。
切比雪夫带通滤波器的特征是在通带中有强烈的波纹条件,而在阻带中则有一定的振荡。
二、matlab实现在matlab中,实现切比雪夫带通滤波器需要用到cheby1函数。
cheby1函数的语法如下:[b,a] = cheby1(n,Rp,Wn)其中n是滤波器的阶数,Rp是通带最大衰减量,Wn是通带截止频率。
该函数的输出是滤波器的分子和分母系数。
以下是一个实现切比雪夫带通滤波器的例子:% 生成信号t = 0:0.001:1; % 采样时间f1 = 10; % 信号频率f2 = 50; % 基波频率x = sin(2*pi*f1*t) + 0.5*sin(2*pi*f2*t);% 设计滤波器fs = 1000; % 采样频率fcuts = [20,30]; % 通带截止频率Rp = 1; % 通带最大衰减量[n, Wn] = cheb1ord(fcuts/(fs/2), [25,30]/(fs/2), Rp); % 计算阶数和截止频率[b, a] = cheby1(n, Rp, Wn); % 设计滤波器% 滤波信号y = filter(b, a, x);% 绘制滤波器figurefreqz(b, a)% 绘制原始信号和滤波后的信号figureplot(t, x)hold onplot(t, y)legend('原始信号', '滤波后信号')在上面的例子中,我们首先生成了一个带有两个频率分量的信号,然后使用cheby1函数设计了一个通带在20Hz到30Hz之间的切比雪夫带通滤波器。
基于MATLAB的filter的使⽤,低通、带通和⾼通滤波器设计1、⽬的学习MATLAB的filter函数的使⽤,通过设计低通、带通和⾼通滤波器对其进⾏仿真2、⽤到的主要函数和⼯具MATLAB、FDATOOL、filter、fft3、设计1. 信号的产⽣%% Parameter InterfaceFrequence0 = 60; %单位:HzFrequence1 = 130; %单位:HzFrequence2 = 1e3; %单位:HzSampleFre = 4e3; %单位:HzSampleLen = SampleFre; %采样点数%% Main%-------------------产⽣三路信号t = 0:1/SampleLen:1/SampleFre*(SampleLen-1);SignalData0 = sin(2*pi*Frequence0*t);SignalData1 = sin(2*pi*Frequence1*t);SignalData2 = sin(2*pi*Frequence2*t);SignalData3 = SignalData0+SignalData1+SignalData2;figure;hold onplot(t(1:150),SignalData0(1:150),'b')plot(t(1:150),SignalData1(1:150),'r')plot(t(1:150),SignalData2(1:150),'k')hold offfigure;plot(t(1:150),SignalData3(1:150))title('三路信号求和')三路信号的时域波形三路求和信号频谱分析FFT_Data = fft(SignalData3);2.低通滤波器设计基于fdatool的低通滤波器的设计在MATLAB命令⾏执⾏fdatool命令,弹出滤波器设计交互窗⼝,根据⾃⼰的需求设计符合⾃⼰要求的滤波器,这是我设计的低通滤波器见下图需要注意的是通过设计Fpass和Fstop确定了滤波器的带宽,同时参数设计的越接近理论滤波器的性能,滤波器的阶数越多,计算量越⼤,所以需要优化滤波器这两个参数,在保证性能的同时确保阶数越⼩(计算量越⼩)滤波LPF_Data = filter(LPF_Coe.LPF_60M,1,SignalData3);滤波后的时域和频谱波形3.带通和⾼通操作步骤⼤体⼀致就不详细说明4、M代码5、备注1、滤波器出数有⼀定延迟,这在具体调制解调过程中需要注意。
课程设计题 目Matlab 课程设计——利用MATLAB 结合双线性变换法设计一个数字切比雪夫带通IIR 滤波器 学 院信息工程学院 专 业通信工程 班 级 通信0906题 目: 利用MATLAB 仿真软件系统结合双线性变换法设计一个数字切比雪夫带通IIR 滤波器。
初始条件:1 MATLAB 编程的基础知识2《信号与系统》滤波器的相关知识3《数字信号处理》的相关知识要求完成的主要任务:1方案的理论设计学号:2方案的安装、调试3设计报告的撰写参考书目:[1]倪养华主编《数字信号处理与实现》上海交通大学出版社.1998[2]楼顺天、李博菡主编《基于matlab的系统分析与设计-信号处理》西安电子科技大学出版社.1999[3]胡广书主编《数字信号处理:理论、算法与实现》清华大学出版社.1997[4]蒙以正主编《 matlab5.x应用与技巧》科学出版社.1999[5]刘泉,阙大顺主编《数字信号处理原理与实现》电子工业出版社.2005[6]史密斯主编《实用数字信号处理:从原理到应用》人民邮电出版社.2010时间安排:第1周,安排任务(鉴主15楼实验室)第1-17周,仿真设计(鉴主13楼计算机实验室)第18周,完成(答辩,提交报告,演示)指导教师签名: 2010 年 1月日系主任(或责任教师)签名: 2010 年 1月日目录摘要 (II)ABSTRACT (III)1 数字滤波器 (1)1.1数字滤波器介绍 (1)1.2IIR数字滤波器 (1)1.2.1 IIR数字滤波器的特点 (2)1.2.2 IIR数字滤波器与FIR数字滤波器的区别 (2)2切比雪夫滤波器 (4)2.1概述 (4)2.2切比雪夫滤波器的种类 (4)2.3特点 (5)3双线性变换法 (8)4 IIR数字滤波器设计原理与方法 (12)4.1IIR数字滤波器设计原理 (12)4.2IIR数字滤波器设计的基本方法 (14)5 IIR带通滤波器的MATLAB 设计 (16)5.1IIR带通滤波器的设计步骤 (17)5.2IIR带通滤波器设计的MATLAB程序 (17)6 IIR带通滤波器的仿真结果及波形 (22)7 IIR带通滤波器的仿真结果分析 (24)8 收获体会 (26)参考文献 (27)附录:原程序 (28)摘要随着信息时代和数字世界的到来,数字信号处理已成为当今一门极其重要的学科和技术领域。
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小波变换是一种数学处理工具,它可以将信号分解为不同尺度的频率成分,从而更好地理解信号的时域和频域特性。
小波变换带通滤波是指在小波变换的基础上,对信号进行特定频率范围内的滤波处理,从而突出或去除特定频率成分。
在matlab中,可以利用小波变换工具箱来实现带通滤波,从而应用于实际工程和科学问题中。
为了更好地理解小波变换带通滤波的原理和方法,首先需要明确小波变换的基本概念。
小波变换是利用小波基函数对信号进行分解和重构的过程。
在这个过程中,信号会被分解为不同尺度和频率的成分,从而揭示出信号在时域和频域上的特性。
小波变换能够在不同尺度上捕捉信号的局部特征,使得我们可以更好地分析和处理非平稳信号。
接下来,我们需要了解带通滤波的概念和作用。
带通滤波是指在一定频率范围内通过滤波器来增强或去除信号的特定频率成分。
在小波变换中,带通滤波可以用于突出或去除信号中特定频率范围内的成分,从而更好地理解信号的频域特性。
通过带通滤波,我们可以将信号中的目标频率范围突出出来,以便进行进一步的分析和应用。
在matlab中,可以利用小波变换工具箱来实现带通滤波的处理。
通过matlab提供的小波变换函数和滤波器设计工具,我们可以方便地对信号进行小波变换和带通滤波处理。
这为我们在工程和科学实践中应用小波变换带通滤波提供了便利和可行性。
在实际应用中,小波变换带通滤波可以应用于信号处理、图像处理、通信系统等领域。
在信号处理中,我们可以利用小波变换带通滤波来分析非平稳信号的频率特性,或者提取信号中特定频率范围内的信息。
在图像处理中,带通滤波可以用于增强或去除图像中特定频率的纹理和细节。
在通信系统中,小波变换带通滤波可以应用于信号调制和解调、信道均衡等方面。
总结来说,小波变换带通滤波是一种强大的工具,它可以帮助我们更好地理解信号的频域特性,并对信号进行针对性的处理和分析。
在matlab环境下,可以利用小波变换工具箱来实现带通滤波的处理,为工程和科学问题的解决提供了便利和可行性。
带通滤波器matlab设计
一、什么是带通滤波器
带通滤波器是一种能够通过某个频率范围内的信号,而抑制其他频率信号的电路或系统。
它可以过滤掉低于或高于特定频率范围的信号,只保留在该范围内的信号。
二、带通滤波器的分类
根据其工作原理和电路结构,带通滤波器可以分为以下几类:
1. 无源RC电路带通滤波器:由电容和电阻组成,能够将特定频率范围内的信号通过,并将其他频率信号抑制。
2. 有源RC电路带通滤波器:在无源RC电路基础上加入了放大器,使得其具有更好的增益和稳定性。
3. LC谐振型带通滤波器:由电感和电容组成,利用谐振原理来实现对特定频率范围内信号的过滤。
4. 基于数字信号处理(DSP)技术的数字带通滤波器:通过数字处理
算法来实现对特定频率范围内信号的过滤。
三、使用matlab设计带通滤波器
在matlab中设计带通滤波器需要进行以下步骤:
1. 确定滤波器类型:根据实际需求选择合适的带通滤波器类型。
2. 确定滤波器参数:根据所需的频率范围、通带增益、阻带衰减等参数,计算出滤波器的具体参数。
3. 选择合适的设计方法:可以采用基于模拟电路设计方法或数字信号处理(DSP)设计方法。
4. 编写matlab代码:根据所选设计方法,编写相应的matlab代码进行滤波器设计。
5. 仿真验证:利用matlab进行仿真验证,检查滤波器是否符合预期要求。
四、基于模拟电路设计方法
1. 无源RC电路带通滤波器
无源RC电路带通滤波器由一个并联的电容和电阻组成。
其传输函数为:
H(s) = 1 / (sRC + 1)
其中R为电阻值,C为电容值,s为复变量。
通过调整RC值可以实现对特定频率范围内信号的过滤。
在matlab中可以使用bode函数绘制该滤波器的幅频响应曲线,从而进行验证和优化。
2. 有源RC电路带通滤波器
有源RC电路带通滤波器在无源RC电路基础上加入了一个放大器,使得其具有更好的增益和稳定性。
其传输函数为:
H(s) = - Rf / (1 + sRfCf) * 1 / (sRC + 1)
其中Rf为放大器反馈电阻值,Cf为放大器反馈电容值。
通过调整RC、Rf和Cf值可以实现对特定频率范围内信号的过滤。
在matlab中可以使用bode函数绘制该滤波器的幅频响应曲线,从而进行验证和优化。
五、基于数字信号处理(DSP)设计方法
基于数字信号处理(DSP)技术的数字带通滤波器可以通过matlab中
的fir1函数进行设计。
fir1函数用于设计一类特定类型的数字FIR(有限脉冲响应)滤波器,其中输入参数包括滤波器阶数、通带截止频率、阻带截止频率等。
fir1函数返回一个包含滤波器系数的向量,可以使用filter函数将其应用到原始信号上。
六、总结
通过matlab可以方便地进行带通滤波器的设计和仿真验证。
根据实际需求选择合适的带通滤波器类型,并根据所需参数进行具体设计。
基
于模拟电路设计方法和数字信号处理(DSP)设计方法都可以实现带
通滤波器的设计。
在设计过程中需要注意滤波器的稳定性和性能,通
过matlab进行仿真验证可以帮助优化设计。