完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
[tr]/****************************************************************************/
/* */ /* 基2 时间抽取 快速傅里叶变换 / 快速傅里叶逆变换 */ /* */ /* 2014年08月25日 */ /* */ /****************************************************************************/ #include #include #include "mathlib.h" // DSP 数学函数库 #include "dsplib.h" // DSP 函数库 /****************************************************************************/ /* */ /* 宏定义 */ /* */ /****************************************************************************/ // 软件断点 #define SW_BREAKPOINT asm(" SWBP 0 "); // 采用点数 #define Tn 16 // 采样频率 #define Fs 256.0 // π 及 浮点数极小值 #define PI 3.14159 #define F_TOL (1e-06) /****************************************************************************/ /* */ /* 全局变量 */ /* */ /****************************************************************************/ // 快速傅里叶变换测试 #pragma DATA_ALIGN(Input, 8); float Input[Tn]; #pragma DATA_ALIGN(CFFT, 8); float CFFT[2*Tn]={0,0,-9,9,9,-9,-9,-9,9,9,-9,9,9,-9,-9,-9,0,0,-9,9,9,9,-9,-9,9,-9,-9,9,9,9,-9,-9}; #pragma DATA_ALIGN(CFFT_In, 8); float CFFT_In[2*Tn]; #pragma DATA_ALIGN(CFFT_Out, 8); float CFFT_Out[2*Tn]; #pragma DATA_ALIGN(Cw, 8); float Cw[2*Tn]; #pragma DATA_ALIGN(Cmo, 8); float Cmo[Tn]; /****************************************************************************/ /* */ /* 函数声明 */ /* */ /****************************************************************************/ void bit_rev(float* x, int n); void gen_w_r2(float* w, int n); void FFTTest(void); /****************************************************************************/ /* */ /* 主函数 */ /* */ /****************************************************************************/ int main(void) { // FFT 测试 FFTTest(); // 断点 SW_BREAKPOINT; } /****************************************************************************/ /* */ /* 快速傅里叶变换测试 */ /* */ /****************************************************************************/ // 比特位反转 void bit_rev(float* x, int n) { int i,j,k; float rtemp,itemp; j=0; for(i=1;i<(n-1);i++) { k=n>>1; while(k<=j) { j-=k; k>>=1; } j+=k; if(i rtemp=x[j*2]; x[j*2]=x[i*2]; x[i*2]=rtemp; itemp=x[j*2+1]; x[j*2+1]=x[i*2+1]; x[i*2+1]=itemp; } } } // 产生旋转因子 void gen_w_r2(float* w, int n) { int i; float e=PI*2.0/n; for(i=0;i<(n>>1);i++) { w[2*i]=cossp(i*e); w[2*i+1]=sinsp(i*e); } } // 快速傅里叶变换 void FFTTest(void) { // 保留一份 FFT 输入副本 memcpy(CFFT_In, CFFT, 2*Tn*sizeof(float)); gen_w_r2(Cw, Tn); bit_rev(CFFT_In, Tn); // IFFT 计算 DSPF_sp_icfftr2_dif(CFFT_In, Cw, Tn); memcpy(CFFT_Out, CFFT_In, 2*Tn*sizeof(float)); for(i=0;i CFFT_Out=CFFT_Out/Tn; } } [/tr] |
|
相关推荐
1个回答
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
基于RK3588J的6路MIPI CSI视频采集案例分享,多路视频系统必看!
1548 浏览 0 评论
678 浏览 0 评论
【创龙科技TL570x-EVM开发板试用体验】 GStreamer 功能测评
8706 浏览 8 评论
【创龙科技TL570x-EVM开发板试用体验】创龙TL5708-EVM开发板入手使用体验评测
6724 浏览 0 评论
【创龙TLZ7x-EasyEVM评估板试用连载】+3.环境搭建vmware+ubuntu详细教程(二)
1442 浏览 0 评论
967浏览 0评论
【创龙科技AM64x开发板试用体验】创龙科技AM64x开发板及核心板介绍
907浏览 0评论
【创龙科技AM64x开发板试用体验】创龙科技AM64x开发板--板卡调试软件安装
925浏览 0评论
【创龙科技AM64x开发板试用体验】AM64x开发板开箱测评
916浏览 0评论
求助! 关于使用自制底板插入创龙IMX8MM 核心板无法启动问题
539浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-2-3 06:10 , Processed in 0.364097 second(s), Total 46, Slave 38 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号