Matlab笔记——AWGN函数详解与实例——AWGN加性高斯白噪声+QPSK调制

MATLAB 与 FPGA无线通信、图像处理、数字信号处理(数字滤波器)、信道编码系列

加性高斯白噪声(Additive White Gaussian Noise)

awgn函数向信号中添加高斯白噪声

1.Y = awgn(X,SNR)

向信号“X”添加高斯白噪声,信噪比大小为“SNR”,单位是dB;信号“X”的功率假定为 0 dBW;如果“X”是复数,则添加的是复高斯白噪声;

Example 1:

X = sqrt(2)*sin(0:pi/8:6*pi);% 设定一输入信号X
% 假定X的功率为0 dBW,加入高斯白噪声,加入后信噪比SNR=10 dB
Y = awgn(X,10);			% 等价为2中的Y = awgn(X,10,0); 

2.Y = awgn(X,SNR,SIGPOWER)

当参数“SIGPOWER”是一个数值的时候,代表输入信号“X”的功率,单位是dBW;当参数“SIGPOWER”是“measured”的时候,在添加噪声前会测量(计算)输入信号“X”的功率;

Example 2:

X = sqrt(2)*sin(0:pi/8:6*pi);		% 设定一输入信号X
% 设定X的功率为5 dBW,加入高斯白噪声,加入后信噪比SNR=10 dB
Y = awgn(X,10,5);				 
% 在加入噪声前先测量信号X的功率,然后加入高斯白噪声,加入后信噪比SNR=10 dB
Y = awgn(X,10,’measured’);

3.Y = awgn(X,SNR,SIGPOWER,S)

使用随机流句柄“S”,用RANDN函数生成随机噪声样本。如果“S”是整数,则将RANDN的状态重置为“S”。如果想要生成可重复的噪声样本,那么提供一个随机流的句柄(‘RandStream’),或者在默认随机流上使用reset方法。

Y = awgn(X,SNR,SIGPOWER,STATE)

将RANDN状态重置为参数“STATE”指定的状态。这种用法是不赞成的,可能在将来的版本中被删除。

Example 3:

X = sqrt(2)*sin(0:pi/8:6*pi);				% 设定一输入信号X
S = RandStream('mt19937ar','seed',5489);	% 由RandStream随机数据流产生随机数据
% 指定X的功率为0 dBW,添加要产生的噪声,SNR为10dB,利用本地随机流
Y = awgn(X,10,0,S);

4.Y = awgn(…, POWERTYPE)

使用参数“POWERTYPE”来指定信噪比“SNR”和信号功率“SIGPOWER”的单位。参数“POWERTYPE”可以选择为“db”或“linear”。如果“POWERTYPE”为“db”,则信噪比“SNR”以db为单位进行表示,“SIGPOWER”用dBW为单位进行表示。如果“POWERTYPE”是“linear”,那么信噪比“SNR”是按比例来测量的,而“SIGPOWER”是按瓦特来测量的。

Example 4:

X = sqrt(2)*sin(0:pi/8:6*pi);		% 设定一输入信号X
% 指定X的功率为3瓦,并向其添加噪声,设定线性信噪比为4
Y = awgn(X,4,3,'linear');
% 指定X的功率为3 dBW,并向其添加噪声,信噪比SNR为4 dB
Y = awgn(X,4,3,'dB');
% 在加入噪声前先测量信号X的功率,然后加入高斯白噪声,设定线性信噪比为4,
Y = awgn(X,4,'measured','linear');

5.pskmod(data_in, M)

M = 4;							%调制阶数
data = randi([0 M-1],1000,1);	%生成随机序列作为待调制信号
txSig = pskmod(data,M,pi/M);	%调制,频偏pi/4
rxSig = awgn(txSig,20);			%白噪声,SNR=20dB
scatterplot(txSig)				%绘制发送信号的星座图
scatterplot(rxSig)				%绘制接收信号的星座图

Matlab笔记——AWGN函数详解与实例——AWGN加性高斯白噪声+QPSK调制_第1张图片
Matlab笔记——AWGN函数详解与实例——AWGN加性高斯白噪声+QPSK调制_第2张图片

MATLAB 与 FPGA无线通信、图像处理、数字信号处理(数字滤波器)、信道编码系列

Matlab笔记——AWGN函数详解与实例——AWGN加性高斯白噪声+QPSK调制_第3张图片

你可能感兴趣的:(MATLAB,通信)