基带脉冲成形数字滤波器的MATLAB设计与DSP上的实现
- 格式:pdf
- 大小:286.51 KB
- 文档页数:4
数字滤波器设计是用硬件或者软件实现的一种算法,这个算法是为了达到滤波的目的而对数字输入信号进行运算产生数字输出信号。
数字滤波器这个词是指执行滤波算法的特定硬件或者软件程序,数字滤波器经常作用的对象是数字化的模拟信号,或者刚好是存储在计算机存储器里代表某些变量的数据。
下图给出了一个具有模拟输入信号和输出信号的实时数字滤波器的简化框图。
带限模拟信号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仿真脉冲型滤波器用成型脉冲即数字1用矩形脉冲表示用升余弦脉冲或高斯脉冲表示主要用于基带数据处理。
在数字通信系统中,基带信号进入调制器前,波形是矩形脉冲,突变的上升沿和下降沿包含高频成分较丰富,信号的频谱一般比较宽。
从本质上说,脉冲成形就是一种滤波。
数字通信系统的信号都必须在一定的频带内,但是基带脉冲信号的频谱是一个Sa函数,在频带上是无限宽的,单个符号的脉冲将会延伸到相邻符号码元内产生码间串扰,这样就会干扰到其他信号,这是不允许的。
为了消除干扰,信号在发射之前要进行脉冲成形滤波,把信号的频率约束在带内。
因此在信道带宽有限的条件下,要降低误码率,提升信道频带利用率,需要在信号传输前,对其进行脉冲成形处理,改善其频谱特,产生适合信道传输的波形。
符号/秒代表单位波特(Baud),波特率是符号信息的比特率。
一般的脉冲成型是要过采样的,不然没有意义,因为成型滤波会扩展带宽,过采样是为了减少频谱混叠。
常用的脉冲成型滤波器有RC成型(升余弦)、Gaussian成型等。
Matlab作为一个强大的仿真工具,在通信信号处理中有着广泛的应用。
新版的Matlab (2014a)中关于滤波器设计,很多API都做了更新,下面个根据文档仿真和对比几个成型滤波器。
早些版本的firrcos函数用来设计升余弦滤波器的函数,现在已经更改成了rcosdesign 函数。
例如:设计一个16阶升余弦滤波器,载波频率Fc = 1KHz,滚降系数0.25,采样率为8KHz。
N = 16;Fc = 1000;R = 0.25;Fs = 8000;h = firrcos(N, Fc, R, Fs, 'rolloff', 'normal');figure();plot(h)下图是滤波器的抽头系数,阶数为16共有17个抽头。
如果用rcosdesign函数来设计这个滤波器,那么要用下面的调用方法来实现。
基于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为常数,分别代表输出最高阶数和输入最高阶数。
1 绪论 (1)1.1课题分析 (1)1.2数字滤波器在国内外发展概况 (1)1.3MATLAB简介 (3)1.4数字信号处理(DSP)器简介 (5)1.5DSP芯片开发工具 (6)2 IIR数字滤波器设计的方案选择及原理分析 (12)2.1总体方案比较 (12)2.2IIR滤波器的基本原理 (13)2.3IIR数字滤波器的设计方法 (16)3 IIR滤波器的MATLAB设计与仿真 (21)3.1FDAT OOL界面设计 (21)3.2程序设计 (25)3.3IIR数字滤波器的仿真 (27)4 IIR滤波器在DSP上的实现 (40)4.1IIR数字滤波器在DSP上的实现步骤和条件 (40)4.2IIR数字滤波器在TMS320VC5416DSP上的实现过程 (40)5 总结 (45)参考文献 (46)致谢 (47)附录一:XP-IIR-AD.C (47)附录二:XP-IIR-AD.CMD (59)1绪论1.1 课题分析在现代通信系统中,由于信号中经常混有各种复杂成分,所以很多信号的处理和分析都是基于滤波器而进行的。
但是,传统数字滤波器的设计使用繁琐的公式计算,改变参数后需要重新计算,从而在设计滤波器尤其是高阶滤波器时工作量很大。
利用MATLAB信号处理箱(Signal Processing Toolbox)可以快速有效地实现数字滤波器的设计与仿真。
本课题正是利用MATLAB软件进行IIR数字滤波器的设计并进行仿真,这使得滤波器的设计更加快速和有效。
21 世纪是信息科学与技术的世纪, 其中, 数字信号处理技术(DSP) 已经成为当今一门极其重要的学科。
数字信号处理(DSP) 在通信, 语音, 图像, 自动控制, 雷达, 军事, 航空航天, 医疗和家用电器等很多领域已经得到广泛的应用。
[10]近年来,在数字信号处理领域具有绝对优势的DSP技术得到了迅速发展,不仅应用于通信、计算机领域,还逐渐渗透到其他科学研究领域。
实验五基于MATLAB的IIR数字滤波器设计一、实验目的:1.加深对IIR数字滤波器常用指标的理解;2.学会设计IIR数字滤波器;3.根据指标要求设计数字滤波器,并进行信号的处理。
二、实验原理:补充:(1)filter函数用来实现数字滤波器对数据的滤波,函数调用格式为:y=filter(b,a,x)其中,b,a分别为滤波器系统函数H(z)的分子和分母多项式的系数,x为滤波器的输入,y为滤波器的输出,y与x具有相同大小的向量。
(2)filtfilt函数实现零相位前后与后向结合滤波,其调用格式为:y=filtfilt(b,a,x)其中,b,a分别为滤波器系统函数H(z)的分子和分母多项式的系数,x为滤波器的输入,y为滤波器的输出,y与x具有相同大小的向量,这个函数实现的滤波后其输出信号与输入信号的相位一致,也就是没有改变信号波形形状。
但filter函数滤波后有一些延迟,改变了信号的形状。
三、实验内容:1.假设一个信号x(t)= sin(2*pi*f1*t)+0.5cos(2*pi*f2*t),其中f1=5Hz,f2=30Hz。
请设计一个数字滤波器能把f2滤除掉,请写出程序,并画出原信号波形以及原信号通过该数字滤波器后输出信号的波形。
四、实验分析:根据要求,先设计出满足需要的模拟带通滤波器,再转化为数字滤波器,最后利用数字滤波器的输出函数,画出波形五、实验结论:设计程序%设计模拟带通滤波器wp=[4 6]*2*pi;ws=[1 9]*2*pi;Rp=1;Rs=10;[N,wc]=buttord(wp,ws,Rp,Rs,'s'); %求的滤波器的最小阶数和截止频率[b,a]=butter(N,wc,'s'); %设计模拟巴特沃斯滤波器%转化为数字滤波器FS=100;[numd,dend]=impinvar(b,a,FS);%输入信号验证dt=1/100; %模拟信号采样间隔f1=5;f2=30;t=0:dt:2;x=sin(2*pi*f1*t)+0.5*cos(2*pi*f2*t);y=filter(numd,dend,x)%画出图形subplot(2,1,1)plot(t,x);title('输入信号');subplot(2,1,2)plot(t,y);title('输出信号');六、实验心得:通过本次实验,学会了设计一个数字滤波器的方法,加深理解了数字滤波器的技术指标以及具体功能,如何进行数字滤波。
基于Matlab和DSP数字滤波器的设计与实现邓婷【摘要】A method of designing a FIR filter is introduced based on digital signal processor. Firstly,Matlab toolbox FDATool is used to design a low-pass filter meeting the performance required, and extract the impulse response coefficients, and then used a circular buffer and dual-operand indirect addressing in the TMS320C5416 DSP chip to implement the filter in three different frequency sine wave signals. It is indicates that the experiment results can meet the expected performance.%介绍了一种基于DSP实现FIR滤波器的设计方法.首先利用Matlab工具箱FDATool设计符合性能指标的低通滤波器,并提取单位冲激响应系数.然后采用循环缓冲区和双操作数间接寻址方式在TMS320C5416 DSP芯片上实现三个不同频率正弦波信号的低通滤波.实验结果表明,该滤波器基本满足预期性能指标要求.【期刊名称】《科学技术与工程》【年(卷),期】2011(011)019【总页数】5页(P4597-4601)【关键词】FIR滤波器;FDATool;DSP【作者】邓婷【作者单位】华南理工大学广州汽车学院,广州510800【正文语种】中文【中图分类】TN713.7随着信息技术和计算机技术的高速发展,数字信号处理技术广泛应用在通信、车载、智能家电以及各种数字仪器等众多领域。