对于FFT例程中DSPF_sp_fftSPxSP()函数的使用疑惑 - TMS320C6748 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 4218|回复: 1
打印 上一主题 下一主题

对于FFT例程中DSPF_sp_fftSPxSP()函数的使用疑惑

[复制链接]

20

主题

48

帖子

211

积分

中级会员

Rank: 3Rank: 3

积分
211
跳转到指定楼层
楼主
发表于 2017-2-24 20:54:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近在研究FFT例程的代码,调试后发现了一些问题:在例程中FFTTest函数调用了dsplib中自带的DSPF_sp_fftSPxSP()函数来实现FFT


CFFT_In[2*i]=Input;                // 实部
CFFT_In[2*i+1]=0;                     // 虚部为 0

// 保留一份输入信号副本
memcpy(CFFT_InOrig,CFFT_In,2*Tn*sizeof(float));
// 产生旋转因子
tw_gen(Cw,Tn);
// FFT 计算
DSPF_sp_fftSPxSP(Tn,CFFT_In,Cw,CFFT_Out,brev,rad,0,Tn);

经过测试,发现CFFT_Out数组里面的数是正确的,但是当我再次查看CFFT_In数组时(用printf打印了一遍),
发现里面的数据已经发生了变化,跟保留的输入信号副本CFFT_InOrig数组差距很大。
按理说,调用函数不应该把输入的变量也改变呀,当然,在所给的例程中也特地调用memcpy函数,保留输入信号在CFFT_InOrig数组,
所以想问一下创龙的工程师在编写程序的时候是否也遇到了这个问题?还有别的办法让经过DSPF_sp_fftSPxSP函数处理后的CFFT_In数组里面的数不变化吗?


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
沙发
发表于 2017-2-25 16:15:13 | 只看该作者
不可以的 计算过程中需要用到存放原始数据的这部分内存空间
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2025-6-18 06:32 , Processed in 0.034302 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表