河南的網(wǎng)絡(luò)推廣公司專業(yè)黑帽seo推廣
文章目錄
- 前言
- 一、MATLAB仿真代碼
- 二、仿真結(jié)果畫圖
- 總結(jié)
前言
本文給出帶噪信號的時域和頻域分析,指出頻域分析在處理帶噪信號時的優(yōu)勢。
首先使用MATLAB生成一段信號,并在信號上疊加高斯白噪聲得到帶噪信號,然后對帶噪信號對其進行FFT變換,得出其頻譜,并對其頻譜進行分析,闡述加性高斯白噪聲對信號頻譜的影響。
一、MATLAB仿真代碼
代碼如下:
f1 = 50; % 余弦波1的頻率
f2 = 100; % 余弦波2的頻率
A1 = 0.7; % 余弦波的振幅
A2 = 1; % 余弦波的振幅
fs = 1000; % 采樣率
Ts = 1/fs; % 采樣時間間隔
L = 1500; % 信號長度,單位sample
t = (0:L-1)*Ts; % 時間向量% 合成信號包含兩個正弦波,幅值為0.7的50Hz正弦波和幅值為1的100Hz正弦波
s = A1*sin(2*pi*f1*t) + A2*sin(2*pi*f2*t);% 信號加白噪聲
x = s + 2*randn(size(t)); % 白噪聲均值為零、方差為4% 繪制帶噪信號的時域波形。通過時域波形,難以辨認出有用信號。
figure()
plot(1000*t(1:100),x(1:100),'LineWidth',1.5)
grid on
title('被零均值隨機噪聲污染的信號')
xlabel('t/ms')
ylabel('x(t)')% 將信號變換到頻域
Y = fft(x);% 計算信號的單邊幅度頻譜
P2 = abs(Y/L); % 計算雙邊幅度頻譜P2
P1 = P2(1:L/2+1);
P1(2:end-1) = 2*P1(2:end-1); % 基于雙邊幅度譜P2計算單邊幅度頻譜P1% 繪制單邊幅度頻譜
f = fs*(0:(L/2))/L; % 頻域的頻率刻度,單位Hz
figure()
plot(f,P1,'LineWidth',1.5)
grid on
title('帶噪信號x(t)的單邊幅度譜')
xlabel('頻率(Hz)')
ylabel('頻譜幅度|P1(f)|')
二、仿真結(jié)果畫圖
時域波形圖:
帶噪信號的頻譜(單邊譜):
(1)時域分析:
從時域波形幾乎看不出原始信號,也就是說信號被嚴重干擾了。
(2)頻域分析:
觀察帶噪信號的頻譜,可以發(fā)現(xiàn):(1)帶噪信號頻率與預(yù)期相符,即與原始信號一致,因為加性高斯白噪聲并不帶來信號頻移;(2)噪聲導(dǎo)致幅值并不精確等于0.7和1。
總結(jié)
對于被噪聲污染的信號,干擾嚴重時,我們幾乎難以從時域波形看到期待的信號,此時,就需要借助頻域分析,從頻譜上將很容易發(fā)現(xiàn)信號的特征,這對我們做信號分析和提取都非常有幫助。