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

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

微軟OmniParser V2:大模型轉(zhuǎn)化為計(jì)算機(jī)智能體
微軟OmniParser V2發(fā)布:大模型轉(zhuǎn)化為計(jì)算機(jī)智能體
BU-67121W實(shí)驗(yàn)室航空電子接口計(jì)算機(jī)North Hills
云端超級計(jì)算機(jī)使用教程
刀片計(jì)算機(jī)設(shè)計(jì)方案:192-6U VPX i7 刀片計(jì)算機(jī)

工業(yè)中使用哪種計(jì)算機(jī)?

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

評論