声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1379|回复: 1

[FFT] 请问这是vc++的傅立叶转换程序吗?

[复制链接]
发表于 2007-5-11 11:08 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
本帖最后由 wdhd 于 2016-9-6 13:26 编辑

  VOID WINAPI FFT(complex * TD, complex * FD, int r)
  {
  // 付立叶变换点数
  LONG count;
  // 循环变量
  int i,j,k;
  // 中间变量
  int bfsize,p;
  // 角度
  double angle;
  complex *W,*X1,*X2,*X;
  // 计算付立叶变换点数
  count = 1 << r;
  // 分配运算所需存储器
  W = new complex[count / 2];
  X1 = new complex[count];
  X2 = new complex[count];
  // 计算加权系数
  for(i = 0; i < count / 2; i++)
  {
  angle = -i * PI * 2 / count;
  W = complex (cos(angle), sin(angle));
  }
  // 将时域点写入X1
  memcpy(X1, TD, sizeof(complex) * count);
  // 采用蝶形算法进行快速付立叶变换
  for(k = 0; k < r; k++)
  {
  for(j = 0; j < 1 << k; j++)
  {
  bfsize = 1 << (r-k);
  for(i = 0; i < bfsize / 2; i++)
  {
  p = j * bfsize;
  X2[i + p] = X1[i + p] + X1[i + p + bfsize / 2];
  X2[i + p + bfsize / 2] = (X1[i + p] - X1[i + p + bfsize / 2]) * W[i * (1<
  }
  }
  X = X1;
  X1 = X2;
  X2 = X;
  }
  // 重新排序
  for(j = 0; j < count; j++)
  {
  p = 0;
  for(i = 0; i < r; i++)
  {
  if (j&(1<
  {
  p+=1<<(r-i-1);
  }
  }
  FD[j]=X1[p];
  }
  // 释放内存
  delete W;
  delete X1;
  delete X2;
  }
  上面这段程序,是用vc++编写的吗?
  能够实现傅立叶变换吗?
  能够直接用而不经过过任何修改吗?
  要是需要修改,怎么修改亚?
  还请各位大侠相助亚??
  十万火急!!!!!!
回复
分享到:

使用道具 举报

 楼主| 发表于 2007-5-11 21:29 | 显示全部楼层

请大家帮忙亚

:'( :'( :'(



这些人都要郁闷死 了:'( :'( :'( :'(
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-6-14 23:49 , Processed in 0.110635 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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