DSP大作业-终结版(精) 下载本文

内容发布更新时间 : 2024/5/22 10:18:18星期一 下面是文章的全部内容请认真阅读。

DSP原理与应用 一、FFT算法原理

1、 DFT(离散傅里叶变换

2、 IDFT(离散傅里叶变换逆变换

3、 FFT(快速傅里叶变换 设有限长序列x( n的长度为x( n按奇偶分成两组。于是

,L为整数。由于N为偶数,先将

利用系数的可约性:

得:

期中X1(k和X2(k分别是序列x1(m和x2(m的N/2的DFT,得到的只是X(k前一半项数的结果。由DFT的性质可知,X1(k和X2(k都是周期为N/2的周期函数,再利用因子

利用蝶形运算:

得:

可得结果。

二、DSP实现的方法

1、DSP芯片采用TMS320C5402

TMS320C5402是TI公司为了实现低功耗、高性能而专门设计的定点DSP芯片,它具有如下特点:运算速度快,指令周期可以达到10ns以内;优化的CPU结构,内部有一个40位的算术逻辑单元,2个40位的累加器,2个40位的加法器,1个17乘17的乘法器和40位的桶形移位器。有4条内部总线和2个地址产生器。先进的DSP芯片可以高效快速的实现任何数字信号处理算法的运算,他不仅具有标准的串行口和分时复用的串行口,还有自动缓冲的串行口和与外部处理器链接的接口。 2、CCS编程工具

CCS集成了开发环境,使得DSP代码开发过程从编程、编译、代码调试 性能优化都集成到了一个环境中,简化了开发过程。CCS集成了以下几个软件工具:(1DSP代码产生工具(c编译器、汇编优化器、汇编器和连接器,CCS不仅支持高级语言c语言、汇编语言,还支持c语言和汇编语言的混合编程,大大降低了开发难度;(2软件模拟器,模拟整个硬件的开发过程,使得开发更加安全。(3实时基础软件,DSP/BIOS和主机目标主机之间实时数据交换的软件RTDX. 3、FFT算法的c++语言实现 (1 FFT的类代码: class FFT {

private:

void changeOrder(double* xr,double* xi,int n;

public:

FFT(void;

voidFFT_1D(double*ctxr,double*ctxi,double*cfxr,double* cfxi,int len;

void rFFT_1D(double* ctxr,double* cfxr,double* cfxi,int len;

void IFFT_1D(double*cfxr,double* cfxi,double*ctxr,double*ctxi,int len;

void rIFFT_1D(double* cfxr,double* cfxi,double* ctxr,int len;

~FFT(void;

};

(2 倒序实现

xr实部,xi虚部,n为2的幂 代码如下:

void FFT::changeOrder(double *xr,double *xi,int n {

double temp;

int k;

int lh=n/2;

int j=lh;

int n1=n-2;

for(int i=1;i<=n1;i++ {

if(i {

temp=xr[i];

xr[i]=xr[j];

xr[j]=temp;

temp=xi[i];

xi[i]=xi[j];

xi[j]=temp; }