我来注册 发表于 2006-4-21 10:27

[求助]时频转换

现有离散的时域数据(xi,ti),xi为位移,ti为时间。怎样可以得到xi的频域数据?谢谢!

happy 发表于 2006-4-21 22:03

fft

我来注册 发表于 2006-4-22 10:24

回复

谢谢教授的指点!我编了一个小程序,但是还有一些问题不太明白,想再请教一下:
程序如下:
clear all
=textread('aa.txt','%n%n%n%n%n%n');  % aa.txt为数据文件,其中第三列和第四列为本程序所用的数据
dt=0.034;  % dt为采样时间间隔,即每0.034秒采集一个数据
t=0:0.0340:0.0340*599;  % 数据文件中共有600个数据
x=d-c;  % x为力传感器测量值,后面对x进行傅氏转换
plot(t,x)
xlabel('时间(S)');ylabel('力(KPa)');
len=length(x);
y=fft(x);
Y=y.*conj(y)/len;
f=(1/dt)*(0:(len-1))/2/len;
figure(2)
plot(f,Y)
xlabel('频率(Hz)');ylabel('幅值')

请问:1.程序中第11行“f=(1/dt)*(0:(len-1))/2/len;”对频率f的取值范围对不对?这样得到的图形横轴(X轴)是不是真实的频率值?
2. 下图是PLOT的图,好像是对称的,是不是程序有些地方写错了?谢谢了!

happy 发表于 2006-4-23 09:57

1是对的
2fft结果是对称的,你取前一半就行了

我来注册 发表于 2006-4-23 21:01

还有一个问题想请教一下教授:本程序是对力(单位是KPa)进行频谱分析,请问所得到的谱的单位是什么?(也就是图形的纵坐标的单位是什么?)谢谢!

nbwjy 发表于 2006-4-27 16:41

tt

yangzj 发表于 2006-4-27 17:03

1是错的,应该是f=(1/dt)*(0:(len-1))/len,如果去掉后一半对称的话则是:f=(1/dt)*(0:(len/2-1))/len;
还有你做的并不是幅值谱,你要做单边幅值谱的话应该对FFT的结果取模后再乘2,而你现在做的是模的平方.
幅值谱的单位就是你x的单位

我来注册 发表于 2006-4-28 16:04

谢谢yangzj的讲解!请问什么是单边幅值谱?为什么对fft取模后再乘以2呢?
页: [1]
查看完整版本: [求助]时频转换