matlab 快速傅里叶变换 输出什么,用matlab的fft(快速傅里叶变换)将时域转换成频域的问题...

我看书上和网上大多fft都是对某一个特定的解析函数而言的。我这边的数据,是7.96s内采集的200个杂乱无章的数据,需要对这些数据进行fft变换。

数据如下(保存为shuju.m的文件,第一列为时间,第二列为信号):

%数据

Data = ...

[0        600

0.04        548.333

0.08        676.667

0.12        590

0.16        670

0.2        595

0.24        628.333

0.28        628.333

0.32        726.667

0.36        680

0.4        661.667

0.44        641.667

0.48        613.333

0.52        755

0.56        685

0.6        618.333

0.64        680

0.68        746.667

0.72        820

0.76        720

0.8        660

0.84        731.667

0.88        690

0.92        603.333

0.96        710

1        716.667

1.04        773.333

1.08        623.333

1.12        740

1.16        720

1.2        601.667

1.24        736.667

1.28        648.333

1.32        696.667

1.36        596.667

1.4        711.667

1.44        745

1.48        588.333

1.52        725

1.56        685

1.6        741.667

1.64        618.333

1.68        731.667

1.72        625

1.76        635

1.8        738.333

1.84        640

1.88        760

1.92        696.667

1.96        736.667

2        558.333

2.04        696.667

2.08        853.333

2.12        593.333

2.16        588.333

2.2        686.667

2.24        760

2.28        621.667

2.32        638.333

2.36        706.667

2.4        648.333

2.44        620

2.48        720

2.52        603.333

2.56        611.667

2.6        705

2.64        686.667

2.68        638.333

2.72        746.667

2.76        705

2.8        755

2.84        716.667

2.88        708.333

2.92        786.667

2.96        763.333

3        691.667

3.04        841.667

3.08        756.667

3.12        738.333

3.16        758.333

3.2        763.333

3.24        678.333

3.28        796.667

3.32        770

3.36        731.667

3.4        605

3.44        711.667

3.48        686.667

3.52        695

3.56        621.667

3.6        733.333

3.64        713.333

3.68        750

3.72        591.667

3.76        695

3.8        685

3.84        746.667

3.88        581.667

3.92        716.667

3.96        788.333

4        628.333

4.04        756.667

4.08        563.333

4.12        630

4.16        675

4.2        615

4.24        758.333

4.28        590

4.32        688.333

4.36        620

4.4        646.667

4.44        611.667

4.48        615

4.52        711.667

4.56        678.333

4.6        786.667

4.64        780

4.68        785

4.72        663.333

4.76        661.667

4.8        745

4.84        691.667

4.88        605

4.92        723.333

4.96        683.333

5        668.333

5.04        766.667

5.08        746.667

5.12        670

5.16        690

5.2        728.333

5.24        765

5.28        698.333

5.32        705

5.36        688.333

5.4        770

5.44        575

5.48        685

5.52        730

5.56        596.667

5.6        645

5.64        621.667

5.68        645

5.72        681.667

5.76        661.667

5.8        728.333

5.84        815

5.88        681.667

5.92        683.333

5.96        730

6        651.667

6.04        743.333

6.08        648.333

6.12        610

6.16        713.333

6.2        770

6.24        746.667

6.28        575

6.32        611.667

6.36        711.667

6.4        711.667

6.44        580

6.48        716.667

6.52        598.333

6.56        746.667

6.6        631.667

6.64        680

6.68        685

6.72        845

6.76        555

6.8        590

6.84        663.333

6.88        653.333

6.92        806.667

6.96        628.333

7        763.333

7.04        686.667

7.08        738.333

7.12        833.333

7.16        620

7.2        630

7.24        680

7.28        675

7.32        603.333

7.36        703.333

7.4        803.333

7.44        685

7.48        850

7.52        638.333

7.56        711.667

7.6        691.667

7.64        580

7.68        660

7.72        688.333

7.76        775

7.8        576.667

7.84        681.667

7.88        728.333

7.92        705

7.96        768.333];

然后对这些数据进行快速傅里叶变换:

clear all

clc

shuju;

t=Data(:,1);y=Data(:,2);

figure;

subplot(2,1,1);plot(t,y)

title('长度')

xlabel('时间(s)')

ylabel('长度(mm)')

Fs=25;L=200;

N = 2^nextpow2(L); %采样点数,采样点数越大,分辨的频率越精确,N>=L,超出的部分信号补为0

Y = fft(y,N)/N*2; %除以N乘以2才是真实幅值,N越大,幅值精度越高

f = Fs/N*(0:1:N-1); %频率

A = abs(Y); %幅值

subplot(2,1,2);

plot(f(1:N/2),A(1:N/2)); %函数fft返回值的数据结构具有对称性,因此我们只取前一半

title('幅值频谱')

xlabel('频率(Hz)')

ylabel('幅值')

最后得到的图是这样的:

83056047660d206b6bb9e6287c12fc3b.png

11.png (25.94 KB, 下载次数: 7)

fft

2018-6-14 20:09 上传

没有得到的正确的幅值-频率图,请教大佬应该怎么办???

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值