导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→fft的C语言源代码[guest]

 *第19041篇: fft的C语言源代码

  
楼 主:guest 2004年2月8日09:49
 fft的C语言源代码
DSP开发板是采用TI公司的第五代产品TMS320VC5402,16位定点DSP处理器,与JTAG仿真器配套使用,使用户可以在软件集成开发环境下使用C语言、汇编语言直接进行调试,板上资源丰富,即可用来学习DSP,也可用来做技术研发。价格在同类产品中最便宜,如有需求请联系。
地区代理商:
名称:西安富昌电子有限公司
通信地址:西安市金花南路19号170信箱
邮编:710048
电话:029-82330315   13072905265
传真:029-83249587
联系人:高先生

E-mail:fchangxa@pub.xaonline.com

目    录
第一章 系统结构与功能……………………………………………………………1
    1.1硬件的安装步骤……………………………………………………………1
    1.2硬件连接……………………………………………………………………2
第二章 仿真器及其仿真器及其CCS的使用………………………………………7
2.1 硬件仿真器的介绍与使用…………………………………………………7
2.2 CCS软件安装配置和使用………………………………………………7
2.3 CCS系统配置……………………………………………………………8
2.4 编写程序的过程…………………………………………………………9
2.5 CCS应用详解……………………………………………………………10
第三章 教学实验系统安装指南和实验需知………………………………………26
第四章  DSP实验范例………………………………………………………………27
实验一 常用指令实验………………………………………………………27
实验二 键盘显示实验………………………………………………………29
实验三 数据存储实验………………………………………………………31
实验四 定时器实验…………………………………………………………32
实验五 FLASH擦写实验……………………………………………………34
实验六 多功能缓冲串口应用实验…………………………………………39
实验七 数字波形产生实验…………………………………………………43
实验八 卷积算法实验………………………………………………………49
实验九 实信号FFT变换实验………………………………………………53
实验十 FIR滤波器算法实验………………………………………………59
实验十一 IIR滤波器算法实验………………………………………………61
实验十二 数字录音实验…………………………………………………63

/*****************fft programe*********************/
#include "typedef.h"
#include "math.h"

struct compx EE(struct compx b1,struct compx b2)
{
struct compx b3;
b3.real=b1.real*b2.real-b1.imag*b2.imag;
b3.imag=b1.real*b2.imag+b1.imag*b2.real;
return(b3);
}

void FFT(struct compx *xin,int N)
{
int f,m,nv2,nm1,i,k,j=1,l;
/*int f,m,nv2,nm1,i,k,j=N/2,l;*/
struct compx v,w,t;
nv2=N/2;
f=N;
for(m=1;(f=f/2)!=1;m++){;}
nm1=N-1;    

/*变址运算*/
for(i=1;i  <=nm1;i++)
{
 if(i  <j){t=xin[j];xin[j]=xin[i];xin[i]=t;}
 k=nv2;
 while(k  <j){j=j-k;k=k/2;}
 j=j+k;
}

{
int le,lei,ip;
float pi;
for(l=1;l  <=m;l++)
{   le=pow(2,l);// 这里用的是L而不是1  !!!!
    lei =le/2;
 pi=3.14159;
 v.real=1.0;
 v.imag=0.0;  
 w.real=cos(pi/lei);
 w.imag=-sin(pi/lei);
 for(j=1;j  <=lei;j++)
 {
  /*double p=pow(2,m-l)*j;
  double ps=2*pi/N*p;
  w.real=cos(ps);
  w.imag=-sin(ps);*/
 for(i=j;i  <=N;i=i+le)
 { /*  w.real=cos(ps);
  w.imag=-sin(ps);*/
  ip=i+lei;
     t=EE(xin[ip],v);
  xin[ip].real=xin[i].real-t.real;
  xin[ip].imag=xin[i].imag-t.imag;
  xin[i].real=xin[i].real+t.real;
  xin[i].imag=xin[i].imag+t.imag;
 }
 v=EE(v,w);
 }
}
}   
return;


/*****************main programe********************/

#include   <math.h>  
#include   <stdio.h>  
#include   <stdlib.h>  
#include "typedef.h"
   

float  result[257]; 
struct  compx s[257];   
int   Num=256;
const float pp=3.14159;

main()
{

int i=1;
for(;i  <0x101;i++)

s[i].real=sin(pp*i/32);
s[i].imag=0;
}
 
FFT(s,Num);

for(i=1;i  <0x101;i++)
{
result[i]=sqrt(pow(s[i].real,2)+pow(s[i].imag,2));
}


}

  
2楼:shaoye12345 2007年12月13日09:34
 ding
xiexie

>>>>>>对该主题发表你的看法

本主题贴数2,分页: [第1页]


[上一篇主题]:给大家推荐ARM开发板,市场上性价比最高的

[下一篇主题]:求助版主:AT91m40800开发教程!!![求助]