椭圆带通滤波器的设计(matlab)

合集下载

椭圆带通滤波器的设计

椭圆带通滤波器的设计

燕山大学课程设计说明书题目:椭圆带通滤波器的设计学院(系):电气工程学院年级专业: 10级精仪二班学号:学生姓名:指导教师:***教师职称:副教授燕山大学课程设计(论文)任务书课程名称:数字信号处理课程设计基层教学单位:指导教师:说明:此表一式四份,学生、指导教师、基层教学单位、系部各一份。

年月日目录第1章摘要......................................................4 第2章引言......................................................4 第3章基本原理..................................................5 3.1 模拟滤波器的基本原理.......................................5 3.2 椭圆滤波器的特点...........................................5 第4章设计过程..................................................6 4.1 椭圆滤波器设计结构图.......................................6 4.2 设计椭圆模拟滤波器.........................................7 4.3 模拟滤波器的MATLAB实现和滤波器分析........................7 第5章仿真程序和仿真图......................................... 105.1、%连续信号的产生及采样.................................. 105.2、%椭圆带通滤波器的设计...................................115.3、%信号通过椭圆带通滤波器的波形图.........................12 5.4、信号通过椭圆带通滤波器的仿真图..........................12 第6章分析及总结............................................... 14 心得体会........................................................15 参考文献........................................................15第一章摘要滤波器是自动控制、信号处理和通信领域的重要组成部分,广泛地应用于各种系统中。

matlab带通滤波器 (2)

matlab带通滤波器 (2)

MATLAB带通滤波器1. 简介带通滤波器是一种数字信号处理中常用的滤波器。

它可以选择特定的频率范围内的信号并传递,同时抑制其他频率范围的信号。

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

本文档将介绍如何使用MATLAB设计和使用带通滤波器,包括滤波器的设计方法和常见的应用场景。

2. 带通滤波器的设计带通滤波器的设计过程可以分为以下几个步骤:2.1 滤波器类型选择MATLAB中提供了多种带通滤波器类型的设计方法,包括巴特沃斯滤波器、切比雪夫滤波器和椭圆滤波器等。

根据需求选择合适的滤波器类型。

2.2 滤波器规格确定确定滤波器的通带范围、阻带范围和过渡带宽等规格参数。

2.3 滤波器设计根据滤波器类型和规格参数,使用相应的MATLAB函数进行滤波器设计。

常用的函数包括butter、cheby1和ellip等。

2.4 滤波器特性分析设计完成的滤波器可以通过频率响应、相位响应和零极点分布等特性进行分析。

MATLAB提供了函数来绘制和分析滤波器的特性曲线。

3. MATLAB中的带通滤波器函数MATLAB提供了多个函数用于设计和实现带通滤波器,下面介绍其中几个常用的函数:3.1 butter函数butter函数可用于设计巴特沃斯滤波器。

它的语法为:[b, a] = butter(n, Wn, 'bandpass')其中,n表示滤波器的阶数,Wn为通带范围,可以是一个长度为2的向量表示最低频率和最高频率的范围。

'bandpass'表示带通滤波器。

3.2 cheby1函数cheby1函数可用于设计切比雪夫滤波器。

它的语法为:[b, a] = cheby1(n, Rp, Wn, 'bandpass')其中,n表示滤波器的阶数,Rp为通带中允许的最大衰减量,Wn为通带范围,可以是一个长度为2的向量表示最低频率和最高频率的范围。

'bandpass'表示带通滤波器。

椭圆数字滤波器带通和cheb2ord带阻

椭圆数字滤波器带通和cheb2ord带阻

%用脉冲响应不变法设计一个椭圆数字滤波器wp1=0.3*pi;wp2=0.7*pi;ws1=0.1*pi;ws2=0.9*pi;Rp=1;As=15;Fs=2000;T=1/Fs;Omgp1=wp1*Fs;Omgp2=wp2*Fs;Omgp=[Omgp1,Omgp2];Omgs1=ws1*Fs;Omgs2=ws2*Fs;Omgs=[Omgs1,Omgs2];bw=Omgp2-Omgp1; w0=sqrt(Omgp1*Omgp2);[N,Omgn]=ellipord(Omgp,Omgs,Rp,As,'s')[z0,p0,k0]=ellipap(N,Rp,As);ba1=k0*real(poly(z0));aa1=real(poly(p0));[ba,aa]=lp2bp(ba1,aa1,w0,bw);[bd,ad]=impinvar(ba,aa,Fs)[H,w]=freqz(bd,ad);dbH=20*log10((abs(H)+eps)/max(abs(H)));subplot(2,2,1),plot(w/pi,abs(H));subplot(2,2,2),plot(w/pi,angle(H)/pi);subplot(2,2,3),plot(w/pi,dbH); subplot(2,2,4),zplane(bd,ad);该系统的传递函数是z z z z z z z z z z z z H 654321543212917.0162.09128.00937.09247.03254.012409.06059.00677.02048.01777.0592.0)(-----------+-+-+--+-+-=%用脉冲响应不变法设计一个切比雪夫Ⅱ型数字带阻滤波器wp1=0.1*pi;wp2=0.9*pi;ws1=0.3*pi;ws2=0.7*pi;Rp=1;As=40;Fs=2000;T=1/Fs;Omgp1=wp1*Fs;Omgp2=wp2*Fs;Omgp=[Omgp1,Omgp2];Omgs1=ws1*Fs;Omgs2=ws2*Fs;Omgs=[Omgs1,Omgs2];bw=Omgp2-Omgp1; w0=sqrt(Omgp1*Omgp2);[N,Omgn]=cheb2ord(Omgp,Omgs,Rp,As,'s');[z0,p0,k0]=cheb2ap(N,As);ba1=k0*real(poly(z0));aa1=real(poly(p0));[ba,aa]=lp2bs(ba1,aa1,w0,bw);[bd,ad]=impinvar(ba,aa,Fs);%模拟滤波器与数字滤波器的冲击响应t=0:T:(30*T); nt=length(t);ha=impulse(ba,aa,t);h=impz(bd,ad,nt);subplot(2,1,1),plot(t,ha*T,'r');hold on;stem(t,h,'k');title('模拟滤波器与数字滤波器的冲击响应');%模拟滤波器与数字滤波器的幅频响应wb=[0:Fs]*2*pi;Ha=freqs(ba,aa,wb);H=freqz(bd,ad,wb/Fs);subplot(2,1,2),plot(wb/(2*pi),abs(Ha)/max(abs(Ha)),'r');hold on; plot(wb/(2*pi),abs(H)/max(abs(H)),'k');title('模拟滤波器与数字滤波器的幅频响应');。

基于matlab的高阶带通滤波器的设计与仿真

基于matlab的高阶带通滤波器的设计与仿真
参考文献 [1] 蒋志凯.数字滤波与卡尔曼滤波[M].北京:中国科学技术出版社,1993: 123-145. [2] 楼顺天,李博菡. 基于 matlab 的系统分析与设计-信号处理[M].西安:西 安电子科技大学出版社,1998:167-198. [3] 胡广书.数字信号处理:理论、算法与实现[M].北京:清华大学出版社, 1997: 与 Multisim 仿真;设计
1 概述 目前数字滤波器的设计有许多现成的高级语言设计程序,但他们都 存在设计效率较低,不具有可视图形,不便于修改参数等缺点,而 Matlab 字滤波的研究和应用提供了一个直观 、高效 、便捷的利器。介绍如何采 用低通和高通椭圆函数滤波器设计高阶带通滤波器,借助 MATLAB 和 Multisim 技术对滤波器进行设计与仿真,并根据仿真结果对参数进行修 改,使滤波器的性能设计的要求。 2 高阶带通滤波器的设计 2.1 带通滤波器的设计方法 设计一个 2400Hz~3400Hz 带通滤波器可采用一个 3400hz 的低通 滤波器和一个截频为 2400hz 的高通滤波器级联而成的。以五阶双二次 性椭圆滤波器为例进行设计,利用参考文献中的的相关数据,在通带波动 宽度 PRW=0.1dB,过渡带 TW=0.1kHz 条件下,五阶时电阻和电容带来的 误差最小。 2.2 带通滤波器的设计指标 根据参考文献带通滤波器技术指标为:频带宽度为 2400Hz~3400Hz;PRW=0.1 dB 和 MSL= 55 dB。 2.3 五阶椭圆函数低通滤波器的设计 五阶椭圆函数低通滤波器由两个二阶双二次型椭圆函数低通滤波 器和一个奇数阶椭圆函数低通滤波器级联而成。当 N=5、PRW=0.1 dB 和 MSL= 55 dB 时,可以通过查询获得 A,B,C 的参数。 二阶双次型椭圆函数低通滤波器电路图如 1 所示。 根据元件值与参数 A,B,C 的关系以及二阶椭圆函数低通滤波器传 递函数,可以解出以下值:

数字滤波器的设计及其MATLAB实现

数字滤波器的设计及其MATLAB实现

设计低通数字滤波器,要求在通带内频率低于0.2pirad时,允许幅度误差在1dB以内,在频率0.3pi rad~pi rad之间的阻带衰减大于15dB,用脉冲响应不变法设计数字滤波器,T=1: 切比雪夫I型模拟滤波器的设计子程序:function [b,a]=afd_chb1(Omegap,Omegar,Ar)if Omegap<=0error('通带边缘必须大于0')endif(Dt<=0)|(Ar<0)error('通带波动或阻带衰减必须大于0');endep=sqrt(10^(Dt/10)-1);A=10^(Ar/20);OmegaC=Omegap;OmegaR=Omegar/Omegap;g=sqrt(A*A-1)/ep;N=ceil(log10(g+sqrt(g*g-1))/log10(OmegaR+sqrt(OmegaR*OmegaR-1)));fprintf('\n***切比雪夫I型模拟低通滤波器阶数=%2.0f\n',N);[b,a]=u_chblap(N,Dt,OmegaC);设计非归一化切比雪夫I型模拟低通滤波器原型程序:function [b,a]=u_chblap(N,Dt,OmegaC)[z,p,k]=cheb1ap(N,Dt);a=real(poly(p));aNn=a(N+1);p=p*OmegaC;a=real(poly(p));aNu=a(N+1);k=k*aNu/aNn;b0=k;B=real(poly(z));b=k*B;直接形式转换成级联形式子程序:function [C,B,A]=sdir2cas(b,a)Na=length(a)-1;Nb=length(b)-1;b0=b(1);b=b/b0;a0=a(1);a=a/a0;C=b0/a0;p=cplxpair(roots(a));K=floor(Na/2);if K*2==NaA=zeros(K,3);for n=1:2:NaArow=p(n:1:n+1,:);Arow=poly(Arow);A((fix(n+1)/2),:)=real(Arow);elseif Na==1A=[0 real(poly(p))];elseA=zeros(K+1,3);for n=1:2:2*KArow=p(n:1:n+1,:);Arow=poly(Arow);A((fix(n+1)/2),:)=real(Arow);endA(K+1,:)=[0 real(poly(p(Na)))];endz=cplxpair(roots(b));K=floor(Nb/2);if Nb==0B=[0 0 poly(z)];elseif K*2==NbB=zeros(K,3);for n=1:2:NbBrow=z(n:1:n+1,:);Brow=poly(Brow);B((fix(n+1)/2),:)=real(Brow);endelseif Nb==1B=[0 real(poly(z))];elseB=zeros(K+1,3);for n=1:2:2*KBrow=z(n:1:n+1,:);Brow=poly(Brow);B((fix(n+1)/2),:)=real(Brow);endB(K+1,:)=[0 real(poly(z(Nb)))];End计算系统函数的幅度响应和相位响应子程序:function [db,mag,pha,w]=freqs_m(b,a,wmax)w1=0:500;w=w1*wmax/500;h=freqs(b,a,w);mag=abs(h);db=20*log10((mag+eps)/max(mag));pha=angle(h);脉冲响应不变法程序:function [b,a]=imp_invr(c,d,T)[R,p,k]=residue(c,d);p=exp(p*T);[b,a]=residuez(R,p,k);b=real(b).*T;数字滤波器响应子程序:function [db,mag,pha,grd,w]=freqz_m(b,a);[H,w]=freqz(b,a,1000,'whole');H=(H(1:501))';w=(w(1:501))';mag=abs(H);db=20*log10((mag+eps)/max(mag));pha=angle(H);grd=grpdelay(b,a,w);直接转换成并联型子程序:function [C,B,A]=dir2par(b,a)M=length(b);N=length(a);[r1,p1,C]=residuez(b,a);p=cplxpair(p1,10000000*eps);x=cplxcomp(p1,p);r=r1(x);K=floor(N/2);B=zeros(K,2);A=zeros(K,3);if K*2==Nfor i=1:2:N-2br=r(i:1:i+1,:);ar=p(i:1:i+1,:);[br,ar]=residuez(br,ar,[]);B((fix(i+1)/2),:)real(br');A((fix(i+1)/2),:)real(ar');end[br,ar]=residuez(r(N-1),p(N-1),[]);B(K,:)=[real(br') 0];A(K,:)=[real(ar') 0];elsefor i=1:2:N-1br=r(i:1:i+1,:);ar=p(i:1:i+1,:);[br,ar]=residuez(br,ar,[]);B((fix(i+1)/2),:)real(br);A((fix(i+1)/2),:)real(ar);endEnd比较两个含同样标量元素但(可能)有不同下标的复数对及其相位留数向量子程序:function I=cplxcomp(p1,p2)I=[];for i=1:length(p2)for j=1:length(p1)if(abs(p1(j)-p2(i))<0.0001)I=[I,j];endendendI=I';双线性变换巴特沃斯低通滤波器设计:巴特沃思模拟滤波器的设计子程序:function [b,a]=afd_butt(wp,ws,Rp,rs)if wp<=0error('通带边缘必须大于0');endif ws<=wperror('阻带边缘必须大于通带边缘');endif(Rp<=0)|(Rs<0)error('通带波动或阻带衰减必须大于0');endN=ceil((log10((10^(Rp/10)-1)/(10^(Rs/10)-1)))/(2*log10(wp/ws))); fprintf('\n***Butterworth Filter Order=%2.0f\n',N);OmegaC=wp/((10^(Rp/10)-1)^(1/(2*N)));[b,a]=u_buttap(N,OmegaC)设计非归一化巴特沃思模拟低通滤波器原型子程序:function [b,a]=u_buttap(N,OmegaC)[z,p,k]=buttap(N);p=p*OmegaC;k=k*OmegaC^N;B=real(poly(z));b0=k;b=k*B;a=real(poly(p));直接型到级联型形式的转换:function [b0,B,A]=dir2cas(b,a)b0=b(1);b=b/b0;a0=a(1);a=a/a0;b0=b0/a0;M=length(b);N=length(a);if N>Mb=[b,zeros(1,N-M)];a=[a,zeros(1,M-N)];elseNM=0;endk=floor(N/2);B=zeros(k,3);A=zeros(k,3);if k*2==Nb=[b,0];a=[a,0];endbroots=cplxpair(roots(b));aroots=cplxpair(roots(a));for i=1:2:2*kbr=broots(i:1:i+1,:);br=real(polt(br));B((fix(i+1)/2),:)=br;ar=aroots(i:1:i+1,:);ar=real(polt(ar));A((fix(i+1)/2),:)=ar;Endfunction [db,mag,pha,grd,w]=freqz_m(b,a)[h,w]=freqz(b,a,1000,'whole');h=(h(1:501))';w=(w(1:501))';mag=abs(h);db=20*log10((mag+eps)/max(mag));pha=angle(h);grd=grdelay(b,a,w);设计一个巴特沃思高通滤波器,要求通带截止频率为0.6pi,通带内衰减不大于1dB,阻带·起始频率为0.4pi,阻带内衰减不小于15dB,T=1:>> wp=0.6*pi;ws=0.4*pi;>> Rp=1;Rs=15;T=1;>> [N,wn]=buttord(wp/pi,ws/pi,Rp,Rs) 计算巴特沃思滤波器阶数和截止频率N =4wn =>> [b,a]=butter(N,wn,'high'); 频率变换法计算巴特沃思高通滤波器>> [C,B,A]=dir2cas(b,a)C =0.0751B =1.0000 -2.0000 1.00001.0000 -2.0000 1.0000A =1.0000 0.1562 0.44881.0000 0.1124 0.0425>> [db,mag,pha,grd,w]=freqz_m(b,a);>> subplot(2,1,1);plot(w/pi,mag);>> subplot(2,1,2);plot(w/pi,db);椭圆带通滤波器的设计--ellip函数的应用:>> ws=[0.3*pi 0.75*pi]; 数字阻带边缘频率>> wp=[0.4*pi 0.6*pi]; 数字通带边缘频率>> Rp=1;Rs=40;>> Ripple=10^(-Rp/20); 通带波动>> Attn=10^(-Rs/20); 阻带衰减>> [N,wn]=ellipord(wp/pi,ws/pi,Rp,Rs) 计算椭圆滤波器参数N =4wn =0.4000 0.6000>> [b,a]=ellip(N,Rp,Rs,wn); 数字椭圆滤波器的设计>> [b0,B,A]=dir2cas(b,a) 级联形式实现b0 =0.0197B =1.0000 1.5066 1.00001.0000 0.9268 1.00001.0000 -0.9268 1.00001.0000 -1.5066 1.0000A =1.0000 0.5963 0.93991.0000 0.2774 0.79291.0000 -0.2774 0.79291.0000 -0.5963 0.9399>> figure(1);>> [db,mag,pha,grd,w]=freqz_m(b,a);>> subplot(2,2,1);plot(w/pi,mag);>> grid on;>> subplot(2,2,3);plot(w/pi,db);grid on;>> subplot(2,2,2);plot(w/pi,pha/pi);grid on;>> subplot(2,2,4);plot(w/pi,grd);设计一个巴特沃思带阻滤波器,要求通带上下截止频率为0.8pi、0.2pi,通带内衰减不大于1dB,阻带上起始频率为0.7pi、0.4pi,阻带内衰减不小于30dB:>> wp=[0.2*pi 0.8*pi];>> ws=[0.4*pi 0.7*pi];>> Rp=1;Rs=30;>> [N,wn]=buttord(wp/pi,ws/pi,Rp,Rs);>> [b,a]=butter(N,wn,'stop');>> [C,B,A]=dir2cas(b,a)C =0.0394B =1.0000 0.3559 0.99941.0000 0.3547 1.00401.0000 0.3522 0.99541.0000 0.3499 1.00461.0000 0.3475 0.99601.0000 0.3463 1.0006A =1.0000 1.3568 0.79281.0000 1.0330 0.46331.0000 0.6180 0.17751.0000 -0.2493 0.11131.0000 -0.6617 0.37551.0000 -0.9782 0.7446>> [db,mag,pha,grd,w]=freqz_m(b,a); >> subplot(2,1,1);plot(w/pi,mag);>> subplot(2,1,2);plot(w/pi);数字低通---数字带阻:function [bz,az]=zmapping(bZ,aZ,Nz,Dz) bzord=(length(bZ)-1)*(length(Nz)-1); azord=(length(aZ)-1)*(length(Dz)-1);bz=zeros(1,bzord+1);for k=0:bzordpln=[1];for i=0:k-1pln=conv(pln,Nz);endpld=[1];for i=0:bzord-k-1pld=conv(pld,Dz);endbz=bz+bZ(k+1)*conv(pln,pld); endfor k=0:azordpln=[1];for i=0:k-1pln=conv(pln,Nz);endpld=[1];for i=0:azord-k-1pld=conv(pld,Dz);endaz=az+aZ(k+1)*conv(pln,pld); endall=az(1);az=az/az1;bz=bz/az1;线性相位FIR滤波器的幅度特性:function pzkplot(num,den)hold on;axis('square');x=-1:0.01:1;y=(1-x.^2).^0.5;y1=-(1-x.^2).^0.5;plot(x,y,'b',x,y1,'b');num1=length(num);den1=length(den);if(num1>1)z=roots(num);elsez=0;endif(den1>1)p=roots(den);elsep=0;endif(num>1&den1>1)r_max_z=max(abs(real(z)));i_max_z=max(abs(imag(z)));a_max_z=max(r_max_z,i_max_z);r_max_p=max(abs(real(p)));i_max_p=max(abs(imag(p)));a_max_p=max(r_max_p,i_max_p);a_max=max(a_max_z,a_max_p);elseif (num1>1)r_max_z=max(abs(real(z)));i_max_z=max(abs(imag(z)));a_max=max(r_max_z,i_max_z);elser_max_p=max(abs(real(p)));i_max_p=max(abs(imag(p)));a_max=max(r_max_p,i_max_p);endaxis([-a_max a_max -a_max a_max]);plot([-a_max a_max],[0 0],'b');plot([0 0],[-a_max a_max],'b');plot([-a_max a_max],[a_max a_max],'b');plot([a_max a_max],[-a_max a_max],'b');Lz=length(z);for i=1:Lz;plot(real(z(i)),imag(z(i)),'bo');endLp=length(p);for j=1:Lpplot(real(p(j)),imag(p(j)),'bx');endtitle('The zeros-pole plot');xlabel('虚部');ylabel('实部');function [Hr,w,a,L]=Hr_Type1(h)M=length(h);L=(M-1)/2;a=[h(L+1) 2*h(L:-1:1)];n=[0:1:L];w=[0:1:500]'*pi/500;Hr=cos(w*n)*a';设计I型线性相位FIR滤波器:>> h=[-4 1 -1 -2 5 6 5 -2 -1 1 -4];>> M=length(h);n=0:M-1;>> [Hr,w,a,L]=Hr_Type1(h);>> amax=max(a)+1;>> amin=min(a)-1;>> subplot(2,2,1);stem(n,h);>> axis([-1 2*L+1 amin amax]);text(2*L+1.5,amin,'n'); >> xlabel('n');ylabel('h(n)');title('脉冲响应');>> subplot(2,2,3);stem(0:L,a);>> axis([-1 2*L+1 amin amax]);>> xlabel('n');ylabel('a(n)');title('a(n) 系数');>> subplot(2,2,2);plot(w/pi,Hr);>> grid on;text(1.05,-20,'频率pi');>> xlabel('频率');ylabel('Hr');title('I 型振幅响应');>> subplot(2,2,4);pzkplot(h,1);>> title('零极点分布');function [hr,w,b,L]=Hr_Type2(h)M=length(h);L=M/2;b=2*h(L:-1:1);n=[1:1:L];n=n-0.5;w=[0:1:500]'*pi/500;hr=cos(w*n)*b';II型线性相位FIR滤波器:>> h=[-4 1 -1 -2 5 6 5 -2 -1 1 -4];>> M=length(h);n=0:M-1;>> [Hr,w,b,L]=Hr_Type2(h);Warning: Integer operands are required for colon operator when used as index. > In Hr_Type2 at 2>> bmax=max(b)+1;bmin=min(b)-1;>> subplot(2,2,1);stem(n,h);axis([-1 2*L+1 bmin bmax]);text(2*L+1.5,bmin,'n');xlabel('n');ylabel('h(n)');title('脉冲响应');>> subplot(2,2,3);stem(1:L,b);axis([-1 2*L+1 bmin bmax]);xlabel('n');ylabel('b(n)');title('b(n) 系数');>> subplot(2,2,2);plot(w/pi,Hr);grid on;text(1.05,-20,'频率pi');xlabel('频率');ylabel('Hr');title('II 型振幅响应');>> subplot(2,2,4);pzkplot(h,1);title('零极点分布');function [hr,w,c,L]=Hr_Type3(h)M=length(h);L=(M-1)/2;b=2*h(L+1:-1:1);n=[1:1:L];w=[0:1:500]'*pi/500;hr=cos(w*n)*c';用MA TLAB编程绘制各种窗函数的形状。

matlab带通滤波器的设计

matlab带通滤波器的设计

matlab带通滤波器的设计带通滤波器是一种将指定频率范围内的信号通过,而将其他频率范围的信号滤除的信号处理电路。

在实际工程中,由于信号存在噪声、干扰等问题,使得信号需要进行滤波处理,以提高信号的质量和准确性。

因此,设计一个合适的带通滤波器十分重要。

一、带通滤波器的原理带通滤波器是一种可让一定的频率范围内的信号通过,而将其他频率范围的信号滤除的滤波器。

在实际应用中,这相当于是将某一个带宽的信号通过,即选通信号,而将其他频率范围的信号滤波(或削弱),即阻塞信号。

因此,带通滤波器的设计是一种能够在某个频率带内通过信号的滤波器。

1、确定滤波器类型在开始设计带通滤波器之前,需要确定所选用的滤波器类型。

目前常用的滤波器类型有——巴特沃斯滤波器、切比雪夫I型滤波器、切比雪夫II型滤波器、椭圆滤波器等。

在设计滤波器时,需要根据实际需求来选定类型。

确定了滤波器类型后,需要选择相应的滤波器参数。

这些参数包括——截止频率、通带中心频率、通带带宽、通带最大衰减、阻带最小衰减等。

在选择滤波器参数时,需要考虑到实际应用情况,选择合适的参数大小。

需要特别注意的是,滤波器的参数与信号之间存在一定的关系,因此设计时需要综合考虑到这些因素。

3、计算滤波器阶数在确定了滤波器的类型和参数后,需要根据这些参数计算滤波器的阶数。

滤波器阶数与所选择的滤波器类型及其参数相关,因此计算时需要综合考虑这些因素。

4、使用MATLAB实现滤波器设计在计算得到滤波器的阶数后,就可以使用MATLAB进行滤波器的设计。

在MATLAB中,可使用函数butter、cheb1ord、cheb2ord、ellipord等函数来实现滤波器设计。

5、使用MATLAB进行仿真验证完成滤波器设计后,需要使用MATLAB进行仿真验证。

在仿真时,可使用函数freqs、freqz、impz等函数对滤波器的特性进行分析,以验证设计结果是否符合预期。

三、总结设计带通滤波器是一个比较重要的信号处理技术。

椭圆函数LC带通滤波器的应用设计

椭圆函数LC带通滤波器的应用设计

椭圆函数LC带通滤波器的应用设计
滤波器类型的选择可根据滤波器设计的带宽等指标和具体的应用场合来选择。

相对带宽在20%以下的为窄带滤波器,应选用窄带滤波器的设计方法来设计;相对带宽在40%以上的为宽带滤波器,应选用宽带滤波器的设计方法来设计;而介于两者之间的为中等带宽滤波器。

由上面的指标可以看出本滤波器是窄带带通滤波器。

采用巴特沃斯滤波器来设计可以使通带内具有最大平坦的幅频响应;而切比雪夫滤波器的好处是:带外抑制好,但是带内有一定的波动;本文设计的滤波器要求带外近端抑制良好(可以用切比雪夫滤波器或椭圆函数滤波器来实现,但是从后面的分析看要使用LC滤波器,而用LC滤波器的话,使用切比雪夫形式电路元件的值过于小,很难实现,这个可以用软件仿真来说明),以此可以看出,用椭圆函数滤波器更适合。

微带滤波器通过采用不同的衬底材料可以在很大的频率范围内应用(从几百MHz到几十GHz);同轴滤波器由于其微小的尺寸,制作精度很难达到;波导滤波器在小信号电平上,它的频率基本是8~100 GHz;陶瓷介质滤波器体积大,形状因子与品质因数较小;LC滤波器适用于本滤波器频段,且较容易制作和调试。

matlab窗函数法设计带通滤波器

matlab窗函数法设计带通滤波器

matlab窗函数法设计带通滤波器在MATLAB中,可以使用窗函数法设计数字滤波器。

窗函数方法是一种基于时域设计技术,通过在滤波器的脉冲响应上乘以一个窗函数,从而改变其频率特性。

这种方法不需要进行频域变换,因此在计算上具有一定的简便性。

下面将详细介绍如何使用MATLAB实现带通滤波器的设计。

带通滤波器的目标是在给定的频率范围内传递信号,并在其他频率上进行衰减。

通常,设计带通滤波器的步骤如下:1. 确定滤波器的通带频率范围和截止频率。

通带是需要通过的频率范围,而截止频率是指在此频率以上或以下信号进行衰减。

2. 根据通带和截止频率选择合适的滤波器类型。

常见的滤波器类型包括Butterworth滤波器、Chebyshev滤波器和椭圆滤波器等。

3. 根据滤波器类型和要求的频率响应,确定滤波器的阶数。

滤波器的阶数决定了滤波器的频率选择性能。

4. 选择一个合适的窗函数。

窗函数定义了滤波器的脉冲响应。

5. 使用MATLAB中的filter函数将得到的窗口脉冲响应应用于要进行滤波的信号。

下面假设我们要设计一个带通滤波器,通带频率范围为f1和f2,截止频率为f3和f4,并且设定了滤波器的阶数为N。

首先,我们需要选择合适的滤波器类型。

在MATLAB中,可以使用butter函数来设计Butterworth滤波器。

此函数的语法如下:[b, a] = butter(N, [f1, f2]/(Fs/2), 'bandpass')其中,N是滤波器的阶数,[f1, f2]是通带频率范围,Fs是采样频率。

然后,选择一个合适的窗函数,常用的窗函数包括矩形窗、汉宁窗、布莱克曼窗等。

可以使用MATLAB中的窗函数函数hamming生成汉宁窗。

例如,可以使用以下代码生成一个长度为N+1的汉宁窗:w = hamming(N+1)接下来,我们需要通过将窗函数应用于滤波器的点数响应来计算滤波器的系数。

可以使用MATLAB中的filter函数将窗口响应与滤波器的截止频率进行卷积。

带通滤波器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为放大器反馈电容值。

matlab程序之——滤波器(带通-带阻)

matlab程序之——滤波器(带通-带阻)
%FS:序列x的采样频率
% f1=300;f3=500;%通带截止频率上下限
% fsl=200;fsh=600;%阻带截止频率上下限
% rp=0.1;rs=30;%通带边衰减DB值和阻带边衰减DB值
% Fs=2000;%采样率
%
wp1=2*pi*f1/Fs;
wp3=2*pi*f3/Fs;
wsl=2*pi*fsl/Fs;
%ylabel('功率谱密度');xlabel('频率');title('信号功率谱');
else
subplot(211);plot(y_f,2*abs(y_ft(1:nfft/2))/length(y));
ylabel('幅值');xlabel('频率');title('信号幅值谱');
subplot(212);plot(y_f,y_p(1:nfft/2));
figure;hua_fft(y,fs,1);
z=bands(y,110,190,140,160,0.1,30,fs);
figure;hua_fft(z,fs,1);
运行结果如下图,第一幅是滤波前测试信号的频谱图,第二幅是滤波器的滤波曲线图,第三幅是经滤波后的测试信号频谱图。
Welcome To
Download !!!
%第一个是需要查看的频率段起点
%第二个是需要查看的频率段的终点
%其他style不具备可选输入参数,如果输入发生位置错误
nfft= 2^nextpow2(length(y));%找出大于y的个数的最大的2的指数值(自动进算最佳FFT步长nfft)
%nfft=1024;%人为设置FFT的步长nfft

Matlab产生高通带通带阻滤波器方法

Matlab产生高通带通带阻滤波器方法

Matlab产生高通、带通、带阻滤波器方法高通、带通、带阻滤波器在matlab中不能直接产生,它们的生成都是有低通滤波器转换而来的,所以要生成这些滤波器就必须先生成低通滤波器,然后通过转换函数做相应的转换就可。

下面介绍这些转换函数。

1 lp2hp功能:模拟低通滤波器到模拟高通滤波器的变换。

格式:[bt,at] = lp2hp(b,a,Wo)[At,Bt,Ct,Dt] = lp2hp(A,B,C,D,Wo)说明:lp2hp函数将截止频率为1(弧度/秒)的模拟低通滤波器变换成截止频率为Wo的模拟高通滤波器。

函数的第一种形式是有传递函数描述的滤波器相应参数,第二钟为状态空间描述的滤波器相应参数,下同。

2 lp2bp功能:模拟低通滤波器到模拟带通滤波器的变换。

格式:[bt,at] = lp2bp(b,a,Wo,Bw)[At,Bt,Ct,Dt] = lp2bp(A,B,C,D,Wo,Bw)说明:lp2bp函数将截止频率为1(弧度/秒)的模拟低通滤波器变换成带宽为Bw、中心频率为Wo的模拟带通滤波器。

3 lp2bs功能:模拟低通滤波器到模拟带阻滤波器的变换。

格式:[bt,at] = lp2bs(b,a,Wo,Bw)[At,Bt,Ct,Dt] = lp2bs(A,B,C,D,Wo,Bw)说明:lp2bs函数将截止频率为1(弧度/秒)的模拟低通滤波器变换成带宽为Bw、中心频率为Wo的模拟带阻滤波器4 lp2lp功能:模拟低通滤波器到模拟低通滤波器的变换。

格式:[bt,at] = lp2lp(b,a,Wo)[At,Bt,Ct,Dt] = lp2lp(A,B,C,D,Wo)说明:lp2lp函数将截止频率为1(弧度/秒)的模拟低通滤波器变换成截止频率为为Wo的模拟低通滤波器。

Matlab中模拟低通滤波器的函数1 besselap功能:贝塞尔(Bessel)模拟低通滤波器原型。

格式:[z,p,k] = besselap(n)说明:z、p、k分别为滤波器的零点、极点和增益,n为滤波器的阶次。

基于MATLAB的数字滤波器的设计

基于MATLAB的数字滤波器的设计

基于MATLAB 的数字滤波器的设计1 引言数字滤波器是指完成信号滤波处理功能的,用有限精度算法实现的离散线性非时变系统,其输入是一组(由模拟信号取样和量化的)数字量,其输出是经过变换或说处理的另一组数字量。

数字滤波器具有稳定性高、精度高、灵活性大等突出优点。

这里所说的数字滤波器是指理想带通,低通等的频率选择数字滤波器。

数字滤波器设计的一个重要步骤是确定一个可实现的传输函数H(z),这个确定传输函数H(z)的过程称为数字滤波器设计。

数字滤波器的一般设计过程为:(1)按照实际需要,确定滤波器的性能要求(通常在频域内给定数字滤波的性能要求)。

(2)寻找一满足预定性能要求的离散时间线性系统。

(3)用有限精度的运算实现所设计的系统。

(4)通过模拟,验证所设计的系统是否符合给定性能要求。

2 数字滤波器的设计滤波器分为两种,分别为模拟滤波器和数字滤波器。

数字滤波器可以理解为是一个计算程序或算法,将代表输入信号的数字时间序列转化为代表输出信号的数字时间序列,并在转化的过程中,使信号按预定的形式变化。

数字滤波器有多种分类,从数字滤波器功能上分可分为低通、高通、带阻、带通滤波器,根据数字滤波器冲激响应的时域特征,可将数字滤波器分为两种,即无限长冲激响应滤波器(IIR )和有限长冲激响应滤波器(FIR )。

数字滤波器指标:一般来说,滤波器的幅频特性是分段常数的,以低通为例,在通带内逼近于1,阻带内逼近与0,实际设计的滤波器并非是锐截止的通带和阻带两个范围,两者之间总有一个过渡带。

在设计滤波器时事先给定幅频特性允许误差,在通带范围内幅度响应以误差逼近于1,在阻带内幅1σ度响应以误差逼近于0。

2σ (1)πσσ≤≤≤≤≤≤-w w e H w w e H r jwc jw ,2|)(|,1|)(|11式中wc 和wr 分别为通带边界频率和阻带边界频率,wr-wc 为过渡带。

在具体的技术指标中往往用通带波动来表示,用最小阻带衰减At 来表示,其具体的对应公式这里就不详述了。

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

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

基于matlab的IIR数字滤波器设计一.IIR数字滤波器介绍1.IIR数字滤波器的根本原理所谓数字滤波器,是指输入,输出均为数字信号,通过一定运算关系改变输入信号所含频率成分的相比照例或者滤除某些频率成分的硬件。

实质上就是一个由有限精度算法实现的线性时不变离散系统。

它的根本工作原理是利用离散系统的特性对系统输入信号进展加工和变换,改变输入序列的频谱或信号波形,让有用的频率分量通过,抑制无用的信号分量输出,因此数字滤波与模拟滤波的概念一样,根据其频率特性同样可以分为低通,高通,带通,带阻,只是信号的形式和实现滤波方式有所不同。

如果要处理的信号是模拟信号,就可以通过A/D或者D/A转换,在信号形式上进展匹配转换,同样可以使用数字滤波器对模拟信号进展滤波。

数字滤波器滤波的数学表达式:y〔n〕=x(n)*h(n); 如果滤波器的输入输出信号都是离散信号,那么该滤波器的脉冲响应也一定是离散信号,这样的滤波器就成为了数字滤波器。

上面的系统为时域离散系统时,其频域特性为:其中分别是数字滤波器的输出序列和输入序列的频域响应,是数字滤波器的频域响应。

可以看见按照输入信号的频谱特点和处理信号的目的适中选择滤波器的频域响应,使得滤波后的输出信号满足设计性能要求,就是滤波器的滤波原理。

2.IIR数字滤波器传输特性IIR数字滤波器的系统函数可以表示为:H(Z)=,式中H(Z)称为N阶IIR滤波器函数。

3..数字滤波器的技术要求.我们通常设计的数字滤波器一般属于选频滤波器,。

我们的目的是要设计一个因果可实现的滤波器,另外买也要考虑到本钱和复杂性问题,因此实用中通带和阻带都允许一定的误差容限,即通带不一定是完全水平的,阻带也不可能完全衰减到零。

而且,通带和阻带之间还要设置一定带宽的过渡带。

如如下图表示低通滤波器的技术要求:图中,分别表示通带截止频率和阻带截止频率,通带频率范围为0≤w≤,通带中要求〔1-δ1〕≤|H≤1,阻带截止频率范围≤w≤Π,再阻带中要求≤δ2,从p w 到s w 称为过渡带,在这个频带内,幅度响应从通带平滑的下落到阻带。

matlab滤波器设计命令

matlab滤波器设计命令

matlab滤波器设计命令Matlab滤波器设计命令滤波器是数字信号处理中常用的工具,用于去除信号中的噪声、频率干扰或其他不需要的成分。

Matlab提供了一系列有用的滤波器设计命令,使用户能够轻松设计并应用各种类型的滤波器。

在本文中,我们将详细介绍Matlab中常用的滤波器设计命令,包括滤波器设计函数、滤波器类型和设计过程。

I. Matlab中常用的滤波器设计函数在Matlab中,有几种函数可用于设计滤波器,其中最常用的函数是`designfilt`函数和`fir1`函数。

1. designfilt函数`designfilt`函数是Matlab中最灵活和功能强大的滤波器设计函数之一,可用于设计各种类型的IIR和FIR滤波器。

它的基本语法如下:`filt = designfilt(FilterType, 'PropertyName', PropertyValue, ...)`其中,`FilterType`代表滤波器类型,包括低通滤波器(Lowpass)、高通滤波器(Highpass)、带通滤波器(Bandpass)、带阻滤波器(Bandstop)等。

`PropertyName`和`PropertyValue`是可选的参数,用于设置滤波器的各种属性,如阶数(Order)、截止频率(CutoffFrequency)、通带和阻带的最大衰减(MaximumAttenuation)等。

下面是一个使用`designfilt`函数设计低通滤波器的例子:Fs = 1000; 采样频率Fpass = 20; 通带截止频率Fstop = 30; 阻带截止频率designfilt('lowpassiir', 'FilterOrder', 4, 'PassbandFrequency', Fpass, 'StopbandFrequency', Fstop, 'SampleRate', Fs)该命令将设计一个4阶的低通IIR滤波器,其通带截止频率为20Hz,阻带截止频率为30Hz,采样频率为1000Hz。

MATLAB 用频率采样法设计一带通数字滤波器(程序)

MATLAB 用频率采样法设计一带通数字滤波器(程序)

以MATLAB 用频率采样法设计一带通数字滤波器。

低通带边缘:w1p=0.2*pi,低阻带边缘:w1s=0.35*pi,高通带边缘w2p=0.65*pi,高阻带边缘w2s=0.8*pi;设计过渡带中的频率样本值为T1=0.109021,T2=0.59417456cheb1% wp1=0.45*pi;wp2=0.65*pi;ws1=0.3*pi;ws2=0.75*pi;Rp=1;Rs=40% =============双线型变换法========================================= wp1=0.45*pi; wp2=0.65*pi;ws1=0.3*pi; ws2=0.75*pi;Rp=1; Rs=40;Wp1=tan(wp1/2); Wp2=tan(wp2/2);Ws1=tan(ws1/2); Ws2=tan(ws2/2);BW=Wp2-Wp1; W0=Wp1*Wp2; W00=sqrt(W0);WP=1; WS=WP*(W0^2-Ws1^2)/(Ws1*BW);[N,Wn]=cheb1ord(WP,WS,Rp,Rs,'s');[B,A]=cheby1(N,Rp,Wn,'s');[BT,AT]=lp2bp(B,A,W00,BW);[num,den]=bilinear(BT,AT,0.5);[h,omega]=freqz(num,den,64);subplot(2,2,1);stem(omega/pi,abs(h));xlabel('\omega/\pi');ylabel('|H(z)|');subplot(2,2,2);stem(omega/pi,20*log10(abs(h)));xlabel('\omega/\pi');ylabel('增益.dB');% =============直接法=================================wp1=0.45*pi; wp2=0.65*pi;ws1=0.3*pi; ws2=0.75*pi;Rp=1; Rs=40;Wp=[wp1/pi,wp2/pi]; Ws=[ws1/pi,ws2/pi];[N,Wn]=cheb1ord(Wp,Ws,Rp,Rs);[B,A]=cheby1(N,Rp,Wn);[h,omega]=freqz(B,A,64);subplot(2,2,3);stem(omega/pi,abs(h));xlabel('\omega/\pi');ylabel('|H(z)|');subplot(2,2,4);stem(omega/pi,20*log10(abs(h)));xlabel('\omega/\pi');ylabel('增益.dB');%cheby2%% wp1=0.45*pi;wp2=0.65*pi;ws1=0.3*pi;ws2=0.75*pi;Rp=1;Rs=40% =============双线型变换法=========================================wp1=0.45*pi; wp2=0.65*pi;ws1=0.3*pi; ws2=0.75*pi;Rp=1; Rs=40;Wp1=tan(wp1/2); Wp2=tan(wp2/2);Ws1=tan(ws1/2); Ws2=tan(ws2/2);BW=Wp2-Wp1; W0=Wp1*Wp2; W00=sqrt(W0);WP=1; WS=WP*(W0^2-Ws1^2)/(Ws1*BW);[N,Wn]=cheb2ord(WP,WS,Rp,Rs,'s');[B,A]=cheby2(N,Rs,Wn,'s');[BT,AT]=lp2bp(B,A,W00,BW);[num,den]=bilinear(BT,AT,0.5);[h,omega]=freqz(num,den,64);subplot(2,2,1);stem(omega/pi,abs(h));xlabel('\omega/\pi');ylabel('|H(z)|');subplot(2,2,2);stem(omega/pi,20*log10(abs(h)));axis([0 1 -100 0]);xlabel('\omega/\pi');ylabel('增益.dB');% =============直接法=================================wp1=0.45*pi; wp2=0.65*pi;ws1=0.3*pi; ws2=0.75*pi;Rp=1; Rs=40;Wp=[wp1/pi,wp2/pi]; Ws=[ws1/pi,ws2/pi];[N,Wn]=cheb2ord(Wp,Ws,Rp,Rs);[B,A]=cheby2(N,Rs,Wn);[h,omega]=freqz(B,A,64);subplot(2,2,3);stem(omega/pi,abs(h));xlabel('\omega/\pi');ylabel('|H(z)|');subplot(2,2,4);stem(omega/pi,20*log10(abs(h)));axis([0 1 -100 0]);xlabel('\omega/\pi');ylabel('增益.dB');%椭圆%% wp1=0.45*pi;wp2=0.65*pi;ws1=0.3*pi;ws2=0.75*pi;Rp=1;Rs=40% =============双线型变换法========================================= wp1=0.45*pi; wp2=0.65*pi;ws1=0.3*pi; ws2=0.75*pi;Rp=1; Rs=40;Wp1=tan(wp1/2); Wp2=tan(wp2/2);Ws1=tan(ws1/2); Ws2=tan(ws2/2);BW=Wp2-Wp1; W0=Wp1*Wp2; W00=sqrt(W0);WP=1; WS=WP*(W0^2-Ws1^2)/(Ws1*BW);[N,Wn]=ellipord(WP,WS,Rp,Rs,'s');[B,A]=ellip(N,Rp,Rs,Wn,'s');[BT,AT]=lp2bp(B,A,W00,BW);[num,den]=bilinear(BT,AT,0.5);[h,omega]=freqz(num,den,64);subplot(2,2,1);stem(omega/pi,abs(h));grid;xlabel('\omega/\pi');ylabel('|H(z)|');subplot(2,2,2);stem(omega/pi,20*log10(abs(h)));grid;xlabel('\omega/\pi');ylabel('增益.dB');% =============直接法================================= wp1=0.45*pi; wp2=0.65*pi;ws1=0.3*pi; ws2=0.75*pi;Rp=1; Rs=40;Wp=[wp1/pi,wp2/pi]; Ws=[ws1/pi,ws2/pi];[N,Wn]=ellipord(Wp,Ws,Rp,Rs);[B,A]=ellip(N,Rp,Rs,Wn);[h,omega]=freqz(B,A,64);subplot(2,2,3);stem(omega/pi,abs(h));grid;xlabel('\omega/\pi');ylabel('|H(z)|');subplot(2,2,4);stem(omega/pi,20*log10(abs(h)));grid;xlabel('\omega/\pi');ylabel('增益.dB');一个例程,只需要改一改参数就行了clear all;f=[0 0.19 0.2 0.3 0.31 0.59 0.6 0.8 0.81 1];% 给定频率轴分点;m=[0 0 1 1 0 0 1 1 0 0];% 给定在这些频率分点上理想的幅频响应N1=30;N2=90;% 取两种不同的滤波器长度;b1=fir2(N1,f,m);b2=fir2(N2,f,m);% 得到两个滤波器;subplot(311);stem(b1,'.');grid;subplot(312);stem(b2,'.');grid;M=128;[h1,w]=freqz(b1,1,M,1);[h2,w]=freqz(b2,1,M,1);subplot(313);plot(w,abs(h1),'b-',w,abs(h2),'g-');grid;其中,f是归依化以后的频率通过数字滤波器的采样频率算出来,根据通带和阻带算好f和m就行了看一看help,这个函数应该有窗函数的选择默认情况下是汉明窗设计一个模拟的butterworth低通滤波器,设阶数是N,OmegaC=50*pi*2;[z,p,k]=buttap(N);p=p*OmegaC;k=k*OmegaC^N;B=real(poly(z));b0=k;b=k*B;a=real(poly(p));这样一个最简单的低通滤波器就设计好了,b是传递函数的分子系数,a是分母,都是按s的降幂排列的。

matlab设计椭圆带通滤波器

matlab设计椭圆带通滤波器

椭圆带通滤波器是一种数字信号处理中常用的滤波器,具有在指定频率范围内实现带通滤波的特点。

Matlab作为一种强大的科学计算软件,可以方便地对椭圆带通滤波器进行设计和实现。

本文将介绍使用Matlab设计椭圆带通滤波器的基本原理和方法,并给出相应的实例演示。

1. 椭圆带通滤波器的基本原理椭圆带通滤波器是一种数字信号处理滤波器,其设计依据是数字信号的频域特性和滤波器的传递函数。

在滤波器设计中,一般需要确定滤波器的通带、阻带以及过渡带的频率范围,以及滤波器在这些频率范围内的增益特性。

椭圆带通滤波器相比于其他常见的滤波器如Butterworth滤波器和Chebyshev滤波器,其具有更为陡峭的通带与阻带边缘、更小的过渡带宽度、更高的阻带衰减等优点,适用于对信号频率精确要求较高的应用场景。

2. 椭圆带通滤波器的设计步骤椭圆带通滤波器的设计主要包括两个方面:确定滤波器的频率响应特性和实现滤波器的传递函数。

在Matlab中,可以利用信号处理工具箱提供的相关函数和工具进行滤波器设计和分析,以下是椭圆带通滤波器设计的基本步骤:(1) 确定滤波器的通带、阻带与过渡带频率范围;(2) 根据设计要求选择椭圆带通滤波器的滤波器类型、阶数和指定通带和阻带的最大允许波纹;(3) 使用Matlab中的ellipord函数计算椭圆带通滤波器的阶数和截止频率;(4) 利用ellip函数设计滤波器的传递函数,并计算其零极点信息;(5) 可视化滤波器的频率响应曲线和幅度响应曲线,评估滤波器的设计效果。

3. Matlab实例演示以下是使用Matlab进行椭圆带通滤波器设计的简单实例演示:(1) 确定椭圆带通滤波器的设计参数,包括通带频率范围、阻带频率范围及其对应的最大允许波纹等;(2) 使用Matlab中的ellipord函数计算椭圆带通滤波器的阶数和截止频率,例如:```matlab[order, cutoff] = ellipord(wp, ws, Rp, Rs, 's');```(3) 利用ellip函数设计滤波器的传递函数,并计算其零极点信息,例如:```matlab[num, den] = ellip(order, Rp, Rs, cutoff, 's');zplane(num, den);```(4) 绘制滤波器的频率响应曲线和幅度响应曲线,例如:```matlabfreqz(num, den);```(5) 评估滤波器的设计效果,包括通带波纹、阻带衰减、相位特性等。

【DSP教程】第43章IIR滤波器的Matlab设计

【DSP教程】第43章IIR滤波器的Matlab设计

【DSP教程】第43章IIR滤波器的Matlab设计第43章 IIR滤波器的Matlab设计本章节讲解IIR滤波器的Matlab设计,主要包括巴特沃斯滤波器,切⽐雪夫I型和II型滤波器以及椭圆滤波器。

43.1 巴特沃斯滤波器的设计43.2 切⽐雪夫滤波器的设计43.3 椭圆滤波器的设计43.4 总结43.1 巴特沃斯滤波器的设计43.1.1 butter函数功能:⽤于设计Butterworth(巴特沃斯)滤波器语法:[b, a] = butter(n, W n);说明:butter函数可以设计低通、带通、⾼通和带阻数字滤波器,其特性可以使通带内的幅度响应最⼤限度地平坦,但会损失截⽌频率处的下降斜度,使幅度响应衰减较慢。

[b,a] = butter(n,W n)可以设计截⽌频率为W n的n阶低通butterworth滤波器,其中截⽌频率W n应满⾜0<=W n<=1,W n=1相当于0.5f s(采样频率)。

当W n = [W1 W2]时,butter函数产⽣⼀个2n阶的数字带通滤波器,其通带为W1 < W < W2。

[b,a] = butter(n,W n,'ftype')可以设计⾼通或带阻滤波器。

当ftype=high时,可设计截⽌频率为W n的⾼通滤波器;当ftype=stop时,可设计带阻滤波器,此时W n = [W1 W2],阻带为W1 < W < W2。

使⽤butter函数设计滤波器,可以使通带内的幅度响应最⼤地平坦,但会损失截⽌频率处的下降斜度。

因此,butter函数主要⽤于设计通带平坦的数字滤波器。

43.1.2 buttord函数功能:⽤来选择Butterworth滤波器的阶数。

语法:[n, W n] = buttord(W P, W S, R P, R s);说明:buttord函数可以在给定滤波器性能的情况下,选择Butterworth数字滤波器的最⼩阶数,其中W P和W S分别是通带和阻带的截⽌频率,其值为0<=W p(或W s)<=1,当该值为1时表⽰0.5f s(采样率)。

matlab实现滤波器

matlab实现滤波器

虽然matlab提供了很多产生低通滤波器的函数,而且也提供了将低通转换为高通、带通等滤波器的方法函数,以及数字化的函数。

但是为了简化设计及设计者方便考虑,matlab还提供了更为简便的产生各种滤波器的方法。

1 besself功能:贝塞尔(Bessel)模拟滤波器设计。

格式:[b,a] = besself(n,Wn)[b,a] = besself(n,Wn,'ftype')[z,p,k] = besself(...)[A,B,C,D] = besself(...)说明:besself函数可以设计模拟低通、高通、带通和带阻贝塞尔(Bessel)滤波器。

[b,a] = besself(n,Wn)返回截止频率为Wn(单位为弧度/秒)的n阶贝塞尔模拟低通滤波器,b、a分别为滤波器传递函数的分子和分母系数向量(降幂排列)。

当Wn为二元向量,即Wn=[W1 W2] (W1<W2)时,[b,a] = besself(n,Wn)返回一个2n阶模拟带通滤波器,其通带为W1<ω< W2。

[b,a] = besself(n,Wn,'ftype')用于设计高通和带阻滤波器,即·ftype=high时,返回截止频率为Wn的高通滤波器;·ftype=stop时,Wn=[W1 W2] (W1<W2),返回阻带为W1<ω< W2的模拟带阻滤波器。

[z,p,k] = besself(...)得到滤波器的零-极点增益模型,z、p、k分别为零点向量、极点向量和增益系数。

[A,B,C,D] = besself(...)得到滤波器的状态空间模型。

2 butter功能:巴特沃思(Butterworth)模拟/数字滤波器设计。

格式:[b,a] = butter(n,Wn)[b,a] = butter(n,Wn,'ftype')[b,a] = butter(n,Wn,'s')[b,a] = butter(n,Wn,'ftype','s')[z,p,k] = butter(...)[A,B,C,D] = butter(...)说明:butter函数可以设计模拟或数字的低通、高通、带通和带阻Butterworth 滤波器。

用MATLAB设计低通,带通,高通

用MATLAB设计低通,带通,高通

用MATLAB设计低通,带通,高通和带阻FIR数字滤波器急!!!!悬赏分:30 - 解决时间:2006-11-1 20:56(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;提问者:wwce520 - 魔法学徒一级最佳答案低通采样定理实验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 转换。

数字信号处理后的数据可能需还原为模拟信号,这就需要进行D/A转换。

一个仅包括A/D和D/A两部分的简化数字信号处理系统功能如图1所示。

A/D转换包括三个紧密相关的过程,即抽样、量化和编码。

A/D转换中需解决的以下几个重要问题:抽样后输出信号中还有没有原始信号的信息?如果有能不能把它取出来?抽样频率应该如何选择?奈奎斯特抽样定理(即低通信号的均匀抽样定理)告诉我们,一个频带限制在0至fx以内的低通信号x(t),如果以fs≥2fx的抽样速率进行均匀抽样,则x(t)可以由抽样后的信号xs(t)完全地确定,即xs(t)包含有x(t)的成分,可以通过适当的低通滤波器不失真地恢复出x(t)。

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

燕山大学课程设计说明书题目:椭圆带通滤波器的设计学院(系):电气工程学院年级专业: 12级学号:学生姓名:指导教师:教师职称:电气工程学院《课程设计》任务书课程名称:数字信号处理课程设计基层教学单位:仪器科学与工程系指导教师:说明:1、此表一式四份,系、指导教师、学生各一份,报送院教务科一份。

2、学生那份任务书要求装订到课程设计报告前面。

电气工程学院教务科摘要所谓数字滤波器,是指输入输出均为数字信号,通过数值运算处理改变输入信号所含频率成分的相对比例,或者滤除某些频率成分的数字器件或程序。

数字滤波器处理精度高、稳定、体积小、重量轻、灵活、不存在阻抗匹配问题。

典型的模拟滤波器有巴特沃斯滤波器、切比雪夫滤波器和椭圆滤波器和贝塞尔滤波器,其中椭圆滤波器具有较好的性能。

Matlab是一套集数值计算、符号运算及图形处理等强大功能于一体的科学计算软件。

作为强大的科学计算平台,它几乎能够满足所有的计算需求。

本课结合MATLAB设计模拟椭圆滤波器。

目录第一章概论------------------------------------------------------ 1第二章信号处理原理---------------------------------------------- 22.1椭圆滤波器的基本理论-------------------------------------- 22.2采样定理-------------------------------------------------- 3第三章软件仿真设计---------------------------------------------- 43.1椭圆滤波器设计结构图-------------------------------------- 43.2设计椭圆模拟带通滤波器的步骤------------------------------ 43.3 MATLAB相关函数介绍--------------------------------------- 4第四章程序和仿真结果分析---------------------------------------- 84.1带通通滤波器设计程序-------------------------------------- 84.2仿真结果KK及分析----------------------------------------- 9参考文献-------------------------------------------------------- 13第一章概论椭圆滤波器又称考尔滤波器。

是在通带和阻带等波纹的一种滤波器。

椭圆滤波器相比其他类型的滤波器在阶数相同的条件下有着最小的通带和阻带波动。

它在通带和阻带的波动相同,这一点区别于在通带和阻带都平坦的巴特沃斯滤波器以及通带平坦、阻带等波纹或是阻带平坦、通带等波纹的切比雪夫滤波器。

椭圆滤波器传输函数是一种较复杂的逼近函数,利用传统的设计方法进行电路网络综合要进行繁琐的计算,还要根据计算结果进行查表,整个设计、调整都十分困难和繁琐。

有许多方法都是希望能快速简便地设计并实现椭圆滤波器从而把电子电路设计者从烦琐的模拟滤波器设计中解放出来。

Matlab 的信号处理工具箱提供了设计椭圆滤波器的函数:ellipord函数和ellip函数。

通过编程可以很容易由滤波器的技术指标得到所需滤波器的阶数实现各种类型的椭圆滤波器,大大简化了椭圆滤波器的设计。

本文采用的方法是MATLAB设计出滤波器的传输函数,然后再用通用的可编程滤波器来实现。

第二章 信号处理原理2.1椭圆滤波器的基本理论模拟滤波器是电子设备中最重要的部分之一。

常用的滤波器有巴特沃斯滤波器、切比雪夫滤波器以及椭圆滤波器;贝塞尔滤波器巴特沃斯和切比雪夫滤波器的传输函数都是一个常数除以一个多项式,为全极点网络,仅在无限大处阻带衰减为无限大,而椭圆函数滤波器在有限频率上既有零点又有极点。

零、极点在通带内产生等纹波,阻带内的有限传输零点减少了过渡区,可获得极为陡峭的衰减曲线。

也就是说对于给定的阶数和波纹要求,椭圆滤波器能获得较其它滤波器更窄的过渡带宽,就这点而言,椭圆滤波器是最优的。

椭圆滤波器有如下特点:1、椭圆高通滤波器是一种零、极点型滤波器,它在有限频率范围内存在传输零点和极点。

2、椭圆高通滤波器的通带和阻带都具有等波纹特性,因此通带,阻带逼近特性良好。

3、对于同样的性能要求,它比前两种滤波器所需用的阶数都低,而且它的过渡带比较窄。

它的振幅平方函数为2221()1/a N p H j R εΩ=+ΩΩ() 其中RN (x )是雅可比(Jacobi) 椭圆函数,ε为与通带衰减有关的参数。

2.2采样定理模拟信号经过 (A/D) 变换转换为数字信号的过程称之为采样,信号采样后其频谱产生了周期延拓,每隔一个采样频率fs ,重复出现一次。

理想采样就是假设采样开关闭合时间无限短,即t®0的极限情况。

此时采样序列可表示为一个冲激函数序列。

采样定理:要想采样后能够不失真地还原出原模拟信号,则采样频率必须大于两倍原模拟信号频谱的最高截止频率(s Ω³2c Ω)。

第三章 软件仿真设计3.1椭圆滤波器设计结构图椭圆滤波器设计结构图如图所示: 图3.1椭圆滤波器结构框图3.2设计椭圆模拟带通滤波器的步骤1.确定模拟滤波器的性能指标s R p R s W Wp 、、、。

2.由性能指标计算出滤波器阶次N 。

3.通过归一化及去归一化求出的模拟滤波器)(s Ha 。

3.3 MATLAB 相关函数介绍1. Matlab 的信号处理软件提供了设计椭圆滤波器的函数:ellipord 函数和ellip 函数。

(1).Ellipord 函数的功能是求滤波器的最小阶数其调用格式为[]()s ,Rs Rp,Ws,Wp,ellipord =Wn N,''其中:N 为椭圆滤波器最小阶数、Wp 是椭圆滤波器通带频率(Hz)、Ws 为椭圆滤波器阻带频率(Hz)、Rp 为通带波纹最大衰减(dB)、Rs 为阻带最小衰减(dB)。

在本次设计中,Wp 分别为10Hz 和20Hz 、Ws 分别为8Hz 和22Hz,、Rp 和Rs 各为1dB 和40db 。

具体程序如下:采样(100HZ ) 连续混合 信号带通滤波器 输出Wp=[10,20];Ws=[8,22];Rp=1;Rs=40;[N,Wn]=ellipord(Wp,Ws,Rp,Rs,'s'); 运行可得 6 N = Wn =10 20(2).Ellip 函数的功能是用来设计椭圆滤波器。

其调用格式[]()Wp Rs,Rp,n,ellip =a b, []()e ftyp ,Wp Rs,Rp,n,ellip = a b, ''其中h hig = e ftyp ''''为高通滤波器、w lo = e ftyp ''''为低通滤波器、p sto = e ftyp ''''为带阻滤波器。

返回长度为n+1的滤波器系数行向量b 和a,进而求得传递函数H(z)1121121()H()()1+nn n n b b z z B z z A z a z z --+--+++==++…+b …a2.频谱分析函数:fft 函数、filter 函数和freqz 函数。

1).fft 函数功能:对信号进行离散傅里叶变换。

其调用格式:fft(X) fft(X,N) fft(X,[],DIM)或fft(X,N,DIM)说明:fft(X)是对输入信号X 的离散傅里叶变换。

fft(X,N)是N 点傅里叶变换,如果X 少于N 点则补0凑齐位数,长于N点则截断。

如果x 是个矩阵,列的长度将会以同样的方式调整,fft 会对每列进行傅里叶变换,并返回一个相同维数的矩阵。

fft(X,[],DIM)或fft(X,N,DIM)是离散傅里叶变换在DIM 尺度上的应用。

DIM 可适应于任意维度的fft 运算。

2).filter 函数功能:利用IIR 滤波器和FIR 滤波器对数据进行滤波。

其调用格式: y=filter(b,a,x)[y,zf]=filter(b,a,x)y=filter(b,a,x,zi)说明:filter 采用数字滤波器对数据进行滤波,其实现采用移位直接Ⅱ型结构,因而适用于IIR 和FIR 滤波器。

滤波器的系统函数为n n mm z a z a z a z a z b z b z b z b b Z H --------+⋅⋅⋅+++++⋅⋅⋅++++=33221133221101)( 即滤波器系数a=[a 0 a 1 a 2 ...a n ],b=[b 0 b 1 ...b m ],输入序列矢量为x 。

这里,标准形式为a 0=1,如果输入矢量a 时,a 0≠1,则MATLAB 将自动进行归一化系数的操作;如果a 0=0则给出出错信息。

y=filter(b,a,x)利用给定系数矢量a 和b 对x 中的数据进行滤波,结果放入y 矢量中,y 的长度取max(N,M)。

y=filter(b,a,x,zi)可在zi 中指定x 的初始状态。

[y,zf]=filter(b,a,x)除得到矢量y 外,还得到x 的最终状态矢量zf 。

3).freqz 函数功能:离散时间系统的频率响应。

其调用格式:[h,w]=freqz(b,a,n)[h,f]=freqz(b,a,n,Fs)h=freqz(b,a,w) h=freqz(b,a,f,Fs) 说明: freqz 用于计算数字滤波器H(Z)的频率响应函数H(e j ω)。

[h,w]=freqz(b,a,n)可得到数字滤波器的n 点幅频响应值,这n 个点均匀地分布在[0,π]上,并将这n 个频点的频率记录在w 中,相应的频响值记录在h 中。

要求n 为大于零的整数,最好为2的整数次幂,以便采用FFT 计算,提高速度。

缺省时n =512。

[h,f]=freqz(b,a,n,Fs)用于对H(e j ω)在[0,Fs/2]上等间隔采样n 点,采样点频率及相应频响值分别记录在f 和h中。

由用户指定FS (以HZ为单位)值。

h=freqz(b,a,w)用于对H(e jω)在[0,2π]上进行采样,采样频率点由矢量w指定。

h=freqz(b,a,f,Fs) 用于对H(e jω)在[0,FS]上采样,采样频率点由矢量f指定。

freqz(b,a,n) 用于在当前图形窗口中绘制幅频和相频特性曲线。

第四章程序和仿真结果分析4.1带通通滤波器设计程序Wp=[10,20];Ws=[8,22];Rp=1;Rs=40;[N,Wn]=ellipord(Wp,Ws,Rp,Rs,'s');Fs=100;q=(0:255)/256*50;t=(1:100)/Fs;c=sin(2*pi*t*5)+sin(2*pi*t*15)+sin(2*pi*t*30);figure(1);[b,a]=ellip(N,Rp,Rs,Wn/50);[H,w]=freqz(b,a,512);plot(w*Fs/(2*pi),abs(H));title('带通滤波器频率特性');xlabel('频率(HZ)');ylabel('频率响应图');sf=filter(b,a,c);figure(2);subplot(211);plot(t,c);xlabel('时间(秒)');ylabel('幅值');title('连续信号');subplot(212);plot(t,sf);title('通过滤波器后信号波形');xlabel('时间(秒)');ylabel('幅值');cc=fft(c,512);sff=fft(sf,512);figure(3);subplot(211);plot(q,abs(cc(1:256)));title('原连续信号频谱特性');xlabel('频率(HZ)');ylabel('频率响应');subplot(212);plot(q,abs(sff(1:256)));title('通过滤波器后信号频谱特性');xlabel('频率(HZ)');ylabel('频率响应');4.2仿真结果KK及分析1.滤波器的频率特性图图4.1带通滤波器频率特性结果分析:从仿真图可以看出椭圆滤波器的过渡带非常窄,且在通带和阻带都有波动,符合椭圆滤波器的特点。

相关文档
最新文档