声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 3035|回复: 8

[FFT] [原创]有没有什么程序可以实现频域谱转换为时域谱

[复制链接]
发表于 2005-10-27 15:14 | 显示全部楼层 |阅读模式

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

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

x
我现在想用一个程序把路面的频域谱转换为时域谱加到动力模型中。有这样的现成程序吗?
回复
分享到:

使用道具 举报

发表于 2005-10-27 16:24 | 显示全部楼层

回复:(weiwei43)[原创]有没有什么程序可以实现频域...

傅立叶分析在将信号转换到频域后,时间信息丢失了,也就是说,信号x(t)任何时刻的微小变化会牵动整个频谱;反过来,任何有限频段上的信息都不足以确定在任何时间小范围的函数x(t)。它在时空域中没有任何分辨,因此我们不可能知道某一频率在什么时间发生。如果信号是平稳信号,做逆变换应该是可以的;但是如果信号是非平稳的,包含许多瞬时特性,而且这些特性对信号来说是很重要的,这时复原回来的时域和原来的信号有很大的差别,不知道你的路面激励是作为平稳信号还是非平稳信号。
 楼主| 发表于 2005-10-28 13:49 | 显示全部楼层
本帖最后由 wdhd 于 2016-3-14 14:57 编辑

  我就做平稳信号分析。
发表于 2005-11-3 09:50 | 显示全部楼层
傅立叶反变换?
 楼主| 发表于 2005-11-4 16:38 | 显示全部楼层
本帖最后由 wdhd 于 2016-3-14 14:57 编辑

  有没有程序?
发表于 2005-11-7 21:52 | 显示全部楼层
ifft?
发表于 2005-11-10 01:49 | 显示全部楼层
本帖最后由 wdhd 于 2016-3-14 14:58 编辑

FFT-IFFT设计工具软件V1.1.0

http://crm.51eda.com/soft/embeds ... a/e001_fft-ifft.exe
发表于 2005-11-10 02:00 | 显示全部楼层
本帖最后由 wdhd 于 2016-3-14 14:58 编辑

  /*时间抽选基2FFT及IFFT算法C语言实现*/

  /*Author :Junyi Sun*/

  /*Copyright 2004-2005*/

  /*Mail:ccnusjy@yahoo.com.cn*/

  #include

  #include

  #include

  #define N 1000

  /*定义复数类型*/

  typedef struct{

  double real;

  double img;

  }complex;

  complex x[N], *W; /*输入序列,变换核*/

  int size_x=0; /*输入序列的大小,在本程序中仅限2的次幂*/

  double PI; /*圆周率*/

  int main(){

  int i,method;

  void fft(); /*快速傅里叶变换*/

  void ifft();

  void initW(); /*初始化变换核*/

  void change(); /*变址*/

  void add(complex a,complex b,complex *c); /*复数加法*/

  void mul(complex a,complex b,complex *c); /*复数乘法*/

  void sub(complex a,complex b,complex *c); /*复数减法*/

  void divi(complex a,complex b,complex *c);/*复数除法*/

  void output(); /*输出结果*/

  system("cls");

  PI=atan(1)*4;

  printf("Please input the size of x:\n");

  scanf("%d",&size_x);

  printf("Please input the data in x[N]:\n");

  for(i=0;iIFFT(1)?\n");

  scanf("%d",&method);

  if(method==0)

  fft();

  else

  ifft();

  output();

  return 0;

  }

  /*快速傅里叶变换*/

  void fft(){

  int i=0,j=0,k=0,l=0;

  complex up,down;

  change();

  for(i=0;i< (int)( log(size_x)/log(2) );i++){ /*一级蝶形运算*/

  l=( 1< mul(x[j+k+l],W[size_x*k/2/l],&up);

  add(x[j+k],up,&up);

  mul(x[j+k+l],W[size_x*k/2/l],&down);

  sub(x[j+k],down,&down);

  x[j+k]=up;

  x[j+k+l]=down;

  }

  }

  }

  }

  /*快速傅里叶逆变换*/

  void ifft(){

  int i=0,j=0,k=0,l=size_x;

  complex up,down;

  for(i=0;i< (int)( log(size_x)/log(2) );i++){ /*一级蝶形运算*/

  l/=2;

  for(j=0;j add(x[j+k],x[j+k+l],&up);

  up.real/=2;up.img/=2;

  sub(x[j+k],x[j+k+l],&down);

  down.real/=2;down.img/=2;

  divi(down,W[size_x*k/2/l],&down);

  x[j+k]=up;

  x[j+k+l]=down;

  }

  }

  }

  change();

  }

  /*初始化变换核*/

  void initW(){

  int i;

  W=(complex *)malloc(sizeof(complex) * size_x);

  for(i=0;iIFFT(1)?

  0

  The result are as follows

  4.0000+6.0000j

  -4.0000

  4.0000-6.0000j

  0.0000
 楼主| 发表于 2006-9-28 14:46 | 显示全部楼层
FFT-IFFT设计工具软件V1.1.0

这个软件是不是和什么硬件配套的?
有谁用过这个软件吗?怎么用?

[ 本帖最后由 weiwei43 于 2006-9-28 14:47 编辑 ]
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-12 02:14 , Processed in 0.074756 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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