使用MATLAB对无线协作通信的仿真与性能分析,分析器误码率
图 3.2 程序流程图
3.3程序的结构
程序的主体结构及循环模式如下图所示:
使用MATLAB对无线协作通信的仿真与性能分析,分析器误码率
图3.3 程序的整体结构图
主程序及调用的函数可见附录A,下面对主程序中部分功能和用途进行进一步分析。 3.4瑞利衰落信道模型
为了简化程序,所有信道都是采用恒参的瑞利衰落信道,即在一次蒙特卡洛循环中,衰落系数是一个恒定的复数,在程序中由以下语句体现: function H = RayleighCH(sigma2) % average value(0)
mu = 0; sigma = sqrt(sigma2); % Standard deviation(σ) H = normrnd(mu,sigma)+j*normrnd(mu,sigma);
其中方差是信道正态分布的均值,所以只需要输入方差就可以得到信道系数H,函数R normrnd(MU,SIGMA)的功能是生成均值为MU、标准差为SIGMA的正态分布的随机数据。
3.5加性噪声模型
仿真过程中的高斯白噪声(加性噪声)是通过函数y = awgn(x,SNR,SIGPOWER)来实现的,如果SIGPOWER是一个数值,则其代表以dB为单位的信号强度;如果SIGPOWER为'measured',则函数将在加入噪声之前测定信号强度。本程序以'measured'参数自动检测信号强度。
使用MATLAB对无线协作通信的仿真与性能分析,分析器误码率
3.6合并方式选择
本课题主要采用的是最大比合并(MRC),由于AF与DF模式的最大比合并加权系数的决定因素不同,AF模式与中继节点的放大系数β有关,所以自定义函数y_combine Mrc( varargin ),通过输入参数的数目不同以区分AF与DF。但是,β也由信道的参数决定,而AF与DF模式的MRC加权系数的本质区别在于:AF由于是对接收信号的放大,所以对于源到目的端的信号的加权系数还与源到中继的信道的参数、源到中继信道的信号和噪声功率相关。
因此在目的端进行合并时的过程由下面的程序实现:
首先输入的参数有一下几个:中继放大系数、信道系数、信号功率、噪声功率、需要合并的两路信号;
然后判断输入参数数目nargin
if nargin = 8 输入参数数目是8为DF模式 a_sd = CH_sd' * sqrt(POW_S_sd) / POW_N_sd; 加权系数
a_rd = CH_rd' * sqrt(POW_S_rd) / POW_N_rd;
elseif nargin = 10 输入参数数目是10为AF模式 a_sd = CH_sd' * sqrt(POW_S_sd) / POW_N_sd;
a_rd = (beta * sqrt(POW_S_rd) * CH_sr' * CH_rd') / ( (beta^2*(abs(CH_rd))^2+1) * POW_N_rd );
y_combine = a_sd*signal_sd + a_rd*signal_rd; 最后返回合并信号
3.7误比特率的计算
对于实际的BER,通过统计蒙特卡罗的误码数,与全部比特数目相除得到。而对于理论BER,通过调用自定义函数得到,其代码如下:输入参数 非协作的信噪比、信道系数、信号功率、噪声功率
if nargin = 1 直连模式
SNR_SD = varargin{1};
POW_S_sd = 1;
sig = 10^(SNR_SD/10);
POW_N_sd = POW_S_sd / sig;
gamma_sd = ( POW_S_sd * (abs(SNR_SD))^2 ) / POW_N_sd;