于是增加了通信模型的理論仿真,這是通信基礎知識,也是本課程的基礎知識!必須要有這個仿真!以前為什么沒講?因為我以為大家都會在學《通信原理》的時候掌握這個最最基礎的知識點!但事實并非如此!很多專業都不再學習《通信原理》課程了,那么就在本門課程中補點通信的基礎知識吧!畢竟當下社會離不開通信。那么通信模型的純理論的仿真程序是什么樣子?先看代碼吧。
EsNo = 7;
% 蒙特卡洛仿真
% 請查找資料,了解什么是蒙特卡洛仿真?
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; % 斷點語句
審核編輯:劉清
-
接收機
+關注
關注
8文章
1180瀏覽量
53458 -
MATLAB仿真
+關注
關注
4文章
176瀏覽量
19922 -
誤碼率
+關注
關注
1文章
25瀏覽量
14071
原文標題:計算機通信與網絡v2 實驗課程 緒論(1)
文章出處:【微信號:gh_30373fc74387,微信公眾號:通信工程師專輯】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論