资源简介
定点基2,基3 的混合基fft,没有加入基5的部分,不过留的有空,有兴趣的谈朋友可以自己加一下

代码片段和文件信息
#include “StdAfx.h“
void fixedpfft(long ixr[POINT]long ixi[POINT]double oxr[POINT]double oxi[POINT]int Rint Pint Q)
{
int nn1n0ijkltpar1rpar1ipar2rpar2isq2sq3;
// long *mr=new long[POINT]*mi=new long[POINT](*ar)[POINT]=new long[POINT][POINT](*ai)[POINT]=new long[POINT][POINT];
long mr[POINT]mi[POINT](*ar)[POINT]=new long[POINT][POINT](*ai)[POINT]=new long[POINT][POINT];
// long *wr=new long[POINT]*wi=new long[POINT]*w2r=new long[POINT]*w2i=new long[POINT]*w3r=new long[POINT]*w3i=new long[POINT];
long wr[POINT]wi[POINT]w2r[POINT]w2i[POINT]w3r[POINT]w3i[POINT];
long tmpuprupimidrmididownrdownitmp1rtmp1itmp2rtmp2i;
sq2 = 1/sqrt(2.00)*MAG+0.5;
sq3 = 1/sqrt(3.00)*MAG+0.5;
par1r = par2r = -0.5*MAG-0.5;
par1i = -sqrt(3.00)/2.00*MAG-0.5;
par2i = sqrt(3.00)/2.00*MAG+0.5;
for(n=0;n {
mr[n] = ixr[n];
mi[n] = ixi[n];
}
//计算旋转因子;
// cout<<“旋转因子“< for(i=0;i {
wr[i] = cos(2*PI/POINT*i)*MAG;
wi[i] = -1*sin(2*PI/POINT*i)*MAG;
// cout<<“w[“< }
// cout<<“------------------------------------------------“< //计算基二的旋转因子;
// cout<<“基二的旋转因子:“< for(i=0;i {
w2r[i] = cos(2*PI/R*i)*MAG;
w2i[i] = -1*sin(2*PI/R*i)*MAG;
// cout<<“w2[“< }
// cout<<“------------------------------------------------“< //计算基三的旋转因子;
// cout<<“基三的旋转因子:“< for(i=0;i {
w3r[i] = cos(2*PI/P*i)*MAG;
w3i[i] = -1*sin(2*PI/P*i)*MAG;
// cout<<“w3[“< }
// cout<<“------------------------------------------------“< //计算基五的旋转因子
//分解为二维数组;
// cout<<“分解为二维数组:“< for(n1=0;n1 {
for(n0=0;n0 {
ar[n1][n0] = mr[P*n1+n0];
ai[n1][n0] = mi[P*n1+n0];
// cout<<“ax[“< }
}
// cout<<“------------------------------------------------“< //对n1部分进行二进制倒位序排序;
for(n0=0;n0 {
for(i=0;i {
k=i;
j=0;
t=log(R*1.00)/log(2.00);
while((t--)>0)
{
j=j<<1;
j=j|(k&1);
k=k>>1;
}
if(j>i)
{
tmp = ar[i][n0];
ar[i][n0] = ar[j][n0];
ar[j][n0] = tmp;
tmp = ai[i][n0];
ai[i][n0] = ai[j][n0];
ai[j][n0] = tmp;
}
}
}
/*
cout<<“二进制倒位序排序后的序列:“< for(n1=0;n1 {
for(n0=0;n0 {
cout<<“ax[“< }
}
cout<<“------------------------------------------------“< */
//基二fft;
for(n0=0;n0 {
for(i=0;i {
l=pow(2i);
for(j=0;j {
for(k=0;k {
tmp1r = ar[j+k+l][n0]*w2r[R*k/2/l]/MAG-ai[j+k+l][n0]*w2i[R*k/2/l]/MAG;
tmp1i = ar[j+k+l][n0]*w2i[R*k/2/l]/MAG+ai[j+k+l][n0]*w2r[R*k/2/l]/MAG;
upr = ar[j+k][n0] + tmp1r;
upi = ai[j+k][n
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 6865 2010-07-22 16:18 fixedpfft.cpp
文件 260 2010-07-17 17:34 fixedpfft.h
----------- --------- ---------- ----- ----
7125 2
- 上一篇:基于信息熵和TOPSIS法的目标威胁评估及排序
- 下一篇:RSA加密解密
相关资源
- dsp2812上128点FFTc程序以及其CMD文件
- 用FFT对信号进行频谱分析
- FFT混合基 文章 FFT混合基 文章
- labview FFT变换(频域分析).vi
- 基于Altera MegaCore实现FFT的方法
- 基于FPGA的快速并行FFT及应用
- 基于FPGA的移位寄存器流水线结构FFT处
- 在FPGA上优化实现复数浮点计算
- 基于十项余弦窗插值FFT的谐波相量算
- 基于FFT算法的电网谐波检测方法
- 基4-浮点-时域-FFT
- 用FFT进行频谱分析
- Altera最新FFT ip核使用手册
- 单片机与DSP中的基于DSP的FFT算法在无
- 128点的基2-FFT算法
- FFT并行MPI实现
- ros小海龟定点移动程序
- FFT(快速傅里叶变换)的FPGA实现
- FFT快速傅立叶变换)图文并茂
- fftw-3.3.4.tar.gz安装包
- NUFFT算法及说明
- STM32F103通过DMA传输进行快速FFT.rar
- fftw-3.2.1.rar
- myplot.rar
- 数字信号处理-快速傅里叶变换FFT实验
- 64点FFT变换
- FFT FPGA VERILOG 可综合,申请加精
- 基于FFT和小波变换的电力系统谐波检
- 基于定点DSP的MP3解码系统设计与实现
- 百度地图实时定位+搜索附近特定点
评论
共有 条评论