真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

寫寫Matlab的Turbo仿真實現(xiàn)吧

信道編碼作用就是針對無線傳輸環(huán)境下復(fù)雜多變的信道條件,采取的一種提高發(fā)送數(shù)據(jù)正確率的典型方法。比如對于傳輸?shù)男畔⒈忍匦蛄?例如x=[1 1 0 1 0 1 1 0]是一個長度為8的序列),如果直接經(jīng)過無線信道,由于各種干擾的存在,接收到的序列y可能出現(xiàn)差錯變?yōu)榱藋=[1 1 0 1 1 1 1 0]。其中第五位出現(xiàn)了偏差由0變?yōu)榱?產(chǎn)生錯誤。信道編碼的職責(zé)就是按照某種數(shù)學(xué)規(guī)律在發(fā)送數(shù)據(jù)之后添加一定的校驗位比特(例如c=[1 1 0 0])使得發(fā)送的數(shù)據(jù)變?yōu)樾畔⒈忍豿和校驗比特c的某種組合方式(例如最直接的就是級聯(lián)的方式s=[x c]=[1 1 0 1 0 1 1 0 1 1 0 0])。此時發(fā)送的數(shù)據(jù)變?yōu)閟。此時經(jīng)過無線信道,受干擾影響接收到的數(shù)據(jù)y'是y'=[1 1 0 1 1 1 1 0 1 1 0 0],不過由于比特流之間滿足特定的數(shù)學(xué)規(guī)律,可以糾正這一個錯誤,恢復(fù)出原始發(fā)送數(shù)據(jù)s=[1 1 0 1 0 1 1 0 1 1 0 0],進而提高了數(shù)據(jù)傳輸?shù)目煽啃?。這種措施是針對信道條件的影響采取的編碼方式來提高傳輸可靠性【1】,信道編碼由此得名。

10年的大名網(wǎng)站建設(shè)經(jīng)驗,針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。全網(wǎng)營銷推廣的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整大名建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗。創(chuàng)新互聯(lián)建站從事“大名網(wǎng)站設(shè)計”,“大名網(wǎng)站推廣”以來,每個客戶項目都認(rèn)真落實執(zhí)行。

Turbo編碼屬于信道編碼的一種,而且是一種性能極好的方案。這個“好”在通信系統(tǒng)中具體體現(xiàn)在具有很好的傳輸可靠性以及可以接受的實現(xiàn)復(fù)雜度。(Bit Error Rate,BER)就是很好的可靠性衡量準(zhǔn)則,比方我發(fā)送100個比特,其中錯了18個比特,那么此時的BER=18%。實現(xiàn)復(fù)雜度的問題也可以主觀感受一下,我設(shè)計一個特別復(fù)雜的編碼方案,接收端對收到的數(shù)據(jù)進行對應(yīng)的復(fù)雜的操作,這雖然能帶來BER的提升,但是花費的開銷太大,實際應(yīng)用中實用性不高。Turbo編碼的BER特性是現(xiàn)有所有信道編碼中數(shù)一數(shù)二的,又具有適度的實現(xiàn)復(fù)雜度,因此說Turbo是一種好碼。


寫著寫著就寫多了,這篇文章主要是寫一下Turbo的編譯碼思路以及Matlab的仿真實現(xiàn)(譯碼的話公式?jīng)]看懂)。

編碼器:

寫寫Matlab的Turbo仿真實現(xiàn)吧

            圖-1:Turbo碼編碼器結(jié)構(gòu)

    從圖中可以看出Turbo碼編碼器由兩個遞歸系統(tǒng)卷積碼編碼器(RSC)和一個交織器(Interleaver)以及一個打空器(Puncturer)組成。和普通的卷積碼編碼器不同的是,遞歸系統(tǒng)卷積碼編碼器有一個反饋支路,同時它有一輸出信號就是原始的輸入信息。RSC的具體的結(jié)構(gòu)如圖-2所示。

寫寫Matlab的Turbo仿真實現(xiàn)吧

            圖-2:RSC編碼器結(jié)構(gòu)

沒有打孔的Turbo碼編碼器的碼率是1/3,實際中,常常采用變碼率的Turbo碼,這時就需要進行打孔操作,從圖-1中可以看出,打孔針對的是兩個RSC編碼器產(chǎn)生的校驗比特,原始的信息比特是不參加打孔操作的。

假設(shè)RSC編碼器的寄存器的個數(shù)為:m。

輸入Turbo編碼器的信息記為:Infor。

編碼的具體流程為:將輸入Turbo碼編碼器的信息(infor)加m個尾比特(tail1)輸入進第一個RSC編碼器進行編碼,加m個尾比特的目的是將第一個RSC編碼器的最終狀態(tài)回歸到零狀態(tài),輸出為parity1。將輸入Turbo碼編碼器的原始信息(infor)進行交織,將交織后的信息再加m個尾比特(tail2)輸入進第二個RSC編碼器進行編碼,加m個尾比特的目的是將第二個RSC編碼器的最終狀態(tài)回歸到零狀態(tài),輸出為parity2。parity1和parity2的長度相等,都是輸入信息的長度加上m。假如想得到不同碼率的Turbo碼,可以對兩路校驗信息進行打孔,如不進行打孔操作,則Turbo碼編碼器的輸出即為:infor+tail1+tail2+parity1+parity2。


譯碼器:

寫寫Matlab的Turbo仿真實現(xiàn)吧

            圖-3:Turbo碼譯碼器(MAP)

從圖-3中可以看出,Turbo碼譯碼器(MAP)由兩個MAP譯碼器和兩個交織器,一個解交織器組成。其中MAP Decoder 1和MAP Decoder 2分別針對Turbo碼編碼器的RSC 1和RSC2進行譯碼操作。由于輸入到第二個RSC編碼器的信息經(jīng)過了交織的過程,因此,接收到的系統(tǒng)信息在輸入到MAP Decoder 2之前,先要進行交織的操作。解交織器和另一個交織器的功能類似,在此不再說明。

譯碼的流程從圖-3中可以很明顯的看出來:將原始信息,由第一個RSC編碼器產(chǎn)生的第一路校驗信息,第二個MAP譯碼器產(chǎn)生的相對于第一個MAP譯碼器而言的先驗信息(第一次初始化為零)經(jīng)過解交織后聯(lián)合輸入進第一個MAP譯碼器進行譯碼進行譯碼;將第一個MAP譯碼器輸出的相對于第二個MAP譯碼器的先驗信息經(jīng)過交織,原始的信息經(jīng)過交織,第二路校驗信息聯(lián)合輸入進第二個MAP譯碼器進行譯碼,這時,第二個MAP譯碼器輸出的便是相對于第一個MAP譯碼器而言的先驗信息,完成了一次迭代??梢愿鶕?jù)實際的需要,設(shè)定譯碼的迭代次數(shù),一般情況下,隨著迭代次數(shù)的增加,譯碼器的性能會增加,但是,當(dāng)?shù)螖?shù)增加到一定的程度以后,譯碼器增加的性能就已經(jīng)很小了,實際中,迭代次數(shù)一般選8。

Turbo碼大體的編解碼思路就說這么多,具體的Matlab程序網(wǎng)上流行的一個WuYufei大神的版本,可以從這里獲得鏈接: http://pan.baidu.com/s/1jG1twhC 密碼: w9qe。


這里發(fā)現(xiàn)的問題是,Wu的程序是AWGN信道下BPSK調(diào)制方式的,調(diào)制階數(shù)比較低,從提高傳輸有效性的角度上需要高階調(diào)制(比如之前的BPSK調(diào)制,1就代表比特1,-1就代表比特0,高階的調(diào)制例如QPSK,s1代表00,s2代表01,s3代表10,s4代表11),這樣同樣傳輸s1~s4中的一個符號,就可以表示兩個比特的數(shù)據(jù),速率提升了一倍,同樣帶來的結(jié)果是傳輸可靠性會有所下降(因為s1~s4之間的區(qū)分度不如1、-1之間的區(qū)分的好,即更容易互相混淆)但是在可容忍的可靠性下降范圍內(nèi)采用QPSK調(diào)制確實提高了傳輸有效性。所以我需要做的就是在Wu的程序基礎(chǔ)上加入調(diào)制的步驟。

Turbo編碼不需要適配,假設(shè)產(chǎn)生了信息比特有100個,經(jīng)過Turbo編碼(碼率1/3)那得到的數(shù)據(jù)比特為300,對這300個比特進行QPSK調(diào)制即可,調(diào)制完的符號經(jīng)過AWGN信道疊加噪聲時需要注意噪聲功率,原本的噪聲幅度為sigma,那么加到QPSK符號上的噪聲幅度需要變?yōu)閟igma/sqrt(2)。

Turbo譯碼器的輸入需要提供每一個比特的軟信息(符號置信度),所以經(jīng)過AWGN信道的接收數(shù)據(jù)y,需要①先進行軟解調(diào)【2】處理,②將QPSK調(diào)制軟解調(diào)的符號級軟信息映射為比特級軟信息作為Turbo的輸入。

軟解調(diào)主要根據(jù)公式寫寫Matlab的Turbo仿真實現(xiàn)吧

實際應(yīng)用中由于在高信噪比的條件下r被判決為s1~s4中某一個的可能性會很有壓倒性,另外的三種可能較小,所以導(dǎo)致LLR的計算過程中會出現(xiàn)NaN或Inf之類的結(jié)果。所以實際應(yīng)用中采用更簡化的方案:寫寫Matlab的Turbo仿真實現(xiàn)吧采用這個方案不會出現(xiàn)上述NaN,Inf之類的問題。

附上我做的高階(QPSK)調(diào)制有/無Turbo編碼的BER-SNR曲線~

寫寫Matlab的Turbo仿真實現(xiàn)吧

總結(jié)一下的話,主要就是介紹了Turbo編碼的思想以及應(yīng)用于高階調(diào)制的Matlab仿真需要注意的問題。


【1】通信系統(tǒng)主要是解決三個問題:可靠性、有效性、安全性。其中可靠性和有效性是一種矛盾關(guān)系,一方面希望我發(fā)送一點兒消息(比如一個數(shù)字1,接收端可以理解出大量的信息(比如a“我愛北京天安門,天安門上太陽升”);另一方面我又希望我發(fā)送的數(shù)據(jù)可以被接收方正確的理解(即a就是代表那句歌詞)。顯然消息蘊含的信息時有限的(比如數(shù)字1如果規(guī)定代表歌詞的話,那么真的需要傳輸數(shù)字“1”的信息的時候需要找別的信息來代替)而且傳輸過程中會發(fā)生損失(比如發(fā)送數(shù)字1,卻接受到了數(shù)字7,那么收端肯定無法正確理解發(fā)端的意思)這對于傳輸可靠性來說是一個消極因素。這時需要發(fā)端進行適當(dāng)?shù)牟僮鱽硖岣甙l(fā)送數(shù)據(jù)的準(zhǔn)確性,即如前文所述的信道編碼,與信道編碼類似的提高可靠性的操作會引起信息的冗余,這對于傳輸有效性來說是一個消極因素。因而通信系統(tǒng)需要在有效性和可靠性之間取得適當(dāng)?shù)恼壑小5谌齻€安全性就顧名思義了,我希望我傳輸?shù)臄?shù)據(jù)只有我和接受的人收到,其他的人收到也是無用的信息,這涉及到一些抗干擾相關(guān)的技術(shù),小編研究不深。

【2】軟解調(diào),相對應(yīng)的就有硬解調(diào)。

先說硬解調(diào),還記得我們?yōu)榱颂岣邆鬏斢行栽诿看伟l(fā)送信息的時候發(fā)的是s1~s4之中的一個嘛,現(xiàn)在假設(shè)s1=-1-1i,s2=-1+1i,s3=1-1i,s4=1+1i。那s1~s4可以畫成如下的星座圖。

寫寫Matlab的Turbo仿真實現(xiàn)吧

經(jīng)過無線信道的各種干擾影響之后,接收到信號r可能位于這個位置,如下圖

寫寫Matlab的Turbo仿真實現(xiàn)吧

那么究竟應(yīng)該將接收信號r判別成s1~s4中哪一種呢?硬解調(diào)給出的方案就是計算一下r到s1~s4之間的各個距離d1~d4,取距離最近的那一個作為判決結(jié)果。這么做是有原因的,因為影響因素服從0均值的高斯分布,所以噪聲影響從s1(-1,-1i)的位置變到了r所在的位置的概率畢竟是小的,所以優(yōu)先判決為距離更近的點。這么做比較簡單,但是給人一種生硬的感覺,突出一個“強行”,硬判決由此得名。經(jīng)過應(yīng)判決我們得知的只有被判決成的符號是s1~s4中的哪一個,并不知道r究竟與判決結(jié)果的偏移程度有多大,這是一部分信息損失,我們希望能補償回來。

再說一下軟解調(diào),軟解調(diào)在判決的時候,并不是生硬的給出r判決為s1~s4的哪一個,而是給出發(fā)送s1~s4,收端收到r的這四種情況各自發(fā)生的概率p(r|s1)~p(r|s4)(這個概率又稱為軟信息)。殘忍的判決工作軟解調(diào)并不做,只是把各種概率作為輸出,這樣的話硬解調(diào)損失的r與判決結(jié)果的偏移/相似程度就得意保留,沒有信息損失。而這個軟信息正好可以天然的用于類似于Turbo譯碼器這種需要軟信息的譯碼操作。


網(wǎng)站標(biāo)題:寫寫Matlab的Turbo仿真實現(xiàn)吧
當(dāng)前路徑:http://weahome.cn/article/ijdhjo.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部