卷积码算法
A. 基于单片机的卷积码编码与维特比译码的设计
VHDL实现也可以,编码器我会做,主要是译码器的设计,采用回溯算法 通过打孔方法可以获得1/2编码速度的编码。递归系统编码器的实现比较直接,然而基于,qmVCCV
B. 谁能通俗的讲解下viterbi算法吗
我们来分析Viterbi 算法的复杂度: (n, k, N)卷积码的状态数为2k (N−1) ,对每一时刻要
做2k (N−1) 次“加-比-存”操作,每一操作包括2k 次加法和2k −1 次比较,同时要保留2k (N−1)
条幸存路径。由此可见,Viterbi 算法的复杂度与信道质量无关,其计算量和存储量都随约束
长度N 和信息元分组k 呈指数增长。因此,在约束长度和信息元分组较大时并不适用。
为了充分利用信道信息,提高卷积码译码的可靠性,可以采用软判决Viterbi 译码算法。
此时解调器不进行判决而是直接输出模拟量,或是将解调器输出波形进行多电平量化,而不
是简单的 0、1 两电平量化,然后送往译码器。即编码信道的输出是没有经过判决的“软信
息”。
C. 卷积码的约束长度怎么计算
结果是9约束度N=m+1m=2n=3约束长度=Nn所以结果是9
D. 卷积码的原理
DMT和卷积编码调制在DSL中的应用
钟晓建 潘贵敦 马亲民 梁小宇
�
(华中师范大学物理系武汉430079)
【摘要】讨论了离散多音频调制和网格编码相结合的调制方式在DSL中的应用,离散多音频调制DMT〔1〕是一种多载波调制技术,将传输数据根据各子带信噪比按位分配到子带上,使每个子带码元宽度大于多径延迟。如果把调制和纠错编码结合起来,则可使误码率大大降低,是一种带宽利用率较高的调制方式。
�关键词:ADSL离散多音频网格编码〔2〕欧氏距离〔3〕离散傅立叶变换/逆变换
1引 言
� 随着Internet技术的不断发展,人们对传输数据的速度、质量要求越来越高,在当前为了有效地利用现有的资源——电话线,提出了DSL〔1〕(数字用户线)的概念,使用话音频率以上的频带(4 k~1.1 MHz)来调制高速数字信号,按照Δf=4.3125 kHz分割成一个个的子带,由于Δf刚好是音频的宽度,故命名为离散多音频,DMT调制是基于离散傅立叶变换对并行数据进行调制解调的。随着超大规模集成电路(VL SI)和数字信号处理(DSP)技术的不断进步,用FFT实现实时DMT调制已付诸使用。但以往的调制解调系统,纠错编码与调制是各自独立设计并实现的,译码和解调也是如此,这样解调器在接收信号是对信号作独立硬判决,硬判决结果再送给译码器译码,这种硬判决会导致接收端信息的不可恢复的丢失,解决这个问题的方法是在接收端采用软判决译码。DSL技术中就是将DMT和网格编码综合设计,在白噪声环境下比传统技术的误码性能有了很大的提高。这种最佳的编码调制系统是按照编码序列的欧氏距离为设计的量度,这就要求将编码器和调制器当作一个统一的整体进行综合设计,使得编码器和调制器级联后产生的编码信号序列具有最大的欧氏自由距离。从信号空间的角度看,这种最佳编码调制的设计实际上是一种对信号空间的最佳分割。经过实验分析,DMT和卷积编码结合后的编码增益比传统编码的编码增益增加了8 dB。�
2xDSL接入设备体系结构
� 在ADSL的应用当中,其硬件体系结构大致是由线路接口、接收滤波、线路驱动、模拟前端以及DMT收发器这几个模块组成。其中DMT收发器在发端对数据进行复用、循环冗余校验、前向纠错、子带排序、卷积编码、星座映射以及IFFT变换,送到模拟前端变换成模拟信号发送出去,而在收端是将模拟信号经过FFT变换、解映射、维特比译码等一系列反变换,提交给上层。根据T1.413〔4〕标准,采用韦氏16状态4维网格码作为内码,采用Reed�Solomon编码作为前向纠错码,另外由于网格编码对成块的噪声抵抗能力较差,因此在进行网格编码之前将数据进行交织使噪声分散。ADSL的DMT收发器框图大致如图1所示。
3DMT与卷积编码调制原理
� 在ADSL的发送端,将数据分配到不同的子带上,这种分配可以根据各个子带的信噪比来确定分配的bit数。而ADSL系统为各个子带建立并维持了一个比特数和增益大小的表,是在ATU-R一端计算出来并返回给局端。为保证后一子带所带的位数不小于前一子带的位数,先对子带进行排序,即子带按信噪比大小从小到大进行排序。为了使编码获得的码字有较大的欧氏自由距离,采用了四维TCM网格编码,这样位抽取是基于一对子带的,因为一个子带在空间上是二维的,一对相互正交的子带在空间上则是四维的 ,相应的在解码的时候也是一对一对的作维特比译码。欧氏自由距离是在四维空间上计算出来的,这样四维的陪集可以由两个二维的陪集的联合构成,即这样四维TCM网格码的欧氏自由距离可以由两个二维星座图的距离的平方和算出, 在译码系统中,最可能发生错误的情况是在具有最小的平方欧氏距离的两个序列�{an}和{bn}�之间,(前者是发送序列,后者是译码序列),这一最小平方欧氏距离常又称为平方自由距离,记做:
��编码的目的是为了使这个平方自由距离最大。
�网格编码调制的通过一种特殊的信号映射可变成卷积码的形式。这种映射的原理是将调制信号集分
割成子集,是的子集内的信号间具有更大的空间距离,用编码效率为k/(k 1)的卷积码选择子集,用其余位选择子集中的点。在DSL数字用户环路中用16状态的4维网格编码的编码器结构如图2所示。
其中的卷积编码部分如图3所示。
图2中每两个子带抽取的位数z′=x y-1(x为第一个子带所带的位数,y为第二个子带所带的位数)。{uz′-1,uz′-2,…u1}为原码,输出的是经过卷积以及异或以后的编码,为两个二进制码字,即{vz-y�,vz′-y-1,…v1,v0}和{wy-1,wy-2,…w1,w0},这两个二进制码字将映射成两个星座点。编码算法使星座点的两个最低位决定星座点的二维陪集{v1,v0}和{w1,w0}实际上是这个上标的二进制表示。对于一帧中最后两个码字,为了使卷积编码状态{s3,s2,s1,s0}回到零状态。让编码前的码字的{u1,u2}={0,0},则最后两对子带抽取的位数z′=x y-3。
�
这样编码得出的信号有两个基本特征:
� (1)星座图中所用的信号点数大于未编码同种调制所需的点数(扩大了一倍),这些附加的信号点为纠错编码提供冗余度。
�(2)采用卷积码在相继的信号点之间引入某种依赖性,因而只有某些信号点序列才是允许出现的,这些允许的信号序列可以模型化为网络结构。可用网格图来表述。
� 在接收端对接收序列进行维特比译码〔4〕,即最大似然译码,可以用网格图求最相似的路径来描述这种算法,它依赖于有限状态的马尔可夫系统的描述,包括状态变迁以及状态变迁的输出码字。在四维TCM�编码的基础上,解码时要对一对一对的数据进行解码,计算码距时也是以四维空间的欧氏距离为标准,取最相似的一条路径。对于长度为L m的网格路径(L为信息序列的长度,m表示后缀为m个0向量)接收序列为所有的网格路径在零时刻发散于同一个初始状态、收敛于第j时刻(j=L m)的同一个最后一状态。在理想状况下,对于一个存储量无限度的通道,可以将所有可能的路径都记录下来,然后选择其中对数似然函数值最大的作为译码结果。
对数似然函数是将接收序列判定为某条路径的序列的条件概率的对数
��这里的对数似然函数取最大值,实际上是接收的码序列与估计路径的码之间的距离取最小值,是基于欧氏空间距离来计算的。在这里维特比译码算法的核心是回退的观点,采用动态规划法存储数据,如果对每条可能的路径进行存储的话,随着译码深度的增加,存储量将成4的指数增长,这在现实条件下是不可能的。因为每个节点都有四个分支(二输入十六状态的网格图),因此我们对于j时刻到达的某一状态
δi(i=1,2…,S-1),进行加—比—选操作,即将所有可能前一时刻的状态的最大似然函数∧j-1(δp)与当前接收的序列和前一状态到当前状态的估计码的似然度相加,选择其中最大的作为j时刻i状
态的最大似然函数值,并在幸存序列j(δi)在原来的基础上加上这条最优的路径u〔δp→δi〕。这样给出的算法可以表述为:
� 变量/存储:
� S—状态数(DSL为16);
� T—每一状态的分支数(4);
� j—时刻编号,即第j时刻
�对于用卷积编码完毕的序列可以直接送到数字信号处理器中作IDFT〔5〕变换成串行数据了。每个子带i的二进制码字可以映射成星座图上的复数点(Zi=ai jbi),为了使输出信号为实信号,频域上的子带i的复数值(i≥N′,N′=N/2)为
��Zi=conj�(ZN-i),(i≥N′,N′=N/2)
即取共轭复数,这样经过离散傅立叶逆变换,得到时域信号:
��此信号经过并/串变换,再通过A/D变换,变成模拟信号送到线路上进行传输。
4仿真结果
� 我们在应用Itex公司的ADSL解决方案中,用该公司提供的局端仿真工具IADT对ADSL链路性能进
行仿真,得到ADSL每个子带(从0~255)的信噪比,再根据这个预测值来确定每个子带的位数和增益值。
从而建立一个与子带一一对应的表,其线路预测的信噪比曲线如图4所示。
我们可以看到,测得的线路上行速率为544
kbps,网络速率(去掉ADSL链路开销)为448 kbps,下行链路速率为8 160 kbps,网络速率为7 616 kbps。
5总 结
� 本文描述了在带宽受限的信道采用DMT和卷积编码相结合的技术,将调制与纠错编码结为一体,高效利用了现有的带宽。随着ADSL技术的逐渐成熟,该编码技术也正在应用于其它领域,如无线通信,针对其信道的衰减特性可以获得较高的带宽利用率。在具体硬件实现上,由于超大规模集成电路的发展,硬件已不再是信号处理的瓶颈了,如以上分析的维特比译码,其对硬件的需求是随着N的增大而迅速增加,需要上十万的门电路实现,现已有单片的维特比译码器,或是在特殊的应用中集成在一块数字芯片中,同时完成RS编码、交织、FFT变换等等。
�参考文献
�
1Asymmetrical Digital Subscriber Lines(ADSL)�ITU-T�Recommendation G.992,Geneva,June,1999
2曹志刚,钱亚生.现代通信原理.北京:清华大学出版社
3Stephen G Wilson.digital Molation and Coding,○C1996 byPrentice�Hall,Inc
4ANSI T1.413�1998,COMMITTEE T1—Telecommunications Working Group T1E1.4 T1E1.4/98�007R5,1998
5John G Proakis.Digital Communications,Third edition,McGraw�Hill 1998
E. 最短路径导航查询系统(编码)
信道编码技术
数字信号在传输中往往由于各种原因,使得在传送的数据流中产生误码,从而使接收端产生图象跳跃、不连续、出现马赛克等现象。所以通过信道编码这一环节,对数码流进行相应的处理,使系统具有一定的纠错能力和抗干扰能力,可极大地避免码流传送中误码的发生。误码的处理技术有纠错、交织、线性内插等。
提高数据传输效率,降低误码率是信道编码的任务。信道编码的本质是增加通信的可靠性。但信道编码会使有用的信息数据传输减少,信道编码的过程是在源数据码流中加插一些码元,从而达到在接收端进行判错和纠错的目的,这就是我们常常说的开销。这就好象我们运送一批玻璃杯一样,为了保证运送途中不出现打烂玻璃杯的情况,我们通常都用一些泡沫或海棉等物将玻璃杯包装起来,这种包装使玻璃杯所占的容积变大,原来一部车能装5000各玻璃杯的,包装后就只能装4000个了,显然包装的代价使运送玻璃杯的有效个数减少了。同样,在带宽固定的信道中,总的传送码率也是固定的,由于信道编码增加了数据量,其结果只能是以降低传送有用信息码率为代价了。将有用比特数除以总比特数就等于编码效率了,不同的编码方式,其编码效率有所不同。
数字电视中常用的纠错编码,通常采用两次附加纠错码的前向纠错(FEC)编码。RS编码属于第一个FEC,188字节后附加16字节RS码,构成(204,188)RS码,这也可以称为外编码。第二个附加纠错码的FEC一般采用卷积编码,又称为内编码。外编码和内编码结合一起,称之为级联编码。级联编码后得到的数据流再按规定的调制方式对载频进行调制。
前向纠错码(FEC)的码字是具有一定纠错能力的码型,它在接收端解码后,不仅可以发现错误,而且能够判断错误码元所在的位置,并自动纠错。这种纠错码信息不需要储存,不需要反馈,实时性好。所以在广播系统(单向传输系统)都采用这种信道编码方式。
下图是纠错码的各种类型:
1、RS编码
RS码即里德-所罗门码,它是能够纠正多个错误的纠错码,RS码为(204,188,t=8),其中t是可抗长度字节数,对应的188符号,监督段为16字节(开销字节段)。实际中实施(255,239,t=8)的RS编码,即在204字节(包括同步字节)前添加51个全“0”字节,产生RS码后丢弃前面51个空字节,形成截短的(204,188)RS码。RS的编码效率是:188/204。
2、卷积码
卷积码非常适用于纠正随机错误,但是,解码算法本身的特性却是:如果在解码过程中发生错误,解码器可能会导致突发性错误。为此在卷积码的上部采用RS码块, RS码适用于检测和校正那些由解码器产生的突发性错误。所以卷积码和RS码结合在一起可以起到相互补偿的作用。卷积码分为两种:
(1)基本卷积码:
基本卷积码编码效率为,η=1/2, 编码效率较低,优点是纠错能力强。
(2)收缩卷积码:
如果传输信道质量较好,为提高编码效率,可以采样收缩截短卷积码。有编码效率为:η=1/2、2/3、3/4、5/6、7/8这几种编码效率的收缩卷积码。
编码效率高,一定带宽内可传输的有效比特率增大,但纠错能力越减弱。
3、Turbo码
1993 年诞生的Turbo 码,单片Turbo 码的编码/解码器,运行速率达40Mb/s。该芯片集成了一个32×32 交织器,其性能和传统的RS 外码和卷积内码的级联一样好。所以Turbo码是一种先进的信道编码技术,由于其不需要进行两次编码,所以其编码效率比传统的RS+卷积码要好。
4、交织
在实际应用中,比特差错经常成串发生,这是由于持续时间较长的衰落谷点会影响到几个连续的比特,而信道编码仅在检测和校正单个差错和不太长的差错串时才最有效(如RS只能纠正8个字节的错误)。为了纠正这些成串发生的比特差错及一些突发错误,可以运用交织技术来分散这些误差,使长串的比特差错变成短串差错,从而可以用前向码对其纠错,例如:在DVB-C系统中,RS(204,188)的纠错能力是8个字节,交织深度为12,那么纠可抗长度为8×12=96个字节的突发错误。
实现交织和解交织一般使用卷积方式。
交织技术对已编码的信号按一定规则重新排列,解交织后突发性错误在时间上被分散,使其类似于独立发生的随机错误,从而前向纠错编码可以有效的进行纠错,前向纠错码加交积的作用可以理解为扩展了前向纠错的可抗长度字节。纠错能力强的编码一般要求的交织深度相对较低。纠错能力弱的则要求更深的交织深度。
下图是交织的原理图:
一般来说,对数据进行传输时,在发端先对数据进行FEC编码,然后再进行交积处理。在收端次序和发端相反,先做去交积处理完成误差分散,再FEC解码实现数据纠错。另外,从上图可看出,交积不会增加信道的数据码元。
根据信道的情况不同,信道编码方案也有所不同,在DVB-T里由于由于是无线信道且存在多径干扰和其它的干扰,所以信道很“脏”,为此它的信道编码是:RS+外交积+卷积码+内交积。采用了两次交积处理的级联编码,增强其纠错的能力。RS作为外编码,其编码效率是188/204(又称外码率),卷积码作为内编码,其编码效率有1/2、2/3、3/4、5/6、7/8五种(又称内码率)选择,信道的总编码效率是两种编码效率的级联叠加。设信道带宽8MHZ,符号率为6.8966Ms/S,内码率选2/3,16QAM调制,其总传输率是27.586Mbps,有效传输率是27.586*(188/204)*(2/3)=16.948Mbps,如果加上保护间隔的插入所造成的开销,有效码率将更低。
在DVB-C里,由于是有线信道,信道比较“干净”,所以它的信道编码是:RS+交积。一般DVB-C的信道物理带宽是8MHZ,在符号率为6.8966Ms/s,调制方式为64QAM的系统,其总传输率是41.379Mbps,由于其编码效率为188/204,所以其有效传输率是41.379*188/204=38.134Mbps。
在DVB-S里,由于它是无线信道,所以它的信道编码是:RS+交积+卷积码。也是级联编码。
下图是DVB-T、DVB-C、DVB-S各自的信道编码方式:
5、伪随机序列扰码
进行基带信号传输的缺点是其频谱会因数据出现连“1”和连“0”而包含大的低频成分,不适应信道的传输特性,也不利于从中提取出时钟信息。解决办法之一是采用扰码技术,使信号受到随机化处理,变为伪随机序列,又称为“数据随机化”和“能量扩散”处理。扰码不但能改善位定时的恢复质量,还可以使信号频谱平滑,使帧同步和自适应同步和自适应时域均衡等系统的性能得到改善。
扰码虽然“扰乱”了原有数据的本来规律,但因为是人为的“扰乱”,在接收端很容易去加扰,恢复成原数据流。
实现加扰和解码,需要产生伪随机二进制序列(PRBS)再与输入数据逐个比特作运算。PRBS也称为m序列,这种m序列与TS的数据码流进行模2加运算后,数据流中的“1”和“0”的连续游程都很短,且出现的概率基本相同。
利用伪随机序列进行扰码也是实现数字信号高保密性传输的重要手段之一。一般将信源产生的二进制数字信息和一个周期很长的伪随即序列模2相加,就可将原信息变成不可理解的另一序列。这种信号在信道中传输自然具有高度保密性。在接收端将接收信号再加上(模2和)同样的伪随机序列,就恢复为原来发送的信息。
在DVB-C系统中的CA系统原理就源于此,只不过为了加强系统的保密性,其伪随机序列是不断变化的(10秒变一次),这个伪随机序列又叫控制字(CW)。
关于其发展,给你个幻灯片看
F. 求助,卷积码的软判决维特比译码的matlab仿真
区间大小是根据喜好确定的吧,越大量化就越准确
如果要进行软译码,那么解调器输出也应该是软的,
即概率信息,可能需要使用软解调算法
G. Turbo码的特点
Turbo码有一重要特点是其译码较为复杂,比常规的卷积码要复杂的多,这种复杂不仅在于其译码要采用迭代的过程,而且采用的算法本身也比较复杂。这些算法的关键是不但要能够对每比特进行译码,而且还要伴随着译码给出每比特译出的可靠性信息,有了这些信息,迭代才能进行下去。用于Turbo码译码的具体算法有:MAP(Maximum A Posterior)
Max-Log-MAP、Log-MAP和SOVA(Soft Output Viterbi Algorithm)算法。MAP算法是1974年被用于卷积码的译码,但用作Turbo码的译码还是要做一些修改;Max-Log-MAP与Log-MAP是根据MAP算法在运算量上做了重大改进,虽然性能有些下降,但使得Turbo码的译码复杂度大大的降低了,更加适合于实际系统的运用;Viterbi算法并不适合Turbo码的译码,原因就是没有每比特译出的可靠性信息输出,修改后的具有软信息输出的SOVA算法,就正好适合了Turbo码的译码。这些算法在复杂度上和性能上具有一定的差异,系统地了解这些算法的原理是对Turbo码研究的基础,同时对这些算法的复杂度和性能的比较研究也将有助于Turbo的应用研究。
Turbo码的仿真一般参考吴宇飞的经典程序。
此外,要想在移动无线系统中成功的使用Turbo码,首先要考虑在语音传输中最大延迟的限制。在短帧情况下的仿真结果表明短交织Turbo码在AWGN信道和Rayleigh衰落下仍然具有接近信道容量的纠错能力,从而显示出Turbo码在移动无线通信系统中非常广阔的应用前景。
Turbo码 (Turbo Code)
Turbo 码(Turbo Code)是一类应用在外层空间卫星通信和设计者寻找完成最大信息传输通过一个限制带宽通信链路在数据破坏的噪声面前的其它无线通信应用程序的高性能纠错码。有两类 Turbo 码在那里,块 Turbo 码和卷积 Turbo 码(CTCs),它们是相当不同的,因为它们使用不同的构件码,不同的串联方案和不同的 SISO 算法。
H. 译码的过程是
译码是编码的逆过程,同时去掉比特流在传播过程中混入的噪声。利用译码表把文字译成一组组数码或用译码表将代表某一项信息的一系列信号译成文字的过程称之为译码。译码器是电子技术中的一种多输入多输出的组合逻辑电路,负责将二进制代码翻译为特定的对象(如逻辑电平等),功能与编码器相反。译码器一般分为通用译码器和数字显示译码器两大类。 数字电路中,译码器(如n线-2n线BCD译码器)可以担任多输入多输出逻辑门的角色,能将已编码的输入转换成已编码的输出,这里输入和输出的编码是不同的。输入使能信号必须接在译码器上使其正常工作,否则输出将会是一个无效的码字。译码在多路复用、七段数码管和内存地址译码等应用中是必要的。
假设编码序列为( Λ) 1 2,m m m C = c c ,经过信道传输,接收端收到的信号为R (模拟信号或数字信号,取决于对信道的定义),那么接收端会顺理成章地在所有可能的码序列中寻找条件概率P(C R) m 最大的一个,认为它是最可能的发送序列。即:
C~ Arg{MAX P(C R)} m C mm=这种判决准则称为最大后验概率准则 (MAP)。
算法
viterbi译码算法是一种卷积码的解码算法。缺点就是随着约束长度的增加算法的复杂度增加很快。约束长度N为7时要比较的路径就有64条,为8时路径变为128条。(2<<(N-1))。所以viterbi译码一般应用在约束长度小于10的场合中。
算法规定t时刻收到的数据都要进行64次比较,就是64个状态每条路有两条分支(因为输入0或1),同时,跳传到不同的两个状态中去,将两条相应的输出和实际接收到的输出比较,量度值大的抛弃(也就是比较结果相差大的),留下来的就叫做幸存路径,将幸存路径加上上一时刻幸存路径的量度然后保存,这样64条幸存路径就增加了一步。在译码结束的时候,从64条幸存路径中选出一条量度最小的,反推出这条幸存路径(叫做回溯),得出相应的译码输出