Matlab高斯白噪声信道仿真

信号叠加一个均值为0.2,方差为0.5的高斯噪声后进行信号和噪声功率谱密度分析

信道噪声

Matlab含有高斯白噪声的函数库,可以直接调用:

u = normrnd(0.2,sqrt(0.5),[1,N]); %均值为0.2,方差为0.5的高斯白噪声

normrnd函数说明

信道仿真

效果图:

Matlab高斯白噪声信道仿真_第1张图片

代码如下:

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('信号的功率谱密度');

你可能感兴趣的:(信道仿真,matlab,开发语言)