简单数字信号处理系统的实现_DSP设计报告

  • 格式:doc
  • 大小:415.50 KB
  • 文档页数:14

目录1、课程设计的题目与设计要求 (2)1.1 课程设计的题目 (2)1.2 课程设计的设计要求 (2)2、设计的目的和意义 (2)3、设计任务 (2)4、设计的原理分析 (2)4.1 设计总体分析 (2)4.2 关键技术数字滤波器概述 (2)4.3 FIR和IIR数字滤波器的比较 (3)4.4 FIR滤波器设计方法 (4)5、设计的流程图 (4)5.1 总体设计方案流程图 (4)5.2 MATLAB程序流程图 (5)5.3 CCS汇编程序流程图 (5)6、设计的流程图 (6)6.1 MATLAB程序及数据的生成 (6)6.2 汇编程序的实现 (6)7、设计的效果图 (6)7.1 MATLAB生成结果 (6)7.2 示波器的显示效果 (7)8*、正弦信号发生器的实现 (8)8.1 设计的要求 (8)8.2 查表法实现正弦波 (8)9、小结与体会 (8)10、参考文献 (8)附录1 (9)附录2 (12)简单数字信号处理系统的实现1、课程设计的题目与设计要求1.1 课程设计的题目课程设计的题目:简单数字信号处理系统的实现1.2 课程设计的设计要求利用C5402DSP 实验箱设计一个简单数字信号处理系统,指标为:输入信号AD采样频率为50KHZ;设计一个低通滤波器(FIR),要求截止频率为4KHZ,过渡带2KHZ,阻带衰减大于40dB;将滤波后的信号通过DA输出。

2、设计的目的和意义本课程设计是学完《DSP芯片及应用技术》课程之后,让学生综合运用DSP软硬件知识,进行实际DSP系统的硬件设计,连接和软件编程调试,以加深对DSP基础知识的理解,提高综合应用知识的能力,分析解决问题的能力和DSP技术实践技能,初步培养开发实用DSP系统的能力。

3、设计任务课程设计的任务:(1)完成滤波器的选型和滤波器的设计;(2)使用C5402DSP 实验箱连接电路,编程实现设计的滤波器;(3)完成滤波器的性能测试;(4)完成课程设计说明书。

4、设计的原理分析4.1 设计总体分析图1所示为一个典型的DSP系统。

图中的输入信号可以有各种各样的形式。

例如,它可以是麦克风输出的语音信号或是电话线来的已调数据信号,可以是编码后在数字链路上传输或存储在计算机里的摄像机图像信号等。

图1 典型的DSP系统输入信号首先进行带限滤波和抽样,然后进行A/D(Analog to Digital)变换将信号变换成数字比特流。

根据奈奎斯特抽样定理,为保证信息不丢失,抽样频率至少必须是输入带限信号最高频率的2倍。

DSP芯片的输入是A/D变换后得到的以抽样形式表示的数字信号,DSP芯片对输入的数字信号进行某种形式的处理,如进行一系列的乘累加操作(MAC)。

数字处理是DSP的关键,这与其他系统(如电话交换系统)有很大的不同,在交换系统中,处理器的作用是进行路由选择,它并不对输入数据进行修改。

因此虽然两者都是实时系统,但两者的实时约束条件却有很大的不同。

最后,经过处理后的数字样值再经D/A(Digital to Analog)变换转换为模拟样值,之后再进行内插和平滑滤波就可得到连续的模拟波形。

4.2 关键技术数字滤波器概述所谓数字滤波器,是指输入输出均为数字信号,通过一定的运算关系改变输入信号中所含的频率成分的相对比例,或者滤除某些频率成分的器件。

在时域内有如下关系:y(n)h(n)*x(n)数字滤波器总体可以分为两大类,一类称为经典滤波器,输入信号中的有用成分和希望滤除的成分占用不同的频带,通过适当的选频滤波器可实现滤波;另一类称为现代滤波器,如维纳滤波器、卡尔曼滤波器等,其输入信号中有用信号和希望滤除的乘法频带交叠。

对于经典滤波器,从频域上还可以分为低通、高通、带通、带阻滤波器。

从时域特性上来看,数字滤波器还可以分为有限冲激响应数字滤波器(FIR)和无限冲激响应数字滤波器(IIR )。

对于有限冲激响应数字滤波器(FIR)其输出y(n)只取决于有限个过去和现在的输入x(n),x(n-1)... x(n-m);对于无限冲激响应数字滤波器(IIR ),它的输出不仅取决于过去和现在的输入,还跟过去的输出有关。

FIR和IIR滤波器不论是在性能还是在设计方法上都有着很大的区别,FIR滤波器可以根据给定的频率特性直接设和IIR,其设计步骤如下:(1)确定指标:在设计一个滤波器前必须有一些指标,这些指标需要根据应用确定。

(2)模型逼近:一旦确定了指标就可以利用一些基本原理和关系式提出一个滤波器模型来逼近给定的指标体系。

这是滤波器设计所要研究的主要问题。

(3)实现:上面两步结果得到的滤波器通常是以差分方程系统函数或脉冲响应来描述的。

根据这个描述用硬件和计算机软件来实现。

在数字滤波器中,FIR滤波器具有如下几个优点:(1)可以在幅度特性随意设计的同时保证精确严格的线性相位。

(2)由于FIR滤波器的单位脉冲h(n)是有限长序列,因此FIR滤波器没有不稳定的问题。

(3)由于FIR滤波器一般为非递归结构,因此在有限精度运算下,不会出现递归型结构中的极限震荡等不稳定现象,误差较小。

(4) FIR滤波器可采用FFT算法实现,从而提高运算效率。

4.3 FIR和IIR数字滤波器的比较在很多实际应用中如语音和音频信号处理中,数字滤波器来实现选频功能。

因此,指标的形式应为频域中的幅度和相位响应。

在通带中,通常希望具有线性相位响应。

在FIR滤波器中可以得到精确的线性相位。

在IIR滤波器中通带的相位是不可能得到的,因此主要考虑幅度指标。

IIR数字滤波器的设计和模拟滤波器的设计有着紧密的联系,通常要设计出适当地模拟滤波器,再通过一定的频带变换把它转换成为所需要的数字IIR滤波器。

此外,任何数字信号处理系统中也还不可避免地用到模拟滤波器,比如A/D变换器前的抗混叠滤波器及D/A转换后的平缓滤波器,因此模拟滤波器设计也是数字信号处理中应当掌握的技术。

从性能上来说,IIR数字滤波器传递函数包括零点和极点两组可调因素,对极点的唯一限制是在单位圆内。

因此可用较低的阶数获得高的选择性,所用的存储单元少、计算量小、效率高。

但是这个高效率是以相位的非线性为代价的。

选择性越好,则相位非线性越严重。

FIR滤波器传递函数的极点是固定在原点,是不能动的,它只能靠改变零点位置来改变它的性能,所以要达到高的选择性,必须用高的阶数,对于同样的滤波器设计指标,FIR滤波器所要求的阶数可能比IIR 滤波器高5^-10倍,结果成本高信号延时也较大,如果按线性相位要求来说,则IIR滤波器就必须加全通网络进行相位校正,同样大大增加了滤波器的阶数和复杂性。

而FIR滤波器却可以得到严格的线性相位。

从结构上看,IIR滤波器必须采用递归结构来配置极点,并保证极点位置在单位圆内。

由于有限字长效应,运算过程中将对系数进行舍入处理,引起极点的偏移,这种情况有时会造成稳定性问题,甚至造成寄生振荡。

相反,FIR滤波器只要采用非递归结构,不论在理论上还是实际的有限精度运算中都不存在稳定性问题,因此造成的频率特性误差也较小。

此外FIR 滤波器可以采用快速傅立叶变换算法,在相同的阶数条件下运算速度可以快的多。

从设计工具看,IIR 滤波器可以借助模拟滤波器的成果,因此一般都有有效的封闭形式的设计公式可供参考,计算工作量比较小,而且对计算工具的要求不高;FIR 滤波器一般没有封闭形式的设计公式。

窗函数法设计FIR 滤波器也仅给出了窗函数的计算公式,但是在计算通带阻带衰减时无显示表达式。

一般FIR 滤波器的设计只有计算程序可循,因此它对计算工具要求较高。

在设计和实现上FIR 滤波器具有如下优越性:(1)相位响应可为严格的线性,因此它不存在延迟失真,只有固定的时间延迟。

(2)由于不存在稳定性问题,所以设计相对简单。

(3)只包含实数算法,不涉及复数算法,不需要递推运算,长度为M 的滤波器(阶数为M-1),它的计算值约为M/2。

另外,也应看到,IIR 滤波器虽然设计简单,但主要是用于设计具有分段常数特性的滤波器,如低通、高通、带通和带阻等,往往脱离不了模拟滤波器的格局。

而FIR 滤波器则要灵活的多,尤其是他易于适应某些特殊应用,如构成数字微分器或希尔伯特变换器等,因而有更大的适应性和广阔的应用领域。

从上面的简单比较可以看到IIR 与FIR 滤波器各有所长,所以在实际应用时应该从多方面考虑来加以选择。

从使用要求来看,在对相位要求不敏感的场合,如语言通信等选用IIR 较为合适,这样可以充分发挥其经济高效的特点;对于图像信号处理,数据传输等以波形携带信息的系统,则对线性相位要求较高。

如果有条件,采用FIR 滤波器较好。

当然在实际应用中可能还要考虑更多方面的因素。

4.4 FIR 滤波器设计方法FIR 滤波器的差分方程: ∑-=-=10)()(N i i i n x b n y对式子进行Z 变换,可得FIR 滤波器的传递函数:∑-=-==10)()()(N i ii z b z X z Y z HFIR 滤波器的结构:FIR 数字滤波器的设计方法主要有窗函数法和频率抽样设计法,其中窗函数法是基本而有效的设计方法。

其滤波结构图如图2所示。

图2 滤波结构图数字滤波器中,FIR 具有如下几个主要特点:(1)FIR 滤波器无反馈回路,是一种无条件稳定系统; (2)FIR 滤波器可以设计成具有线性相位特性。

5、设计的流程图5.1 总体设计方案流程图图3 总体设计方案流程图5.2 MATLAB程序流程图图4 MATLAB程序流程图5.3 CCS汇编程序流程图图5 汇编程序流程图6、设计的流程图6.1 MATLAB程序及数据的生成MATLAB程序(1)根据读取的数据,输入MATLAB程序如下,(得到结果图如图6):f=[43.76,237.87,461.28,611.34,847.14,1281.30,1441.30,1632.74,1830.23,2093.66,2290.57,2426.7 9,2625.53,2854.32,3089.75,3238.17,3452.41,3618.89,3841.51,4068.83,4285.22,4475.37,4662.19, 4819.76,5031.27,5364.79,5557.61,5922.10,6367.96,7029.61,7750.79,8117.45,8696.63,9124.52,96 68.77,25000.48]f=f/1000H=[11.75,10.79,10.88,9.60,9.52,9.44,9.36,9.28,9.21,9.04,8.80,8.64,8.32,7.92,7.36,6.96,6.24,5.76, 5.04,4.24,3.52,2.96,2.40,2.00,1.44,0.88,0.68,0.36,0.14,0.074,0.062,0.054,0.050,0.042,0.038,0.020 ]H=H/9.68H=20*log10(H)plot(f,H)xlabel('频率/khz')ylabel('幅度/db')(2)根据以下程序,(得到结果图如图7):Window=chebwin(35,30);b=fir1(34,0.16,'low',Window);freqz(b,1,512)6.2 汇编程序的实现编辑程序:(1)试验准备仿真器的仿真头连接试验箱的JTAG口,USB接头与计算机连接,打开试验箱电源,启动计算机,启动Code Composer Studio 2.2。