matlab fft简单小例子,一个简单的fft例子

Fs = 1000;

T = 1/Fs;

L = 1024;

t = (0:L-1)*T;

y = sin(2*pi*200*t) + randn(size(t)); % 200Hz sinwave and

noise

%y = sin(2*pi*200*t);

subplot(2,1,1);

plot(Fs*t(1:50),y(1:50));xlabel('Time(ms)');

N = 1024;

Y = fft(y,N)/(N/2); %

/(N/2)归一化到1以内

k = (0:N/2-1)*Fs/N; % kmax =

(N/2)*Fs/N = Fs/2(Nyquist), Fs/N为频率分辨率

subplot(2,1,2);

plot(k,abs(Y(1:N/2)));xlabel('Frequency(Hz)');ylabel('|Y|');

Matlab

Help里的代码,我一开始看不太懂,呵呵,这个应该写的挺好的。

一开始我一直不知道FFT后的频率是什么范围,现在终于明白了,频率分辨率为Fs/N,然后一共有N/2个,乘以N/2后,就是奈奎斯特频率了,最高也就到奈奎斯特频率了,就是k

= (0:N/2-1)*Fs/N;这句话。然后,Y是复数,而且应该对称的,即有一半是另一半的镜像,所以,只要一半就行了。

从这个例子还可以得到一点启示,就是在时域,信号看上去杂乱无章,你如果不知道信号的数学表达式,你几乎不知道怎么来描述这个信号,但是从频域看的话,就很清楚了,就是一个200Hz的信号加上噪声,没了。可见,频域分析还是很重要的,我一开始学数字信号处理的时候就一直想为什么要搞个频域出来,或许,这就是其中原因之一了吧

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值