繼續(xù)講解!本人非常重視實踐教學,在本科階段就要把同學們的知識夯實。那么各種仿真就是最好的夯實工具。繼續(xù)講解擴頻通信的知識。很多同學總結寫的挺好,就是缺少實踐。比如15級王美女的總結。
波形的仿真開發(fā)步驟:
要先完成該基帶波形的性能仿真,然后通過比較來決定是否采用。
其次,在基帶性能仿真程序的基礎上結合專項仿真的結果進行相關模塊的補充。
然后,在進行波形在實際系統(tǒng)實現過程中的細節(jié)仿真。要考慮實現過程中受到系統(tǒng)環(huán)境的影響。
最后,再不斷的優(yōu)化程序的不足。算法很重要,要通過閱讀擴充知識,通過文檔總結知識,才能不斷提高自己。總結的很到位,但自己實踐了嗎?關鍵是要實踐!說到這,我就必須再講講BPSK程序了。這個程序掌握不了是肯定寫不好擴頻程序的。先看看BPSK的源代碼吧!
%%% BPSK調制解調器誤碼性能仿真程序 %%
%%% BPSK_modem_sim2.m %%%%
%% date: 2016-12-26 author: 算法工匠 %%
%%%%% 程序說明
% 完成BPSK調制解調器的仿真,比較不同信噪比下的誤碼性能。
% 通信體制具體內容如下:
% 調制方式:BPSK 編碼方式:無
% 滾降因子:0.5
% 解調方式:相干解調 譯碼方式:無
% 噪聲:加性高斯白噪聲
% 中頻信號仿真
%%% 仿真環(huán)境
% 軟件版本:matlab 2015b
%%% sim系列說明之處
% sim2:增加了不同信噪比下的誤碼性能仿真,
% 注釋掉圖形語句,節(jié)約仿真時間;
clear all;
close all;
format long;
%%******** 程序主體 *****%%
%%%%%% 系統(tǒng)參數 %%%%%%
bit_rate = 1000;
symbol_rate = 1000;
fre_sample = 16000;
symbol_sample_rate = 16;
% 一個符號內的采樣倍數
fre_carrier = 4000;
% 生成低通濾波器
LPF_fir128 = fir1(128,0.2);
% 生成匹配濾波器
rolloff_factor = 0.5; % 滾降因子
rcos_fir = rcosdesign(rolloff_factor, 6, symbol_sample_rate);
% 生成匹配濾波器 a square-root raised cosine FIR filter with rolloff factor
%%%% 信源 %%%%%%%
%%% 隨機信號
% msg_source = randint(1,1000);
msg_source = [ones(1,20) zeros(1,20) randint(1,19960)];
% 給出標志性的幀頭,方便調試。
% 通常幀頭會采用擴頻序列,為了方便調試,可以采用全1和全0。
% 2022年,randint函數已經不用了,需要更換為randi函數了,如何更換呢?
%%%%%%%% 發(fā)射機 %%%%%%%
%%%%% 編碼器
% bchcode % BCH編碼
%%%%% 調制器
%%% 雙極性變換
bipolar_msg_source = 2*msg_source - 1;
%%% 濾波器
% rcosflt 滾降成型濾波
rcos_msg_source = rcosflt(bipolar_msg_source,1000,16000);
% Roll-off factor 為 0.5。
% 頻域觀察
fft_rcos_msg_source = abs(fft(rcos_msg_source));
figure(1)
plot(rcos_msg_source,'-*')
title('時域波形')
figure(2)
plot(fft_rcos_msg_source)
title('頻域波形')
aaa = 1; % 調試斷點
%%% 載波發(fā)送
time =[1:length(rcos_msg_source)];
rcos_msg_source_carrier = rcos_msg_source'.*cos(2*pi*fre_carrier.*time/fre_sample);
% 頻域觀察
% fft_rcos_msg_source_carrier = abs(fft(rcos_msg_source_carrier));
% figure(3)
% plot(rcos_msg_source_carrier)
% title('時域波形')
% figure(4)
% plot(fft_rcos_msg_source_carrier)
% title('頻域波形')
aaa = 1; % 調試斷點
%%%%%% 信道 %%%%%%
% 設置信噪比
snr = -41 ;
for i = 1:length(snr)
%%% 高斯白噪聲信道
rcos_msg_source_carrier_noise = awgn(rcos_msg_source_carrier,snr(i),'measured');
% rcos_msg_source_carrier_noise = awgn(rcos_msg_source_carrier,snr);
%%% 瑞利信道
%%%%% 接收機 %%%%%%%
%%%%%% 解調器
%%% 載波恢復
% 生成本地載波
rcos_msg_source_noise = rcos_msg_source_carrier_noise.*cos(2*pi*fre_carrier.*time/fre_sample);
% 濾波高頻,保留基帶信號
rcos_msg_source_LP = filter( LPF_fir128, 1, rcos_msg_source_noise );
% 延時64個采樣點輸出。
%%% 仿真誤碼率需要多次循環(huán),此時需要注釋掉圖形語句!
% figure(5)
% plot(rcos_msg_source_LP)
% title('時域波形')
% figure(6)
% plot(abs(fft(rcos_msg_source_LP)))
% title('頻域波形')
% 濾波 filter
rcos_msg_source_MF = filter( rcos_fir, 1, rcos_msg_source_LP );
%%% 仿真誤碼率需要多次循環(huán),此時需要注釋掉圖形語句!
% figure(7)
% plot(rcos_msg_source_MF,'-*')
% title('時域波形')
% figure(8)
% plot(abs(fft(rcos_msg_source_MF)))
% title('頻域波形')
%%% 最佳采樣點
% 選取最佳采樣點,一個符號取一個點進行判決
decision_site = 160; % (96+128+96)/2 = 160 三個濾波器延遲值
rcos_msg_source_MF_option = rcos_msg_source_MF(decision_site: symbol_sample_rate : end);
% 涉及三個濾波器,固含有三個濾波器延遲累加。
%%% 判決
msg_source_MF_option_sign = sign(rcos_msg_source_MF_option);
%%% 仿真誤碼率需要多次循環(huán),此時需要注釋掉圖形語句!
% figure(9)
% plot(rcos_msg_source_MF_option,'-*')
% title('時域波形')
%%%%%% 解碼器
% bchdecode % BCH譯碼
%%%%%%% 信宿 %%%%%
%%% 誤碼性能比對
% [err_number,bit_err_ratio] = biterr(x,y)
[err_number,bit_err_ratio] = biterr(msg_source(1:length(rcos_msg_source_MF_option)), (msg_source_MF_option_sign + 1)/2)
end
%%% 仿真結果 %%%
% snr ber
% -4 0.0114
% -3.5 0.0071
% -3 0.0046
% -2.5 0.0040
% -2.0 0.0019
% -1.5 0.0012
% -1.0 8.50e-04
% -0.5 6.00e-04
% 0 2.00e-04
% 0.5 1.00e-04
% 1 5.00e-04
% 注意:snr和信號的比特信噪比EbNo存在等效關系!
% EbNo = SNR + 10*lg(0.5*16)-10*lg(2)
% 比如 EbNo = 6dB
% berawgn(6,'psk',2,'nondiff') = 0.0024
% berawgn(5,'psk',2,'nondiff') = 0.0059
% 該誤碼率和snr為-3.8dB時的誤碼結果基本一致。
% 5 = -3.8 + 10*log10(0.5*16)
% 仿真表明該關系正確!
%%%% 結論 %%%%%%
% 完成了BPSK調制解調器在不同誤碼率下的仿真。
% 仿真結果正確。
% 使用awgn函數需要了解函數中參數snr和比特信噪比之間的換算關系。
% 沒有包含編譯碼內容。
% 2017-1-5
這種代碼可是真正的干貨!請認真消化!那滾降成型濾波器到底如何使用呢?什么是EbNo呢?這些問題可以先找度娘哦!
2022年,本專題系列的閱讀量已經破萬!
加油!我會一直努力!
由淺入深!
建議學通信相關專業(yè)的人士趕緊去看!

未完,待續(xù)!
20181105記錄:
前段時間女兒寫了一篇作文《歪脖子的爸爸》。這三個月我被強迫癥折磨的要死要活的。從最開始的抖動到頭往一邊偏,真的很痛苦。膏藥持續(xù)的貼以緩解肌肉酸痛,直到皮膚都破了。就這樣,我還堅持拯救紅包單車。但看到那些單車管理員都那么粗暴的對待單車,這個社會要能承受共享事物還需太長的素質之路要走。最近還建群搶紅包推廣文章,居然被一個以前的前臺服務員說了一句:誰讓你拉我進群的啊。我當時說了對不起,但是我拉你你可以拒絕啊,再說你是拿了所有的運氣紅包才說這句話的。這位曹姓女士的素質可見一斑,之前是由于她幫我定富建酒店的客房才加她為好友的(就是為了方便訂客房),沒想到她居然是這樣的人。哎,早點分辨出來能避免更多的麻煩!社會上什么人都有,想做營銷的同學們做好心里準備了嗎?
修訂記錄
20181106 完成初稿;
20221129 修訂內容v2;
原文標題:計算機通信與網絡v2 實驗課程(16)
文章出處:【微信公眾號:通信工程師專輯】歡迎添加關注!文章轉載請注明出處。
-
通信網絡
+關注
關注
22文章
2076瀏覽量
52920
原文標題:計算機通信與網絡v2 實驗課程(16)
文章出處:【微信號:gh_30373fc74387,微信公眾號:通信工程師專輯】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
微軟OmniParser V2:大模型轉化為計算機智能體
微軟OmniParser V2發(fā)布:大模型轉化為計算機智能體
BU-67121W實驗室航空電子接口計算機North Hills
工業(yè)中使用哪種計算機?

量子計算機與普通計算機工作原理的區(qū)別

評論