weiwei43 发表于 2005-10-27 15:14

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

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

MVH 发表于 2005-10-27 16:24

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

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

weiwei43 发表于 2005-10-28 13:49

本帖最后由 wdhd 于 2016-3-14 14:57 编辑

  我就做平稳信号分析。

yangbill 发表于 2005-11-3 09:50

傅立叶反变换?

weiwei43 发表于 2005-11-4 16:38

本帖最后由 wdhd 于 2016-3-14 14:57 编辑

  有没有程序?

泥瓦工 发表于 2005-11-7 21:52

ifft?

AaronSpark 发表于 2005-11-10 01:49

本帖最后由 wdhd 于 2016-3-14 14:58 编辑

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

http://crm.51eda.com/soft/embedsys/fpgcpld/altera/e001_fft-ifft.exe

AaronSpark 发表于 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, *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");

  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,W,&up);

  add(x,up,&up);

  mul(x,W,&down);

  sub(x,down,&down);

  x=up;

  x=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,x,&up);

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

  sub(x,x,&down);

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

  divi(down,W,&down);

  x=up;

  x=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

weiwei43 发表于 2006-9-28 14:46

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

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

[ 本帖最后由 weiwei43 于 2006-9-28 14:47 编辑 ]
页: [1]
查看完整版本: [原创]有没有什么程序可以实现频域谱转换为时域谱