设计数字低通滤波器(用matlab实现)

合集下载

基于Matlab的巴特沃斯数字低通滤波器的设计

基于Matlab的巴特沃斯数字低通滤波器的设计

stga"TcM d m n a , Tc [ . . . ] ; e(c , i oe, aul i ,00 20 3051 ) X k X k
s (c , TcM d m n a , Tc [ t Rp1 ) e ga Y i oe, aul i ,0An i ] ; t k Y k
D( ) sD2s … D ( ) s =D () ( ) 5 () 7
当阶段 为奇数 时 : D() 。sD () :s… D () s =D () sD () s
1 2 巴特 沃斯 滤 波器 的特性 .
() 8
巴特沃斯 滤波 器 的特 点是 通频 带 的频率 响应 曲线 最平 滑 , 即频 率 响应 曲线 在 通 频带 内最 大 限度 平坦 , 有起伏 , 没 而在阻频 带则 逐渐 下降 为零 . 在振 幅 的对 数对 角频率 的波 特 图上 , 一 边界角 频率 开 从某 始, 振幅 随着角 频率 的增 加而逐 步减 少 , 于 负无穷 大 . 趋 利用 巴特沃 斯低 通 滤波 器 对 低 频段 的音 频信 号
对 音 频 信 号进 行 了处理 .
关键词 : 巴特沃斯 ; 滤波器; t bቤተ መጻሕፍቲ ባይዱ仿真 Maa ; l
中 图分 类 号 : P9 T33 文献标识码 : A 文 章 篇 号 :0 824 ( 0 2 0 -0 30 1o .4 1 2 1 ) 20 1 -3
M tb功能强大 , aa l 其信号处理工具箱( i a P cs n ol x 可 以快速有效地实现数字滤波器的 S nl r e i To o) g o s g b 设计与仿真 , 为滤波器的设计提供 了一个方便 的平台. 利用 M tb aa 设计数字滤波器在数字通信系统 和 l 计算机领域 中有着广阔的应用前景. 巴特沃斯 滤波器是 I I R数字滤波器 的一种【] 由于其在滤波的过 1, 程中通频带 内具有最大限度平坦 , 使得对音频信号进行平滑处理有较好的效果. 本文所设计的巴特沃斯 数字低通滤波器对一段音频信号进行了滤波处理 , 滤除了高频分量 , 音频信号的听觉效果经过滤波后变 得低 沉 , 明所 设计 的低 通滤 波器 是有 效 的. 表

用Matlab设计的低通数字滤波器

用Matlab设计的低通数字滤波器

指导教师评定成绩:审定成绩:重庆邮电大学自动化学院综合课程设计报告低通数字滤波器设计单位(二级学院):自动化学生姓名:专业:自动化班级:0810902学号:指导教师:设计时间:2012 年11月重庆邮电大学自动化学院制摘要本次设计以AT89S52单片机为控制器件,利用AD/DA转换芯片构成低通数字滤波器。

首先利用MATLAB根据要求设计低通滤波器模型并在该平台进行初步仿真得到较为理想的效果。

接着利用proteus软件搭建硬件电路,并对编写的程序进行检测;程序检测无误后,再用Protel画出电路图。

首先利用ADC0809将模拟信号转换成数字信号输入单片机,正弦模拟信号由AD9850模块产生,是一般正常的低频正弦波;另一个噪声信号是通过单片机产生的高频脉冲信号。

然后通过滤波程序将采集的数据进行算法滤波,滤波后的数据通过DAC0832输出,将DA0832的输出信号通过一级运放(UA741)转换成电压输出。

最后将运放输出的结果接到示波器上进行显示。

关键字:AT89C51、DDS、ADC0809、DAC0832、UA741设计题目题目与要求低通滤波器是允许低频讯号通过,而不允许高频讯号通过的滤波器。

本题目要求用单片机(型号任选)制作一个低通数字滤波器,要求:1.根据确定的采样频率,用MATLAB设计低通滤波器模型以满足不同截止频率需求,并进行仿真;2.用单片机设计并制作一个低通数字滤波器,实现数据采集、滤波处理、信号输出等功能(包括软、硬件);3.滤波器能与PC机通信,设计通信协议,实现截止频率参数的调节、原始信号采样数据与滤波后数据的上传;4.利用高级语言开发工具,设计PC机端的程序,可以调节滤波器参数,接收滤波器上传的原始信号采样数据与滤波后数据,并能绘图、保存;5.设计几种不同频率、类型的噪声,利用滤波器进行试验,记录实验情况并进行分析、总结;6.按规定的统一格式设计报告。

目录第一章 MATLAB仿真 (4)1.1方案论证 (4)1.2设计方法及原理介绍 (4)1.3 matlab编程实现 (5)1.4 Simulink仿真结构图 (5)第二章硬件设计方案 (6)2.1硬件功能整体设计 (6)2.2单片机最小系统 (7)2.3 ADC0809和74HC74 (7)2.4 DAC0832和UA741 (8)2.5 串口部分 (9)2.6 DDS部分 (9)第三章软件设计 (10)3.1 单片机软件设计 (10)3.2 PC机通信软件设计 (12)第四章心得体会 (13)参考文献 (14)附件1:方波源程序 (15)附件2:DDS正弦信号模块 (15)附件3:主单片机程序 (19)附录4:protues原理图 (21)附录5:protel电路图 (22)附录6:DDS原理图 (22)第一章 MATLAB 仿真1.1方案论证数字滤波器,按功能分类,可以分成低通、高通、带通、带阻、全通滤波器;按实现的网络结构或单位抽样响应分类:可以分成无限脉冲响应滤波器(IIR 滤波器)、有限脉冲响应滤波器(FIR 滤波器)。

数字滤波器的设计及其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的FIR低通滤波器设计及simulink仿真实现

基于Matlab的FIR低通滤波器设计及simulink仿真实现

基于Matlab的FIR低通滤波器设计及simulink仿真实现2012题目基于Matlab的FIR低通滤波器设计及simulink仿真实现学院自动化与电气工程学院专业测控技术与仪器班级 083 学号108034063 学生姓名 xxx 指导教师 xxx 完成日期 2012年5月25日xxx 科技学院本科毕业论文(2012届)题目基于Matlab的FIR低通滤波器设计及simulink 仿真实现学院自动化与电气工程学院专业测控技术与仪器083 班级学号 108034063学生姓名 xxx指导教师 xxx完成日期 2012年5月25号xxx科技学院毕业设计、学位论文版权使用授权书本人 xxx 学号 108034063 声明所呈交的毕业设计、学位论文《基于Matlab 的FIR低通滤波器设计及simulink仿真实现》,是在导师指导下进行的研究工作及取得的研究成果。

除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究成果,与我一同工作的人员对本研究所做的任何贡献均已在论文中作了明确的说明并表示谢意。

本毕业设计、学位论文作者愿意遵守xxx科技学院关于保留、使用学位论文的管理办法及规定,允许毕业设计、学位论文被查阅。

本人授权 xxx科技学院可以将毕业设计、学位论文的全部或部分内容编入有关数据库在校园网内传播,可以采用影印、缩印或扫描等复制手段保存、汇编毕业设计、学位论文。

(保密的学位论文在解密后适用本授权书)论文作者签名:xxx 导师签名: xxx签字日期: 2012 年5月 25日签字日期: 2012 年 5 月 25日浙江科技学院本科毕业设计摘要数字滤波器是数字信号处理的一个重要的技术分支。

在现代电子系统中,FIR 数字滤波器以其良好的线性特性被广泛使用,属于数字信号处理的基本模块之一。

在工程实践中,一般对信号处理要求有实时性和灵活性,而已有的一些软件和硬件计算和实现方式则难以同时达到这两方面的要求。

利用MATLAB实现数字低通滤波器的设计

利用MATLAB实现数字低通滤波器的设计

西南石油大学实验报告一实验目的:1学习用Matlab直接设计模拟滤波器和数字滤波器。

2学习用冲激响应不变法和双线性变换法的Matlab的实现。

二实验内容:设计满足下列指标的数字低通滤波器:Wp=0.2*pi, Rp=1db Ws=0.5*pi Rs=20db Fs=1khz1.利用B、C1型设计出模拟低通滤波器,采用冲激响应不变法、双线性发转换成数字低通滤波器。

2.直接设计出B、C1型数字低通滤波器。

三实验步骤:程序1Wp=2*pi*0.1*1000;Ws=2*pi*0.25*1000;Rp=1;Rs=20;[N,Wn]=buttord(Wp,Ws,Rp,Rs,'s');[z,p,k]=buttap(N);[B,A]=butter(N,Wn,'s');freq1=linspace(0,Wp,5);freq2=linspace(Wp,Ws,15);freq3=linspace(Ws,10*pi*2,25);h1=20*log10(abs(freqs(B,A,freq1)));h2=20*log10(abs(freqs(B,A,freq2)));h3=20*log10(abs(freqs(B,A,freq3)));plot([freq1 freq2 freq3]/(2*pi),[h1,h2,h3]);grid;Xlabel('Frequency in Hz');Ylabel('gain in DB');图一程序2wp=0.2*pi;ws=0.5*pi;rp=1;rs=20;fs=1000;omegap=wp*fs;omegas=ws*fs;[N,Wn]=buttord(omegap,omegas,rp,rs,'s');[B A]=butter(N,Wn,'s');[b,a]=impinvar(B,A,fs);[h,w]=freqz(b,a,256);h=20*log10(abs(h));plot(w/pi,h);图二程序3wp=0.2*pi;ws=0.5*pi;rp=1;rs=20;fs=1000;omegap=2*fs*tan(wp/2);omegas=2*fs*tan(ws/2);[N,Wn]=cheb1ord(omegap,omegas,rp,rs,'s');[B A]=cheby1(N,rp,Wn,'s');[b,a]=bilinear(B,A,fs);[h,w]=freqz(b,a,256);h=20*log10(abs(h));plot(w/pi,h);图三程序4wp=0.2*pi;ws=0.5*pi;rp=1;rs=20;[N,Wn]=buttord(wp/pi,ws/pi,rp,rs);[B A]=butter(N,Wn);[h,w]=freqz(B,A,256);h=20*log10(abs(h));plot(w/pi,h);图四程序5Wp=0.2*pi;Ws=0.5*pi;Rp=1;Rs=20;T=0.001;Fs=1000;omegap=(2/T)*tan(Wp/2);omegas=(2/T)*tan(Ws/2);[N,Wn]=cheb1ord(omegap,omegas,Rp,Rs,'s'); [B,A]=cheby1(N,Rp,Wn,'s');[b,a]=bilinear(B,A,Fs);[h,w]=freqz(b,a,256);h1=20*log10(abs(h));plot(w/pi,h1);grid;xlabel('Digital Frequency in pi units'); ylabel('Gain in DB');axis([0 1 -50 10]);图五Wp=0.2;Ws=0.5;Rp=1;Rs=20;disp('ÇбÈÑ©·òIÐÍ')[N,Wn]=cheb1ord(Wp,Ws,Rp,Rs)[B,A]=cheby1(N,Rp,Wn);disp('ÇбÈÑ©·òÐÍ·Ö×Ó¶àÏîʽ');fprintf('%.4e\n',B);disp('ÇбÈÑ©·ò·Öĸ¶àÏîʽ');fprintf('%.4e\n',A);w=linspace(0,0.8*pi,50);h1=20*log10(abs(freqz(B,A,w)));plot(w/pi,h1);grid;xlabel('Normalized frequency');ylabel('Gain in DB ');axis([0 0.8 -50 1]);图六四、实验小结通过本次实验,对MA TLAB软件有了进一步的了解,也在不断的实践中,更多的熟悉了MATLAB的编程,在编程方面一点点的有了进步。

基于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实现)

设计数字低通滤波器(用matlab实现)

DSP 设计滤波器报告姓名:张胜男 班级:07级电信(1)班 学号:078319120一·低通滤波器的设计(一)实验目的:掌握IIR 数字低通滤波器的设计方法。

(二)实验原理:1、滤波器的分类滤波器分两大类:经典滤波器和现代滤波器。

经典滤波器是假定输入信号)(n x 中的有用成分和希望取出的成分各自占有不同的频带。

这样,当)(n x 通过一个线性系统(即滤波器)后可讲欲去除的成分有效的去除。

现代滤波器理论研究的主要内容是从含有噪声的数据记录(又称时间序列)中估计出信号的某些特征或信号本身。

经典滤波器分为低通、高通、带通、带阻滤波器。

每一种又有模拟滤波器(AF )和数字滤波器(DF )。

对数字滤波器,又有IIR 滤波器和FIR 滤波器。

IIR DF 的转移函数是:∑∑=-=-+==Nk k k M r r rz a z b z X z Y z H 101)()()(FIR DF 的转移函数是:∑-=-=10)()(N n nz n h z HFIR 滤波器可以对给定的频率特性直接进行设计,而IIR 滤波器目前最通用的方法是利用已经很成熟的模拟滤波器的设计方法进行设计。

2、滤波器的技术要求低通滤波器:p ω:通带截止频率(又称通带上限频率) s ω:阻带下限截止频率 p α:通带允许的最大衰减s α:阻带允许的最小衰减 (p α,s α的单位dB ) p Ω:通带上限角频率 s Ω:阻带下限角频率 (s p p T ω=Ω,s s s T ω=Ω)即 C p p F ωπ2=Ω C s s F ωπ2=Ω3、IIR 数字滤波器的设计步骤:1)按一定规则将给出的数字滤波器的技术指标转换为模拟低通滤波器的技术指标。

2)根据转换后的技术指标设计模拟低通滤波器)(s G ;3)再按一定的规则将)(s G 转换成)(z H 。

4)若是高通、带通或带阻数字滤波器则将它们的技术指标先转化为低通模拟滤波器的技术指标,然后按上述步骤2)设计出低通)(s G ,再将)(s G 转换为所需的)(z H 。

基于MATLAB和DSP实现的FIR数字低通滤波器

基于MATLAB和DSP实现的FIR数字低通滤波器
就是要实现下列差分方程:


FR低 通 滤 波 结 果 如 图 4所 示 。 I 2结 论 数字 滤波 器 以它 优 越 的性 能 ,在 语音 、 图 象 处 理 、模 式 识 别 等 领 域 中 占有 很 重 要 的地 位 。 采 用 Maa t b语 言 可 方 便 、快 捷 地 设 计 具 l
关键 词 : 1 滤 波 器 ; t b D P; 函 数 法 FR Mal ; S 窗 a
Ab t a t [ i a e ie a meho f F1 d g t l i e i t e c r u t n e f Ma l b n u i g s r c :"h s p p r g v s t d o R i i fl r n h ic msa c o a t t a d s n DS a P.Th p p r t ie wi d w u c in e a e u i z s l n o f n to t e in t e fl r n r d c s h s f r n h r wa e a d r s nt h i l to e u t o d sg h t ,i to u e t e o t i e wa e a d a d r n p e e s e s mu ai n r s l.Th F R i t r o ina a b e a h e e t e 1 f e f sg l l h s e n c i v d. Ke wor s y d :F1 R F l r i e ,Ma lb,DS ,W i d w u c i n t t a P n o F n t Me h d o to
维普资讯
科 黑江— 投信息 — 龙— —
信 息科 学
基于M T A A L B和D P S 实现的FR数字 I 低通滤波器

低通滤波的matlab实现

低通滤波的matlab实现

四种低通滤波器:一、理想低通滤波器I=imread('bb.jpg');T=rgb2gray(I);figure(1);subplot(1,2,1),imshow(uint8(I));title('原图像');subplot(1,2,2),imshow(uint8(T));title('理想低通滤波所得图像');[f1,f2]=freqspace(size(T),'meshgrid');H=ones(size(T));r=sqrt(f1.^2+f2.^2);H(r>0.1)=0;Y=fft2(double(T));Y=fftshift(Y);Ya=Y.*H;Ya=ifftshift(Ya);I=ifft2(Ya);figure(2);surf(H,'Facecolor','interp','Edgecolor','none','Facelighting','phong'); title('频谱图');二、巴特沃斯低通滤波器I=imread('bb.jpg');T=rgb2gray(I);figure(1);subplot(1,2,1),imshow(uint8(I));title('原图像');subplot(1,2,2),imshow(uint8(T));title('巴特沃斯低通滤波所得图像');[f1,f2]=freqspace(size(T),'meshgrid');D=0.3;r=f1.^2+f2.^2;n=4;for i=1:size(T,1)for j=1:size(T,2)t=r(i,j)/(D*D);H(i,j)=1/(t^n+1);endendY=fft2(double(T));Y=fftshift(Y);Ya=Y.*H;Ya=ifftshift(Ya);I=real(ifft2(Ya));figure(2);surf(H,'Facecolor','interp','Edgecolor','none','Facelighting','phong'); title('频谱图');三、梯形滤波器I=imread('bb.jpg');T=rgb2gray(I);figure(1);subplot(1,2,1),imshow(uint8(I));title('原图像');subplot(1,2,2),imshow(uint8(T));title('梯形低通滤波所得图像');[f1,f2]=freqspace(size(T),'meshgrid');D=100/size(I,1);D0=0.1;D1=0.4;r=sqrt(f1.^2+f2.^2);H=zeros(size(T));H(r<D0)=1;for i=1:size(T,1)for j=1:size(I,2)if r(i,j)>=D0 & r(i,j)<=D1H(i,j)=(D1-r(i,j))/(D1-D0);endendendY=fft2(double(T));Y=fftshift(Y);Ya=Y.*H;Ya=ifftshift(Ya);I=real(ifft2(Ya));figure(2);surf(H,'Facecolor','interp','Edgecolor','none','Facelighting','phong'); title('频谱图');四、高斯低通滤波器I=imread('bb.jpg');T=rgb2gray(I);figure(1);subplot(1,2,1),imshow(uint8(I));title('原图像');subplot(1,2,2),imshow(uint8(T));title('高斯低通滤波所得图像');[f1,f2]=freqspace(size(T),'meshgrid');D=100/size(I,1);r=f1.^2+f2.^2;H=ones(size(T));for i=1:size(T,1)for j=1:size(T,2)t=r(i,j)/(D*D);H(i,j)=exp(-t);endendY=fft2(double(T));Y=fftshift(Y);Ya=Y.*H;Ya=ifftshift(Ya);I=real(ifft2(Ya));figure(2);surf(H,'Facecolor','interp','Edgecolor','none','Facelighting','phong'); title('频谱图');。

基于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设计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)。

用Matlab设计的低通数字滤波器

用Matlab设计的低通数字滤波器

指导教师评定成绩:审定成绩:重庆邮电大学自动化学院综合课程设计报告低通数字滤波器设计单位(二级学院):自动化学生姓名:专业:自动化班级:0810902学号:指导教师:设计时间:2012 年11月重庆邮电大学自动化学院制摘要本次设计以AT89S52单片机为控制器件,利用AD/DA转换芯片构成低通数字滤波器。

首先利用MATLAB根据要求设计低通滤波器模型并在该平台进行初步仿真得到较为理想的效果。

接着利用proteus软件搭建硬件电路,并对编写的程序进行检测;程序检测无误后,再用Protel画出电路图。

首先利用ADC0809将模拟信号转换成数字信号输入单片机,正弦模拟信号由AD9850模块产生,是一般正常的低频正弦波;另一个噪声信号是通过单片机产生的高频脉冲信号。

然后通过滤波程序将采集的数据进行算法滤波,滤波后的数据通过DAC0832输出,将DA0832的输出信号通过一级运放(UA741)转换成电压输出。

最后将运放输出的结果接到示波器上进行显示。

关键字:AT89C51、DDS、ADC0809、DAC0832、UA741设计题目题目与要求低通滤波器是允许低频讯号通过,而不允许高频讯号通过的滤波器。

本题目要求用单片机(型号任选)制作一个低通数字滤波器,要求:1.根据确定的采样频率,用MATLAB设计低通滤波器模型以满足不同截止频率需求,并进行仿真;2.用单片机设计并制作一个低通数字滤波器,实现数据采集、滤波处理、信号输出等功能(包括软、硬件);3.滤波器能与PC机通信,设计通信协议,实现截止频率参数的调节、原始信号采样数据与滤波后数据的上传;4.利用高级语言开发工具,设计PC机端的程序,可以调节滤波器参数,接收滤波器上传的原始信号采样数据与滤波后数据,并能绘图、保存;5.设计几种不同频率、类型的噪声,利用滤波器进行试验,记录实验情况并进行分析、总结;6.按规定的统一格式设计报告。

目录第一章 MATLAB仿真 (4)1.1方案论证 (4)1.2设计方法及原理介绍 (4)1.3 matlab编程实现 (5)1.4 Simulink仿真结构图 (5)第二章硬件设计方案 (6)2.1硬件功能整体设计 (6)2.2单片机最小系统 (7)2.3 ADC0809和74HC74 (7)2.4 DAC0832和UA741 (8)2.5 串口部分 (9)2.6 DDS部分 (9)第三章软件设计 (10)3.1 单片机软件设计 (10)3.2 PC机通信软件设计 (12)第四章心得体会 (13)参考文献 (14)附件1:方波源程序 (15)附件2:DDS正弦信号模块 (15)附件3:主单片机程序 (19)附录4:protues原理图 (21)附录5:protel电路图 (22)附录6:DDS原理图 (22)第一章 MATLAB 仿真1.1方案论证数字滤波器,按功能分类,可以分成低通、高通、带通、带阻、全通滤波器;按实现的网络结构或单位抽样响应分类:可以分成无限脉冲响应滤波器(IIR 滤波器)、有限脉冲响应滤波器(FIR 滤波器)。

matlab设计低通滤波器

matlab设计低通滤波器

重庆邮电大学本科毕业设计(论文)摘要在当今的数字信息的世界里,数字信号处理已经演变成一门越来越重要的学科,并在通信、语音、图像、自动控制、雷达、军事、航空航天、医疗和家用电器等众多领域得到了广泛的应用。

其中数字滤波是数字信号处理的重要内容。

数字滤波器可分为IIR和FIR两大类,对于IIR滤波器的设计来说主要有脉冲响应不变法和双线性变换法,而对于FIR数字滤波器的设计来说主要有窗函数法和频率采样设计法。

本文应用MATLBA对数字低通滤波器进行仿真,并给出一定频率的信号通过所设计的滤波器来验证滤波器的性能,主要的研究工作主要包括以下几方面的内容:(1)介绍IIR滤波器和FIR滤波器的结构特点并比较两者之间的差别。

(2)在MATLAB中应用双线性变换法和脉冲响应不变法设计IIR滤波器,给出了滤波器的频率特性图和相位特性图。

(3)通过编写MATLAB程序用窗函数设计法和频率采样法来完成FIR低通滤波器的设计,并给出几个不同频率的信号通过所设定的滤波器来验证滤波器的性能。

(4)在MATLAB中应用Simulink模块来仿真FIR低通滤波器,并在示波器上同时显示输入信号的频率和输出信号的频率,最后对结果进行分析。

【关键字】FIR滤波器IIR滤波器, 双线性变换法脉冲响应不变法窗函数法频率采样法MATLABABSTRACTIn nowadays world of digital information, digital signal processing has become an increasingly important subject, and has been widely applied in all fields, such as medicine, communications, and other areas, digital filters are important elements of digital signal processing. Digital filters can be divided into two kinds of IIR and FIR, IIR filter design for pulse response method and bilinear transformation method, for FIR digital filter design, the main Windows function method and frequency of sampling design.In this paper simulation using MATLAB for digital low-pass filter, and to give a signal of a certain frequency through the filters designed to verify the performance of filter, the main research work mainly includes the following content:(1) Describes the structure of FIR and IIR filters filter characteristics and comparison of the differences between the two.(2) In MATLAB using bilinear transformation method and impulse response method design of IIR filters, to out of the filters of frequency response and phase characteristics.(3) Design method by writing MATLAB programs use the windows function and frequency sampling method to accomplish the design of FIR low-pass filters, and gives several different frequency signals passes through a set of filters to verify that the filter's performance.(4) In the MATLAB Simulink simulation FIR low-pass filter module to the application, and also on the scope displays the frequency of the input signal and the output signal frequency, final analysis of the results.【Key words】FIR digital IIR digital filter Bilinear transformation methodImpulse response method Windows functionFrequency sampling method MATLAB目录前言 (1)第一章数字滤波器 (2)第一节数字滤波器的简介 (2)第二节数字滤波器的应用 (3)第三节数字滤波器的实现方法分析及优点 (4)第四节MATLAB和Simulink简介 (5)第五节本章小结 (7)第二章数字滤波器的结构和设计原理 (8)第一节数字滤波器的基本结构 (8)一、IIR滤波器的基本结构 (8)二、FIR滤波器的基本结构 (10)第二节数字滤波器的设计原理 (12)一、滤波器的设计步奏 (12)二、滤波器的性能指标 (13)第三节IIR滤波器与FIR滤波器的分析比较 (13)第四节本章小结 (15)第三章IIR滤波器的设计 (16)第一节脉冲响应不变法的基本原理 (16)一、变化原理 (16)二、混叠失真 (16)三、主要特点 (17)四、MATLAB(脉冲响应不变法)设计滤波器 (18)第二节双线性不变法的基本原理 (19)一、变换原理 (19)二、主要优缺点 (19)三、MATLAB(双线性变化法)设计数字低通滤波器 (19)第三节本章小结 (21)第四章FIR滤波器的设计 (22)第一节线性相位FIR滤波器的特点 (22)第二节利用窗函数设计FIR低通滤波器 (24)一、窗函数的基本思想 (24)二、几种常用的窗函数 (24)第二节频率采样法设计FIR低通滤波器 (32)一、频率采样设计法的基本原理 (32)二、线性相位的约束 (32)三、逼近误差及其改进措施 (32)第三节FIR数字滤波器的优化设计 (35)第四节本章小结 (36)第五章仿真结果及分析 (37)第一节MATLAB(窗函数法)设计FIR数字低通滤波器 (37)第二节MATLAB(频率采样法)设计FIR数字低通滤波器 (39)第三节Simulink仿真FIR滤波器 (42)第四节本章小结 (44)结论 (45)致谢 (46)参考文献 (46)附录 (47)一、英文原文 (48)二、英文翻译 (55)三、仿真脚本 (62)重庆邮电大学本科毕业设计(论文)前言模拟滤波器与数字滤波器的设计对工程,应用数学及计算机科学都是非常重要的。

matlab低通滤波器设计

matlab低通滤波器设计

matlab低通滤波器设计
matlab低通滤波器设计:
1、使用matlab设计低通滤波器的方法
(1) 首先根据低通滤波器的频率响应要求,计算滤波器构成要素的参数;
(2) 确定滤波器所要采用的元件模型,选择常用的元件模型;
(3) 使用matlab构筑出低通滤波器的模型和原理图;
(4) 根据原理图推导出滤波器的传递函数,使用matlab计算滤波器的频率响应,绘制出滤波器的频率响应曲线;
(5) 分析滤波器的传递特性,观察是否符合要求,如果不符合要求,可以调整模型的参数,重新计算滤波器的频率响应,直到满足频率响应要求为止。

2、使用matlab构件低通滤波器所需要的工具
(1) matlab控制环境,用于控制滤波器的构筑和参数的设定;
(2) Matlab编程工具,用于实现计算滤波器构件的算法;
(3) Matlab图形操作工具,用于绘制滤波器的理论响应曲线;
(4) Matlab仿真工具,用于检查滤波器的理论分析结果。

3、低通滤波器的优势
(1) 低通滤波器对频率低于截止频率的信号又较低的衰减率,因此保证低频信号的精度;
(2) 滤波器设计简单,而且可以采用大量元件来实现;
(3) 低通滤波器的频率响应特性主要取决于滤波器的电路结构,使用matlab设计的低通滤波器可以很容易的设定符合自己要求的参数。

用MATLAB设计数字FIR低通滤波器(哈明窗)

用MATLAB设计数字FIR低通滤波器(哈明窗)

用MATLAB设计数字FIR低通滤波器(哈明窗)设计数字FIR低通滤波器,技术指标如下:Wp=0.2pi.rp=0.25db;Ws=0.3pi,as=50db.求解,如下图:程序:wp=0.2*pi;ws=0.3*pi;trwidth=ws-wp;M=ceil(6.6*pi/trwidth)+1;%朝正无穷方向取整n=[0:1:M-1];wc=(ws+wp)/2%求的截止频率(弧度)hd=ideal_lp(wc,M) %调用计算理想低通滤波器的单位取样响应wham=(hamming(M))';%哈明窗函数h=hd.*wham;[H,w]=freqz(h,1,1000,'whole'); %求Z变换频率响应函数H=(H(1:1:501))';w=(w(1:1:501))'mag=abs(H);db=20*log10((mag+eps)/max(mag));pha=angle(H);grd=grpdelay(h,1,w);deltaw=2*pi/1000;Rp=-(min(db(1:1:wp/deltaw+1)))As=-round(max(db(ws/deltaw+1:1:501)))subplot(1,1,1)subplot(2,2,1),stem(n,hd);title('理想脉冲响应')axis([0 M-1 -0.1 0.3]);xlabel('N');ylabel('hd(n)');subplot(2,2,2),stem(n,wham);title('Hamming窗')axis([0 M-1 -0 1.1]);xlabel('N');ylabel('w(n)');subplot(2,2,3),stem(n,h);title('实际脉冲响应')axis([0 M-1 -0.1 0.3]);xlabel('N');ylabel('h(n)');subplot(2,2,4),plot(w/pi,db);title('相对标尺的幅度响应');grid on;axis([0 1 -100 10]);xlabel('frequency in pi units');ylabel('decibels');set(gca,'XTickMode','manual','XTick',[0,0.2,0.3,1])%设置或修改LTI对象的属性值set(gca,'XTickMode','manual','XTick',[-50,0])set(gca,'XTickLabelMode','manual','XTickLabels',['50';'0'])子程序:function hd=ideal_lp(wc,N);a=(N-1)/2;n=[0:1:(N-1)];m=n-a+eps;hd=sin(wc*m)./(pi*m);。

数字滤波器的MATLAB设计与仿真及在DSP上的实现

数字滤波器的MATLAB设计与仿真及在DSP上的实现

数字滤波器的MATLAB设计与仿真及在DSP上的实现数字滤波器的MATLAB设计与仿真及在DSP上的实现概述:数字滤波器是数字信号处理(DSP)中的重要组成部分,常用于信号去噪、频率选择、滤波等应用。

本文将介绍数字滤波器的设计、仿真以及在DSP上的实现。

我们将使用MATLAB软件进行数字滤波器设计和仿真,并利用DSP芯片进行实现。

第一部分:数字滤波器的设计与仿真1. 信号基础知识在设计数字滤波器之前,我们需要了解信号的基础知识,如信号的采样率、带宽、频率等。

这些基础知识将有助于我们选择合适的滤波器类型和参数。

2. 滤波器类型数字滤波器可以分为两大类别:无限冲激响应(IIR)滤波器和有限冲激响应(FIR)滤波器。

IIR滤波器具有无限的冲激响应,因此可以实现更为复杂的频率响应特性;而FIR滤波器降低了系统的非线性,同时具有线性相位特性,适用于需要精确延迟的应用。

3. 滤波器设计方法常用的数字滤波器设计方法包括窗函数法、最小二乘法和频率抽取法等。

根据具体的应用需求,我们可以选择合适的设计方法,并通过MATLAB进行滤波器的设计和参数调整。

4. 滤波器性能评估在设计完成后,我们需要评估数字滤波器的性能。

常见的评价指标包括滤波器的频率响应、幅频特性、相频特性、群延迟等。

通过MATLAB的仿真,我们可以直观地观察并分析滤波器的性能。

第二部分:数字滤波器在DSP上的实现1. DSP概述数字信号处理器(DSP)是一种专门设计用于处理数字信号的微处理器。

与通用微处理器相比,DSP具有更高的运算速度和更低的功耗,适用于实时信号处理应用。

2. DSP开发环境搭建为了实现数字滤波器的DSP上的实现,我们首先需要搭建DSP开发环境。

选择合适的DSP芯片,安装开发工具,编写代码并进行调试。

在本文中,我们以TMS320F28335为例,使用CCS开发工具进行开发。

3. 数字滤波器的DSP实现根据数字滤波器的设计结果,我们可以将其转化为DSP上的实现代码。

matlab设计iir低通滤波器代码

matlab设计iir低通滤波器代码

Matlab是一种强大的数学计算工具,广泛用于工程、科学和技术领域。

IIR(Infinite Impulse Response)滤波器是一种数字信号处理中常用的滤波器,可用于信号去噪、数据平滑等应用。

本文将介绍如何使用Matlab设计一个IIR低通滤波器的代码,以便读者能够了解IIR滤波器的原理和在Matlab中的实现方式。

IIR低通滤波器是一种将高频信号滤除,只保留低频信号的滤波器。

在数字信号处理中,我们经常需要对信号进行平滑处理或者去除噪音,这时就需要用到低通滤波器。

IIR低通滤波器相比于FIR(Finite Impulse Response)滤波器,具有更窄的过渡带和更好的通带纹波特性,在某些应用场景下具有更好的性能。

设计IIR低通滤波器的代码步骤如下:1. 定义滤波器的参数在设计IIR低通滤波器之前,首先需要定义滤波器的参数,包括通带边界频率、阻带边界频率、通带纹波和阻带衰减等。

这些参数将决定最终滤波器的性能。

2. 调用Matlab工具箱函数设计滤波器Matlab提供了多种设计IIR滤波器的工具箱函数,如butter、cheby1、cheby2和ellip等。

用户可以根据需要选择相应的函数来设计滤波器。

以butter函数为例,其调用形式为:[b, a] = butter(n, Wn, 'low');其中,n表示滤波器的阶数,Wn为归一化的截止频率。

3. 绘制幅频特性曲线设计完滤波器之后,可以通过freqz函数绘制滤波器的幅频特性曲线,以便直观地了解滤波器的性能。

除了以上的代码步骤,还可以对滤波器进行参数优化、性能评估等工作。

设计IIR低通滤波器的代码并不复杂,但需要对滤波器的原理和Matlab编程有一定的了解。

在实际应用中,设计IIR低通滤波器的代码可以根据具体的需求进行定制,比如考虑信号的频率特性、噪声的特点等。

通过不断地调试和优化滤波器的参数,可以得到满足实际需求的滤波器设计方案。

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

DSP 设计滤波器报告
姓名:张胜男 班级:07级电信(1)班 学号:078319120
一·低通滤波器的设计
(一)实验目的:掌握IIR 数字低通滤波器的设计方法。

(二)实验原理:
1、滤波器的分类
滤波器分两大类:经典滤波器和现代滤波器。

经典滤波器是假定输入信号)(n x 中的有用成分和希望取出的成分各自占有不同的频带。

这样,当)(n x 通过一个线性系统(即滤波器)后可讲欲去除的成分有效的去除。

现代滤波器理论研究的主要内容是从含有噪声的数据记录(又称时间序列)中估计出信号的某些特征或信号本身。

经典滤波器分为低通、高通、带通、带阻滤波器。

每一种又有模拟滤波器(AF )和数字滤波器(DF )。

对数字滤波器,又有IIR 滤波器和FIR 滤波器。

IIR DF 的转移函数是:
∑∑=-=-+==N
k k k M r r r
z a z b z X z Y z H 10
1)()()(
FIR DF 的转移函数是:
∑-=-=10)()(N n n
z n h z H
FIR 滤波器可以对给定的频率特性直接进行设计,而IIR 滤波器目前最通用的方法是利用已经很成熟的模拟滤波器的设计方法进行设计。

2、滤波器的技术要求
低通滤波器:
p ω:通带截止频率(又称通带上限频率) s ω:阻带下限截止频率 p α:通带允许的最大衰减 s α:阻带允许的最小衰减 (p α,s
α的单位dB ) p
Ω:通带上限角频率 s Ω:阻带下限角频率 (s p p T ω=Ω,s s s T ω=Ω)即 C p p F ωπ2=Ω C s s F ωπ2=Ω
3、IIR 数字滤波器的设计步骤:
1)按一定规则将给出的数字滤波器的技术指标转换魏模拟低通滤波器的技术指标。

2)根据转换后的技术指标设计模拟低通滤波器)(s G ;
3)再按一定的规则将)(s G 转换成)(z H 。

4)若是高通、带通或带阻数字滤波器则将它们的技术指标先转化为低通模拟滤波器的技术指标,然后按上述步骤2)设计出低通)(s G ,再将)(s G 转换为所需的)(z H 。

4.几种不同类型的滤波器的介绍:
因为我们设计的滤波器的冲击响应一般都为实数,所以有
2
*)()()()()(s j s j G s G s G s G s G Ω=-=Ω=
这样,如果我们能由
p α,p Ω,s α,s Ω求出2
)(Ωj G ,那么就容易得到所需要
的)(s G 。

不同类型的2)(Ωj G 的表达式,代表了几种不同类型的滤波器。

(1)巴特沃思(Butterworth)滤波器: n C j G )(11)(222
Ω+=Ω
C 为待定常数,N 为待定的滤波器阶次。

(2)切比雪夫I 型(Chebyshev – I )滤波器:
)(11
)(222Ω+=Ωn C j G ε
5.巴特沃思模拟低通滤波器的设计
由于每一个滤波器的频率范围将直接取决于设计者的应用目的,因此必然是千差万别。

为了使设计规范化,我们需要将滤波器的频率参数作归一化处理。

设所给的实际频率为Ω(或f ),归一化后的频率为λ,对低通模拟滤波器,令
λ=p ΩΩ/ 显然,1=p λ,p s s ΩΩ=/λ。

又令归一化复数变量为p ,λj p =,显然
p
p s j j p Ω=ΩΩ==//λ 所以巴特沃思模拟低通滤波器的设计可按以下三个步骤来进行。

(1)将实际频率Ω规一化
(2)求C 和N
11010/2-=P C α
s p s N λααlg 1101
10lg 10/10/--=
这样C 和N 可求。

若令p α=3dB ,则C =1,这样巴特沃思滤波器的设计就只剩一个参数N ,这时 N
p N j G 222)/(1111
)(ΩΩ+=+=λλ
(3)确定)(s G
因为λj p =,根据上面公式有
N N N p j p p G p G 22)1(11)/(11)()(-+=+=-
由 0)1(12=-+N N p 解得
)2212exp(πN N k j p k -+=,k =1,2, (2)
这样可得 1)212cos(21
)
)((1)(21+-+-=--=-+πN N k p p p p p p p G k N k k 求得)(p G 后,用p s Ω/代替变量p ,即得实际需要得)(s G 。

6.用双线性Z 变换法设计IIR 数字低通滤波器
s 平面到z 平面的映射关系
11
2+-=z z T s s 称为双线性Z 变换,由此关系求出
s T s
T z s s )2/(1)2/(1-+=
及 )2/cos()
2/sin(2ωωs T j j =Ω
即 )2/tan(2ωs T =
Ω
)2/arctan(2s T Ω=ω 因为设计滤波器时系数s T 2
会被约掉,所以又有
s s z -+=11 )2/tan(ω=Ω
Ω=arctan 2ω
(三)实验内容
题一:试用双线性Z 变换法设计一低通数字滤波器,给定技术指标是100=p f Hz ,300=s f Hz ,3=p αdB ,20=s α dB ,抽样频率1000=s F Hz 。

提示:首先应该得到角频率ω,然后再
(1) 将数字滤波器的技术要求转换为模拟滤波器的技术要求。

(2) 设计低通滤波器)(s G
由λ=p ΩΩ/依次求出p λ,s λ,再求出N ,可得)(p G 然后由p s
p p G s G Ω==)
()(转换成)(s G
(3) 由)(s G 求)(z H
源程序:
fp=100;
fs=300;
ap=3; %通带最大衰减
as=20; %阻带最小衰减
Fs1=1000; %抽样频率
wp=2*pi*fp/Fs1;
ws=2*pi*fs/Fs1; %数字角频率
Fs=Fs1/Fs1;
T=1/Fs;
Op=2/T*tan(wp/2);
Os=2/T*tan(ws/2); %角频率畸变
[N Wn]=buttord(Op,Os,ap,as,'s');
[z p k]=buttap(N); %G(p)的零点,极点,增益
[b a]=zp2tf(z,p,k); %G(p)的分子、分数系数
[B A]=lp2lp(b,a,Op); %H(s)的分子、分数系数
[Bz Az]=bilinear(B,A,Fs*T/2); %H(z)的分子、分数系数
[H w]=freqz(Bz,Az,256,Fs*Fs1); %H
plot(w,abs(H),'r');
title('低通滤波器');
grid on;
实验结果:
050100150200250300350400450500
00.2
0.4
0.6
0.8
1
1.2
低通滤波器
同理可以设计出低通滤波器和带通及带阻滤波器。

MATLAB 参考程序和仿真内容
%*******************************************************************%
function[x]=ffts(mode,M)
Nfft=2^M;
x=zeros(1,Nfft); %定义一个长度为Nfft 的一维全0数组
if mode= =1 for n=0:Nfft-1 x(n+1)=sin(2*pi*n/Nfft); end
end %定义一个长度为Nfft的单周期正弦序列
if mode= =2 for n=0:Nfft-1 x(n+1)=sin(4*pi*n/Nfft); end
end %定义一个长度为Nfft的双周期正弦序列
if mode= =3 for n=0:Nfft/2-1 x(n+1)=sin(4*pi*n/Nfft); end
end %定义一个长度为Nfft/2的正弦序列,后面一半为0序列。

if mode= =4 for n=0:Nfft-1 x(n+1)=square(2*pi*n/Nfft); end
end
if mode= =5 for n=0:Nfft-1 x(n+1)=square(2*pi*n/Nfft); end
end
if mode= =6 for n=0:Nfft/2-1 x(n+1)=square(4*pi*n/Nfft); end
end
n=0:Nfft-1;
subplot(2,1,1);
stem(n,x);
axis([0 Nfft-1 1.1*min(x) 1.1*max(x)]);
xlabel('Points-->');
ylabel('x(n)');
X=abs(fft(x,Nfft));
subplot(2,1,2);
stem(n,X);
axis([0 Nfft-1 1.1*min(X) 1.1*max(X)]);
xlabel('frequency-->');
ylabel('!X(k)!');
图二
图三。

相关文档
最新文档