基于dsp的快速傅里叶变换程序设计(19)

2020-11-27 11:04

本文基于合众达的dsp试验箱,采集实验箱上信号发生器产生的信号,并对信号进行fft变换,通过ccs观察结果。

float T; //临时变量T

N2=N1/2; //最高位加1相当于十进制加上最高位的权N1/2 n=N2; //第一个倒序值

for(m=1;m<=N1-2;m++) //第0个和最后一个不倒序 {

if(m<n) //为了避免再次调换,只需对m<n的部分调换顺序 {

T=xr[m];xr[m]=xr[n];xr[n]=T; T=xi[m];xi[m]=xi[n];xi[n]=T; }

k=N2; //最高位权值 while(n>=k) {

n=n-k; //次高位位1,继续上下进位,满2置0 k=(int)(k/2+0.5); //向下权值依次比上级减半 }

n=n+k; //得到下一倒序值 } }

倒序运算函数finv(N1,Xr,Xi),对输入序列倒序,N1为序列长度,Xr[],Xi[]分别为输入序列的实部和虚部。

倒序原理:倒序数的加1是在最高位加1,满2向次高位进1,最高位变0,依次往下。

从当前倒序值可求下一倒序值。

4.9 定时器2

中断子程序及AD转换子程序

interrupt void ad(void) {

IFR=0x0000; //CPU级中断标志寄存器IFR=0,即无CPU级中断请求 PieCtrl.PIEACK.all=0xffff;//PIEACK置1,禁止外部中断向CPU发起中断 //请求 if(adconvover==0){

Ad_data[convcount] = AdcRegs.RESULT0; // 将结果寄存器中的AD //转换结果放到Ad_data数组中 convcount++; //convcount的初始值为0 }

if (convcount==(128)) //即convcount=128,即Ad_data包含采样值的最 //后一位为Ad_data[128] {

convcount=0;

adconvover=1;//接满标志 ,即AD采样结束


基于dsp的快速傅里叶变换程序设计(19).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:常州市住房公积金职工账户转移申请单

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: