matlab作业

更新时间:2023-12-09 05:28:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

多幅度电平信号差错率仿真设计

一、设计任务

完成多幅度电平信号差错率的仿真,运用MATLAB语言,仿真它们的误码性能,并与理论误码曲线相比较。先产生多组符号序列,再将符号序列映射到对应的幅度电平上,以四电平为例,先产生一个四组符号的序列,将该序列映射到对应的幅度电平上。随机变量信道中的加性噪声可以认为是统计独立,均值为0的高斯分量,分别作出二、四、八、十六电平仿真得到的误码率曲线与和理论上的误码率曲线。

二、物理模型

多幅度电平信号仿真系统模型如下图所示:

出错计数器Am与Am比较^均匀随机数发生器X映射到幅度电平Am+r2检测器(0,?)高斯随机数发生器Am^

图1

三、预期目标

通过以上的物理模型,作出二、四、八、十六电平信号仿真得到的误码率

曲线与和理论上的误码率曲线。 四、系统中所涉及的公式如下:

1、平均比特SNR定义为:

即可得:

1d2 二电平时平均比特SNR为:SNR?

2?25d2 四电平时平均比特SNR为:SNR? 24?21d2 八电平时平均比特SNR为:SNR?

6?2

十六电平时平均比特SNR为:

SNR?85d28?2

2、M电平PAM系统最佳检测器的差错概率为:

2(M?1)?6(log2M)?avbPM?Q??(M2?1)NM0???? ?1x) 其中:Q(x)?erfc(22五、仿真结果

图2

六、源程序代码 main_plot.m

%主程序源代码,调用其他5个函数得出仿真结果图 clear;clc;echo off;close all; % 二电平单极性 SNR_in_dB1=0:1:17; SNR_in_dB2=0:0.1:16; for i=1:length(SNR_in_dB1)

smld_err_prb21(i)=smldPe21(SNR_in_dB1(i)); %实测差错概率 end;

for i=1:length(SNR_in_dB2)

SNR=exp(SNR_in_dB2(i)*log(10)/10); %信噪比换算成真值 theo_err_prb21(i)=1/2*erfc(sqrt(SNR/4)); %理论差错概率计算 end

semilogy(SNR_in_dB1,smld_err_prb21,'blueO'); %实测差错概率结果图 hold on;

semilogy(SNR_in_dB2,theo_err_prb21,'blue'); %理论差错概率结果图 hold on;

% 二电平双极性 SNR_in_dB3=0:1:11; SNR_in_dB4=0:0.1:10; for i=1:length(SNR_in_dB3)

smld_err_prb22(i)=smldPe22(SNR_in_dB3(i)); %实测差错概率 end;

for i=1:length(SNR_in_dB4)

SNR=exp(SNR_in_dB4(i)*log(10)/10); %信噪比换算成真值 theo_err_prb22(i)=1/2*erfc(sqrt(SNR)); %理论差错概率计算 end;

semilogy(SNR_in_dB3,smld_err_prb22,'blackX'); %实测差错概率结果图 hold on;

semilogy(SNR_in_dB4,theo_err_prb22,'black'); %理论差错概率结果图 hold on;

% 四电平双极性 SNR_in_dB5=0:1:16; SNR_in_dB6=0:0.1:14; for i=1:length(SNR_in_dB5)

smld_err_prb42(i)=smldPe42(SNR_in_dB5(i)); %实测差错概率 end;

for i=1:length(SNR_in_dB6)

SNR_per_bit=exp(SNR_in_dB6(i)*log(10)/10);

theo_err_prb42(i)=3/4*erfc(sqrt(2/5*SNR_per_bit)); %理论差错概率计算 end;

semilogy(SNR_in_dB5,smld_err_prb42,'red.'); hold on;

semilogy(SNR_in_dB6,theo_err_prb42,'red'); hold on;

% 八电平双极性 SNR_in_dB7=0:1:19; SNR_in_dB8=0:0.1:19; for i=1:length(SNR_in_dB7)

smld_err_prb82(i)=smldPe82(SNR_in_dB7(i)); %实测差错概率 end;

for i=1:length(SNR_in_dB8)

SNR_per_bit=exp(SNR_in_dB8(i)*log(10)/10);

theo_err_prb82(i)=7/8*erfc(sqrt(9/63*SNR_per_bit)); %理论差错概率计算 end;

semilogy(SNR_in_dB7,smld_err_prb82,'green*'); hold on;

semilogy(SNR_in_dB8,theo_err_prb82,'green'); hold on;

% 十六电平双极性 SNR_in_dB9=0:1:19; SNR_in_dB10=0:0.1:19; for i=1:length(SNR_in_dB9)

smld_err_prb162(i)=smldPe162(SNR_in_dB9(i)); %理论差错概率计算 end;

for i=1:length(SNR_in_dB10)

SNR_per_bit=exp(SNR_in_dB10(i)*log(10)/10);

theo_err_prb162(i)=15/16*erfc(sqrt(4/85*SNR_per_bit)); %理论差错概率计算 end;

semilogy(SNR_in_dB9,smld_err_prb162,'yellowP'); hold on;

semilogy(SNR_in_dB10,theo_err_prb162,'yellow'); hold on;

xlabel('SNR in dB'); ylabel('Pe');

title('多幅度电平信号仿真结果与理论值比较');

legend('二电平单极性实测值','二电平单极性理论值','二电平双极性实测值','二电平双极性理论值',... '四电平实测值','四电平理论值','八电平实测值','八电平理论值','十六电平实测值','十六电平理论值');

gngauss.m

%产生高斯白噪声

function [gsrv1,gsrv2]=gngauss(m,sgma)

if nargin == 0, %如果没有输入实参,则均方为0,标准差为1 m=0; sgma=1;

elseif nargin == 1, %如果输入实参为1个参数,则标准差为输入实参,均值为0 sgma=m; m=0; end;

u=rand; z=sgma*(sqrt(2*log(1/(1-u))));

u=rand; gsrv1=m+z*cos(2*pi*u); gsrv2=m+z*sin(2*pi*u);

smldPe21.m

% 通过已知的信噪比求出二电平单极性映射下的实测差错概率 function [p]=smldPe21(snr_in_dB) E=1;

SNR=exp(snr_in_dB*log(10)/10); %信噪比单位换算 sgma=E/sqrt(2*SNR); % sigma, 噪声的标准差 N=10000;

% 生成二进制数据 for i=1:N,

本文来源:https://www.bwwdw.com/article/o1y5.html

Top