matlab中 ifft用法
发布网友
发布时间:2022-05-12 01:47
我来回答
共1个回答
热心网友
时间:2023-09-18 19:55
matlab的FFT函数;相关语法:;Y=fft(X);Y=fft(X,n);Y=fft(X,[],dim);Y=fft(X,n,dim);定义如下:;相关的一个例子:;Fs=1000;%采样频率;T=1/Fs;%采样时间;L=1000;%总的采样点数;t=(0:L-1)*T;%时间序列(时间轴);%产生一个幅值为0.7频率为50HZ正弦+另外一;y=x+2
matlab的FFT函数
相关语法:
Y=fft(X)
Y=fft(X,n)
Y=fft(X,[],dim)
Y=fft(X,n,dim)
定义如下:
相关的一个例子:
Fs=1000;%采样频率
T=1/Fs;%采样时间
L=1000;%总的采样点数
t=(0:L-1)*T;%时间序列(时间轴)
%产生一个幅值为0.7频率为50HZ正弦+另外一个信号的幅值为1频率为120Hz的正弦信号x=0.7*sin(2*pi*50*t)+sin(2*pi*120*t);
y=x+2*randn(size(t));%混入噪声信号
plot(Fs*t(1:50),y(1:50))%画出前50个点
title('SignalCorruptedwithZero-MeanRandomNoise')
xlabel('time(milliseconds)')
NFFT=2^nextpow2(L);%求得最接近总采样点的2^n,这里应该是2^10=1024
Y=fft(y,NFFT)/L;%进行fft变换(除以总采样点数,是为了后面精确看出原始信号幅值)f=Fs/2*linspace(0,1,NFFT/2+1);%频率轴(只画到Fs/2即可,由于y为实数,后面一半是对称的)
%画出频率幅度图形,可以看出50Hz幅值大概0.7,120Hz幅值大概为1.
plot(f,2*abs(Y(1:NFFT/2+1)))
title('Single-SidedAmplitudeSpectrumofy(t)')
xlabel('Frequency(Hz)')
ylabel('|Y(f)|')