700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 快速傅里叶变换(fft)的Matlab实现

快速傅里叶变换(fft)的Matlab实现

时间:2019-07-26 03:43:39

相关推荐

快速傅里叶变换(fft)的Matlab实现

clc

Fs=1000;%采样频率

T=1/Fs;%一个信号的采样时间,1/1000=0.001s

L=1000;%信号长度

t=(0:L-1)T;%时间向量:生成0-999之间的数乘以0.001就是0-1之间生成0-0.999

x=0.7sin(2pi50t)+sin(2pi120t);%产生一个数据,作为我们的采样数据

y=x+2randn(size(t));%将上面的数据加上噪声,size(t)返回向量t的行列数

%y=x;%去掉上面的噪声,加上噪声会幅值会变化

plot(Fst(1:50),y(1:50));%绘图

grid on;%显示网格

title(‘Signal Corrupted with Zero-Mean Random Noise’);%均值是0的随机噪声

xlabel(‘time(milliseconds)’);%x轴时间毫秒

%NFFT=2^nextpow2(L);%将L转换为最近2的N次幂1024

NFFT=L;%去掉变换,这是两处的幅值正好与采集到的信号的幅值相等

Y=fft(y,NFFT)/L;%对y做快速傅里叶变换生成Y,这里为什么要除以L呢

f=Fs/2linspace(0,1,NFFT/2+1);%频率:0-1之间产生513个数据500

plot(f,2*abs(Y(1:NFFT/2+1)));%绘图,信号的模乘以2就是信号的幅值

title(‘Single-sided Amplitude Spectrum of y(t)’);%单边幅值谱

xlabel(‘Frequency(Hz)’);%x轴是频率

ylabel(‘y(t) Amp’);%y轴是信号小y的幅值

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。