本文主要介绍matlab中的Communication System Toolbox来实现QPSK调制、解调及加入高斯白噪声信道等函数的使用过程,并设置不同的信噪进行仿真与理论值进行比较。
首先设置相关仿真常数如下:
FRM=2048; % 一帧的比特数
MaxNumErrs=200; % 仿真最大误比特数,仿真循环停止条件
MaxNumBits=1e7; % 仿真最大比特数,仿真循环停止条件
EbNo_vector=0:10; % 仿真变量为比特能量与噪声能量谱密度的比值
BER_vector = zeros(size(EbNo_vector)); % 误比特率向量
在此需要说明的是,使用比特信噪比EbNo作为仿真变量是由于EbN可以更直观的反应系统的性能,更适合数字通信中衡量系统性能的指标,而SNR是信号功率与噪声功率之比,更适合于模拟通信系统。简单来说,对于数字通信系统,当EbNo一定值时,误比特率需要低于多少说明系统设计满足要求,且容易与理论值进行比较。
调用Communication System Toolbox中的QPSK调制、解调、高斯白噪声信道模块及统计误码率模块:
Modulator = comm.QPSKModulator('BitInput',true); % QPSK调制模块
AWGN = comm.AWGNChannel; % 高斯白噪声模块
DeModulator = comm.QPSKDemodulator('BitOutput',true); % QPSK解调模块
BitError = comm.ErrorRate; %误码率统计模块
仿真主循环:
for EbNo=EbNo_vector
snr