Matlab椭圆低通滤波器设计

合集下载

基于Matlab的椭圆带阻IIR数字滤波器设计(数字频率变换)讲解

基于Matlab的椭圆带阻IIR数字滤波器设计(数字频率变换)讲解

数字信号处理课程设计数字频带变换的椭圆IIR 带阻滤波器设计南华大学 电气工程学院 电子091班 苗润武 20094470138一 手工计算完成椭圆IIR 数字带阻滤波器初始设计1、设计要求:滤波器的设计指标要求为 ⑴通带下截止频率, ⑵阻带下截止频率, ⑶阻带上截止频率, ⑷通带上截止频率,⑸通带最大衰减, ⑹阻带最小衰减。

其中为我学号的后两位。

我的学号:20094470138,所以=38。

由此计算性能指标(保留小数点后1位)得: ⑴通带下截止频率:=rad e π2.05038∙=1.3 rad/sample ⑵阻带下截止频率=rad e π3.05038∙=2.0 rad/sample ⑶阻带上截止频率:=rad e π7.05038∙=4.7 rad/sample ⑷通带下截止频率:=rad e π8.05038∙=5.3 rad/sample⑸通带最大衰减: ⑹阻带最小衰减:由πω2=f 得到性能指标在MATLAB 中的常用形式(保留小数点后1位): ⑴2.0=pl f πrad /sample ,⑵3.0=sl f πrad/sample ,⑶7.0=su f πrad/sample ,⑷8.0=pu f πrad/sample2、数字边界频率转换成模拟边界频率: 转变换关系为:ω21tan 2T =Ω 其中,令T=2s 计算模拟边界频率(保留小数点后1位)得: ⑴=Ωpl 0.8 rad/s⑵=Ωsl 1.6 rad/s ⑶=Ωsu -1.0 rad/s ⑷=Ωpu -0.5 rad/s另外: ⑸ ⑹3、将带阻滤波器的设计要求转换为低通原型滤波器的设计要求 ⑴p Ω=1 ⑵=Ω-ΩΩ-Ω=Ωplpu slsu s =2.0⑶ ⑷将p Ω和s Ω的几何平均值0Ω作为频率归一化的基准频率,即:s ΩΩ=Ωp 0=2.0定义频率的选择性因数λ为两个截止频率之比:5.0=ΩΩ=sp λ4、设计低通原型滤波器转移函数H(s) 椭圆滤波器的幅频响应函数公式为:)(11)(2SP N E j H ΩΩ+=Ωε其中,ε为波纹系数,表示波纹情况;s Ω为截止频率,)(SPN E ΩΩ=为椭圆函数。

椭圆滤波器的设计说明

椭圆滤波器的设计说明

目录第一章摘要 (1)第二章引言 (2)第三章基本原理 (2)第四章设计过程 (3)4.1椭圆滤波器设计结构图 (3)4.2设计椭圆数字滤波器的步骤 (3)第五章程序和仿真图 (6)5.1低通滤波器设计程序 (6)5.2带通滤波器设计程序 (7)5.3高通滤波器设计程序 (8)5.4信号的仿真图 (10)第六章结语 (12)心得体会 (12)参考文献 (12)第一章摘要本文通过利用MATLAB滤波滤波器设计函数直接实现椭圆滤波器的设计,介绍了椭圆型滤波器的基本理论和设计思想,给出了基于MATLAB设计低通、带通、高通椭圆型滤波器的具体步骤和利用MATLAB产生一个包含低频、中频、高频分量的连续信号,并实现对信号进行采样。

文中还对采样信号进行频谱分析和利用设计的椭圆滤波器对采样信号进行滤波处理,并对仿真结果进行分析和处理。

详细介绍了在基于MA TLAB 设计椭圆滤波器过程中常用到的工具和命令。

第二章引言数字滤波器设计在电子工程、应用数学和计算机科学领域都是非常重要的容。

椭圆滤波器(Elliptic filter)又称考尔滤波器(Cauer filter),是在通带和阻带等波纹的一种滤波器。

它比切比雪夫方式更进一步地是同时用通带和阻带的起伏为代价来换取过渡带更为陡峭的特性。

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

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

现代生活中,数字信号经过DAC转换获得的模拟信号的例子太多了,如声卡中的语音合成输出,又如试验室中的合成信号发生器等,为了滤除谐波干扰,获得高精度的模拟信号,大多数就采用本文介绍的衰减特性陡峭的椭圆低通滤波器。

因此椭圆滤波器具有广泛的应用。

第三章基本原理3.2椭圆滤波器的特点幅值响应在通带和阻带都是等波纹的,对于给定的阶数和给定的波纹要求,椭圆滤波器能获得较其它滤波器为窄的过渡带宽,就这点而言,椭圆滤波器是最优的,其振幅平方函数为2221()1/a N pH j R εΩ=+ΩΩ() 其中RN (x )是雅可比(Jacobi) 椭圆函数,ε为与通带衰减有关的参数。

数字滤波器的设计及其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程序)2010/2011学年第2 学期学院:信息与通信⼯程学院专业:电⼦信息科学与技术学⽣姓名:学号:课程设计题⽬:低通滤波器设计起迄⽇期: 6 ⽉13 ⽇~6⽉24⽇课程设计地点:指导教师:系主任:下达任务书⽇期: 2011 年 6 ⽉12 ⽇课程设计任务书课程设计任务书⽬录1 设计⽬的及要 (5) 1.1设计⽬的 (5)1.2设计内容和要求 (5)2 设计原理 (5)2.1 FIR滤波器 (5) 2.2窗函数 (6)2.3矩形窗 (7)3 设计过程 (8)3.1 设计流程图 (8)3.2 产⽣原始信号并分析频谱 (8)3.3 使⽤矩形窗设计不同特性的数字滤波器 (10)3.4 信号滤波处理 (11)4 实验结果及分析 (12)5 课程设计⼼得体会 (12)6 参考⽂献 (13)附录: (14)低通滤波器的设计1 设计⽬的及要求1.1设计⽬的设计⼀种低通滤波器并对信号进⾏滤波。

低通滤波器的作⽤是滤去信号中的中频和⾼频成分,增强低频成分。

要求做到:1.了解MATLAB 的信号处理技术;2.使⽤MATLAB 设计低通滤波器,掌握其滤波处理技术;3.对滤波前和滤波后的波形进⾏时域和频域⽐较。

1.2设计内容和要求1.熟悉有关采样,频谱分析的理论知识,对信号作频谱分析;2.熟悉有关滤波器设计理论知识,选择合适的滤波器技术指标,设计低通滤波器对信号进⾏滤波,对⽐分析滤波前后信号的频谱;3.实现信号频谱分析和滤波等有关MATLAB 函数;2 设计原理本次课程设计,我们主要是基于矩形窗的FIR 滤波器来设计⼀个低通滤波器。

2.1 FIR 滤波器FIR 滤波器即有限抽样响应因果系统,其单位抽样响应h(n)是有限长的;极点皆位于z=0处;结构上不存在输出到输⼊的反馈,是⾮递归型的。

其系统函数表⽰为:()()n -1-N 0n z n h z H ∑==普通的FIR 滤波器系统的差分⽅程为:()()()i n x i h n y 1N 0i -=∑-=式中:N 为FIR 滤波器的抽头数;x(n)为第n 时刻的输⼊样本;h(i)为FIR 滤波器第 i 级抽头系数。

matlab做低通滤波器设计思路

matlab做低通滤波器设计思路

设计低通滤波器是数字信号处理领域中的一项关键任务,而Matlab 作为一款强大的数学建模与仿真软件,为我们提供了丰富的工具和函数来完成这一任务。

在本篇文章中,我们将介绍在Matlab中设计低通滤波器的思路和具体步骤。

设计低通滤波器主要涉及以下几个方面:1. 确定滤波器的规格要求在设计任何一种滤波器之前,我们首先需要明确滤波器的规格要求,包括截止频率、通带最大衰减、阻带最小衰减等。

这些规格要求将直接影响到滤波器的设计参数和性能。

在Matlab中,可以利用Signal Processing Toolbox提供的函数来帮助我们确定滤波器的规格要求。

2. 选择滤波器的类型根据实际的应用需求,我们需要选择合适的滤波器类型。

常见的低通滤波器包括巴特沃斯滤波器、切比雪夫滤波器、椭圆滤波器等。

每种类型的滤波器都有其适用的场景和特点。

在Matlab中,我们可以利用Filter Design and Analysis工具箱中的函数来选择合适的滤波器类型。

3. 根据规格要求设计滤波器一旦确定了滤波器的类型,我们就可以根据规格要求来设计滤波器。

在Matlab中,可以利用Filter Design and Analysis工具箱中的函数来实现滤波器设计,包括巴特沃斯滤波器设计函数butter()、切比雪夫滤波器设计函数cheby1()和cheby2()、椭圆滤波器设计函数ellip()等。

4. 分析和优化滤波器性能设计完成滤波器后,我们需要对滤波器的性能进行分析和优化。

在Matlab中,可以利用Filter Design and Analysis工具箱中的函数来对滤波器的频率响应、相位响应、裙延迟等进行分析,并根据实际需求对滤波器进行优化。

5. 验证滤波器的性能我们需要对设计完成的滤波器进行性能验证。

在Matlab中,可以利用Signal Processing Toolbox提供的函数来对设计的滤波器进行信号处理和性能评估,以确保滤波器能够满足实际需求。

基于Matlab的IIR Butterworth低通数字滤波器设计

基于Matlab的IIR Butterworth低通数字滤波器设计

问题:信号滤波是一个非常重要的信号处理手段,大量的信号处理系统中,信号滤波的质量将直接影响到系统整体性能。

现在有家医院向你提出一个问题,她们的心电图信号记录仪器由于受到了比较严重的电源干扰(50Hz附近),记录到的心电图ECG波形有较大的畸变,请问如何设计一个干扰滤除系统,让记录下的ECG数据继续可以进行疾病诊断。

(ECG的波形信息非常重要,设计滤波器需要注意这一点)基于Matlab的IIR Butterworth低通数字滤波器设计0 引言心电信号是心脏电活动在人体体表的表现,它一般比较微弱,其频率为0.05Hz~ 100Hz(能量集中在0. 05Hz~ 44Hz),幅度为几百微伏至几毫伏。

因此,在心电信号的采集过程中,极易受到内、外界环境的干扰,其中50Hz的工频干扰尤为突出。

心电图信号的干扰对心电图数据分析和压缩有一定影响。

如何消除50Hz工频干扰,成为处理心电信号的首要任务。

为了消除ECG数据中的主要干扰,保留有用信号或者从干扰中“抽取”有用信号,人们提出了许多方法,诸如,平滑滤波,中心频率固定的带阻滤波器,自适应滤波,低通数字滤波等等。

这些信号处理方法各有优缺点,平滑滤波算法简单,处理速度快,滤波效果较好,但存在一定的削峰作用;中心频率固定的带阻滤波器原理简单,能较大程度地抑制50Hz工频干扰,但存在“群延时”现象;自适应滤波器的中心频率能够跟随工频信号的频率幅度变化而自动调节并抵消工频干扰,但需要附加参考信号通道,算法相对复杂,难以用于实时处理。

考虑到工频干扰是50Hz的低频信号,假设要处理的ECG信号为0.05HZ~44HZ段信号,且Matlab软件中有一个数字滤波器软件包,可以直接进行调用处理信号,所以本文设计IIR巴特沃斯(Butterworth)低通数字滤波器来实现人体ECG信号的滤波。

1 数字滤波器介绍数字滤波器是一种用来过滤时间离散信号的数字系统,它可以用软件(计算机程序)或用硬件来实现,而且在两种情况下都可以用来过滤实时信号或非实时信号(记录信号)。

基于MATLAB的IIR滤波器的设计和应用(信号去噪)

基于MATLAB的IIR滤波器的设计和应用(信号去噪)

数字信号处理课程设计报告书课题名称基于MATLAB 的IIR 滤波器的设计及应用(信号去噪)姓 名 学 号院、系、部 电气工程系 专 业 电子信息工程 指导教师2013年 6 月28日※※※※※※※※※ ※※※※ ※※ ※※※※※※※※※2010级数字信号处理 课程设计基于MATLAB 的IIR 滤波器的设计及应用(信号去噪)一、实验目的1.学会MATLAB 的使用,掌握MATLAB 的程序设计方法。

2.掌握数字信号处理的基本概念、基本理论和基本方法。

3. 在MATLAB 环境下产生噪声信号。

4.掌握MATLAB 设计IIR 数字滤波器的方法。

5.学会用MATLAB 对信号进行分析和处理。

二、实验原理数字滤波器的设计:巴特沃斯(Butterworth)滤波器的幅度平方函数用下式表示: ()Nc j H 2211⎪⎪⎭⎫ ⎝⎛ΩΩ+=Ω∂ (2.1)式中,N 为滤波器的阶数,幅度下降的速度与N 有关,N 越大,通带越平坦,过渡带越窄,总的频响特性与理想低通滤波器的误差越小。

切比雪夫(Chebyshev)滤波器的幅频特性在通带或者阻带有等波纹特性,可以提高选择性,其幅度平方函数用下式表示:()⎪⎪⎭⎫ ⎝⎛ΩΩ+=Ω∂PN C j H 22211ε (2.2) 式中,ε为小于1的正数,表示通带幅度波动的程度,ε越大,波动幅度也越大,Ωp 称为通带截止频率。

椭圆(Ellipse)滤波器的通带和阻带呈现等波纹幅频特性时,通带和阻带波纹幅度越小,过渡带就越宽。

所以椭圆滤波器的阶数由通带边界频率、阻带边界频率、通带边界衰减、阻带边界衰减共同决定。

三、主要实验仪器及材料微型计算机、MATLAB6.5教学版四、实验内容1.噪声信号的频谱分析。

2.设计数字滤波器和画出频率响应:低通滤波器性能指标,fp=1000Hz ,fs=1800 Hz , As=100dB ,Ap=1dB ; 在MATLAB 中,可以利用函数butte 、cheby1和ellip 设计IIR 滤波器;最后,利用MATLAB 中的函数freqz 画出各滤波器的频率响应。

低通滤波器matlab课程设计

低通滤波器matlab课程设计

低通滤波器matlab课程设计一、课程目标知识目标:1. 理解低通滤波器的原理和数学模型;2. 掌握使用MATLAB进行低通滤波器的设计与实现;3. 学会分析低通滤波器的频率特性及其在实际应用中的作用。

技能目标:1. 能够运用MATLAB软件设计不同类型的低通滤波器;2. 能够通过调整滤波器参数,优化滤波效果;3. 能够利用所学的知识解决实际信号处理问题。

情感态度价值观目标:1. 培养学生对信号处理领域的兴趣,激发学习热情;2. 培养学生严谨的科学态度,注重实验数据的真实性;3. 培养学生的团队协作意识,提高沟通与交流能力。

课程性质:本课程为电子信息工程及相关专业的高年级学生设计,结合了理论知识与实践操作。

课程以低通滤波器的设计为主线,通过MATLAB软件的运用,使学生更好地理解信号处理技术。

学生特点:学生已具备一定的电路基础和MATLAB编程能力,具有较强的学习能力和动手实践能力。

教学要求:课程要求学生在掌握低通滤波器理论知识的基础上,通过MATLAB 软件实现滤波器的设计与优化。

教学过程中注重培养学生的实际操作能力和问题解决能力,将理论知识与实际应用紧密结合。

通过课程学习,使学生能够达到上述课程目标,为后续相关课程打下坚实基础。

二、教学内容1. 理论知识:- 低通滤波器的基本概念与分类;- 低通滤波器的传递函数与频率特性分析;- MATLAB环境下滤波器设计的基本原理。

2. 实践操作:- 使用MATLAB设计不同类型的低通滤波器(如巴特沃斯、切比雪夫等);- 分析和调整滤波器参数,观察滤波效果的变化;- 对实际信号进行处理,验证滤波器的性能。

3. 教学大纲:- 第一周:低通滤波器的基本概念与分类,介绍相关教材章节;- 第二周:低通滤波器的传递函数与频率特性分析,结合教材相关内容;- 第三周:MATLAB环境下滤波器设计原理,结合教材实例进行讲解;- 第四周:实践操作,指导学生使用MATLAB设计低通滤波器,并进行性能分析;- 第五周:课程总结与作业布置,巩固所学知识。

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

用Matlab设计椭圆滤波器
ellipord函数[求椭圆滤波器的阶数]
[N, Wp] = ellipord(Wp, Ws, Rp, Rs, 's') does the computation for an analog filter, in which case Wp and Ws are in radians/second.
n-椭圆滤波器最小阶数;
Wp-椭圆滤波器通带截止角频率;
Ws-椭圆滤波器阻带起始角频率;
Rp-通带波纹(dB);
Rs-阻带最小衰减(dB);
ellip函数[椭圆滤波器设计]
调用格式:[b,a] = ellip(n,Rp,Rs,Wp)
[b,a] = ellip(n,Rp,Rs,Wp,'ftype',’s’)
返回长度为n+1的滤波器系数行向量b和a,
'ftype' = 'high' 高通滤波器
'ftype' = 'low'低通滤波器
'ftype' = 'stop'带阻滤波器
设计程序为:
clc;clear all;
Rp=1,Rs=60;
Wp=20000000*2*pi;
Ws=22000000*2*pi;
[n,Wp]=ellipord(Wp,Ws,Rp,Rs,'s')
[b,a] = ellip(n,Rp,Rs,Wp,'low','s');
w=linspace(1,30000000,200000)*2*pi;
H=freqs(b,a,w);
magH=abs(H);
phaH=unwrap(angle(H)); %计算幅频响应和相频响应
figure(1);
subplot(2,1,1);
plot(w/(2*pi),20*log10(magH)); %以频率为横坐标绘制幅频响应
xlabel('频率/Hz');ylabel('振幅/dB');
title('幅频特性');
hold on;
plot([20000000 20000000],ylim, 'r*-'); %通带边界
grid on;
subplot(2,1,2);
semilogx(w, angle(H),'b');
xlabel('频率/Hz');ylabel('angle/rad');
title('相频特性');
grid on;
figure(2) %给出另一个图形窗口
dt=7.45058e-09; %采样间隔
f1=18000000;f2=24000000;%信号中所含频率成分t=0:dt:5e-6;%时间序列
x=sin(2*pi*f1*t)+0.5*cos(2*pi*f2*t); %输入信号H=[tf(b,a)]; %滤波器在MATLAB系统中的表示[y,t1]=lsim(H,x,t); %模拟输出
subplot(2,1,1);
plot(t,x),
title('输入信号') %绘输入信号
grid on;
subplot(2,1,2),plot(t1,y) %绘制输出信号
axis([0 5e-6 -2 2]);
title('输出信号');
xlabel('时间/s');
grid on;。

相关文档
最新文档