




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
四川师范大学本科毕业设计基于DSP的FIR滤波器设计学生姓名333院系名称物理与电子工程学院专业名称电子信息工程班级33333学号33333指导教师完成时间2014年5月10日引言1.1选题背景与研究意义随着信息技术和计算机学科的不断发展,数字型号处理从20世纪60年代以来就迅速的发展起来。数字信号处理不仅应用在通信、仪器、工业控制与自动化、医疗、军事、还广泛应用在滤波与变换、音频、语音、图象和图形以及消费电子等众多领域中。总之数字信号处理是把信号用数字或符号表示的序列,通过计算机或通用信号处理设备,用数字的数字计算方法处理(滤波、变换,图象的压缩与增强、估值和识别等加工处理等),为了达到提取有用信息的目的。几乎所有的工程技术领域都涉及到数字信号处理。在发展的过程中,与模拟信号处理相比较,数字信号处理也出现了很多明显的优点,如高精度在高精度的系统中,有时只能采用数字系统;灵活性高,数字系统的性能主要由乘法器的系数决定,而系数存放在系数存储器中,因而只需改变存储的系数就可以得到不同的系统,比改变模拟系统方便很多;可靠性强,因为数字系统只有两个信号电平“0”“1”,因而受周围环境的温度及噪声影响小,因此可靠性强;容易大规模集成,由于数字部件具有高度规范性,便于大规模集成、大规模生产。故产品成品率高;可获得高性能指标等等。由于数字信号处理的突出优点,因此他在语音、雷达、地震测报、通信、遥感、生物医学、电视、仪器中得到非常广泛的应用。数字信号处理(DSP)的各种芯片可通过软件改变参数来改变滤波器的特性,具有高的灵活性,而且数字信号处理应用非常广泛,因此我们要去理解滤波器的工作原理,研究其的设计方法,优化其设计方法。特别是FIR低通滤波器的设计,与IIR低通滤波器相比,它具有严格的线性相位,同时有可以具有任意的幅度特性。最重要的是FIR滤波器的单位抽样响应是有限长的,因而滤波器一定是稳定的。这种独特的优势,让我想去研究关于数字处理的FIR滤波器,充分体现FIR滤波器的优势。本课题不仅具有理论意义,同时还具有实际意义。1.2国内外发展20世纪60年代起,随着信息技术和计算机的快速发展,数字信号处理是一门广泛应用与许多领域涉及许多学科的工学学科,并且得到了飞速的发展,在如今的数字化时代,它已成为计算机、通信、消费电子等领域的基本器件。DSP的发展基本可以分为三个阶段:最初的DSP只是用微处理器来处理,但其处理速度非常慢,根本无法满足人们的需求。而且只出现在书本上,无法应用在实际中,应用非常的狭窄,一般指用在航空航天、军事上。第一代DSP芯片TMS32010伴随着半导体技术和集成电路技术的发展而诞生,现在它的运算速度快乐几十倍,在实际中也得到应用,但是它的功耗和尺寸都很大,容量也非常小,而且应用非常不灵活。但它也给DSP产生了非常的影响,标志着DSP的快速进步。到80年代中期,随着CMOS工艺的DSP芯片应运而生,其运算速度和存储容量都得到了很大的提高,称为语音处理和图象硬件处理技术的基础。第三代DSP芯片出现在80年代后期,运算速度得到飞速的提高,通信、计算机领域也得到了广泛的使用。DSP不仅在国外,而且最近在中国市场作为整个半导体市场一样为国际半导体市场的一个组成部分,必然具有国际半导体市场的共性。由于它根植于中国这一特定经济与社会环境的土壤中。DSP在中国的发展具有非常大的市场。随着社会的快速发展以及人们对高端产品的喜爱和依赖,以及高端产品给人们带来的乐趣和用途,促使DSP的快速发展。MMoIP电话、数码相机、数码手表和手持电子设备、汽车电子等数码产品得到广泛的使用。在中国市场的迅速发展促进了高性能DSP的广泛使用。中国的电子产品制造商众多,对低成本、易使用的DSP需求巨大。DSP主要应用在通讯领域、数字影音的产品,这让DSP不得不快速的发展来适应人们的需求,提高自身的价值,未来DSP市场竞争将越趋激烈。1.3研究内容本论文是TI公司近年推出的高性能TMS320VC5509的DSP芯片设计滤波器系统,基于DSP的FIR有限冲激响应滤波器,完成了通带边缘频率10KHz,阻带边缘频率22KHz,阻带衰减75dB,采样频率50KHz的FIR低通滤波器。采用布拉克曼(Blackman)窗函数在MATLAB和CCS上仿真实现FIR低通滤波器。本论文共分为四个部分,第一章为引言部分,介绍DSP及其滤波器的发展现状;第二章详细FIR滤波器的理论基础,FIR低通滤波器的设计法方法及其算法,以及在MATLAB上的仿真。介绍DSP的特点、性能指标、软件开发工具、指令系统及硬件结构;第三章介绍了实现FIR滤波器实现的硬件和软件平台以及如何在CCS上的实现。第四章介绍了本次设计的结果分析;其中第二、三章是本论文的核心部分。2FIR滤波器的理论基础2.1FIR滤波器的特点由于无限长单位冲激响应(IIR)数字滤波器有非常明显的缺点,他的相位是非线性的,若需要线性相位,则要采用全通网络进行相位校正,然而,图象处理以及数据传输都要求有严格的线性相位特性,而有限长单位冲激响应(FIR)滤波器就可以做成严格的线性相位,同时有可以具有任意的幅度特性。最重要的是FIR滤波器的单位抽样响应是有限长的,因而滤波器一定是稳定的。只要经过一定的延时,任何非因果有限长序列都能变成因果有限长序列,因而总能用因果系统来实现,还可以用快速傅里叶变换(FFT)算法来实现滤波,从而可以提高运算效率。因此FIR滤波器的线性相位是我们研究的重点。实现数字滤波器的方法有很多:最开始用到的无限长冲激响应IIR滤波器设计,当然它也有很多数字滤波器的优点,如:可以利用模拟滤波器设计的结果,而模拟滤波器设计有大量图表可查,因此他方便简单,但是它有很明显的缺点,就是想为的非线性,但是要想得到线性相位,那必须通用全通网络进行相位校正,此过程非常复杂且不易实现。因此上面提到的FIR滤波器的优点就得到了明显的优势,因此也得到了广泛的使用。但是要取得很好的衰减特性,FIR滤波器的阶次比IIR滤波器的要高。因此要是对于非线性相位的FIR滤波器,一般可以用IIR滤波器来替换,同样幅度特性,IIR滤波器所需要的阶次比FIR滤波器的阶次要少得多,所以让我们最感兴趣的是FIR滤波器的线性相位。FIR滤波器具有独到的优点,它可以在幅度特性随意设计的同时,保证精确、严格的线性相位。2.1.1FIR滤波器设计的特点(1)系统的单位冲激响应在有限个值处不为0。(2)系统函数在处只有零点,即有限z平面只有零点,而全部极点都在处,而全部极点都在处(因果系统)。(3)结构上主要是非递归结构,没有输出到输入的反馈,但有些结构中也包含有反馈的递归部分。最主要的是FIR滤波器具有严格的线性相位和稳定性,任何非因果有限长序列都能变成因果有限长序列,因而总能用因果系统来实现。2.1.2FIR滤波器的基本结构(1)FIR数字滤波器的基本原理设为滤波器的冲激响应,输入信号为,则FIR滤波器就是要实现下列差分方程:(1)这就是FIR滤波器的差分方程。FIR滤波器的最主要的特点是没有反馈回路,因此它是无条件稳定系统。它的单位脉冲响应是一个有限长序列。由上面的方程可见,FIR滤波算法实际上是一种乘法累加运算,它不断地输入样本,经延时(Z)做乘法累加,再输出滤波结果。对式(1)进行Z变换整理后可得FIR滤波器的传递函数为:(2)由式(2)可以看出,FIR滤波器的一般结构如图1所示。图1FIR滤波器的结果FIR滤波器的单位冲激响应是有限长的()其中Z变换为(3)(2)横截型(卷积型、直接型)结构系统的差分方程表达式为(4)这是线性移不变系统的卷积和公式,也是的延时链的横向结构,也叫直接型结构。其结构图如图2。图2FIR滤波器的横截型结构(3)级联型结构:将分解成实数系数二阶因子的乘积形式(5)级联型结构图如图3。图3FIR滤波器的级联型结构2.2线性相位FIR滤波器的特点FIR滤波器的单位冲击响应是有限长的()其中Z变换为(6)这是的多项式。线性相位的条件:的频率响应为(7)当为实数序列时,可将表示成(8)其中是真正的幅度响应。而是可正可负的因此有两类准确的线性相位,分别要求满足(9)(10)把(9)和(10)式的关系分别代入(8)中并且考虑(7)式,可得(11)(12)化简得:(13)(14)化简:两式相除(15)(16)(17)要使(17)成立,必须满足(18)另一类线性相位,必须要求(19)要使(19)成立,必须满足(20)(21)(22)(22)是FIR滤波器就有线性相位的因果系统的充分条件它要求单位冲激响应的序列以为偶对称中心,此时时间延时等于长度为的一半,即个抽样周期,当N为奇数时,延时为整数,N为偶数时延时为整数加半个抽样周期,,不管N为偶奇,此时都应该满足呈偶对称。2.3各种窗函数2.3.1窗函数的设计思想一般是先给出所要求的理想的滤波器频率响应,要求设计一个FIR滤波器频率响应来逼近。但是设计时在时域进行的,因而先由的傅里叶反变换导出即(23)由于是矩形频率特性,故一定是无限长的序列,且是非因果的,而我们要设计的是FIR滤波器,其必然是有限长的,所以要用有限长的来逼近无限长的,最有效的方法是截断,是用一个有限长度的窗函数序列来截取即因而窗函数序列的形状及长度。我们以一个截止频率为的线性相位的理想矩形幅度特性的低通滤波器,设低通特性的群时延为。(24)这表明,在通带范围内,的幅度是均匀的,其值为1,相位是(25)它是中心点在的偶对称无限长非因果序列,要得到有限长的,一种简单的方法取矩形窗。但是按照线性相位滤波器的约束必须是偶对称,对称中心应为长度的一半,即,因而,所以(26)(27)(28)然而加窗处理对理想矩形频率响应产生的几点影响(1)使理想频率特性不连续点点处边沿加宽,形成一个过渡带,过渡带的宽度等于窗的频率响应的主瓣宽度,这里所说的过渡带是指两个肩峰之间的宽度,与滤波器的真正过渡带还有一些区别,也就是,滤波器的过渡带比这个数值要小。(2)在截止频率的地方,出现最大的肩峰值,肩峰的两侧形成起伏振荡,其振荡幅度取决于旁瓣的相对幅度,而振荡的多少,则取决于旁瓣的多少。(3)增加截取长度N,则在主瓣附近的窗的频率响应为(29)其中,可见,改变N,只能改变窗谱的主瓣肯定,改变w坐标的比例以及改变的绝对值大小,二不能改变主瓣与旁瓣的相对比例,而这个相对比列是由决定,例如在矩形窗情况下,最大相对肩峰值为8.95%,N增加时,减小,故起伏振荡变密,最大肩峰则总是8.95%,这种现象称为称为吉布斯(Gibbs)效应。以上讨论可以看出,最小阻带衰减只由形状决定,不受N的影响,而过渡带的宽度则既和窗形状有关,且随窗宽N的增加而减小。2.3.2几种常用的窗函数介绍(1)矩形窗(30)(31)(32)(2)巴特列特窗(三角窗)(33)(34)窗谱为(35)此时主瓣宽度为,可以看出,三角形窗频谱密度函数永远是正值。(3)汉宁(hanning)窗汉宁窗又称升余弦窗(36)当时,,所以窗谱的幅度函数为(37)这三部分之和使旁瓣互相抵消,能量更集中在主瓣,但是其代价是主瓣宽度比矩形窗的主瓣宽度增加一倍,即为。(4)海明(hamming)窗对升余弦加以改进,可以得到旁瓣更小的效果,窗形式为(38)结果可以将99.963%的能量集中在窗谱的主瓣内,与汉宁窗相比,主瓣宽度相同,但旁瓣幅度更小,旁瓣峰值小于主瓣峰值的1%。(5)布拉克曼(blackman)窗为了更进一步抑制旁瓣,可加上余弦的二次谐波分量,得到布拉克曼窗:(39)其频谱的幅度函数为(40)此时主瓣宽度为矩形窗谱主瓣宽度的三倍,记为。表1归纳了以上几种窗的主要性能,供FIR滤波器时参考。表1窗函数基本参数的比较窗函数窗谱性能指标加窗后滤波性能指标旁瓣宽度主瓣宽度过渡带宽阻带最小衰减矩形窗-1320.9-21巴特列特-2543.05-25汉宁窗-3143.1-44海明窗-4143.3-53布拉克曼窗-5765.5-74凯泽窗-575-802.4用窗函数设计法来设计FIR低通滤波器设计基于DSP的FIR低通滤波器,其要求是通带边缘频率10KHz,阻带边缘频率22KHz,阻带衰减75dB,采样频率50KHz。根据FIR滤波器的设计方法和设计要求,其设计思路和设计步骤如下:(41)(42)(43)(44)设为理想线性相位滤波器:(45)首先由所需低通滤波器的过渡带求理想低通滤波器的截止(是由两个肩峰处中点)而由之间的过渡带宽并非两个肩峰间的频率差,所以(46)其对应的数字频率为:由此可得:(47)其中为线性相位所必需的移位,我们都知道它应该满足。由于,通过查表1得,可以选择布拉克曼窗函数,其阻带衰减-74dB所要求的过渡带的数字频域。(48)所以(49)代入得:即(50)(51)(52)布拉克曼窗函数的频谱幅度函数为:(53)频谱幅度函数为:(54)计算结果为:(55)FIR低通滤波器的理论设计基本完成。数字滤波与模拟滤波相比有很多优点,它除了可避免模拟滤波器固有的电压漂移、温度漂移和噪声等问题外,还能满足滤波器对幅度和相位的严格要求。低通有限冲激响应滤波器(FiniteImpulseResponseFilter,FIR滤波器)有其独特的优点,因为FIR系统只有零点,系统总是稳定的,且为线性相位,允许实现多通道滤波器。2.5MATLAB仿真MATLAB有多种设计FIR数字滤波器的方法,本文主要介绍窗函数设计方法,它的设计思路和之前介绍的窗函数设计法相同,而前面采用是布莱克曼窗函数设计法,MATLAB中编写程序比CCS中用C语言编写程序要简单,只需要把窗函数设计的公式编写出来即可。首先跟CCS编写程序一样,可以编写两个子函数,和一个主函数,主函数通过调用子函数来完成。因此应该点击file-new如图4产生一个.m文件。图4MATLAB仿真操作然后再将程序编写到MATLAB中如图5。图5MATLAB编译程序步骤FIR滤波器的主程序wst=0.88*pi;wp=0.4*pi;deltaw=wst-wp;%过渡带宽△w的计算N0=ceil(11*pi/deltaw);%按布莱克曼窗计算所需的滤波器长度N=N0+mod(N0+1,2);%为了实现第一类偶对称滤波器,应确保其长度N为奇数n=[0:1:N-1];wc=(wst+wp)/2;%截止频率取为两边缘频率的平均值hd=ideal(wc,N);%求理想脉冲响应wdbla=(blackman(N))';%求窗函数h=hd.*wdbla;%设计的脉冲响应应为理想脉冲响应与窗函数乘积[db,mag,pha,grd,w]=myfreqz(h,[1]);%对设计结果进行检验dw=2*pi/2000;%频率分辨率Rp=-(min(db(1:wp/dw+1)))%检验通带波动As=-round(max(db(wst/dw+1:501)))%检验最小阻带衰减子程序functionhd=ideal(wc,M);%理想的频率响应函数al=(M-1)/2;n=[0:(M-1)];m=n-al+eps;hd=sin(wc*m)./(pi*m);function[db,mag,pha,grd,w]=myfreqz(b,a);N=1000;[H,w]=freqz(b,a,N,'whole');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(b,a,w);编好程序后在运行程序,最终得到其波形图如图6。图6MATLAB仿真结果3DSP的实现平台3.1DSP硬件开发环境DSP即为数字信号处理器(Digital
Signal
Processing),是在模拟信号变换成数字信号以后进行高速实时处理的专用处理器。它的工作原理是将现实世界的模拟信号转换成数字信号,再用数学方法处理此信号。最后再还原成模拟信号,他的基本流程图如图7。图7数字信号处理系统的简单方框图图4所表示的是模拟信号熟悉处理系统的方框图,实际的系统并一定包括它的所有框图,可以是数字计算机或微处理机,通过软件编程对输入信号进行预期处理,这是软件实现法。本次设计就是采用的软件实现法则。此框图是DSP实现的主要过程,因为DSP处理的是数字信号,所以首先应该将输入的前置的模拟信号通过A/D变换器转化为数字信号,并把它交给DSP处理,DSP根据设计要求经过编程处理(如FFT、卷积等变化)得到的结果为数字信号,然后把信号传输出去。但是最终要在示波器上显示,还应该将得到的数字信号交给D/A数模转换器(其转换精度应该满足一定的要求,以达到较高的运算速率和精度),最终再经过平滑滤波和内插就得到了连续的模拟波形模拟信号。3.1.2DSP的硬件结构示意图ICETEK-VC5509-A评估板接口说明实物图如图8和ICETEK-VC5509-A评估板原理框图如图9。图8ICETEK-VC5509-A实物图图9ICETEK-VC5509-A原理框图3.1.3TMS320VC5509A基本介绍TMS320VC5509A是有TI公司制造的DSP芯片,它具有高性能、低功耗数字信号处理芯片。CPU支持内部structure是由一个程序总线,3的数据读总线,两条数据写总线,并additionalbuses专用于外周和DMA活动。这些总线提供执行多达3个读数据和2个写数据的能力。与此同时,DMA控制器可以执行最多两个数据周期独立于CPU的活动。通过输入和输出功能和10位的A/D转换提供足够的状态,中断和位I/O的液晶显示器,键盘和媒体接口。3.2DSP软件开发环境本次试验的研究内容主要就是在DSP芯片的集成软件开发环境CCS(CodeComposerStudio)中调试从而实现数字滤波功能。(1)安装CCS(CodeComposerStudio)软件(点击setup.exe的安装文件,选择安装目录,进入安装程序)。安装完毕后,在安装“CCS开发软件”目录中的压缩文件,“C5000-2.20.00-FULL-to-C5000-2.21.00-FULL.exe”中的升级程序,将CCS2.20升级到CCS2.21。(2)设置CCS工作在软件仿真环境CCS可以工作在纯软件的环境下,就是由软件在PC机内存中构造一个虚拟的DSP环境,可以调试、运行程序。CCS提供了配置、建立、调试、跟踪和分析程序的工具,它便于实时、嵌入式信号处理程序的编制和测试,能够加速开发进程,提高工作效率。但一般软件无法构造DSP中的外设,所以软件仿真通常用于调试纯软件的算法和进行效率分析等。在使用软件仿真方式工作时,无需连接板卡和仿真器等硬件。CCS的软件设置过程将安装好的CCS。进入设置选择C5XXfunctionalsimulator后选择Saveandquit后点击“NO”完成软件的设置,设置过程如图10。图10CCS设置步骤设置完成后,双击桌面上仿真器初始化图标,若初始化完成后出现窗口图11。图11初始化按“空格”或任意键即完成初始化。CodeComposerStudio2.21主要完成系统的软件开发和调试。它提供一整套的程序编制、维护、编译、调试环境,能将汇编语言和C语言程序编译连接生成COFF(公共目标文件)格式的可执行文件,并能将程序下载到目标DSP上运行调试。用户系统的软件部分可以由CCS建立的工程文件进行管理,工程一般包含以下几种文件:瑞泰创新-ICETEK-VC5509-A-USB-EDU教学实验系统软件实验指导(1)源程序文件:(*.C或*.ASM)(2)命令文件(*.CMD)(3)库文件(*.LIB,*.OBJ)。3.3CCS实现FIR低通滤波器设计用C语言编程实现FIR低通滤波器主要是根据第二章的窗函数设计法的思想进行编程。因此C语言应该包括两个子函数和一个主函数。子函数主要是根据FIR低通滤波器的算法进行编程的,子函数是由和进行相乘得到的,函数为fSum+=(fXn[i]*fHn[i]其函数流程图为图12。图12流程图根据DSP的FIR设计的原理,通过窗函数设计法,将想要得到的滤波器的截止频率为10KHz的FIR低通滤波器。由于窗函数的设计是由理想的和布拉克曼窗函数相乘得到的低通滤波器函数,这个函数包括主函数和两个子函数,子函数一个是由和相乘的函数。另一个是由计算的结果的系数组成,通过for循环语句,调用fHn[i]数组中的每一个参数与子函数相乘得到的结果还回到主函数中,因此主函数就包括变量的初始化,以及子函数的调用。子函数如floatFIR()//滤波器函数{ floatfSum; fSum=0; for(i=0;i<FIRNUMBER;i++) { fSum+=(fXn[i]*fHn[i]); } return(fSum);}输入子函数floatInputWave(){ for(i=FIRNUMBER-1;i>0;i--) fXn[i]=fXn[i-1]; fXn[0]=sin((double)fSignal1)+cos((double)fSignal2)/6.0; fSignal1+=fStepSignal1; if(fSignal1>=f2PI) fSignal1-=f2PI; fSignal2+=fStepSignal2; if(fSignal2>=f2PI) fSignal2-=f2PI; return(fXn[0]);主函数调用子函数while(1) {fInput=InputWave();//输入函数的调用 fIn[nIn]=fInput; nIn++;nIn%=256; fOutput=FIR();//滤波器函数调用 fOut[nOut]=fOutput; nOut++; /*breakpoint*/ if(nOut>=256) { nOut=0; }首先设置在纯软件下操作,步骤见CCS开发环境,初始化完成后,点击CCS进入软件调试中。首先新建一个工程并且命名为FIR,此时该工程下的文件为空。将编好的fir.C、clk-init.C文件都添加到工程中。如图12图12CCS编译图(2)现在就编译:选择菜单中的“Project”的“RebuildAll”进行编译,编译完成后会在CCS下方的提示框中显示编译信息,根据编译的提示,修改程序。(3)在main的主函数中设置断点在进行编译。(4)下载程序:执行FileLoadProgram,然后再打开的提示框中选择刚刚建立C:\ICETEK-VC5509-EDULab\Lab0501-UseCCS\Debug\FIR.out文件。(5)点击FileFileI/0在弹出的对话框中进行设置如图13图13输出设置窗口设置完成后,在点击ViewGraphTime/Frequency在进行设置如图14。图14观察设置窗口点击OK完成设置。输出结果观察FIR滤波器滤波的结果如图15和输入波形图16输出结果。图15INPUT图16OUTPUT下面是FFT的滤波结果如图17和输入波形和图18FFT输出波形。图17INPUT图18OUTPUT4结论4.1试验结果分析本次试验结果不仅在CCS软件上完成了FIR滤波器的设计要求,而且在MATLAB中也得到了低通滤波器的图形。CCS的结果分析如下:当调用一个低频的正弦信号和一个高频的余弦信号,低频信号与高频信号的叠加就使得低频信号的正弦上产生毛刺,通过FIR滤波器的设计要求编写的C语言程序完成对高频信号的过滤,最终得到光滑的低频的正弦信号。而FFT的滤波图象,就是将高频的小信号滤掉得到低频的小信号。MATLAB的结果分析,在幅度响应和频率的图形中,在-3dB时,对应的频率是0.59π,根据计算器截止频率为147500HZ,相对于截止频率高了4.75KHz,其结果不是很理想。4.2总结通过此次毕业设计设计的FIR滤波器设计,让我对数字信号有了更深的理解,C语言的编程也更加熟悉,而且对MATLAB也有了一定的认识,更重要的是提高了我的学习能力和解决问题的能力。如何通过软件来实现低通滤波器设计,而之前经常用硬件来实现滤波器的设计,硬件实现的低通滤波器滤波单一,无法改变,硬件设计一旦错了就会造成无法挽回和经济的浪费,结果又得重新开始浪费时间。而通过DSP的FIR低通滤波器可以通过改变设置的参数来改变滤波器的截止频率,使得设计非常的灵活,方便且易于修改。而MATLAB在编程上更灵活,功能更强大。在FIR低通滤波器的设计中,还可以通过软件编程和硬件的结合,通过示波器来看到真实的低通滤波器的设计,因为软件还是一个虚拟的东西,最终的成品不仅仅在于软件上,与实际的结合才是真正意义上的设计。希望以后能对数字信号处理应用的更广泛。致谢在经过为期一个多月的毕业设计的过程中,非常感谢汪文蝶老师的辛勤指导和帮助,通过汪老师对毕业设计的引导,我知道了毕业设计该如何去做,虽然她只是给了我设计的思路,但我从中发现要完成一个毕业设计必须要有基本的理论知识,因此我就先去了解了关于DSP的FIR滤波器的设计,FIR滤波器设计的理论知识,然后又去了解CCS的安装和使用原理,这使得我的毕业设计进行的还算是顺利,但是在后面程序的设计中就有一点点问题,因为我对C语言了解的不多,但汪老师给我解释了一次,又有一点的了解,自己又下来不断的学习,最终把程序也修改好了,但是因为时间的原因。对于滤波,只在软件上进行。真的非常感谢汪老师细心的指导。参考文献[1]程佩青著.数字信号处理教程.[M]清华大学出版社.2003.[2]赵顺珍,马英.基于DSP的FIR数字滤波器设计与实现[J].[3]王献峰,石东.基于DSP的FIR数字滤波器的设计与实现.天津科技大学电子信息与自动化学院,天津300222.[4]冉茂华.基于DSP的FIR数字滤波器设计,武汉理工大学.2006.[5]刘万松.基于DSP的FIR数字滤波器设计,贵州大学.2008.[6]孙宗瀛.DSP原理设计与应用[M].北京:清华大学出版社,2002.[7]王献峰,石东.基于DSP的FIR数字滤波器的设计与实现.天津科技大学电子信息与自动化学院,天津300222.[8]张雄伟,曹铁勇.DSP芯片的原理与开发应用.电子工业出版社.2000.附录程序1#include"myapp.h"#include"ICETEK-VC5509-EDU.h"#include"scancode.h"#include<math.h>#defineFIRNUMBER25#defineSIGNAL1F1000#defineSIGNAL2F4500#defineSAMPLEF10000#definePI3.1415926floatInputWave();floatFIR();floatfHn[FIRNUMBER]={0.0,0.0,0.001,-0.002,-0.002,0.01,-0.009,-0.018,0.049,-0.02,0.11,0.28,0.64,0.28,-0.11,-0.02,0.049,-0.018,-0.009,0.01,-0.002,-0.002,0.001,0.0,0.0};floatfXn[FIRNUMBER]={0.0};floatfInput,fOutput;floatfSignal1,fSignal2;floatfStepSignal1,fStepSignal2;floatf2PI;inti;floatfIn[256],fOut[256];intnIn,nOut;main(){ nIn=0;nOut=0; f2PI=2*PI; fSignal1=0.0; fSignal2=PI*0.1; fStepSignal1=2*PI/30; fStepSignal2=2*PI*1.4; while(1) { fInput=InputWave(); fIn[nIn]=fInput; nIn++;nIn%=256; fOutput=FIR(); fOut[nOut]=fOutput; nOut++; /*breakpoint*/ if(nOut>=256) { nOut=0; } }}floatInputWave(){ for(i=FIRNUMBER-1;i>0;i--) fXn[i]=fXn[i-1]; fXn[0]=sin((double)fSignal1)+cos((double)fSignal2)/6.0; fSignal1+=fStepSignal1; if(fSignal1>=f2PI) fSignal1-=f2PI; fSignal2+=fStepSignal2; if(fSignal2>=f2PI) fSignal2-=f2PI; return(fXn[0]);}floatFIR(){ floatfSum; fSum=0; for(i=0;i<FIRNUMBER;i++) { fSum+=(fXn[i]*fHn[i]); } return(fSum);}程序2#include"myapp.h"voidSDRAM_init(void){ioportunsignedint*ebsr=(unsignedint*)0x6c00;ioportunsignedint*egcr=(unsignedint*)0x800;ioportunsignedint*emirst=(unsignedint*)0x801;//ioportunsignedint*emibe=(unsignedint*)0x802;ioportunsignedint*ce01=(unsignedint*)0x803;//ioportunsignedint*ce02=(unsignedint*)0x804;//ioportunsignedint*ce03=(unsignedint*)0x805;ioportunsignedint*ce11=(unsignedint*)0x806;//ioportunsignedint*ce12=(unsignedint*)0x807;//ioportunsignedint*ce13=(unsignedint*)0x808;ioportunsignedint*ce21=(unsignedint*)0x809;//ioportunsignedint*ce22=(unsignedint*)0x80A;//ioportunsignedint*ce23=(unsignedint*)0x80B;ioportunsignedint*ce31=(unsignedint*)0x80C;//ioportunsignedint*ce32=(unsignedint*)0x80D;//ioportunsignedint*ce33=(unsignedint*)0x80E;ioportunsignedint*sdc1=(unsignedint*)0x80F;//ioportunsignedint*sdper=(unsignedint*)0x810;//ioportunsignedint*sdcnt=(unsignedint*)0x811;ioportunsignedint*init=(unsignedint*)0x812;ioportunsignedint*sdc2=(unsignedint*)0x813;//*ebsr=0x221;//0xa01*ebsr=0xa01;*egcr=0x220;*egcr=0X220;*ce01=0X3000;*ce11=0X1fff;*ce21=0x1fff;*ce31=0x1fff;*emirst=0;*sdc1=0X5958;*sdc2=0X38F;*init=0;}程序3#include"myapp.h"voidCLK_init(){ioportunsignedint*clkmd;clkmd=(unsignedint*)0x1c00;*clkmd=0x2033; //0x2033;//0x2413;//200MHz=0x2513}voidSetDSPPLL(unsignedintuPLL){ioportunsignedint*clkmd;clkmd=(unsignedint*)0x1c00;*clkmd=uPLL;}voidTMCR_reset(void){ioportunsignedint*TMCR_MGS3=(unsignedint*)0x07FE;ioportunsignedint*TMCR_MM=(unsignedint*)0x07FF;*TMCR_MGS3=0x510;*TMCR_MM=0x000;}程序4wst=0.88*pi;wp=0.4*pi;deltaw=wst-wp;%过渡带宽△w的计算N0=ceil(11*pi/deltaw);%按布莱克曼窗计算所需的滤波器长度N=N0+mod(N0+1,2);%为了实现第一类偶对称滤波器,应确保其长度N为奇数n=[0:1:N-1];wc=(wst+wp)/2;%截止频率取为两边缘频率的平均值hd=ideal(wc,N);%求理想脉冲响应wdbla=(blackman(N))';%求窗函数h=hd.*wdbla;%设计的脉冲响应应为理想脉冲响应与窗函数乘积[db,mag,pha,grd,w]=myfreqz(h,[1]);%对设计结果进行检验dw=2*pi/2000;%频率分辨率Rp=-(min(db(1:wp/dw+1)))%检验通带波动As=-round(max(db(wst/dw+1:501)))%检验最小阻带衰减figure(1)subplot(2,2,1);stem(n,wdbla);title('布莱克曼窗')%绘制布莱克曼窗axis([0N-101.1]);ylabel('w(n)');text(N+1,0,'n')subplot(2,2,2);stem(n,h);title('实际脉冲响应')%绘制实际脉冲响应axis([0N-1-0.40.5]);xlabel('n');ylabel('h(n)')subplot(2,2,3);plot(w/pi,db);%绘制幅度响应;title('幅度响应(单位:dB)');grid;axis([01-15010]);xlabel('频率(单位:pi)');ylabel('分贝数')set(gca,'XTickMode','manual','XTick',[0,0.2,0.35,0.65,0.8,1])set(gca,'YTickMode','manual','YTick',[-60,0])subplot(2,2,4);plot(w,pha);title('相位响应');%绘制相频特性axis([02-44]);xlabel('频率(单位:pi)');ylabel('相位(Φ)')程序5functionhd=ideal(wc,M);al=(M-1)/2;n=[0:(M-1)];m=n-al+eps;hd=sin(wc*m)./(pi*m);程序5function[db,mag,pha,grd,w]=myfreqz(b,a);N=1000;[H,w]=freqz(b,a,N,'whole');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(b,a,w);目录TOC\o"1-2"\p""\h\z\u第一章总论 11.1项目概况 11.2研究依据及范围 21.3结论 31.4建议 4第二章项目建设的背景和必要性 52.1项目建设的背景 62.2项目建设的必要性 7第三章项目服务需求分析 9第四章项目选址与建设条件 114.1选址原则 PAGEREF_T
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度涉密技术研发项目保密协议规范与执行标准
- 2025年度航空航天电焊工劳动合同(火箭发动机焊接)
- 2025年国家公务员录用考试公共基础知识预测押题试卷及答案(共七套)
- 幼儿园中学小学家长会80
- 学前社会规范教育
- 新生儿肺透明膜病
- 大学团支部工作总结
- 销售客户开发培训
- 数学(理科)-普通高等学校招生全国统一考试数学北京卷
- 防止玩具与儿童用品不安全
- 二年级数学有余数的除法(2位数除以1位数)竞赛试题练习题
- 2025年法理学接本试题及答案
- 2024年河南省中考满分作文《成功所至诸径共趋》
- 2025年中考百日誓师大会校长发言稿:激扬青春志 决胜中考时
- 同等学力英语申硕考试词汇(第六版大纲)电子版
- 部编四下语文《口语交际:转述》公开课教案教学设计【一等奖】
- 初中数学基于核心素养导向的大单元教学设计(共50张)
- 《模具电火花加工》PPT课件.ppt
- 膝关节骨性关节炎
- 数学分析2期末考试题库(1)28页
- 抢救药物总结
评论
0/150
提交评论