信号叠加一个均值为0.2,方差为0.5的高斯噪声后进行信号和噪声功率谱密度分析
信道噪声
Matlab含有高斯白噪声的函数库,可以直接调用:
u = normrnd(0.2,sqrt(0.5),[1,N]); %均值为0.2,方差为0.5的高斯白噪声
信道仿真
效果图:
代码如下:
clc;
clear;
t = 0:0.001:6;
% 时域信号的时间范围
x = 4*sin(5*pi*t); % 正弦信号
N=size(t,2);
n = N - 1;
u = normrnd(0.2,sqrt(0.5),[1,N]); %均值为0.2,方差为0.5的高斯白噪声
y = x + u; %信号叠加
%原信号
subplot(511)
plot(x(1:n));grid on;
title(' 4*sin(5*pi*t)');
%噪声概率密度分布
subplot(512)
hist(u,n/2);grid on;
title('概率密度分布');
%噪声
subplot(513)
plot(u(1:n));grid on;
title('均值为 0.2,方差为 0.5的高斯噪声');
%加噪声后信号
subplot(514)
plot(y(1:n));grid on;
title('信号叠加');
%功率谱密度
Y = fft(y,N); % 求有限长信号的傅里叶变换
Pyy=abs(Y).^2/N; %求傅里叶变换模平方的均值
f = 1000*(0:(N-1)/2)/N; % 得到频率轴,频率区间长度
%只画出了正半轴,注意区间长度
subplot(515);
plot(f,Pyy(1:((N-1)/2+1))); %注意区间长度
title('信号的功率谱密度');