亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        移動通信系統(tǒng)中交織編碼器的設計

        2008-04-12 00:00:00范艷根劉嵩巖黃丹
        現(xiàn)代電子技術 2008年8期

        摘 要:以GSM移動通信系統(tǒng)為例,在分析GSM通信系統(tǒng)信道編碼結構、交織方式的基礎上,提出基于FPGA用塊內交織方法實現(xiàn)該系統(tǒng)中的交織器,利用VHDL語言完成該系統(tǒng)中交織器的具體設計,并驗證設計的正確性和可行性,為使用軟件無線電實現(xiàn)GSM基站系統(tǒng)奠定了基礎。

        關鍵詞:信道編碼;交織器;仿真分析;軟件無線電

        中圖分類號:TN91122文獻標識碼:B

        文章編號:1004-373X(2008)08-075-03

        Design of Interleave Encoder in Mobile Communication System

        FAN Yan′gen1,2,LIU Songyan2,HUANG Danling1,ZHAO Lin1

        (1.Heilongjiang Institute of Science and Technology,Harbin,150027,China;

        2.Microelectronics Center,Harbin Institute of Technology,Harbin,150001,China)

        Abstract:On the basis of analyzing the channel coding structure and interleave style of the system,taking an example of GSM,this passage introduces a new method based on FPGA to realize the interleave of system,introduces the detailed design of the interleave with VHDL in the system,testifies the exactness and feasibility of this method and establishes the basis to realize GSM base station system using software radio.

        Keywords:channel coding;interleave;simulation analysis;software radio

        軟件無線電[1]是一種實現(xiàn)無線通信的新的體系結構,是無線通信產業(yè)從模擬到數(shù)字、從固定到移動這兩次革命后的第三次革命,是從硬件無線通信到軟件無線通信的革命。

        在從事使用軟件無線實現(xiàn)GSM基站研究中,在深入研究GSM通信系統(tǒng)信道編碼結構、交織方式的基礎上,利用VHDL硬件描述語言完成GSM基站信道編碼中使用的交織器的具體設計,為進一步研究軟件無線技術在GSM基站系統(tǒng)中應用打下基礎。

        1 GSM的話音編碼與信道編碼

        在GSM通信系統(tǒng)中,全速率話音編碼算法為規(guī)則脈沖激勵及長期預測算法(RPELTP)。模擬話音首先通過一個ADC以8 kHz采樣頻率進行采樣,每個采樣點用均勻13 b編碼。話音編碼器對每20 ms一段的話音進行壓縮編碼,編碼結果為每20 ms產生260 b的數(shù)據(jù)塊。這260 b的數(shù)據(jù)根據(jù)他們的重要性分成為3類:Ia類、Ib類和Ⅱ類。Ia類共50 b,為非常重要的數(shù)據(jù)。如果這些數(shù)據(jù)被修改,恢復的話音將發(fā)生很大的錯誤,甚至無法恢復正常的話音,因此這些數(shù)據(jù)需要嚴格保護。Ib類數(shù)據(jù)共132 b,是比較重要的數(shù)據(jù),需要進行較好的保護。Ⅱ類數(shù)據(jù)共78 b,為一般重要的數(shù)據(jù),發(fā)生一些差錯也不會對恢復的話音有太大的影響,通常不對其進行保護。根據(jù)數(shù)據(jù)重要性的不同,決定信道編碼中采用不同的保護方法。

        GSM通信系統(tǒng)的信道編碼首先對Ia類數(shù)據(jù)進行差錯檢測編碼,產生3個循環(huán)冗余校驗(CRC)比特,這些比特的產生使用多項式為G(x)=X3⊕X⊕1。3個CRC比特附在Ia類的50 b后面,再與Ib類數(shù)據(jù)組合在一起進行K=5,r=1/2的卷積編碼,卷積編碼器使用的2個多項式為P1(x)=X4⊕X3⊕1和P2(x)=X4⊕X3⊕X⊕1,卷積編碼產生的結果是兩個189 b的序列,將他們與不需要保護的Ⅱ類數(shù)據(jù)復合在一起,產生一個完整的經過信道編碼的話音幀,共456 b。

        2 交織編碼器工作原理

        信道編碼中采用交織技術[2],可打亂碼字比特之間的相關性,將信道中傳輸過程中的成群突發(fā)錯誤轉換為隨機錯誤,從而提高整個通信系統(tǒng)的可靠性。交織編碼根據(jù)交織方式的不同,可分為線性交織、卷積交織和偽隨機交織。其中線性交織編碼是一種比較常見的形式。所謂線性交織編碼器,是指把糾錯編碼器輸出信號均勻分成m個碼組,每個碼組由n段數(shù)據(jù)構成,這樣就構成一個n×m的矩陣。這里把這個矩陣稱為交織矩陣。如圖1所示,數(shù)據(jù)以a11,a12,…,a1n,a21,a22,…,a2n,…,aij,… ,am1,am2,…,amn(i=1,2,…,m;j=1,2,…,n)的順序進入交織矩陣,交織處理后以a11,a21,…,am1,a12,a22,…,am2,…,a1n,a2n,…,amn的順序從交織矩陣中送出,這樣就完成對數(shù)據(jù)的交織編碼。還可以按照其他順序從交織矩陣中讀出數(shù)據(jù),不管采用哪種方式,其最終目的都是把輸入數(shù)據(jù)的次序打亂。 如果aij只包含1個數(shù)據(jù)比特,稱為按比特交織[3];如果aij包含多個數(shù)據(jù)比特,則稱為按字交織。接收端的交織譯碼同交織編碼過程相類似。

        

        a11a12…a1n

        a21a22…a2n

        

        am1am2…amn交織處理后[TXX→*2] a11a21…am1

        a12a22…am2

        

        a1na2n…amn

        

        圖1 n×m交織矩陣線性交織編碼

        一般來說,如果有n個(m,k)碼,排成n×m矩陣,按列交織后存儲或傳送,讀出或接收時恢復原來的排列,若(m,k)碼能糾t個錯誤,那么交織后就可糾nt個錯誤。對糾正信道傳輸過程中出現(xiàn)的突發(fā)錯誤效果明顯。

        GSM中使用這種比特交織器。其交織方式為將信道編碼后的每20 ms的數(shù)據(jù)塊m=456 b拆分到8組中,每組57 b,然后這每組57 b分配到不同的Burst中。

        3 交織編碼器的軟件設計

        GSM通信系統(tǒng)必須滿足實時性的要求,因此,交織編碼引入的延時應盡可能小。為了同時滿足塊內交織進行(57,8)矩陣轉置變換和延時盡可能小的要求,該交織器利用2片雙口RAM實現(xiàn),記作RAM[CD#*2] 和RAM[CD#*2] B。交織處理時,按地址從0~455 將456 b輸入數(shù)據(jù)全部寫入RAM[CD#*2]A,待456 b數(shù)據(jù)全部送入RAM[CD#*2]A后,控制信號使RAM[CD#*2]A由寫狀態(tài)轉換到讀狀態(tài),同時,將輸入的待交織數(shù)據(jù)寫入RAM[CD#*2]B,RAM[CD#*2]B為寫狀態(tài),交織器由RAM[CD#*2]A輸出數(shù)據(jù)。經過456個時鐘周期后,從RAM[CD#*2]A讀出456 b數(shù)據(jù)的同時,RAM[CD#*2]B寫入一個時隙的456 b數(shù)據(jù)。此時,改變RAM[CD#*2]A和RAM[CD#*2]B的讀寫狀態(tài),RAM[CD#*2]A開始寫,從RAM[CD#*2]B中讀取數(shù)據(jù)。如此反復完成數(shù)據(jù)的實時連續(xù)交織處理。

        完成交織處理的核心問題是處理好讀/寫地址之間的關系,該交織器讀/寫地址的變換采用如下算法完成:

        readaddress(j×8+i)=writeaddress(i×57+j)

        (i=0,1,2,…,7;j=0,1,2,…,57)

        為減少FPGA運算量,可利用Matlab,C語言等實現(xiàn)讀/寫地址矩陣轉置運算。這里采用Matlab完成讀/寫地址矩陣轉置運算,具體程序為:x=0:1:455;reshape(x,57,8)。讀/寫地址的變換結果存儲在address[CD#*2]ROM.mif文件中[4]。利用VHDL語言描述該交織編碼器完整代碼如下:

        [HT4][HT5”]

        LIBRARY IEEE;

        USE IEEE.STD[CD#*2]LOGIC[CD#*2]1164.ALL;

        USE IEEE.STD[CD#*2]LOGIC[CD#*2]SIGNED.ALL;

        USE IEEE.STD[CD#*2]LOGIC[CD#*2]UNSIGNED.ALL;

        USE IEEE.STD[CD#*2]LOGIC[CD#*2]ARITH.ALL;

        LIBRARY lpm;

        USE lpm.lpm[CD#*2]components.ALL;

        LIBRARY altera[CD#*2]mf;

        USE altera[CD#*2]mf.altera[CD#*2]mf[CD#*2]components.all;

        ENTITYGSM[CD#*2]VHDL IS

        GENERIC (intlv[CD#*2]length: positive := 456); 

        PORT(clk:INSTD[CD#*2]LOGIC; 

        data[CD#*2]in: INSTD[CD#*2]LOGIC;

        wr[CD#*2]addr[CD#*2]A,rd[CD#*2]addr[CD#*2]A: BUFFER STD[CD#*2]LOGIC[CD#*2]VECTOR(8 DOWNTO 0); 

        intlv[CD#*2]data[CD#*2]A,intlv[CD#*2]data[CD#*2]B:BUFFER STD[CD#*2]LOGIC; 

        RAM[CD#*2]select[CD#*2]cnt:BUFFER STD[CD#*2]LOGIC[CD#*2]VECTOR(9 DOWNTO 0); 

        RAM[CD#*2]select,RAM[CD#*2]read[CD#*2]ena:BUFFER STD[CD#*2]LOGIC; 

        intlv[CD#*2]out:BUFFER STD[CD#*2]LOGIC );

        END ENTITY GSM[CD#*2]VHDL;

        ARCHITECTURE address[CD#*2]control[CD#*2]fan OF GSM[CD#*2]VHDL is

        SIGNAL RAM[CD#*2]read[CD#*2]delay1 :STD[CD#*2]LOGIC;

        SIGNAL RAM[CD#*2]out[CD#*2]A,RAM[CD#*2]out[CD#*2]B :STD[CD#*2]LOGIC;

        BEGIN

        RAM[CD#*2]select[CD#*2]cnt[CD#*2]mine : COMPONENT lpm[CD#*2]counter

        GENERIC MAP (LPM[CD#*2]WIDTH=>10,LPM[CD#*2]MODULUS=>912)

        PORT MAP (clock=>clk,updown=>′1′,q=>RAM[CD#*2]select[CD#*2]cnt);

        RAM[CD#*2]select[CD#*2]mine :COMPONENT lpm[CD#*2]compare 

        GENERIC MAP(LPM[CD#*2]WIDTH=>10,LPM[CD#*2]REPRESENTATION=> \"UNSIGNED\")

        PORT MAP(dataa=>RAM[CD#*2]select[CD#*2]cnt,datab=>\"0111001000\",ageb=>RAM[CD#*2]select);

        data[CD#*2]input[CD#*2]select: PROCESS(RAM[CD#*2]select,data[CD#*2]in)

        BEGIN

        IF RAM[CD#*2]select =′0′ THEN

        intlv[CD#*2]data[CD#*2]A <= data[CD#*2]in;

        intlv[CD#*2]data[CD#*2]B <=′0′;

        ELSE

        intlv[CD#*2]data[CD#*2]A <=′0′;

        intlv[CD#*2]data[CD#*2]B <= data[CD#*2]in;

        END IF;

        END PROCESS data[CD#*2]input[CD#*2]select;

        wr[CD#*2]addr[CD#*2]A[CD#*2]mine : COMPONENT lpm[CD#*2]counter 

        GENERIC MAP (LPM[CD#*2]WIDTH=>9,LPM[CD#*2]MODULUS=>intlv[CD#*2]length)

        PORT MAP (clock=>clk,updown=>′1′,q=>

        wr[CD#*2]addr[CD#*2]A);

        rd[CD#*2]addr[CD#*2]mine[CD#*2]A:COMPONENT altsyncram

        GENERIC MAP (OPERATION[CD#*2]MODE=>\"ROM\",WIDTH[CD#*2]A =>9,WIDTHAD[CD#*2]A =>9,OUTDATA[CD#*2]REG[CD#*2]A=>\"clock0\",INIT[CD#*2]FILE => \"address[CD#*2]ROM.mif\")

        PORT MAP (clock0=>clk,address[CD#*2]a=>

        wr[CD#*2]addr[CD#*2]A,q[CD#*2]a=>rd[CD#*2]addr[CD#*2]A);

        RAM[CD#*2]read[CD#*2]delay[CD#*2]one: COMPONENT lpm[CD#*2]ff 

        GENERIC MAP (LPM[CD#*2]WIDTH=>1)

        PORT MAP(data(0)=>RAM[CD#*2]select,clock=>clk,q(0)=>RAM[CD#*2]read[CD#*2]delay1);

        RAM[CD#*2]read[CD#*2]delay[CD#*2]two: COMPONENT lpm[CD#*2]ff

        GENERIC MAP (LPM[CD#*2]WIDTH=>1)

        PORT MAP(data(0)=>RAM[CD#*2]read[CD#*2]delay1,clock=>clk,q(0)=>RAM[CD#*2]read[CD#*2]ena);

        RAM[CD#*2]A:COMPONENT lpm[CD#*2]ram[CD#*2]dp

        GENERIC MAP (LPM[CD#*2]WIDTH=>1,LPM[CD#*2]WIDTHAD=>9)

        PORT MAP(data(0)=> intlv[CD#*2]data[CD#*2]A,

        rdaddress=>rd[CD#*2]addr[CD#*2]A,wraddress=>wr[CD#*2]addr[CD#*2]A,

        rdclock=>clk,wrclock=>clk,

        rden=>RAM[CD#*2]read[CD#*2]ena,wren=>NOT RAM[CD#*2]select,

        q(0)=>RAM[CD#*2]out[CD#*2]A);

        RAM[CD#*2]B:COMPONENT lpm[CD#*2]ram[CD#*2]dp 

        GENERIC MAP (LPM[CD#*2]WIDTH=>1,LPM[CD#*2]WIDTHAD=>9)

        PORT MAP(data(0)=> intlv[CD#*2]data[CD#*2]B,

        rdaddress=>rd[CD#*2]addr[CD#*2]A,wraddress=>wr[CD#*2]addr[CD#*2]A,

        rdclock=>clk,wrclock=>clk,

        rden=>NOT RAM[CD#*2]read[CD#*2]ena,wren=>RAM[CD#*2]select,

        q(0)=>RAM[CD#*2]out[CD#*2]B);

        intlv[CD#*2]out<=RAM[CD#*2]out[CD#*2]A WHEN RAM[CD#*2]read[CD#*2]ena=′1′ ELSE 

        RAM[CD#*2]out[CD#*2]B;

        END ARCHITECTURE address[CD#*2]control[CD#*2]fan;

        4 仿真分析

        利用Altera公司的Quartus Ⅱ工具軟件, 對該交織器仿真分析,得到的時序仿真波形如圖2所示。從讀地址(rd[CD#*2]addr[CD#*2]A)和寫地址(wr[CD#*2]addr[CD#*2]A)以及(data[CD#*2]in)和(intlv[CD#*2]out)可以看出,該交織器完成既定的交織功能,延時相當小,該設計方法正確可行。

        圖2 交織器部分時序仿真波形

        5 結 語

        本文提出基于FPGA實現(xiàn)交織器的方法,給出利用VHDL語言描述該交織器的全部代碼。通過仿真分析驗證該實現(xiàn)方案的正確性和可行性。為進一步研究GSM通信系統(tǒng)基站軟件化打下了良好的基礎。

        參 考 文 獻

        [1]楊小牛,樓才義,徐建良.軟件無線電原理與應用[M].北京:電子工業(yè)出版社,2004.

        [2]徐元欣,王匡,仇佩亮.實現(xiàn)卷積交織的幾種實用方法[J].電路與系統(tǒng)學報,2001,6(1):712.

        [3]白寶明,馬嘯,王新梅.隨機交織器的設計與實現(xiàn)[J].通信學報,2000,21(6):611.

        [4]潘松,黃繼業(yè).EDA技術實用教程[M].北京:科學出版社,2002.

        作者簡介

        范艷根 男,1979年出生,安徽太湖人,講師,2002年畢業(yè)于黑龍江科技學院,現(xiàn)為哈爾濱工業(yè)大學微電子中心碩士研究生。主要從事信號與信息處理方面的教學與科研工作。

        注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文

        欧美人与动牲猛交xxxxbbbb| 亚洲一区二区自偷自拍另类| 中文字幕一区二区三区四区| 少妇裸体性生交| 中文字幕无线码| 久久99精品久久久久久久清纯| 国产精品nv在线观看| 国产精品一区二区三区av在线| 欧美村妇激情内射| 国产精品99久久久久久宅男| 久久dvd| 久久精品人妻中文av| 四虎国产成人永久精品免费| 国产精品jizz在线观看老狼| 中日韩欧美成人免费播放| 国产特黄a三级三级三中国| 人妻中文字幕在线网站| 日本黄色3级一区二区| 欧美日韩精品久久久久| 国产午夜影视大全免费观看| 日本一本草久国产欧美日韩| 毛片在线播放亚洲免费中文网| 久久综合噜噜激激的五月天| 精品日产卡一卡二卡国色天香| 99热精品国产三级在线观看 | 色大全全免费网站久久| 黄色a级国产免费大片| 二区久久国产乱子伦免费精品| 中文字幕一区二区三区综合网| 国产精品一区二区av麻豆| 天天躁日日躁狠狠躁av中文| 亚洲在战AV极品无码| 被灌醉的日本人妻中文字幕| 亚洲精品乱码8久久久久久日本 | 亚洲视频在线一区二区| 日本公妇在线观看中文版 | 嫩草影院未满十八岁禁止入内| 久久久亚洲欧洲日产国码是AV| 亚洲av综合色区一区二区| 亚洲 自拍 另类小说综合图区| 97色偷偷色噜噜狠狠爱网站97|