信号的频谱分析与信号滤波
试验目的:熟悉信号的频谱分析与信号滤波。
信号的频谱分析
例、建立一个含50Hz和120Hz幅值为2的正弦信号(sin),然后叠加一个幅值为1的随机信号,利用Matlab分析其频谱。并滤除噪声信号和120Hz正弦信号。
实验提示:
1、FFT谱分析:利用 FFT分析含噪声的时域信号的频率组成。
2、滤波:滤除噪声信号和120Hz正弦信号。
Matlab
% 试验目的
% 熟悉信号的频谱分析与信号滤波。
%
% 例、建立一个含50Hz和120Hz幅值为2的正弦信号(sin),然后叠加一个幅值为1的随机信号,
% 利用Matlab分析其频谱。并滤除噪声信号和120Hz正弦信号。
%
% 实验提示
% 1、FFT谱分析:利用 FFT分析含噪声的时域信号的频率组成。
% 2、滤波:滤除噪声信号和120Hz正弦信号。
clc; clear; close all;
fs = 1000; % 采样频率为1000 Hz
t = 0:1/fs:.25; % 设定时间轴,t=0 到.25,时间步长为1毫秒
x = 2*sin(2*pi*50*t) + 2*sin(2*pi*120*t); % 建立信号,含50 Hz 、120 Hz的正弦信号
y = x + randn(size(t)); % 加入随机信号,幅值为1的噪声信号。
plot(y(1:50)); % 很难分辨信号的频率组成
xlabel('时间/s'); ylabel('幅值');
title('Noisy time domain signal'); % 带噪声的时域信号
N = 256; % 取样点个数
Y = fft(y,N); % 256点快速傅立叶变换FFT
Pyy = Y.*conj(Y)/N; % 复共轭(CONJ)计算功率谱密度
f = fs/N*(0:N/2-1); % 为前128数据点(后128点与支对称)建立频率轴。
figure(2); % 开第二个图形窗,并在该窗口画出第二个图形
plot(f,Pyy(1:N/2)); % 注意到在50 Hz和120 Hz有两个波峰
xlabel('Frequency (Hz)'); ylabel('功率谱密度');
title('Power spectral density'); % 带噪声的时域信号