基于MatLab与DSP的滤波器的快速设计方法
- 格式:pdf
- 大小:319.59 KB
- 文档页数:3
数字滤波器设计是用硬件或者软件实现的一种算法,这个算法是为了达到滤波的目的而对数字输入信号进行运算产生数字输出信号。
数字滤波器这个词是指执行滤波算法的特定硬件或者软件程序,数字滤波器经常作用的对象是数字化的模拟信号,或者刚好是存储在计算机存储器里代表某些变量的数据。
下图给出了一个具有模拟输入信号和输出信号的实时数字滤波器的简化框图。
带限模拟信号x(t)被周期地抽样,然后通过量化转化成一数字序列x(n)(n=0,1,……)。
数字处理器依据滤波器的计算算法执行滤波运算,把输入系列x(n)映射到输出系列y(n)。
DAC把数字滤波后的输出转化成模拟值,这些模拟值接着被模拟滤波器平滑,并且消去不想要的高频分量.利用MATLAB的强大运算功能,基于MATLAB信号处理工具的数字滤波器设计法可以快速有效的设计由软件组成的常规数字滤波器,设计方便、快捷,极大的减轻了工作量。
在设计过程中可以对比滤波器特性,随时更改参数,以达到滤波器设计的最优化。
1、MATLB仿真源程序fs=15000;T=1/fs; >> rp=1;rs=40;>> wp1=0.11*pi;wp2=0.81*pi;ws1=0.31*pi;ws2=0.61*pi; %数字带阻滤波器技术指标 >> wc1=(2/T)*tan(wp1/2); %频率预畸变 >>wc2=(2/T)*tan(wp2/2);wr1=(2/T)*tan(ws1/2);wr2=(2/T)*tan(ws2/2); >>w0=sqrt(wc1*wc2);B=wc2-wc1;>> wp=1; %归一化通带截止频率 >> ws=wp*(wr1*B)/(w0^2-wr1^2); %归一化阻带截止频率 >> [N,wc]=buttord(wp,ws,rp,rs,'s'); %求滤波器阶数和3dB截止频率 >> [Z,P,K]=buttap(N);>> [Md,Nd]=zp2tf(Z,P,K); %将零极点形式转换为传输形式 >>[M,N]=lp2bs(Md,Nd,w0,B); %对低通滤波器进行频率变换,转换为带阻滤波器 >> [h,w]=freqs(M,N); %模拟带阻滤波器的幅频响应 >> xlabel('频率/Hz');ylabel('幅度');title('模拟带阻滤波器');>> [b,a]=bilinear(M,N,15000); %对模拟滤波器双线性变换 >> figure(1);>> freqz(b,a);[H,W]=freqz(b,a); %绘出频率响应 >> axis([0,1,-100,20]);>> figure(2);>> plot(W*fs/(2*pi),abs(H));grid on;>> xlabel('频率/Hz');ylabel('幅值'); >> title('数字滤波器幅频响应|H(ejOmega)| ');指标参数:sl=0.5062 rad, sl=0.5536 rad,pl=0.3750 rad, pu=0.6750 rad,p=1dB, s=40 dB由MATLAB可得出系统函数系数:Bz=[ 0.3521 0.1819 1.0416 0.3576 1.0416 0.1819 0.3521]Az=[ 1.0000 0.3531 1.0547 0.3038 0.7232 0.0645 0.0095]系统函数为:H(Z)= (0.3521+0.1819 *z-1+1.0416*z-2+ 0.3576*z-3+ 1.0416*z-4+ 0.1819*z +0.3521*z)/(1.0000+ 0.3531*z+ 1.0547*z+ 0.3038*z+-4-5-60.7232*z+ 0.0645*z+ 0.0095*z)DSP带阻源程序:#include"math.h"#define IIRNUMBER 30#define SIGNAL1F 2200#define SAMPLEF 8000#define PI 3.1415926 -5-6-1-2-3float InputWave();float IIR();float fAn[IIRNUMBER]={0.3521,0.0575735,0.649911,-0.0395743,0.0979831,-0.0727494,-0.190606,0.100419,0.113193,-0.0413053,0.00630108,-0.0526857,-0.0620213,0.0971701,0.0441409,-0.0611411,-0.00629462,-0.0124744,-0.00798267,0.0583348,-0.000312435,-0.0489819,0.0065404,0.0078924,0.00173493,0.023966,-0.0142577,-0.0264339,0.0152646,0.00930233,-0.00260476}float fXn[IIRNUMBER]={ 0.0 };float fInput,fOutput;float fSignal1,fSignal2,fSignal3;float fStepSignal1,fStepSignal2,fStepSignal3;float f2PI;int i;float fIn[256],fOut[256];int nIn,nOut;main(){nIn=0; nOut=0;fInput=fOutput=0;f2PI=2*PI;fSignal1=0.0;fSignal2=0.0;fSignal3=0.0;fStepSignal1=PI*0.4;fStepSignal2=PI*0.55;fStepSignal2=PI*0.7;while ( 1 ){fInput=InputWave();fIn[nIn]=fInput;nIn++; nIn%=256;fOutput=IIR();fOut[nOut]=fOutput;nOut++; // break pointif ( nOut>=256 ){nOut=0;}}}float InputWave(){for ( i=IIRNUMBER-1;i>0;i-- ){fXn[i]=fXn[i-1];}fXn[0]=sin((double)fSignal1)+sin((double)fSignal2)+sin((double)fSignal3); fSignal1+=fStepSignal1;if ( fSignal1>=f2PI ) fSignal1-=f2PI;fSignal2+=fStepSignal2;if ( fSignal2>=f2PI ) fSignal2-=f2PI;fSignal3+=fStepSignal3;if ( fSignal3>=f2PI ) fSignal3-=f2PI;return(fXn[0]);}float IIR(){float fSum;fSum=0.0;for ( i=0;i<IIRNUMBER;i++ ){fSum+=(fXn[i]*fAn[i]);}return(fSum);}。
数字滤波器的MAT LAB设计与DSP上的实现数字滤波器的MATLAB 设计与DSP上的实现公文易文秘资源网佚名2007-11-15 11:56:42我要投稿添加到百度搜藏摘要:以窗函数法设计线性相位FIR数字滤波器为例,介绍用MATLAB工具软件设计数字滤波器的方法和在定点DSP上的实现。
实现时,先在CCS5000仿真开发,然后将程序加载到TMS320VC5409评估板上实时运行,结果实现了目标要求。
文中还讨论了定标、误差、循环寻址等在DSP上实现的关键问题。
关键词摘要:以窗函数法设计线性相位 FIR数字滤波器为例,介绍用 MATLAB工具软件设计数字滤波器的方法和在定点DSP上的实现。
实现时,先在 CCS5000仿真开发,然后将程序加载到 TMS320VC5 409评估板上实时运行,结果实现了目标要求。
文中还讨论了定标、误差、循环寻址等在DSP上实现的关键问题。
关键词:数字滤波器MATLAB DSP引言随着信息时代和数字世界的到来,数字信号处理已成为今一门极其重要的学科和技术领域。
数字信号处理在通信、语音、图像、自动控制、雷达、军事、航空航天、医疗和家用电器等众多领域得到了广泛的应用。
在数字信号处理应用中,数字滤波器十分重要并已获得广泛应用。
1数字滤波器的设计1.1数字滤波器设计的基本步骤数字滤波器根据其冲激响应函数的时域特性,可分为两种,即无限长冲激响应(IIR )滤波器和有限长冲激响应(FIR )滤波器。
IIR滤波器的特征是,具有无限持续时间冲激响应。
种滤波器一般需要用递归模型来实现,因而有时也称之为递归滤波器。
FIR滤波器的冲激响应只能延续一定时间,在工程实际中可以采用递归的方式实现,也可以采用非递归的方式实现。
数字滤波器的设计方法有多种,如双线性变换法、窗函数设计法、插值逼近法和Chebyshev逼近法等等。
随着 MATLAB软件尤其是MATLAB的信号处理工作箱的不断完善,不仅数字滤波器的计算机辅助设计有了可能,而且还可以使设计达到最优化。
基于MATLAB和DSP芯片的IIR滤波器设计与实现摘要数字滤波器在数字信号处理中起着重要的作用。
在信号的过滤、检测与参数的估计等方面,数字滤波器是使用最为广泛的一种线性系统。
本文设计的是IIR数字滤波器。
其间利用MATLAB软件强大的科学运算和仿真功能,对IIR滤波器的参数进行设计。
仿真结果表明,该方法设计的滤波器能满足设计要求。
并且还利用DSP芯片处理速度快,实现简便的特点,对设计的IIR滤波器进行硬件实现,通过编程使得DSP芯片具有数字滤波的功能。
关键词:IIR数字滤波器;MATLAB;仿真;DSP芯片。
Design and Realization of IIR Digital Filter Basedon MATLAB and DSP ChipsFu Binbin(College of Physics Science and Information Engineering, Jishou University, Jishou Hunan 416000)AbstractDigital filter in the digital signal processing plays an important role. Signal filtering, detection and estimation of the parameters, the digital filter is the most widely used to linear system. Filtering is based on signal processing, signal filtering operation is the basic processing operations. This paper designed IIR digital filter by MATLAB software using strong scientific computing and simulation function, the parameters of the IIR filter were designed. The simulation results show that the results can be designed to meet the design requirements. Because DSP chips can process data quickly and realize functions conveniently.This design takes DSP chips as the IIR filter processing unit and then make program to realize digital filtering function.Key words: IIR digital filter ; Matlab ; Simulation ; DSP chips.目录第一章绪论 (2)第二章数字滤波器设计原理 (4)2.1数字滤波器的基本原理 (4)2.2数字滤波器设计的基本步骤 (4)2.3IIR滤波器的基本结构 (5)2.3.1 直接型二阶IIR滤波器的结构 (6)2.3.2 标准型二阶IIR滤波器的结构 (7)2.4IIR滤波器的设计原理 (8)第三章MATLAB软件及DSP芯片的简介 (11)3.1MATLAB软件简介 (11)3.2DSP芯片简介 (12)第四章IIR滤波器的设计及实现 (14)4.1IIR滤波器的MATLAB设计 (14)4.1.1 IIR滤波器设计步骤 (14)4.1.2 编程及图形仿真 (15)4.2IIR滤波器的DSP实现 (16)4.2.1程序编写 (17)4.2.2 实验仿真结果 (19)第五章总结 (20)参考文献 (21)第一章绪论数字滤波器是数字信号处理理论的一部分。
用MATLAB仿真和DSP设计来实现FIR数字滤波
器
随着计算机和信息技术的快速发展,数字信号处理技术在通信与电子技术、航空航天、仪器仪表等诸多领域得到了广泛应用,数字滤波器作为数字信号处理技术的一个重要工具,可用来过滤时间离散信号和数字信号。
在数字信号处理中,数字滤波器占有极其重要的地位,滤波器可以用软件滤波或专用的硬件滤波两种方法实现。
硬件滤波器稳定性差,易老化,精度低。
用软件来实现数字滤波器的优点是随着滤波器参数的改变,很容易改变滤波器性能,从而满足设计需求。
本设计采用具有严格线性相位、稳定性好的FIR数字滤波器来实现滤波器的设计。
MATLAB作为设计FIR滤波器的强有力工具,为设计应用提供了相应的工具箱,从而将复杂的程序设计简单化为函数调用,简化难度的同时还提高了效率。
TMS320F2812DSP是TI公司推出的一款用于控制和数字信号处理领域的多功能、高性价比的芯片,其优良的性价比使其在数字信号的实时处理中得到了广泛的应用。
本文介绍了采用MATLAB仿真技术和DSP来设计实现FIR数字滤波器。
1 数字滤波器原理
对于数字滤波器,描述系统特性用差分方程。
设其输入序列为x(k),输出序列为y(k),则它们之间的关系可以用差分方程来表示:
y(k})+b1y(k-1)+…+bMy(k-M)=a0x(k)+a1x(k-1)+…+anx(k-N) (1)
其中,y(k)系数一般取1;b1,…bM及a0,…aN为常系数;对于特定的系统,M和N为常数,分别代表输出最高阶数和输入最高阶数。
设计FIR滤波器作业报告学号:姓名:设计FIR滤波器作业报告本设计主要内容是利用MATLAB验证设计思路并用CCS3.3仿真环境设计一个FIR滤波器,要求滤除给定的叠加正弦波的两个较高频分量。
给定波形函数为:y=sin(2*pi*100*t)+sin(2*pi*250*t)+sin(2*pi*270*t)。
1.设计思路:输入信号是频率为100Hz、250HZ、270Hz的合成正弦等幅信号,由于给定的谐波分量最高为270Hz,根据奈奎斯特准则,采样频率应大于最高频率分量的2倍,即大于2*270,故可以以600Hz的采样频率进行采样,即fs=600Hz。
设计了一个截止频率为200Hz的低通滤波器,目的是通过所设计的低通bartlett滤波器将信号源中频率为200Hz以上的信号滤掉,留下频率为100Hz 的信号,达到滤波的效果。
利用MATLAB设计合适的滤波器实现滤波,然后得到其滤波器系数在CCS的simulator方式下编写滤波程序,调用波形数据,实现滤波,并观看滤波前后的信号波形图、频谱图,观察滤波达到预期效果。
2.设计过程1)在MATLAB中进行算法验证MATLAB语言由于具有数值计算功能、符号计算功能、数据可视化功能、建模仿真可视化功能,使得MATLAB在命题构思、模型建立、仿真研究、假想验证、数据源可视化各环节起着强大的作用。
因此在设计中必须先在MATLAB 语言中设计一个FIR滤波器。
本设计采用的是bartlett窗函数。
下面是在MATLAB 中设计的27阶FIR型bartlett滤波器程序:clear all; %请寄存器clf; %清屏N=256; %清数据点fs=600; %采样频率dt=1/fs; %采样时间间隔for t=1:Nf1=250;f2=100;f3=270;y(t)=(sin(2*pi*f1*t*dt)+sin(2*pi*f2*t*dt)+sin(2*pi*f3*t*dt));%产生合成信号 x(t)=round(10000*y(t)); %为DSP汇编程序做数据转换endfigure(1)plot(y),title('滤波前的波形图像');fp=200fst=250NL=26f1=200;w1=2*pi*f1/fswindow=bartlett(NL+1) %窗函数n=1:NL+1hd=sin(w1*(n-NL/2))./(pi*(n-NL/2));hd(NL/2)=0.67;h=hd.*rot90(window)h1=h*32768;h2=fft(h,N); %将信号做FFT变换pyy=h2.*conj(h2); %做功率谱分析f=(0:(N/2-1));for i=1:N/2-1f(i)=f(i)*fs/N;endfigure(2)plot(f,pyy(1:N/2)),title('滤波器的频谱图像');yy1=filter(h,1,y); %滤波figure(3)plot(yy1),title('滤波后的波形图像');y=fft(y,N);pyy=y.*conj(y);f=(0:(N/2-1));for i=1:N/2-1f(i)=f(i)*fs/N;endfigure(4)subplot(1,2,1),plot(f,pyy(1:N/2)),title('滤波前的波形频谱图像');y=fft(yy1,N);pyy=y.*conj(y);f=(0:(N/2-1));for i=1:N/2-1f(i)=f(i)*fs/N;endsubplot(1,2,2),plot(f,pyy(1:N/2)),title('滤波后的波形频谱图像')其中采样点为256个,采样频率为600Hz,输入信号为100Hz、250Hz、270Hz 的合成信号,设定的截止频率为200Hz,通过FIR滤波器后,期望保留的信号是100Hz的信号,200Hz以上的频率基本被滤掉。
《基于MATLAB的IIR数字滤波器的设计与DSP实现》开题报告一、课题的目的和意义1、研究目的我选择了《基于MATLAB的IIR滤波器的设计》这个课题作为毕业设计其主要目的是通过此次课程设计进一步学习和巩固数字信号处理和DSP及其相关知识,并学会利用所学的知识技能,在设计过程中能综合运用所学知识内容,进一步熟悉和掌握MATLAB和DSP的使用方法;对IIR滤波器的原理及其实现有较深的了解;为即将进入社会参加工作打下坚实的基础;掌握收集资料、消化资料和综合资料的能力等等。
2、研究意义随着信息时代和数字世界的到来,数字信号处理已成为今一门极其重要的学科和技术领域。
数字信号处理在通信、语音、图像、自动控制、雷达、军事、航空航天、医疗和家用电器等众多领域得到了广泛的应用。
在数字信号处理应用中,数字滤波器十分重要并已获得广泛应用。
随着电子工业的发展,对滤波器的性能要求越来越高,功能也越来越多,并且要求它们向集成方向发展。
我国滤波器研制和生产与上述要求相差甚远,为缩短这个差距,电子工程和科技人员负有重大的历史责任。
从事电子通信业而不能熟练操作使用MATLAB电子线路设计软件,在工作和学习中将是寸步难行的。
在数学、电子、金融等行业,使用MATLAB等计算机软件对产品进行设计、仿真在很早以前就已经成为了一种趋势,这类软件的问世也极大地提高了设计人员在通信、电子等行业的产品设计质量与效率。
二、文献综述数字滤波器是具有一定传输选择特性的数字信号处理装置,其输入、输出均为数字信号,实质上是一个由有限精度算法实现的线性时不变离散系统。
它的基本工作原理是利用离散系统特性对系统输入信号进行加工和变换,改变输入序列的频谱或信号波形,让有用频率的信号分量通过,抑制无用的信号分量输出。
数字滤波器和模拟滤波器有着相同的滤波概念,根据其频率响应特性可分为低通、高通、带通、带阻等类型,与模拟滤波器相比,数字滤波器除了具有数字信号处理的固有优点外,还有滤波精度高(与系统字长有关)、稳定性好(仅运行在0与1两个电平状态)、灵活性强等优点。
FIR数字滤波器的MATLAB设计与DSP实现摘要:针对有限长冲激响应(FIR)数字滤波器的原理,讨论了窗函数法设计线性相位FIR数字滤波器的基本思路,介绍了用MATLAB工具来设计数字滤波器的方法及在定点DSP上的实现。
通过CCS5000开发工具和在DES3200实验箱上运行,实现了达到目标要求的滤波器。
关键词: matlab;fir;dsp;ccs开发环境1、引言随着信息和数字技术的发展,数字信号处理已成为当今极其重要的学科和技术领域之一通信语音、图像、自动控制、雷达、军事、航空航天、医疗和家用电器等众多领域得到了广泛的应用。
在数字信号处理的基本方法中,通常会涉及到变换、滤波、频谱分析、调制解调和编码解码等处理。
其中,滤波是应用非常广泛的一个环节,数字滤波器的理论与相关设计也一直都是人们研究的重点之一。
数字滤波器根据其冲激响应函数的时域特性,可分为无限长冲激响应(IIR)滤波器和有限长冲激响应(FIR)滤波器。
其中FIR滤波器具有严格的相位特性,同时系统函数的极点固定在原点上,因而该类型的滤波器是稳定的。
滤波器的设计方法主要有窗函数法、频率取样法和最优线性相位设计法。
其中窗函数设计方法由于其运算简便、物理意义直观,已成为工程实际中应用最广泛的方法,本文从FIR 数字滤波器的原理与基本设计步骤出发,对FIR数字滤波器在MATLAB中的仿真与设计的基本思路做了阐述,并在定点DSP上实现了满足要求的FIR滤波器。
目录1、滤波器基本原理 (3)1.1 数字滤波器的基本概念 (3)1.2 FIR滤波器的基本结构 (3)1.3 FIR滤波器的主要特点 (4)1.4开发环境CCS简介 (4)2、数字滤波器的设计 (6)2.1数字滤波器MATLAB设计的基本步骤 (6)2.2 FIR数字滤波器的DSP实现 (8)2.3结论 (9)3.心得体会 (10)4.附录 (10)参考文献 (16)1、滤波器基本原理1.1数字滤波器的基本概念数字滤波器的设计问题就是寻找一组系数和,使得其性能在某种意义上逼近所要求的特性。