DSP课程设计(论文)-基于FIR的语音信号滤波.doc_第1页
DSP课程设计(论文)-基于FIR的语音信号滤波.doc_第2页
DSP课程设计(论文)-基于FIR的语音信号滤波.doc_第3页
DSP课程设计(论文)-基于FIR的语音信号滤波.doc_第4页
DSP课程设计(论文)-基于FIR的语音信号滤波.doc_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

基于fir的语音信号滤波1 绪论1.1原理及目的数字滤波器是一种用来过滤时间离散信号的数字系统,通过对抽样数据进行数学处理来达到频域。滤波的目的。根据其单位冲激响应函数的时域特性可分为两类:无限冲激响应(iir)滤波器和有限冲激响应(fir)滤波器。与iir滤波器相比,fir滤波器只有零点,除原点外在z平面上没有极点,因此总是稳定的和可实现的;更重要的是,fir滤波器在满足一定的对称条件下,可以获得严格的线性相位特性,这一点是iir滤波器难以实现的。因此,在高保真的信号处理如数字音频、图像处理、数据传输、生物医学等领域得到广泛应用。与单片机相比,dsp有着更适合于数字滤波的特点。它利用改进的哈佛总线结构,内部有硬件乘法器、累加器,使用流水线结构,具有良好的并行特点,并有专门设计的适用于数字信号处理的指令系统等。通过本次课程设计,综合运用数字信号处理、dsp技术课程以及其他有关先修课程的理论和生产实际知识去分析和解决具体问题,并使所学知识得到进一步巩固、深化和发展。初步培养学生对工程设计的独立工作能力,掌握电子系统设计的一般方法。通过课程设计完成基本技能的训练,如查阅设计资料和手册、程序的设计、调试等,提高学生分析问题、解决问题的能力。1.2 设计步骤及要求本题目通过dsp处理器控制tlc320ad50采集音频信号,在ccs软件中分析音频信号的频谱图,使用matlab设计相应的fir数字滤波器(低通、带通、带阻等)并得到滤波器h(z)的系数,然后根据这些系数,编写dsp程序(c语言或汇编)对已采集信号进行处理,最后在ccs软件中得到处理后音频信号的频谱图,比较滤波前后信号的频谱图。设计步骤包括:1、dsp与tlc320ad50接口电路的原理图绘制;2、dsp控制tlc320ad50的程序编写与调试;3、tlc320ad50模拟量到数字量的转换,采集声音信号,查看并记录信号频谱;4、使用matlab对fir滤波器的设计;5、编写fir滤波处理的dsp程序,查看并记录处理后的信号频谱;6、用tlc320ad50实现数字量到模拟量的转换,回放处理后的声音;7、按要求编写课程设计报告书,正确、完整的阐述设计和实验结果。8、在报告中绘制程序的流程图,并文字说明。2 设计总体方案2.1 语音信号的采集所需的硬件主要是dsp、dram、tlc320ad50、tlc2272,语音信号从麦克风输入后经过tlc2272(双路低噪声)滤波,通过ad50的a/d将模拟信号转换为数字信号后,编写dsp程序,将采集的数字信号存入dsp的dram,然后经某一事件触发,将信号回放出去,信号由耳机输出。 图2-1 语音处理的硬件连接示意图2.2 fir 滤波器的原理及特点2.2.1 fir数字滤波器原理及设计方法分类fir滤波器的传递函数为: (2-1) 可得fir滤波器的系统差分方程为: 因此,fir滤波器又称为卷积滤波器。根据系统频率响应,fir滤波器的频率响应表达式为: (2-2) 信号通过fir滤波器不失真条件与(6-6)式所描述的相同,即滤波器在通带内具有恒定的幅频特性和线性相位特性。理论上可以证明(这里从略):当fir滤波器的系数满足下列中心对称条件: (2-3) 时,滤波器设计在逼近平直幅频特性的同时,还能获得严格的线性相位特性。线性相位fir滤波器的相位滞后和群延迟在整个频带上是相等且不变的。对于一个 n 阶的线性相位fir滤波器,群延迟为常数,即滤波后的信号简单地延迟常数个时间步长。这一特性使通带频率内信号通过滤波器后仍保持原有波形形状而无相位失真。表2-1 fir滤波器设计的主要方法函数设计方法说明工具函数窗函数法理想滤波器加窗处理fir1(单频带) , fir2(多频带) , kaiserord最优化设计平方误差最小化逼近理想幅频响应或park-mcclellan 算法产生等波纹滤波器firls , remez,remezord约束最小二乘逼近在满足最大误差限制条件下使整个频带平方误差最小化fircls,fircls1升余弦函数具有光滑、正弦过渡带的低通滤波器设计fircos2.3 窗函数设计方法 fir滤波器设计的主要任务是根据给定的性能指标确定滤波器的系数b,即系统单位脉冲序列h(n),它是一个有限长序列。fir滤波器的理想频率响应,可写成复数形式的fourier级数形式: (2-4)式中,hd(n)是对应的单位脉冲响应序列。这说明滤波器的频率响应和单位脉冲响应互为fourier变换对。因此其单位脉冲响应可由下式求得, (2-5)求得序列后,通过z变换,可得到 (2-6)注意,这里为无限长序列,因此是物理上不可实现的。如何变成物理上可实现呢?一个自然的想法是只取其中的某些项,即只截取中的一部分,比如n=0,n-1,n为正整数。这种处理相当于将,n=-与函数w(n)相乘,w(n)具有下列形式:w(n)相当于一个矩形,我们称之为矩形窗。即我们可采用矩形窗函数w(n)将无限脉冲响应截取一段h(n)来近似为,这种截取在数学上表示为: h(n)=w(n) (2-7)这里应该强调的是,加窗函数不是可有可无的,而是将设计变为物理可实现所必须的。截取之后的滤波器传递函数变为: (2-8)式中,n为窗口宽度,h(z)是物理可实现系统。为了获得线性相位,fir滤波器h(n)必须满足中心对称条件(即7-3式),序列h(n)的延迟为。这种方法的基本原理是用一定宽度的矩形窗函数截取无限脉冲响应序列获得有限长的脉冲响应序列,从而得到fir滤波器的脉冲响应,故称为fir滤波器的窗函数设计法。经过加矩形窗后所得的滤波器实际频率响应能否很好地逼近理想频率响应呢?图 2-2示意给出了理想滤波器加矩形窗后的情况。理想低通滤波器的频率响应如图中左上角图,矩形窗的频率响应为左下角图。时间域内的乘积(2-7)式要求实际频率响应为这两个频率响应函数在频域内的卷积(卷积定理),即得到图形为图2-2(下图)。图2-2 fir滤波器理想与实际频率响应由图可看出,加矩形窗后使实际频率响应偏离理想频率响应,主要影响有三个方面:(1)理想幅频特性陡直边缘处形成过渡带,过渡带宽取决于矩形窗函数频率响应的主瓣宽度。(2)过渡带两侧形成肩峰和波纹,这是矩形窗函数频率响应的旁瓣引起的,旁瓣相对值越大,旁瓣越多,波纹越多。(3)随窗函数宽度n的增大,矩形窗函数频率响应的主瓣宽度减小,但不改变旁瓣的相对值。为了改善fir滤波器性能,要求窗函数的主瓣宽度尽可能窄,以获得较窄的过渡带;旁瓣相对值尽可能小,数量尽可能少,以获得通带波纹小,阻带衰减大,在通带和阻带内均平稳的特点,这样可使滤波器实际频率响应更好地逼近理想频率响应。这里我们明确两个概念:截断和频谱泄漏。信号是无限长的,而在进行信号处理时只能采取有限长信号,所以需要将信号“截断”。在信号处理中, “截断”被看成是用一个有限长的“窗口”看无限长的信号,或者从分析的角度是无限长的信号x(t)乘以有限长的窗函数w(t)。由傅立叶变换性质可知,时间域内的乘积对应于频率域的卷积,即 (2-9)这里,x(t)是频宽有限信号,而w(t)是频宽无限信号,表示互为fourier变换对。截断后的信号也必须是频宽无限信号,这样就是有限频带的信号分散到无限频带中去,这样就产生了所谓频谱泄漏。从能量的角度来看,频谱泄漏也是能量的泄漏,因为加窗后使原来信号集中的窄频带内的能量分散到无限的频带宽度范围内。频谱泄漏是不可避免的,但要尽量减小。上边只考虑了矩形窗,如果我们使窗的主瓣宽度尽可能地窄,旁瓣尽可能地小,可以获得性能更好的滤波器,能否改变窗的形状而达到这个目的呢?回答是肯定的。其实数字信号处理的前驱者们设计了不同于矩形窗的很多窗函数,这些窗函数在主瓣和旁瓣特性方面各有特点,可满足不同的要求。为此,用窗函数法设计fir数字滤波器时,要根据给定的滤波器性能指标选择窗口宽度n和窗函数w(n)。2.4 fir滤波器的dsp实现方案一个典型的dsp系统如图3-2所示 图2-3典型dsp系统的构成 其中的输入信号可以是麦克风输出的语音信号、电话线的已调数据信号,可以是编码后在数字链路上传输或存储在计算机里的摄像机图像信号等输入号。首先进行带限滤波和抽样,然后进行a/d转换成数字比特流,由耐奎斯特样定理可知为了保证信息完整抽样频率至少是输入带限信号最高频率的2倍。之后输入dsp芯片的是以抽样形式表示的数字信号,dsp芯片对输入信号行处理,如进行一系列的乘累加操作,最后经过处理后的数字样值经d/a换成为模拟样值再经过内插和平滑滤波就得到了连续的模拟波形。tms320vc5402是定点的数字信号处理器。它采用先进的修正哈佛结构,片内共有8条16位的总线,其中包括4条程序/数据总线和4条地址总线,各条总线的作用如下:程序总线pb传输来自程序存储器的指令代码和立即数;三条数据总线cb, db, eb相互连接不同的单元,如中央处理单元、数据地址产生逻辑、程序地址产生逻辑、片内外设和数据存储器。其中,cb和db传输从程序存储器读来的数据,eb传输待写入存储器的数据;.pab, cab, dab和eab这4条地址总线传输指令执行所需要的地址。图3-3为tms320c54x dsp的内部硬件组成框图。cpu采用并行结构设计特点,使其能在一条指令周期内,高速地完成多项算术运算。cpu的基本组成如下:40位算术逻辑运算单元(alu),包括一个40位桶形移位寄存器和2个独立的40位累加器; 17x17位并行乘法器,与40位专用加法器相连,用于非流水线式单周期乘法/累加(mac)运算:比较、选择和存储单元(cssu),用于加法/比较选择。指数编码器,可以在单个周期内计算40位累加器中数值的指数。dsp5402的片上外围电路包括:通用u0引脚(xf和bio# ),定时器,时钟发生器,一个与外部处理器通信的8位的hpi (host port interface)接口,两个多通道缓冲串行口mcbsp (multichannel bsp )。器片内存储器的种类只要有以下几种:双访问ram (daram ),单访问ram (sram)和rom. ram一般映射在数据空间。dram一般由若干块构成,由于每块daram在一个机器周期内可以被访问2次,中央处理单元和片内外设在一个周期内可以同时对其进行一次读和一次写操作。根据需要,通过改变处理器状态寄存器的三个位mp/mc, ovly和drom来灵活地改变存储器的配置。数据存储空间还有一块特殊的区域,ooh-08h。这块区域包含的是存储器映像寄存器,它包含了dsp中所有的寄存器,可以通过读这块存储器来了解各个寄存器的值,或者通过写这块寄存器来改变寄存器的值。因此编程时不能随便向这个区域存储数据,除非根据需要来改变相应寄存器的值,否则会导致程序运行结果错误。具有高度专业化的指令系统,包括单指令重复和块指令重复操作,块存储器传输指令,32位长操作数指令,同时读入2或3个操作数的指令,能并行存储和并行加载的算术指令,条件存储指令和从中断快速返回。图2-4tms320c54x dsp的内部硬件组成框图2.5 fir滤波器的matlab设计matlab被称为第四代计算机语言,又称为“草稿纸式”的语言,它具有不同于其他语言如fortran、c语言等的特点,是边解释边执行的计算机语言。matlab是一款具有强大的矩阵运算、数据处理和图形显示功能的软件,其输出结果可视化,编程效率极高,用极少的代码即可实现复杂的运行,因此它使工程技术人员摆脱了繁琐的程序代码,以便快速地验证自己的模型和算法。fir1就是采用经典窗函数法设计线性相位fir数字滤波器的函数,且具有标准低通,带通,高通,带阻等类型。函数调用格式为:b=fir1(n,wn,ftype,window)式中,n为fir滤波器的阶数,对于高通,带阻滤波器,n需取偶数;wn为滤波器截止频率,范围为01(归一化频率)。对于带通,带阻滤波器,wn=w1,w2(w1w2);对于多带滤波器,如wn=w1,w2,w3,w4,频率分段为:0ww1,w1ww2,w2ww3,w3ww4。 ftype为滤波器的类型:缺省时为低通或带通滤波器;high为高通滤波器;stop为带阻滤波器,dc-1为第一频带为通带的多带滤波器;dc-0为第一频带为阻带的多带滤波器。window为窗函数列向量,其长度为n+1。缺省时,自动取哈明窗。matlab提供的窗函数有boxcar、hanning、hamming、bartlett、blackman、kaiser、chebwin,调用方式见上节。b为fir滤波器系数向量,长度为n+1。fir滤波器的传递函数具有下列形式: (4-21)用函数fir1设计的fir滤波器的群延迟为n/2。考虑到n阶滤波器系数个数为n,即n+1,这里的延迟与前面所讲的(n-1)/2的延迟一致。注意这里的滤波器的最小阶数比窗函数的长度少1。2.6 硬件连接及通信协议2.6.1 硬件连接根据图3-4和图3-5的时序,则容易实现tlc320ad50c与tms320vc5402的硬件连接,如图3-6所示。图3-6 tlc320ad50c与tms320vc5402的硬件连接tlc320ad50c的mclk外接8.192mhz的晶振,tms320vc5402的fsx和fsr由tlc320ad50c设置。如果选择d7=0,n=8,则采样速率为8khz。2.6.2 通信协议tlc320ad50c的通信有两种格式:一次通信格式和二次通信格式。一次通信格式的16位都用来传输数据。dac的数据长度由寄存器1的d0位决定。启动和复用时,缺省值为15+1位模式,最后一位要求二次通信。如果工作在16位传输模式,则必须由fc产生二次通信请求。二次通信格式则用来初始化和修改tlc320ad50c内部寄存器的值。在二次通信中可以通过向din写数据来初始化。系统复位后,必须通过dsp的dx口向tlc320ad50c的din写数据,如果采用一片tlc320ad50c,只需初始化其寄存器1、寄存器2和寄存器4。由于通信数据长度为16位,初始化时应通过rcr1和xcr1设置mcbsp的传输数据长度为16。考虑到tlc320ad50c复位后至少经过6个mclk才可以脱离复位,故可以在此时间内初始化dsp的串行口。3 软件设计图3-1 matlab的人机交互软件设计3.1 用matlab控制串口接收数据1. 先进行串口的初始化操作,然后打开串口,用到的函数为:serial和open。 2. 设定matlab和dsp的握手方式,可通过串口目标的flowcontrol属性设定。3. 接收和发送数据,用到fread和fwrite函数。对于用dsp器件设计的语音信号滤波器, 其系统软件设计可使用ccs (code composer studio)软件来进行调试。设计调试时, 首先应对各个设备进行初始化配置, 然后再调用子程序来处理音频数据的输入和输出。在子程序中, 首先初始化语音缓冲区和工作变量, 等待mcbsp通道0传送结束后, 再采集语音信号, 然后传送到mcbsp并保存于左声道缓冲区, 此时即可调用材料计算fir滤波输出, 滤波后的结果存放于右声道缓冲区, 最后将滤波后的信号输出到mcbsp 接口, 再将此信号传送到tms320c5410中。通过 dsp 的串口0 输入/输出数据。在串口通讯中,数据时钟和帧同步信号都由ac01 产生,所以vc5410 将使用外部时钟和帧同步信号。串口设置代码如下:stm #0,spsa0stm #2000h,spcr10stm #1,spsa0stm #0c0h,spcr20stm #2,spsa0stm #40h,39hstm #3,spsa0stm #0,39hstm #4,spsa0stm #40h,xcr10stm #5,spsa0stm #0,39hstm #0eh,spsa0stm #0dh,pcr0stm #7h,spsa0stm #8000h,39hrpt #0ffffhnopstm #00h,dxr10ldm 22h,astm #1,38hstm #0c1h,39h完成串口设置后,还需要修改中断向量表以便正确响应串口0 的接收和发送中断请求。使用发送中断产生送出滤波之后的数字语音信号;使用接收中断存贮输入的数据,并设置新数据到达标志。主循环在检测到该标志后,调用fir 滤波程序,完成对输入数据的处理。3.2 matlab设计fir带通滤波器n,wn,beta,ftype=kaiserord(7 13 17 23,0 1 0,0.01 0.01 0.01,100); /得出滤波器的阶数n=38,beta=3.4w1=2*fc1/fs; w2=2*fc2/fs; /将模拟滤波器的技术指标转换为数 字滤波器的技术指标window=kaiser(n+1,beta); /使用kaiser窗函数b=fir1(n,w1 w2,window); /使用标准频率响应的加窗设计函数 fir1freqz(b,1,512); /数字滤波器频率响应t = (0:100)/fs;s = sin(2*pi*t*5)+sin(2*pi*t*15)+sin(2*pi*t*30); /混和正弦波信号sf = filter(b,1,s); /对信号s进行滤波图3-2 滤波前后的波形运行程序后,使用dsp的集成开发环境ccs可以将输入数据与滤波结果显示出来,通过与使用matlab的simulink功能仿真出的滤波结果进行比较,可以验证用dsp芯片c54x实现的该fir滤波器的滤波过程是否正确。利用matlab的滤波器设计函数fir1设计了一个具有线性相位的数字低通fir滤波器,得到了该滤波器的滤波系数及幅频特性曲线、相频特性曲线,并且用matlab的仿真工具simulink仿真了该fir滤波器的滤波过程;通过线性缓冲区法对fir滤波器在dsp芯片c54x的实现做了理论上的分析。用matlab语言可方便、快捷地设计具有线性相位的fir滤波器,而且对于参数的修改也十分方便。用matlab仿真工具可以清晰地仿真出fir滤波器的滤波过程,有利于理解滤波过程,且可以判断滤波结果的正确性。利用dsp芯片实现fir滤波器,不仅具有准确度高、执行速度快等特点,而且用程序可移植性好,实用性强可以十分方便地改变滤波器特性。在实际应用中,只需要按照要求修改滤波器的参数,并对程序作微小的改动,即可实现不同要求的fir滤波器。4程序编写及调试结果4.1 程序bsp.set0; /当前使用mcbsp0;mcbsp0 内存映射寄存器spsa0.set 038h; /定义子地址寄存器映射位置spsd0.set 039h; /定义子块数据寄存器映射位置drr10.set 021h; /接收数据寄存器1映射位置drr20.set 020h; /接收数据寄存器2映射位置 dxr10.set 023h; /发送数据寄存器1映射地址 dxr20.set 022h; /发送数据寄存器2映射地址 ;mcbsp1 /内存映射寄存器spsa1.set 048h spsd1 .set 049hdrr11 .set 041hdrr21 .set 040hdxr11 .set 043hdxr21 .set 042h;mcbsp subaddressed registersspcr1 .set 00h; /定义spcr10的映射子地址 spcr2.set 01h /定义spcr20的映射子地址 rcr1.set 02h /接收控制寄存器1映射子地址 rcr2.set 03h /接收控制寄存器2映射子地址 xcr1.set 04h /发送控制寄存器1映射子地址xcr2.set 05h /发送控制寄存器2映射子地址 srgr1.set 06h /采样率发生器寄存器1映射子地址srgr2.set 07h /采样率发生器寄存器2映射子地址mcr1.set 08h /多通道控制寄存器1映射子地址mcr2.set 09h /多通道控制寄存器2映射子地址rcera.set 0ah /接收通道控制寄存器1映射子地址rcerb.set 10bh /接收通道控制寄存器2映射子地址xcera.set 0ch /发送通道使能寄存器a映射子地址 xcerb.set 0dh /发送通道使能寄存器b映射子地址pcr .set 0eh /引脚控制寄存器映射子地址.if bsp = 0 /条件汇编,因为5402有两个同步缓冲口如果bsp=0则使用同步缓冲口0 spsa.setspsa0 /由于同步缓冲口采用子地址寻址方式 spsd.setspsd0rdrr.setdrr10rdxr.setdxr10.endif.if bsp = 1 /条件汇编,因为5402有两个同步缓冲口如果bsp=1则使用同步缓冲口1 spsa.setspsa1 spsd.setspsd1rdrr.setdrr11rdxr.setdxr11.endif /以下程序是写数据的子程序也就是宏wr_sub_reg.macro val,addr /写mcbsp控制寄存器stm addr,spsa /将addr的地址写入spsanop /空操作stm val,spsd /将配置值写入spsdnop /空操作 .endm/以下程序是读数据的子程序也就是宏rd_sub_reg.macro addr,acc /读mcbsp控制寄存器stm addr,spsa /将addr的地址写入spsanop /空操作ldm spsd,acc /送入累加器保存 nop /空操作 nopnop .endmwaittrx .macro/等待串口中断宏waitr? rd_sub_reg spcr1,a and #1录音b play /已结束-放音recordld #0f000h,b /置b0f000h采样的数据个数sub ar2,bbc load,bneq /录制数据放完,再从头放起stm#1000h,ar2 /ar24000h,初始化采样数据存放地址load ld *ar2+,a /加载录制数据playand #0fffeh,a /屏闭最低位为了防止第二次通讯()stlm a,rdxr rete .end4.2 运行步骤与结果启动ccs,输入实验程序代码,进行编译并加载到dsp中。采用单步运行或执行到光标处,或全速运行,并打开波形观察窗口,跟踪观察其执行过程和滤波效果。先打开项目,然后编译、加载实验程序,然后点击菜单debuggo main就进入预先编译的实验程序然后打开波形观察窗口,路径是viewgraphtime/frequence,将出现如下图5.1所示的图形属性框,在display type一栏中选择 dual time 项;interleaved data sources一栏中选择no项; start address-upper display一栏中输入x,start address-upper display 一栏中输入r; acquistition buffer size 一栏中输入256;display data size 一栏中输入256;dsp data type一栏中选择16-bit signed integer项;其他为默认值,然后点击“ok”就可打开图形观察窗口如图5.2。图4-1 图形属性窗口之后输入语音数据文件,将文件所在路径输入,然后就会出现如图5.2所示的输入波形窗口。 图4.2 语音数据波形之后再运行已编写的程序,就可观察到输入数据经过fir滤波后的效果,如图5.3所示,至此就可观察信号经过fir滤波后的信号的改变. 图4-3 fir 滤波后的输出波形数据通过硬件测试证明, 当未进行fir滤波时, 声音中含有的高频杂音将明显地影响听觉效果。但是在进行滤波以后, 高频杂音去掉了, 声音质量明显的改善了。因此, 在实际应用中对语音信号进行fir滤波, 可以很好的将噪音部分去掉。5心得体会dsp是我们电子信息工程专业具有相当分量的一门主干学科。它要求的数学知识多,包括高等代数、数值分析、概率统计、随机过程等。要求掌握的基础知识强,其中网络理论、信号与系统是本课程的理论基础。并且与其他学科密切相关,即与通信理论、计算机、微电子技术不可分,又是人工智能、模式识别、神经网络等新兴学科的理论基础之一。所以学好数字信号处理这门课程的理论知识是重中之重,有了这个有力的武器,才能更好的应用于实践当中。一切理论最终都要服务于实践。刚开始学这门课的时候还有些不以为然,认为这门课稍微看看就可以了,因为以前曾经学习过信号与系统,而数字信号处理只不过是它的一个重要分支而已。但是真正到了做课程设计的时候,才明白了自己这个想法是多么的错误。因为其中要求大量的理论知识,“巧妇难为无米之炊”,没有扎实的理论知识为依托,我曾经在刚看到课程设计任务书时一筹莫展,难以下手。因为每一个步骤每一个环节都需要我准确无误地使用学过的知识进行设计,而这恰恰是被自己曾经忽视的。另一方面,matlab这个软件也是本次课程设计能否成功的关键所在。首先,最基本的操作方法和最基本的函数要熟练掌握,而这最基本的要求我都没有达到,所以久导致了课程设计前几天的止步不前。找到了症结所在,就要开始对症下药。开始了重新翻阅书籍的过程,重点回顾和重新学习了离散信号的时域和频谱分析,其中滤波器的设计真是让我头痛。它综合了数字信号处理所有的知识,是检验自己灵活运用理论知识并且巧妙设计程序的钥匙。所以在对理论知识学习中,把重点就放在了对数字滤波器的学习中。数字滤波器所涵门类甚广,包括有限长,无限长两大类。其中有分为了好几种滤波器。对于不同的信号要根据实际灵活的选择所需滤波器的门类,这就需要自己认真分析所需参数,考虑实际效果来定。几天下来,收获不少。然后就开始了查阅资料的过程,数字滤波器网上的资料不少,但是真正适合这个课题的不多。所以这就需要自己完完全全明白任务书的要求,发挥自己所有的能力自主创新,不能拘泥常规。但是刚开始都是艰难的,第一个模块就花了自己将近一天的时间,而更深入下来发现需要解决的问题真不少。滤波器的应用时最麻烦的,反复试验了很多次,不是差之毫厘就是谬以千里。所以就开始了跟同学的讨论当中,互相交流之后,取人之长补己之短,又有了新的认识。如果有了大家共同的盲点,那就需要老师的指导,这其中多亏了老师悉心的指导,我才能顺利的完成任务。要不然势必要陷入死胡同,离结果只会越来越远。这是一个小的阶段性的胜利,非常的来之不易。这些日子,长沙的天气异常炎热,会很大程度上造成心情浮躁,效率低下。也同时恰逢数字信号处理这门课的复习准备期间,所以在时间的合理分配与利用上也需要自己开动脑筋。还好经过坚持,最终克服了困难。这就是一个小小的成就,看着自己所学的知识能运用到实际中来,心里就异常欣慰。希望接下来得到更多的锻炼自己的机会,那样会让我们得到更多。参考文献1 邹彦. dsp原理及应用m. 北京:电子工业出版社,2005,1。2 戴明桢.tms320c54xdsp结构、原理及应用m.北京航空航天大学出版社,2001,8。3 胡圣尧. dsp原理及应用m.东南大学出版社,2008.7。4 清源科技.tms320c54xdsp应用程序设计教程m.机械工业出版社,2004,1。5 清源科技.tms320c54x硬件开发教程m.机械工业出版社,2003,附录bsp.set0; /当前使用mcbsp0;mcbsp0 内存映射寄存器spsa0.set 038h; /定义子地址寄存器映射位置spsd0.set 039h; /定义子块数据寄存器映射位置drr10.set 021h; /接收数据寄存器1映射位置drr20.set 020h; /接收数据寄存器2映射位置 dxr10.set 023h; /发送数据寄存器1映射地址 dxr20.set 022h; /发送数据寄存器2映射地址 ;mcbsp1 /内存映射寄存器spsa1.set 048h spsd1 .set 049hdrr11 .set 041hdrr21 .set 040hdxr11 .set 043hdxr21 .set 042h;mcbsp subaddressed registersspcr1 .set 00h; /定义spcr10的映射子地址 spcr2.set 01h /定义spcr20的映射子地址 rcr1.set 02h /接收控制寄存器1映射子地址 rcr2.set 03h /接收控制寄存器2映射子地址 xcr1.set 04h /发送控制寄存器1映射子地址xcr2.set 05h /发送控制寄存器2映射子地址 srgr1.set 06h /采样率发生器寄存器1映射子地址srgr2.set 07h /采样率发生器寄存器2映射子地址mcr1.set 08h /多通道控制寄存器1映射子地址mcr2.set 09h /多通道控制寄存器2映射子地址rcera.set 0ah /接收通道控制寄存器1映射子地址rcerb.set 10bh /接收通道控制寄存器2映射子地址xcera.set 0ch /发送通道使能寄存器a映射子地址 xcerb.set 0dh /发送通道使能寄存器b映射子地址pcr .set 0eh /引脚控制寄存器映射子地址.if bsp = 0 /条件汇编,因为5402有两个同步缓冲口如果bsp=0则使用同步缓冲口0 spsa.setspsa0 /

温馨提示

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

评论

0/150

提交评论