DVB-S码型研究及信道编码的FPGA
dout6:out bit_vector(7 downto 0); dout7:out bit_vector(7 downto 0); dout8:out bit_vector(7 downto 0); dout9:out bit_vector(7 downto 0); dout10:out bit_vector(7 downto 0); dout11:out bit_vector(7 downto 0); dout12:out bit_vector(7 downto 0); clk: in std_logic );
END ENTITY;
architecture two of jiao is signal a: integer;
signal count :integer range 1 to 12 :=1; signal mem1 :bit_vector(7 downto 0); signal mem2 :bit_vector(143 downto 0); signal mem3 :bit_vector(279 downto 0); signal mem4 :bit_vector(415 downto 0); signal mem5 :bit_vector(551 downto 0); signal mem6 :bit_vector(687 downto 0); signal mem7 :bit_vector(823 downto 0); signal mem8 :bit_vector(959 downto 0); signal mem9 :bit_vector(1095 downto 0); signal mem10 :bit_vector(1231 downto 0); signal mem11 :bit_vector(1367 downto 0); signal mem12 :bit_vector(1503 downto 0); begin
process(clk) begin
if(clk'event and clk='1') then if(count=1) then mem1<=datain;
elsif(count=2) then
mem2(7 downto 0)<=datain; elsif(count=3) then
mem3(7 downto 0)<=datain; elsif(count=4) then
mem4(7 downto 0)<=datain; elsif(count=5) then
mem5(7 downto 0)<=datain; elsif(count=6) then
mem6(7 downto 0)<=datain; elsif(count=7) then
mem7(7 downto 0)<=datain; elsif(count=8) then
mem8(7 downto 0)<=datain; elsif(count=9) then
mem9(7 downto 0)<=datain; elsif(count=10) then
mem10(7 downto 0)<=datain; elsif(count=11) then
mem11(7 downto 0)<=datain; elsif(count=12) then
- 23 -
DVB-S码型研究及信道编码的FPGA
mem12(7 downto 0)<=datain; end if; a<=count+1 ;
count<=a mod 12; mem2<=mem2 sll 8; mem3<=mem3 sll 8; mem4<=mem4 sll 8; mem5<=mem5 sll 8; mem6<=mem6 sll 8; mem7<=mem7 sll 8; mem8<=mem8 sll 8; mem9<=mem9 sll 8; mem10<=mem10 sll 8; mem11<=mem11 sll 8; mem12<=mem12 sll 8; dout1<=mem1;
dout2<=mem2(143 downto 136); dout3<=mem3(279 downto 272); dout4<=mem4(415 downto 408); dout5<=mem5(551 downto 544); dout6<=mem6(687 downto 680); dout7<=mem7(823 downto 816); dout8<=mem8(959 downto 952); dout9<=mem9(1095 downto 1088); dout10<=mem10(1231 downto 1224); dout11<=mem11(1367 downto 1360); dout12<=mem12(1503 downto 1496); END IF; End process;
End two;
12选一多路器程序如下: LIBRARY IEEE;
- 24 -
4.9) (图
DVB-S码型研究及信道编码的FPGA
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY MUX12_1 IS
PORT(
COUNT1:IN INTEGER;
D11 , D10 ,D9 , D8 , D7 , D6 , D5 , D4 ,D3 , D2 , D1 , D0 : IN BIT_VECTOR(7 DOWNTO 0);
Y : OUT BIT_VECTOR(7 DOWNTO 0);
CLK: IN STD_LOGIC ); END ENTITY;
ARCHITECTURE ONE OF MUX12_1 IS
BEGIN
PROCESS(CLK) BEGIN
IF (CLK'EVENT AND CLK='1') THEN IF (COUNT1=1) THEN Y<=D0;
ELSIF(COUNT1=2) THEN Y<=D1;
ELSIF(COUNT1=3) THEN Y<=D2;
ELSIF(COUNT1=4) THEN Y<=D3;
ELSIF(COUNT1=5) THEN Y<=D4;
ELSIF(COUNT1=6) THEN Y<=D5;
ELSIF(COUNT1=7) THEN Y<=D6;
ELSIF(COUNT1=8) THEN Y<=D7;
ELSIF(COUNT1=9) THEN Y<=D8;
ELSIF(COUNT1=10) THEN Y<=D9;
ELSIF(COUNT1=11) THEN Y<=D10;
ELSIF(COUNT1=12) THEN Y<=D11; END IF;
END IF;
END PROCESS; End one;
- 25 -
DVB-S码型研究及信道编码的FPGA
合并一起的电路图:
(图4.10)
- 26 -
DVB-S码型研究及信道编码的FPGA
结语: 本文针对RS(204,188)码流进行了卷积交织器和解交织器的VHDL语言设计和FPGA实现。理论上最简存储单元的占用量为B×M×(B- 1)/2 = 1 122,地址总线位数为11 b。而本文的方法使用的存储单元量为1 134,地总线位数为11 b,接近于最简存储单元占用量。本文的计和实现方法可以推广用在对别的码流的卷积交织上,需根据实际需要适当选择参数B和M。参数的选择与交器前面级连的纠错码的码字长有关。若纠错码采用(N,K)码,一般取N=B×M。
4.4、(2,1,7)卷积码
卷积码也称连环码,是伊莱亚斯(EliaS)于1955年提出的一种非分组码。与分组码不同,它的编码是连续的,监督码元分散插入信息序列之中,整个编码过程是一环扣一环。连锁地进行下去的,故称为连环码。又因为其编码器的输出可以看成是输入信息数字序列与编码器的响应函数卷积,所以称为卷积码。在解码过程中,不但从该时刻收到的码组中提取信息,还利用以后若干时刻内所收到的码字来提取信息。卷积码也具有检错和纠错能力,但更适用于前向纠错。卷积码己广泛用于通信,特别是卫星通信中,尤其是功率受限而带宽不受限可近似为高斯白噪声信道中。 卷积编码原理在数字电视信道编码中,卷积码通常是与线性分组码级联使用,如RS码。卷积码在形式上也是分组处理的:每k个输入信息码元为一组,经编码处理后加入r个校验码元,生成n=k+r个码元的码字。但与分组码不同的是,卷积码字内的r个校验码元不仅与本码字内的k个信息码元有关,还与前面的(N一l)个码字内的信息码元有关,是由本码字和前面的(N一l)个码字内的信息码元按照规定的编码算法共同生成的。
卷积码非常适用于纠正随机错误,但是,解码算法本身的特性却是:如果在解码过程中发生错误,解码器可能会导致突发性错误。为此在卷积码的上部采用RS码块, RS码适用于检测和校正那些由解码器产生的突发性错误。所以卷积码和RS码结合在一起可以起到相互补偿的作用。卷积码分为两种: (1) 基本卷积码:
基本卷积码编码效率为,η=1/2, 编码效率较低,优点是纠错能力强。 (2)收缩卷积码:
- 27 -
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库DVB-S 码型研究及信道编码FPGA实现(6)在线全文阅读。
相关推荐: