欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

用Matlab进行时域信号的频谱分析

程序员文章站 2022-05-22 19:20:33
...

用Matlab进行时域信号的频谱分析

傅立叶变换是一种线性的积分变换,常在将信号在时域(或空域)和频域之间变换时使用,在物理学和工程学中有许多应用。因其基本思想首先由法国学者约瑟夫·傅里叶系统地提出,所以以其名字来命名以示纪念。在不同的研究领域,傅立叶变换具有多种不同的变体形式,如连续傅立叶变换和离散傅立叶变换。最初傅立叶分析是作为热过程的解析分析的工具被提出的。
用Matlab进行时域信号的频谱分析

傅里叶变换经常用来计算存在噪声的时域信号的频谱,下面就采用FFT方法来分析存在噪声的时域信号的频谱
用Matlab进行时域信号的频谱分析

这里假设数据采样的频率为1000Hz,
一个信号包含频率为50Hz、振幅为0.7的正弦波和频率为120Hz、振幅为1的正弦波,
噪声为零平均值的随机噪声
% 时域信号的频谱分析

clear;
clc;
Fs = 1000; % 采样频率
T = 1 / Fs; % 采样时间
L = 1000; % 信号长度
t = (0:L-1)*T; % 时间向量
x = 0.7*sin(2*pi*50*t) + sin(2*pi*120*t);
y = x + 2*randn(size(t));
figure(1);
plot(Fs*t(1:50), y(1:50));
title('零平均值噪声信号');
xlabel('time (milliseconds)');
NFFT = 2^nextpow2(L);
Y = fft(y, NFFT)/L;
f = Fs/2*linspace(0, 1, NFFT/2);
figure(2);
plot(f, 2*abs(Y(1:NFFT/2)));
title('y(t) 单边振幅频谱');
xlabel('Frequency (Hz)');
ylabel('|Y(f)|');

计算结果的图像如下所示
用Matlab进行时域信号的频谱分析
用Matlab进行时域信号的频谱分析
用Matlab进行时域信号的频谱分析

相关标签: Matlab 信号处理