m基于matlab的卷積編碼維特比譯碼誤碼率仿真

1.算法仿真效果

matlab2022a仿真結(jié)果如下:


2.算法涉及理論知識概要

隨著現(xiàn)代通信的發(fā)展余境,人們對信息傳輸?shù)目煽啃院陀行缘囊笠苍絹碓礁哂Α>S特比譯碼算法被廣泛的應(yīng)用,因此如何提高維特比譯碼器的性能柠衍,降低譯碼器的功耗和面積是個重要的問題纺且。卷積碼是Elias等人在1955年提出的,是一種非常有前途的編碼方法萤晴,尤其是在其最大似然譯碼算法-Viterbi譯碼算法提出之后,卷積碼在通信系統(tǒng)中得到了極為廣泛的應(yīng)用胁后。其中約束長度K=7店读,碼率為1/2和1/3的卷積碼己經(jīng)成為商業(yè)衛(wèi)星通信系統(tǒng)中的標準編碼方法。在“航海家“以及“先驅(qū)者”等太空探測器上也都采用了卷積碼作為其差錯控制編碼方法攀芯。在移動通信領(lǐng)域屯断,GMS采用約束長度K=5,碼率為1/2的卷積碼;在IS-95中裹纳,上行鏈路中采用的是約束長度K=9,碼率為1/3的卷積碼紧武,在下行鏈路中采用的是約束長度K=9剃氧,碼率為1/2的卷積碼。特別在第三代移動通信標準中也是以卷積碼以及與卷積碼相關(guān)的編碼方法作為差錯控制編碼方案的阻星。


2.1卷積碼編碼器


一個輸入移位寄存器(分為N段朋鞍,每段k位);n個模2加法器妥箕;一個輸出數(shù)據(jù)選擇器(n選一)滥酥。某一時刻,輸入到編碼器的k個信息元組成一個信息組畦幢,相應(yīng)的輸出序列是由n個碼元組成的碼段坎吻。這里,稱N為編碼約束度宇葱,說明編碼過程中互相約束的碼段個數(shù)瘦真。令N=m+1,則m稱為編碼存儲黍瞧,它表示輸入信息組在編碼器中需存儲的單位時間(有時為了簡化诸尽,編碼器中只用m段的輸入移位寄存器)。稱Nn為編碼約束長度印颤,說明編碼過程中互相約束的碼元個數(shù)您机,如m=2,n=2年局,則Nn=6际看。所以m或N以及Nn都是表示卷積碼編碼器復雜性的重要參數(shù)。


編碼電路:


2.2維特比譯碼

卷積編碼的過程就是編碼器狀態(tài)沿著時間軸一級一級跳轉(zhuǎn)的過程矢否。維特比譯碼算法則是在網(wǎng)格圖上搜索最可能的狀態(tài)跳轉(zhuǎn)路徑的過程仿村。維特比譯碼算法先讀取t時刻的所有狀態(tài)的幸存路徑度量,再根據(jù)t+1時刻的輸入兴喂,算出跳轉(zhuǎn)路徑的度量:根據(jù)這兩類度量算出t+1時刻到狀態(tài)S的所有路徑的度量蔼囊,比較選出一個具有較小路徑度量的路徑作為t+l時刻狀態(tài)S的幸存路徑。這樣對每個狀態(tài)都得到一個幸存路徑衣迷,根據(jù)這些幸存路徑和最終編碼器所處的狀態(tài)就可以得到編碼器的狀態(tài)轉(zhuǎn)移路徑即譯碼結(jié)果畏鼓。維特比譯碼結(jié)果的可信度取決于幸存路徑的深度和它的路徑度量值。幸存路徑越深壶谒、路徑度量值越高云矫,那么譯出信息的可信度就越高。在譯碼過程中有些路徑被拋棄了汗菜,有些路徑被保留了下來让禀。被以為是幸存路徑的挑社,也可能會在后面的搜索過程中被拋棄掉。這樣隨著搜索的深度不斷加深巡揍,最終正確的路徑將會被保留下來痛阻,所有的幸存路徑都將收斂于一條路徑。由上面的描述可知腮敌,維特比譯碼器至少需要完成以下操作:


·t時刻幸存路徑度量的存儲阱当。


·t時刻到t+l時刻的分支度量的生成。


·t+1時刻幸存路徑度量的生成和選擇糜工。


維特比譯碼器的基本結(jié)構(gòu)正是按照這些操作劃分的弊添。前面說過,網(wǎng)格圖是理解維特比算法的核心捌木。其核心思想是依次在每個時刻對網(wǎng)格圖相應(yīng)列的每個點(對應(yīng)于編碼器該時刻的狀態(tài))油坝,按照最大似然準則比較所有以它為終點的的路徑,只保留一條具有最大似然值的路徑刨裆,稱之為幸存路徑免钻,而將其他路徑堵死棄之不用,故到了下一時刻只要對幸存路徑延伸出來的路徑繼續(xù)比較即可崔拥。即接收一段极舔,計算、比較一段保留下幸存路徑链瓦,如此反復直到最后拆魏。



考慮Viterbi譯碼,假設(shè)卷積碼的編碼存儲m只是個位數(shù)慈俯。在每一幀被接收時渤刃,譯碼器都必須更新狀態(tài),對于每一個狀態(tài)贴膘,都有2k0條路徑要估算卖子。于是,譯碼器的計算量大致與成正比刑峡,等于洋闽。這是能夠用此方式解碼的碼的約束長度的上限。這個限的大小取決于要求達到的比特率和技術(shù)水平突梦,但是通常情況下诫舅,約束度N取7~9,這些值是目前典型的最大值宫患。更長的約束長度也意味著功能更為強大的碼刊懈,但只能在合理的碼率下用其他技術(shù)來譯碼,例如序貫譯碼。


3.MATLAB核心程序

EbN0dB=-1:1:6;

%采用BPSK調(diào)制

EsN0dB=EbN0dB-10*log10(R);

N0=10.^(-EsN0dB/10);

sigma=sqrt(N0);

plot_EbNo =-1:1:6;

Plot_Pe = [];

Plot_Pe2= [];

x_num=100000;

G=[1 1 1;1 0 1];


for k=1:length(N0)

k

x = bin_generator(x_num);

x(find(x < 0)) = 0;

x(find(x > 0)) = 1;


%卷碼編碼

s=encode(G,1,x);

%BPSK經(jīng)過AWGN信道

r=(2*s-1)+sigma(k)*randn(1,length(s));

r(2:10004)=0.25*r(1:10003)+0.75*r(2:10004);

r(find(r < 0)) = 0;

r(find(r > 0)) = 1;

%譯碼

dd=viterbi(G,1,r);

r=(2*x-1)+sigma(k)*randn(1,length(x));

r(2:10004)=0.25*r(1:10003)+0.75*r(2:10004);

r(find(r < 0)) = 0;

r(find(r > 0)) = 1;


%誤碼計數(shù)

Pe ?= length(find(x - dd))/x_num;

Pe2 = length(find(x - r))/x_num;

Plot_Pe = [Plot_Pe Pe];

Plot_Pe2= [Plot_Pe2 Pe2];

end


semilogy(plot_EbNo,Plot_Pe,'-bs',...

'LineWidth',2,...

'MarkerSize',8,...

'MarkerEdgeColor','k',...

'MarkerFaceColor',[0.0,0.9,0.0])

hold on

semilogy(plot_EbNo,Plot_Pe2,'-bo',...

'LineWidth',2,...

'MarkerSize',8,...

'MarkerEdgeColor','k',...

'MarkerFaceColor',[0.9,0.0,0.0])

grid;

xlabel('Eb/No (dB)')

ylabel('BER')

legend('通過維特比譯碼','不加編譯碼');

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末虚汛,一起剝皮案震驚了整個濱河市匾浪,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌卷哩,老刑警劉巖蛋辈,帶你破解...
    沈念sama閱讀 219,539評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異殉疼,居然都是意外死亡,警方通過查閱死者的電腦和手機捌年,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評論 3 396
  • 文/潘曉璐 我一進店門瓢娜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人礼预,你說我怎么就攤上這事眠砾。” “怎么了托酸?”我有些...
    開封第一講書人閱讀 165,871評論 0 356
  • 文/不壞的土叔 我叫張陵褒颈,是天一觀的道長。 經(jīng)常有香客問我励堡,道長谷丸,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,963評論 1 295
  • 正文 為了忘掉前任应结,我火速辦了婚禮刨疼,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘鹅龄。我一直安慰自己揩慕,他們只是感情好,可當我...
    茶點故事閱讀 67,984評論 6 393
  • 文/花漫 我一把揭開白布扮休。 她就那樣靜靜地躺著迎卤,像睡著了一般。 火紅的嫁衣襯著肌膚如雪玷坠。 梳的紋絲不亂的頭發(fā)上蜗搔,一...
    開封第一講書人閱讀 51,763評論 1 307
  • 那天,我揣著相機與錄音八堡,去河邊找鬼碍扔。 笑死,一個胖子當著我的面吹牛秕重,可吹牛的內(nèi)容都是我干的不同。 我是一名探鬼主播,決...
    沈念sama閱讀 40,468評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼二拐!你這毒婦竟也來了服鹅?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤百新,失蹤者是張志新(化名)和其女友劉穎企软,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體饭望,經(jīng)...
    沈念sama閱讀 45,850評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡仗哨,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,002評論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了铅辞。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片厌漂。...
    茶點故事閱讀 40,144評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖斟珊,靈堂內(nèi)的尸體忽然破棺而出苇倡,到底是詐尸還是另有隱情,我是刑警寧澤囤踩,帶...
    沈念sama閱讀 35,823評論 5 346
  • 正文 年R本政府宣布旨椒,位于F島的核電站,受9級特大地震影響堵漱,放射性物質(zhì)發(fā)生泄漏综慎。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,483評論 3 331
  • 文/蒙蒙 一勤庐、第九天 我趴在偏房一處隱蔽的房頂上張望寥粹。 院中可真熱鬧,春花似錦埃元、人聲如沸涝涤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽阔拳。三九已至,卻和暖如春类嗤,著一層夾襖步出監(jiān)牢的瞬間糊肠,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評論 1 272
  • 我被黑心中介騙來泰國打工遗锣, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留货裹,地道東北人。 一個月前我還...
    沈念sama閱讀 48,415評論 3 373
  • 正文 我出身青樓精偿,卻偏偏與公主長得像弧圆,于是被迫代替她去往敵國和親赋兵。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,092評論 2 355

推薦閱讀更多精彩內(nèi)容