Matlab通信仿真系列——加性高斯白噪声信道(AWGN)

微信公众号上线,搜索公众号小灰灰的FPGA,关注可获取相关源码,定期更新有关FPGA的项目以及开源项目源码,包括但不限于各类检测芯片驱动、低速接口驱动、高速接口驱动、数据信号处理、图像处理以及AXI总线等
在这里插入图片描述
本节目录

一、加性高斯白噪声信道(AWGN)
1、awgn(x,snr)
2、awgn(x,snr,sigpower)
3、awgn(x,snr,'measured')
4、awgn(x,snr,…,state)
5、randn函数
6、各类函数Matlab仿真验证
二、加性高斯白噪声信道(AWGN)的Matlab仿真
三、Matlab源码
1、各类函数Matlab仿真源码
2、加性高斯白噪声信道(AWGN)的Matlab仿真源码

本节内容
信道是将来自发送端的信号传送到接收端的物理媒质,可以分为有线信道和无线信道。信道的质量影响信号的接收和解调,体现在两个方面:一是信号在实际信道中传输时,由于信道特性不理想会引起信号波形的失真;二是信道中存在各种噪声会干扰信号的传输。
信道通常可以分为加性高斯白噪声信道AWGN、多径瑞利Rayleigh衰落信道和莱斯Rician衰落信道。
一、加性高斯白噪声信道(AWGN)
加性高斯白噪声(Additive White Gaussian Noise,AWGN)是最常见的一种噪声,存在与各种传输媒质中。具体表现为信号围绕平均值的一种随机波动过程,均值为0,方差是噪声功率的大小。
Matlab提供了agwn函数来实现在输入信号中叠加一定强度的高斯白噪声信号,噪声信号的强度由输入参数确定。
1、awgn(x,snr)
函数awgn(x,snr),把加性高斯白噪声叠加到输入信号x中,snr以dB的形式制定噪声的功率。若信号x的功率假设为0dBW,噪声的功率实际上为-snrdBW。
2、awgn(x,snr,sigpower)
函数awgn(x,snr,sigpower),把加性高斯白噪声叠加到输入信号x中,snr以dBW的形式制定噪声的功率,输入信号的功率为sigpower,单位dBW。
3、awgn(x,snr,‘measured’)
awgn(x,snr,‘measured’),首先计算输入x信号的功率,按照snr添加相应功率的高斯白噪声。
4、awgn(x,snr,…,state)
Matlab可以将随机数种子设置为state,其中…支持sigpower或’measured’。随机数是根据一定算法产生的伪随机数,把产生的伪随机数的初始条件(即随机数种子)设为一致,也就是前后两次调用state相同,则产生的加性高斯白噪声结果也一致。
5、randn函数
randn(n),返还一个n行n列的随机矩阵,其中每一行和每一列都服从均值为0,方差为1的正态分布。
randn(m,n),返还一个m行n列的随机矩阵,其中每一行和每一列都服从均值为0,方差为1的正态分布。
randn(‘state’,seed)把随机数种子设定为seed,相同的state产生相同的随机数序列。
6、各类函数Matlab仿真验证
在这里插入图片描述

信号x和叠加awgn的信号y1
在这里插入图片描述

信号x和叠加awgn的信号y2
在这里插入图片描述

信号x和叠加awgn的信号y3
在这里插入图片描述

随机数序列y4,y5,y6
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、加性高斯白噪声信道(AWGN)的Matlab仿真

matlab代码示例:
对正交相移键控(QPDK)调制的基带数字通信系统
通过AWGN信号的误符号率SER和误比特率BER进行仿真验证,
发射端信息比特采用Gray编码,
基带脉冲采用矩阵脉冲,
仿真每个脉冲的抽样点数为10,
接收端采用匹配滤波器进行相干解调。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、Matlab源码
1、各类函数Matlab仿真源码

clear all;
clc;
t=0:0.001:10;
x=sin(2*pi*t);
snr=20;
y1=awgn(x,snr);
y2=awgn(x,snr,10);
y3=awgn(x,snr,'measured');
x1=ones(1,10);
y4=awgn(x1,snr,'measured',5);
y5=awgn(x1,snr,'measured',10);
y6=awgn(x1,snr,'measured',5);

subplot(2,1,1);
plot(t,x);
title('信号x');
axis([0 10 -2 2]);
subplot(2,1,2);
plot(t,y1);
title('叠加awgn的信号y1');
axis([0 10 -2 2]);
figure;
subplot(2,1,1);
plot(t,x);
title('信号x');
axis([0 10 -2 2]);
subplot(2,1,2);
plot(t,y2);
title('叠加awgn的信号y2');
axis([0 10 -2 2]);
figure;
subplot(2,1,1);
plot(t,x);
title('信号x');
axis([0 10 -2 2]);
subplot(2,1,2);
plot(t,y3);
title('叠加awgn的信号y3');
axis([0 10 -2 2]);

2、加性高斯白噪声信道(AWGN)的Matlab仿真源码

clear all;
clc;
%矩阵脉冲的抽样点数
n_samp=10;    
%传输的符合数      
num_symb=200000;     
%QPDK的符合类型数  
M=4;   
%SNR的范围                 
SNR=-3:3;               
%Gray编码格式
grayencod=[0 1 3 2]     
for ii=1:length(SNR)
    %产生发送符合
    msg=randsrc(1,num_symb,[0:3])   
    %进行Gray编码映射
    msg_gr=grayencod(msg+1);        
    %进行QPSK调制
    msg_tx=pskmod(msg_gr,M);        
    %矩形脉冲成形
    msg_tx=rectpulse(msg_tx,n_samp);
    %通过awgn信道
    msg_rx=awgn(msg_tx,SNR(ii),'measured');       
    %匹配滤波相关解调
    msg_rx_down=intdump(msg_rx,n_samp);
    %QPSK解调    
    msg_gr_demod=pskdemod(msg_rx_down,M);    
    [dummp graydecod]=sort(grayencod);            
    graydecod=graydecod-1;
    %Gray编码逆映射    
    msg_demod=graydecod(msg_gr_demod+1);
    %计算BER    
    [error_bit BER(ii)]=biterr(msg,msg_demod,log2(M)); 
    %计算SER
    [error_sym SER(ii)]=symerr(msg,msg_demod);       
end
%画出发送信号的星座图
scatterplot(msg_tx(1:100));        
title('发射信号星座图');
xlabel('同相分量');
ylabel('正交分量');
%画出接收信号的星座图
scatterplot(msg_rx(1:100));         
title('接收信号星座图');
xlabel('同相分量');
ylabel('正交分量');
figure;
%画出BER和SER随SNR变换的曲线
semilogy(SNR,BER,'-r*',SNR,SER,'-r*')   
legend('BER','SER');
title('QPSK在awgn信道下的性能');
xlabel('信噪比(dB)');
ylabel('误符号率和误比特率');
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小灰灰的FPGA

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值