基于MATLAB中fft函数的时域采样信号频谱生成代码

如何快速的将时域离散信号的频谱通过MATLAB的fft2函数表示出来:

clc

clear all
close all
fs = 500;
t = 0:1/fs:1.5;

f1 = 40; 

f2 = 20;

x = sin(2 * pi * t * f1) + sin(2 * pi * t * f2); %input signal
figure(1)
plot(t, x);
title('input signal x[n]'); %input signal wave
figure(2)
f = (0:750) * fs / 751 - fs / 2; %750 derives from t, which (1.5 - 0) / (1 / fs) = 750, 0:1:750 there are 751 values

plot(f, abs(fftshift(fft(x)))); % plot input signal's frequency spectrum

%利用fftshift函数是必要的,fftshift函数的作用正是让正负半轴的图像分别关于各自的中心对称,

%因为直接用fft得出的数据与频率是不对应的,fftshift可以纠正过来。

你可能感兴趣的:(信号处理)