DSP实现卷积运算与matlab的比较.doc
文本预览下载声明
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);
显示全部