傅里叶变换matlab学习笔记

使用傅里叶变换对信号进行时频转换

clear all
clc
%%指定信号与采样频率
Fs = 1000;
T = 1/Fs;
L = 1500;
t = (0:L-1);
%%构造信号
S = 0.7*sin(2*pi*50*t)+sin(2*pi*120*t);
%%构造扰乱信号
X = S+2*randn(size(t));
%%对信号进行傅里叶变换
Y = fft(X);%对信号进行双边傅里叶变换
%%对变换后信号进行单边傅里叶变换
%%计算双侧频谱 P2。然后基于 P2 和偶数信号长度 L 计算单侧频谱 P1
P2 = abs(Y/L);
P1 = P2(1:L/2+1);
P1(2:end-1) = 2*P1(2:end-1);
%%定义频域 f 并绘制单侧幅值频谱 P1
f = Fs*(0:(L/2))/L;
%=================================%
%              绘图               %
%=================================%
%%在时域绘制原信号
subplot(411);
plot(S,t)
title('Original Signal')
xlabel('t(milliseconds)')
ylabel('S(t)')
%%绘制含噪声图像
subplot(412);
plot(1000*t(1:50),X(1:50))
title('Signal Corrupted with Zero-Mean Random Noise')
xlabel('t (milliseconds)')
ylabel('X(t)')
%绘制傅里叶变换后图像
subplot(413);
plot(t,Y);
title('Both-Sided Amplitude Spectrum of Y(t)');
xlabel('t (milliseconds)')
ylabel('y')
%绘制单侧频谱
subplot(414);
plot(f,P1) 
title('Single-Sided Amplitude Spectrum of X(t)')
xlabel('f (Hz)')
ylabel('|P1(f)|')

 

在下面的频率图中可以很明显的看出原始图像和在经过fft变换与单边傅里叶变换(单边傅里叶变换相当于增加阶跃窗)处理之后的信号图像

傅里叶变换matlab学习笔记_第1张图片

 仅做学习交流,欢迎批评指正!

你可能感兴趣的:(matlab,数字信号处理,算法)