计算机通信模型的理论仿真

描述

于是增加了通信模型的理论仿真,这是通信基础知识,也是本课程的基础知识!必须要有这个仿真!以前为什么没讲?因为我以为大家都会在学《通信原理》的时候掌握这个最最基础的知识点!但事实并非如此!很多专业都不再学习《通信原理》课程了,那么就在本门课程中补点通信的基础知识吧!毕竟当下社会离不开通信。那么通信模型的纯理论的仿真程序是什么样子?先看代码吧。
 

接收机

EsNo = 7;

% 蒙特卡洛仿真

% 请查找资料,了解什么是蒙特卡洛仿真?

for counter = 1:100

    txData = randi([0 1],500,1);           % Generate data 信源

    % 调制方式 PSK

    modSig = bpskModulator(txData);        % Modulate      发射机

    rxSig = awgn(modSig,EsNo);             % Pass through AWGN 传输

    rxData = bpskDemodulator(rxSig);       % Demodulate     接收机

    errorStats = errorRate(txData,rxData); 

    % Collect error stats  信宿 以误码率比对的方式出现!

end

fprintf('Error rate = %f Number of errors = %d ', errorStats(1), errorStats(2))

% 请掌握上述函数!函数非常实用!

% 观察星座图

scatterplot(modSig)

% 观察信号的常用函数!必须掌握!

%%%%%%%%%%  增加相位差

% Create binary data symbols

data = randi([0 1],50000,1);

% Create a BPSK modulator System object

bpskModulator = comm.BPSKModulator;

bpskDemodulator = comm.BPSKDemodulator;

% Change the phase offset to pi/16

bpskModulator.PhaseOffset = pi/6;

% Modulate and plot the data

modData = bpskModulator(data);

scatterplot(modData) % 观察信号

% add noise

% 高斯白噪声

Sig_awgn = awgn(modData,EsNo+1);

% Demodulate the data

demodData = bpskDemodulator(Sig_awgn);

% compare data

figure

plot(demodData-data)

% 误码率的等效写法

err_num = sum(abs(demodData-data))

biterr_rate = err_num/length(data)

aaa = 1; % 断点语句





审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分