文档详情

DSP实现卷积运算与matlab的比较.doc

发布:2017-11-17约8.63千字共16页下载文档
文本预览下载声明
DSP实现卷积运算实验报告 目录 1、摘要………………………………………………………….2 2、关键词……………………………………………………….3 3、实验原理…………………………………………………….3 4、dsp及matlab程序设计思想及流程框图........……………..5 5、实验相关波形结果………………………………………….8 6、实验结果分析及结论……………………………………….10 7、参考文献…………………………………………………….10 8、程序附录…………………………………………………….10 1、摘要: 本实验完成了用TI仪器公司所生产的DSP芯片TMS320F2812进行卷积运算任务,并与MATLAB所计算出的卷积结果进行比较,成功地实现用dsp计算卷积的功能。 Abstract: This experiment fulfills the task of convolution calculation using the TI’s DSP chip of TMS320F2812 . And when compared with the result calculated by MATLAB , it proves to be able to calculate the convolution with DSP successfully! 2、关键词: DSP TMS320F2812 MATLAB FFT 卷积 3、实验原理: a、卷积的基本原理和公式 卷积和:对离散系统“卷积和”也是求线性是不变系统输出响应的(零状态响应)主要方法:即y(n)=h(n)*x(n)= ∑h(m)x(n-m);卷积和的运算在图形表示上可分为四步: 翻折 先在变量坐标M上作出x(m)和h(m),将h(m)以m=0的垂直轴为轴翻折成h(-m)。 移位 将h(-m)移位n,即得h(n-m)。当n为正整数时,右移n位。当n为负整数时,左移n位。 相乘 再将h(n-m)和x(m)的相同m值得对应点相乘。 相加 把以上所有对应点的乘积叠加起来,即可得全部y(n)值。 依上法,取n=…,-2,-1,0,1,2,3,…各值,即可得全部y(n)值。 b、基于FFT的线性卷积计算及MATLAB实现 线性卷积是信号处理中的重要运算,当序列x(n)通过单位脉冲响应为h(n)的线性时不变系统时,输出序列y(n)和h(n)、x(n)之间服从线性卷积关系,即y(n)=h(n)*x(n)、 当h(n)或x(n)序列较长时,直接计算线性卷积的时间会很长,满足不了实时处理的要求,为此希望用FFT计算线性卷积。本程序采用时域循环卷积原理,图2即为用FFT计算时域循环卷积的方框图。虽然线性卷积和循环卷积不同,但是在一定条件下,可以用循环卷积代替线性卷积,就可以按图2用FFT计算线性卷积。 下面来证明一下用循环卷积代替线性卷积的充要条件: 设h(n)长度为N,x(n)长度为M,yc(n)和y(n)分别表示h(n)与x(n)的L点循环卷积和线性卷积,L=max(N,M),有 yc(n)=h(n) * x(n)=∑h(m)x((n-m))LRL(n) (1) y(n)=h(n)*x(n)= ∑h(m)x(n-m) (2) 在式(1)中 x((n-m))L =∑x(n-m+iL) (3) 因此 yc(n)= ∑h(m) ∑x(n-m+iL) RL(n) =∑[∑h(m) x(n-m+iL)] RL(n) (4) 由式(2)及式(4)对比可知,式(4)方括号部分就是iL的线性卷积y(n+iL),所以得到 yc(n)= ∑y(n+iL) RL(n) (5) 式(5)说明,L点循环卷积yc(n)等于线性卷积y(n)以L为周期的周期延拓序列的主值序列。由于y(n)长度为N+M-1,所以只有当L=N+M-1时,式(5)给出的周期延拓无混叠,才能使yc(n)=y(n)。也就是说L=N+M-1是循环卷积结果和线性卷积结果相等的重要条件。只要满足该条件,就可以用图2所示方框图来计算线性卷积。 c、Matlab的程序(完整程序见附录2)实现线性卷积: 相关函数及使用如下: 1)FFT——快速傅里叶变换; Y=fft(x)——信号的FFT; Y=fft(x,N)——对信号x作N点FFT,如果x的长度不为N,则截断x或在x后补零,再进行N点的变换; 2)、IFFT——快速傅里叶反变换,使用同函数fft; 如Y=ifft(x)、Y=ifft(x,N);
显示全部
相似文档