2141|0

2

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

c55x使用dsplib的cfft时出现结果问题,求指教 [复制链接]

使用dsplib的cfft和cbrev函数进行512个点的fft变换,把采样的数据放入偶地址实部信号,奇地址虚部置零,进行调用函数。调用函数前看到ad模块和复数的信号图形都是正确的,进入cbrev的信号也是没问题的,但是从cbrev出来一直到fft做完都是有问题的,程序查了半天不知道错哪儿?求指教,谢谢(第一个采样信号,第二个进入cbrev的频谱,第三个cbrev出来波形)fft波形杂乱

贴主要模块程序:

#include
#include
#include
#include
#include
#include
#include "t4_SCALE.h"

Uint16 samplecount=0;
Int16 testsample1[512],testsample2[512],qq[1024],pp[1024]/*,testsample3[256],
testsample4[256],testsample5[256],testsample6[256]*/;
Uint16 ad[6];
Uint16 m=0;
float output[1024];

void main(void)
{
/* Initialize CSL library - This is REQUIRED !!! */
CSL_init();

/* PLL configuration structure used to set up PLL interface */
// 主频为300Mhz
PLL_setFreq(1, 0xF, 0, 1, 3, 3, 0);

/* Set IVPH/IVPD to start of interrupt vector table */
IRQ_setVecs((Uint32)(&VECSTART));
CHIP_RSET(XBSR,0x0001);

GPIODIR |= 0x4; // config the GPIO2 as output pin,RESET
GPIODIR |=0x10; //config the GPIO4 as output pin,COVENT
GPIODIR |= 0x1; //config the GPIO0 as input pin FE
GPIODIR |= 0xFD; //config the GPIO1 as input pin
GPIODIR |= 0x40; //config the GPIO6 as input pin BF
GPIODATA |=0x04; //GPIO2=1,RESET AD
delay1(1); //延时
GPIODATA &=0xFB; //GPIO2=0

m=GPIODATA;
m=m & 0x2;
EMIF_config( & MyEmifConfig);

while(1)
{
m=GPIODATA;
m=m & 0x2;
while(m != 0x2 )
{
m=GPIODATA;
m=m & 0x2;
}

for(samplecount=0;samplecount<512;samplecount++)
{
GPIODATA &=0xEF; //GPIO4=0
delay1(1); //延时2
asm(" nop");
GPIODATA|=0x10; //GPIO4=1,启动转换

delay1(1);
asm(" nop");
ad[0]=AD7656_basic;//读AD通道数据
ad[1]=AD7656_basic;//读AD通道数据
ad[2]=AD7656_basic;//读AD通道数据
ad[3]=AD7656_basic;//读AD通道数据
ad[4]=AD7656_basic;//读AD通道数据
ad[5]=AD7656_basic;//读AD通朗??
testsample1[samplecount]=ad[0];
// testsample2[samplecount]=ad[1];
// qq[samplecount]=testsample1[samplecount];
}

for (samplecount=0;samplecount<1024;samplecount=samplecount+2)
{
qq[samplecount]=testsample1[samplecount/2];
}

for (samplecount=1;samplecount<1024;samplecount=samplecount+2)
{
qq[samplecount]=0;
}
asm (" nop");
cbrev (qq,pp,512);
asm (" nop");
cfft (pp,512,SCALE);

/*for(samplecount=0;samplecount<1024;samplecount++)
{
output[samplecount] = pp[samplecount];
}
asm (" nop");*/

for(samplecount=0;samplecount<1024;samplecount=samplecount+2)
{
output[m] = sqrt(pp[samplecount]*pp[samplecount]+pp[samplecount+1]*pp[samplecount+1]);
m++;
}

asm(" nop");

点赞 关注
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表