基于DSP的FIR线性相位滤波器的设计_第1页
基于DSP的FIR线性相位滤波器的设计_第2页
基于DSP的FIR线性相位滤波器的设计_第3页
基于DSP的FIR线性相位滤波器的设计_第4页
基于DSP的FIR线性相位滤波器的设计_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1引言32原理简介3滤波器的分类32.2 FIR滤波器的设计3窗函数设计法43实验所用软件64滤波器类型设定75实验步骤75.1  参数计算75.2  滤波器的脉冲响应75.3 MATLAB获取H参数75.4 DSP实现程序95.5 在CCS下的程序调试和结果显示106实验结果分析137心得体会148小组分工14附录:151引言随着信息时代和数字世界的到来,数字信号处理已成为当今一门极其重要的学科和技术领域。数字信号处理在通信、语音、图像,自动控制、雷达、军事、航空航天、医疗和家用电器等众多领域得到了广泛的应用。在数字信号处理中,滤波占有极其重要的地位。数字滤波器是谱分析、

2、雷达信号处理、通信信号处理应用中的基本处理算法,在系统设计中,滤波器的好坏将直接影响系统的性能。现代数字滤波器可以用软件或设计专用的数字处理硬件两种方式来实现,用软件来实现数字滤波器优点是随着滤波器参数的改变,很容易改变滤波器的性能。2原理简介数字滤波器从功能上看,可分为低通、高通、带通、带阻滤波器。数字滤波器根据其单位脉冲响应可分为IIR (Infinite Impulse Response) 无限长冲激响应滤波器和FIR (Finite Impulse Response) 有限长冲激响应滤波器两类。IIR滤波器可以用较少的阶数获得很高的选择特性,但在有限精度的运算中可能出现不稳定现象,而且

3、相位特性不好控制。在许多实际应用中为了保证滤波后的信号不产生相位失真。一般均采用FIR滤波器。2.2 FIR滤波器的设计FIR 滤波器能够在保证幅度特性满足技术要求的同时,易做成严格的线性相位特性,且FIR滤波器的单位抽样响应是有限长的,因而滤波器一定是稳定的,而且可以用快速傅里叶变换算法实现,大大提高了运算速率。同时只要经过一定的延时,任何非因果有限长序列都能变成因果的有限长序列,所以系统总能用因果系统来实现。但FIR必须用很长的冲激响应滤波器才能很好地逼近锐截止的滤波器,需要很大的运算量,要取得很好的衰减特性,需要较高的阶次。有限长单位冲激响应(FIR)滤波器有以下特点:(1) 系统的单位

4、冲激响应h (n)在有限个n值处不为零;(2) 系统函数H(z)在|z|>0处收敛,极点全部在z = 0处(因果系统);(3) 结构上主要是非递归结构,没有输出到输入的反馈,但有些结构中(例如频率抽样结构)也包含有反馈的递归部分。长度为N的FIR滤波器的单位冲激响应h(n)的系统函数为:其差分方程为:FIR滤波器直接型结构如图1所示:Z-1Z-1x(n)Z-1Z-1h(N-1)h(1)h(0)h(N)y(n)图1 FIR滤波器直接型结构FIR滤波器的设计任务是选择有限长的单位冲激响应,使传输函数满足技术要求。主要设计方法有窗函数法、频率取样法和等波纹逼近法等3种。2.3窗函数设计法基于窗

5、函数的FIR数字滤波器的设计方法通常也称之为傅里叶级数法,是用一定宽度窗函数截取无限脉冲响应序列,获得有限长的脉冲响应序列,从而得到FIR滤波器。它是在时域进行的,由理想滤波器的频率响应Hd(ejw)推导出其单位冲激响应hd(n),再设计一个FIR数字滤波器的单位冲激响应h(n)去逼近hd(n),表示为:由此得到的离散滤波器的系统传递函数Hd(z)为:该hd(n)为无限长序列,因此Hd(z)是物理不可实现的。为了是系统变为物理可实现的,且使实际的FIR滤波器尽可能逼近理想滤波器的频率响应,用一个有限长度的窗函数将无限脉冲响应hd(n)截取一段h(n)来近似表示hd(n),可得:h(n)=hd(

6、n)w(n),从而有:式中N表示窗口长度,这样H(z)就是物理可实现的系统。并且从FIR滤波器的充要条件可知,为了获得线性相位FIR数字滤波器的冲激响应h(n),那么序列h(n)应该有的延迟。窗函数序列的形状及长度的选择是设计关键。加窗处理对理想矩形频率响应产生了以下几点影响:(1)加窗处理使理想频率特性在不连续点外边沿加宽,形成一个过渡带,过渡带的宽度等于窗的频率响应WR()的主瓣宽度=4/N。注意,这里所指的过渡带是两个肩峰之间的宽度,与滤波器真正的过渡带不同。(2)在截止频率C两边=C±2/N的地方(即过渡带两边),H()出现最大的肩峰值,肩峰的两侧形成起伏振荡,其振荡幅度取决

7、于旁瓣的相对幅度,而振荡的多少,取决于旁瓣的多少。(3)增加截取长度N,则在主瓣附近的窗的频率响应为:其中,x=N/2。所以,改变N,这能窗函数频谱的主瓣宽度、坐标的比例以及WR()的绝对值大小,但不能改变主瓣与旁瓣的相对比例。由于窗函数的选择对结果起着重要的作用,针对不同的信号和不同的处理目的来确定窗函数的选择才能收到良好的效果。一般情况下,窗函数选择的原则是:具有较低的旁瓣幅度,尤其是第一旁瓣的幅度;旁瓣的幅度下降的速率要快,以利于增减阻带的衰减;主瓣的宽度要窄,这样可以得到比较窄的过渡带。在本次实验中我们采用blackman窗函数法。布莱克曼窗函数布莱克曼窗函数的时域形式可以表示为它的频

8、域特性为:其中,为矩形窗函数的幅度频率特性函数。布莱克曼窗函数的最大旁瓣值比主瓣值低57dB,但是主瓣宽度是矩形窗函数的主瓣宽度的3倍,为12/N。窗函数法设计FIR滤波器的主要步骤:(1)给出希望设计的滤波器的频率响应函数Hd(ejw);(2)根据允许的过渡带宽度及带阻衰减,初步选定窗函数及其长度N;(3)根据技术要求确定待求滤波器的单位取样响应hd(n),(4)将hd(n)与窗函数相乘得到FIR数字滤波器的单位取样响应h(n),h(n)=hd(n)w(n);(5)按如下方法计算FIR数字滤波器的频率响应,并验证是否达到所要求的技术指标由H(ejw)计算幅度响应H()和相位响应()。如果不满

9、足要求,可根据具体情况重复(2)(5)的步骤,直到满足技术要求。3实验所用软件(1)Matlab7.1 (2)CCS3.34滤波器类型设定设计低通FIR滤波器:通带边缘频率10KHz,阻带边缘频率22KHz,阻带衰减75dB,采样频率50KHz。5实验步骤5.1  参数计算窗函数选定:阻带衰减75dB,选择blackman窗窗函数长度:blackman窗的过渡带宽为5.98,单位为2pi/N,而要设计的低通滤波器的过渡带宽为2pi*12/50=0.48pi,二者相等,得N=24.9,取25。5.2  滤波器的脉冲响应理想低通滤波器脉冲响应:h1n = sin(n1)/n/p

10、i = sin(0.64pi*n)/n/pi窗函数为:wn = 0.42 - 0.5cos(2pi*n/24) + 0.8cos(4pi*n/24)则滤波器脉冲响应为:hn = h1*wn    |n|<=12hn = 0              |n|>125.3 MATLAB获取H参数根据滤波器的脉冲响应计算出hn,然后将脉冲响应值移位为因果序列这里计算hn的值,采用Matlab计算。代码如下:Window=black

11、man(25);h=fir1(24,0.64,Window);freqz(h,1)系数如下:h1 =   Columns 1 through 8  0    -0   08   19   160    870   Columns 9 through 16  2

12、    204   -0.1095000   0954      Columns 17 through 24  20    870    19   16   08    -0  Columns

13、0;2505.4 DSP实现程序程序设计框图:开 始定义各变量,进行初始化主函数各变量初始化调用信号输入函数调用滤波函数fOutnOut=fOutputnOut是否小于256 否nOut=0 是END输入信号的获取:float InputWave() /信号输入函数for ( i=FIRNUMBER-1;i>0;i- )fXni=fXni-1;fXn0=sin(fSignal1)+cos(fSignal2)/6.0;fSignal1+=fStepSignal1; if ( fSignal1>=f2PI ) fSignal1-=f2PI;fSignal2+=fStepSignal2;

14、if ( fSignal2>=f2PI ) fSignal2-=f2PI;return(fXn0);滤波器的实现:float FIR() /滤波实现函数float fSum;fSum=0;for ( i=0;i<FIRNUMBER;i+ )fSum+=(fXni*fHni);return(fSum);5.5在CCS下的程序调试和结果显示(1)启动CCS(2)硬件选择(3)创建fir.pjt工程(4)加载fir.out文件(5)显示输入信号的时域波形(6)显示输入信号的频域波形(7)显示输出信号的时域波形(8)显示输出信号的频域波形6实验结果分析f2PI=2*PI;fXn0=sin(

15、fSignal1)+cos(fSignal2)/6.0;fSignal1=0.0;fSignal1+=fStepSignal1; fSignal2=PI*0.1;fXni=fXni-1;fStepSignal1=2*PI/30;fStepSignal2=2*PI*1.4;)/6叠加,再与sin(2)混叠,是一个混叠有高频噪声的输入波形。最大周期为32us,最小频率为3.125KHz。而频谱图横轴为采样点,纵轴为频率分量的振幅。频谱C(jn)经过滤波器将高于3.125KHz的频率滤除。7心得体会FIR滤波器的设计是数字信号处理技术的基础,也是DSP芯片的重要组成部分。FIR滤波器性能的好坏直接影

16、响着DSP的运行速度和精度,对现代电子技术的发展起决定性作用,FIR滤波器的设计在以后的一段相当长的时间里将持续主导DSP,而DSP随着电子技术的不断发展,应用领域愈来愈广泛。通过这个学期的DSP原理课程的学习,以及上机实验,我们对DSP原理有了系统的了解。熟悉了一些基本的编程语句。本次报告,我们选择了FIR线性相位滤波器设计这个题目,通过大家的通力合作,掌握了数字滤波器的设计和信号滤波的方法,加深了对书本知识的认识,并熟悉了MATLAB软件的使用及编程方法。同时通过此次课题我们重新认识了窗函数的知识,了解了各种窗函数设计滤波器的特点及优缺点,基本掌握了FIR滤波器的设计方法,把课本知识变换成

17、了实践知识。在研究课题的过程中,我们分工合作,在网上查找资料,阅读参考书,我们还学会了团队合作,实在是受益匪浅。附录:C程序:/#include "DSP281x_Device.h" / DSP281x Headerfile Include File/#include "DSP281x_Examples.h" / DSP281x Examples Include File#include "f2812a.h"#include"math.h"#define FIRNUMBER 25 /宏定义各个变量#define S

18、IGNAL1F 1000#define SIGNAL2F 4500#define SAMPLEF 10000float InputWave();float FIR();float fHnFIRNUMBER= 0.0,-0.0,0.0008,-0.0016,-0.0019,0.01,-0.0087,-0.018,0.0492,-0.0204,0.1095,0.28,0.64,0.28,-0.1095,-0.0204,0.0492,-0.018,-0.0087,0.01,;float fXnFIRNUMBER= 0.0 ;float fInput,fOutput;float fSignal1,fSignal2;float fStepSignal1,fStepSignal2;float f2PI;int i;float fI

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论