tcm_网格编码(MATLAB程序)
- 格式:doc
- 大小:60.50 KB
- 文档页数:12
OFDM系统中TCM调制解调器的设计与实现吴进【摘要】介绍了一种正交频分复用系统中调制解调器的设计方法,正交频分复用的关键技术是编码和调制.传统的信道编码是将编码与调制分开设计,而网格码是将编码与调制作为一个整体进行设计的.对提出的设计方案进行仿真,实验结果表明该方法是合理有效的.%A design method of the modem in OFDM system is introduced. The key technique in OFDM is encoding and modulation. The conventional channel encoding is to encode and modulate separately, but Trellis coded modulation implements encoding and modulation as a whole. The simulation results indicate that the design method is effective and practical.【期刊名称】《现代电子技术》【年(卷),期】2011(034)017【总页数】3页(P90-91,94)【关键词】正交频分复用;网格编码调制;解调;维特比;网格法【作者】吴进【作者单位】西安邮电学院电子工程学院,陕西西安710121【正文语种】中文【中图分类】TN911.5-340 引言正交频分复用(Orthogonal Frequency Division Multiplex,OFDM)是目前已知的频谱利用率较高的一种通信系统,它将数字调制、数字信号处理、多载波传输等技术有机结合在一起,使得它在系统的频谱利用率、功率利用率、系统复杂性方面综合起来有很强的竞争力,是支持未来移动通信特别是移动多媒体通信的主要技术之一[1]。
在使用OFDM系统进行数据传输时,调制解调器的设计成为关键。
y引言y调制信号空间的分解y TCM编码y TCM译码y性能分析y应用2y TCM(Trellis-Coded Modulation)是一种将信道编码和调制相结合的技术。
调制相结合的技术3y在采用相同调制信号的前提下,(n, k)分组码和(K,R=k/n)卷积码都是通过扩展信道带宽(1/R倍)来获得编码增益。
适合于功率受限而频带不受限的系统。
y在频带受限系统中,为了获得编码增益,即节省功率,必须采用不同的调制信号集。
4未进行8kb QPSK调制信道纠错编码8kbps4kHzQPSKR=2/3功率受限8kbps 12kbps 6kHz调制卷积码频带不受限pp8PSK R=2/3功率受限8kbps12kbps4kHz调制卷积码K>7频带受限5y如系统中信号未编码时采用QPSK调制信号传输;卷积码编码后为不增加信道带宽y经过R=2/3卷积码编码后,为不增加信道带宽,则需采用8PSK调制信号来传输;y而8PSK信号为了获得与QPSK信号相同的误码率,功率需增加4dB;y因此要求卷积码的编码增益超过4dB, 才能节省功率;y这就要求采用长约束长度(如K>7)卷积码,因而增加了设备的复杂度增加了设备的复杂度。
6技术相结合在不增y TCM技术通过将编码和调制技术相结合,在不增加信道带宽的前提下,获得显著的编码增益。
的编码增益y简单的4状态TCM可获得3dB的编码增益;y复杂的TCM可获得6dB,甚至更高的编码增益。
y这些增益是在不增加信道带宽或降低信息传输速率的前提下得到的。
7y TCM技术特别适合频带和功率同时受限的通信系统,如卫星通信系统。
y TCM技术最早在1976年由Ungerboeck提出。
目前对技术的论研究和实际应用得到速y TCM技术的理论研究和实际应用得到迅速发展。
G. David Forney, Jr., Gottfried Ungerboeck, “Modulation and Coding for LinearGaussian Channels”, IEEE Transactions on Information T heory, Vol.44, No. 6,October 1998.8y引言y调制信号空间的分解y TCM编码y TCM译码y性能分析y应用9调制信号空间的分解y所谓调制信号空间的分解,是将信号空间的调制信号与二进制序列一一对应起来。
TCM网格编码调制技术TCM网格编码调制技术Xxx学号xxxxxx摘要:TCM编码调制技术是一种将编码与调制有机结合起来的编码调制技术,这种方法既不降低频带利用率,也不降低功率利用率,而是以设备的复杂化为代价换取编码增益。
可使系统的频带利用率和功率资源同时得到有效利用。
利用状态记忆和分集映射来增大编码序列之间距离的办法,来提高编码增益。
通过计算相关增益,并比较结果来反映该编码方式的优势。
关键词TCM;编码增益;Viterbi译码;TCM t rellis coded modulationXxxStudent ID xxxAbstract: TCM coded modulation technique is a modulation techniques which combine coding and modulation coding , this method does not reduce the bandwidth efficiency, also power efficiency is not reduced, but the complexity of the device into consideration in exchange for the coding gain . Makes the system bandwidth and power resources both effectively. And use the state of the memory map to increase the distance between two different coding sequences to improve coding gain. By calculating the correlation gain, and comparing the simulation results to reflect the advantages of the encoding.Keywords TCM; coding gain; Viterbi decoding;1引言在传统的数字微波和数字卫星通信的传输设备中,编码技术是将编码与调制分开考虑,例如卷积码与分组码,在保持信息传输速率不变的前提下,可以通过扩大传输信号带宽换取误码性能的改善;当编码用于带限信道时,则可以通过增加符号数的方法提供编码所需的冗余度,但信号相位增加的同时,若要保持误码率不变,则必须增加信号发射功率,此时要求编码增益必须能够弥补由信号相位增加而引起的功率增加。
超短波电台中TCM 的研究与实现摘要:本文系统阐述了TCM 基本原理;介绍了TCM 设计思路和实现方法;分析了以卷积码级联MPSK 调制这样一种高效成熟的设计方案,并进行了系统的实验调试和性能测试。
关键词:网格编码调制(TCM );软件无线电;欧式自由距离;FPGA一、 概述数字移动通信和未来的个人通信都面临着带宽受限和功率受限的双重压力,TCM (网格编码调制Trellis-Coded Modulation )是一种将编码与调制联合考虑的纠错编码技术,该技术可以大大改善系统性能,从而被广泛应用到数字微波通信、卫星通信等各类高速数字传输系统中。
TCM 是Gottf ried Ungerboeck 于1982 年提出的一种新颖的、强有力的FEC 方案,在发送端能将差错控制编码同调制统一进行的多相位调制码。
它在接收端采用最大似然解调和解码,用维特比算法寻找最佳格状路径,以最小欧几里德距离为准则,采用软判决,解调出接收的信号序列。
该技术自问世伊始便得到了广泛的关注和研究。
经过十余年的发展,目前关于TCM 技术的研究已取得了极大的进展,其应用范围不断扩大,从最初的话带传输推广至卫星通信、短波通信等诸多通信领域,并有较多的ASIC 芯片问世,数据传输速率高达90Mbit/ s 。
二、 TCM 设计思路最佳的编码调制系统应按编码序列的欧式距离为调制设计的量度。
这就要求必须将编码器和调制器当作一个统一的整体进行综合设计,使得编码器和调制器级联后产生的编码信号序列具有最大的欧式自由距离。
从信号空间的角度看,这种最佳编码调制的设计实际上是一种对信号空间的最佳分割。
这就是近几年来发展起来的网格编码调制技术的基本原理。
对于限带信道,有两类网格编码调制,第一类是将卷积码和多电平(或多相位)信号组合起来,这类网格编码调制是由Ungerboeck 最先提出的。
第二类网格编码调制则是采用具有特定调制指数或频偏的连续相位移频键控(CPFSK)。
4B/3D(code)——4 Binary/3 ternary (code)4二进制/3三电平(码)AA/D——Analog/Digital数/模AAL-—ATM adaptation layer ATM适配层AC. ac。
-—Alternating Current 交流ACK——ACKnowledge确认ADC-—Application data center集中托管式数据应用中心-—Analog—to-Digital Converter模拟/数字转换器(模数变换器)ADPCM-—Adaptive DPCM自适应差分脉(冲编)码调制ADPCM-—Adaptive DPCM自适应差分脉冲编码调制ADSL--Asymmetric Digital Subscriber Line非对称数字用户环路ADSL—-Asymmetric Digital Subscribers Loop非对称数字用户环路AM——Amplitude Modulation 幅度调制、调幅AM——Amplitude Modulation振幅调制(调幅)AMI——Alternate Mark Inverse传号交替反转ANSI--American National Standards Institute美国国家标准学会APK -—Amplitude Phase Keying幅相键控APT--the Advanced Packaging Tool Ubuntu软件包管理系统的高级界面ARQ--Automatic Repeat reQuest自动要求重发ASCII-—American Standard Code for Information Interchange美国标准信息交换码ASIC-—Application Specific Integrated Circuit专用集成电路ASK—-Amplitude Shift Keying振幅键控AT&T--American Telephone & Telegraph美国电话电报公司ATM-—Automated Tellermachine自动取款机—-Asynchronous Transfer Mode 异步转移(传递)模式AU--Administration Unit管理单元AUG—-Administration Unit Group管理单元群BBCD--Binary Coded Decimal二十进制B-ISDN--Broadband ISDN宽带综合业务数字网BPF-—Bandpass Filter带通滤波器BRAN—-Broadband Radio Access Network宽带射频接入网BRI--Basic Rate Interface基本速率接口CCAS——Channel Associated Signaling随路信令CCITT—-Consultive Committee for International Telegraph and Telephone国际电报电话咨询委员会C—-Container容器CCS-—Common Channel Signaling共路信令CDMA——Code Division Multiple Access码分多址CDM—-Code Division Multiplexing码分复用CELP-—Code Excited Linear Prediction码激励线性预测CLP--Cell Lose Priority信元丢失优先等级CMI—-Coded Mark Inversion传号反转COR-PSK-—Correlative Phase-Shift Keying相关移相键控CPU-—Central Processing Unit中央处理器CRC-—Cyclic Redundancy Check循环冗余校验CRT —-Cathode Ray Tube 阴极射线管(显示器)——Chinese Remainder Theorem 中国剩余定理CSMA/CD--Carrier Sense Multiple Access/Collision Detection载波侦听/冲突检测DDAC——Digital Audio Compress数/模转装换器(数字模拟转换器)DAMA-—Demand Assignment Multiple Address按需分配多址DC。
V.32标准下32QAM –TCM 的编程实现方敏王忠田远富(四川大学电气信息学院,四川成都,610065)摘要:介绍TCM的基本原理,以及如何编程实现ITU-TV.32建议给出的8状态32QAM网格编码调制,包括卷积码编码,差分编码及维特比译码等部分。
关键字:TCM;32QAM;卷积编码;差分编码;维特比译码32QAM-TCM Program Execution in V.32FANG min, Wang zhong TIAN Yuanfu (Electrical Engineering college,Sichuan University, Chengdu 610065,China)Abstract:This paper introduces the fundamental theory of TCM (Trellis Coded Modulation) and how to execute the 32QAM-TCM program with the standard given by ITU-TV.32, including convolutional encoding, differential encoding and Viterbi decoding.Key words:TCM;32QAM ;convolutional encoding;differential encoding;Viterbi decoding0 引言80年代初,Ungerboeck提出了一种以“集合划分映射”思想为基础的格状编码调制技术,简称TCM。
TCM克服了传统信道编码的缺点,把调制与编码结合起来,在保持频带利用率基本不变的条件下,增加信道中传输信号集中的信号状态数目,利用其冗余度进行抗干扰编码,从而提高能量利用率,可获得3~6dB的功率增益,是一种高效调制方法。
ITU-T给出的V.32标准是9600bps高速modem的标准调制协议,它定义了8状态32QAM网格编码调制的编译码方式。
TCM——格状编码调制格状编码调制是为解决卫星通信中信道噪声对接收的影响及带宽的限制而产生的,其将信道编码与调制很好的结合起来,并且能发挥各自的优点,这种方法在不增加带宽和相同的信息速率下可获得3~6dB的功率增益。
其中信道编码主要使用卷积码,为了适应卷积码则应用了多进制移相键控调制(亦可用多进制QAM),并且根据Ungerboack提出的规律:对经过编码的调制系统来说,其信道信号数目只要是未经编码的调制系统的两倍,便可得到足够的编码增益,对于每符号传送k比特的系统,应选择有m=2k+1点的扩张信号星座形式传送信息,对于信号集合划分规则等不作太多的阐述,本实验选择k=2,则m=8,即使用8Q PSK调制器,为此,TCM结构图如下:卷积码编码器8φPSK调制器信道8φPSK解调器最大似然维特比译码器输入噪声输出其中为了得到足够大的编码增益,未编码比特为k’=1,对这样的系统卷积码编码器的结构为:x2x1R1R211111111111101234567去8φPSK调制器+y2y1y0对于卷积码的编码可用以下程序实现:k=1;g=[1 0 1;0 0 1];int=input('xulie')m=size(int,1);y=zeros(1,m)for n=1:my(:,n)=int(n,1)end;z=cnv_encd(g,k,y);并且在卷积码编码过程中,添零数为k1*(L-1)=2,(注:L=3),再对序列进行图示的映射,可通过以下程序实现:tyu=length(z)/2;s=zeros(1,3*tyu);for i=1:ms(:,3*i-2)=int(i,2)ends(:,3*m+1)=0;s(:,3*(m+1)+1)=0;for j=1:tyus(:,3*j-1)=z(2*j-1)end;for k2=1:tyus(:,3*k2)=z(2*k2)end;uu=reshape(s,3,tyu);kk=uu';(注意:对添零后卷积编码的处理),将编码处理后的信号进行调制,相位调制实现比较容易,对于通过信道后的解调,有两种实现途径:①接收信号通过相关器后,将接收到的信号矢量映射到M个可能发送的信号矢量上去,并且选出对应于最大映射的矢量;②亦可计算接收信号矢量的相位,并从M个可能发送的信号矢量中选出相位最接近的信号。
本实验就是通过第二个途径实现的。
其具体程序如下:n1=gngauss(sgma);n2=gngauss(sgma);for i=1:tyuf(i)=bin2deci(kk(i,:));u=cos(2*pi*fc*t+2*pi*f(i)/8);if ((f(i)>=3)&(f(i)<7))R(i)=sqrt(Es)*cos(2*pi*f(i)/8)+n1;H(i)=sqrt(Es)*sin(2*pi*f(i)/8)+n2;T(i)=pi+atan(H(i)/R(i))elseif f(i)<3R(i)=sqrt(Es)*cos(2*pi*f(i)/8)+n1;H(i)=sqrt(Es)*sin(2*pi*f(i)/8)+n2;T(i)=atan(H(i)/R(i))elseR(i)=sqrt(Es)*cos(2*pi*f(i)/8)+n1;H(i)=sqrt(Es)*sin(2*pi*f(i)/8)+n2;T(i)=2*pi+atan(H(i)/R(i))end;end;cc=zeros(tyu,8);dd=zeros(tyu,8);for i=1:tyufor j=0:7cc(i,j+1)=2*pi*j/8-T(i)dd=abs(cc)end;if dd(i,1)==min(dd(i,:))mm(i)=0;elseif dd(i,2)==min(dd(i,:))mm(i)=1;elseif dd(i,3)==min(dd(i,:))mm(i)=2;elseif dd(i,4)==min(dd(i,:))mm(i)=3;elseif dd(i,5)==min(dd(i,:))mm(i)=4;elseif dd(i,6)==min(dd(i,:))mm(i)=5;elseif dd(i,7)==min(dd(i,:))mm(i)=6;else dd(i,8)==min(dd(i,:))mm(i)=7;end;end;out=reshape(mm,tyu,1)对于解码则是编码的逆过程,在此将解调后的信号经反映射,变换为卷积码的码序列,应用viterbi实现解码:k1=size(out,1);输出行数z=zeros(3,k1)for i=1:k1m1=deci2bin(out(i,1),3)z(:,i)=m1'end;hh=reshape(z,1,3*k1)ty=zeros(k1-2,2);for i=1:k1-2ty(i,2)=hh(:,3*i-2);end;for j=1:k1hh(:,2*j-1)=[];end;[ww,tt,ee]= VITERBI (g,k,hh)for i=1:k1-2ty(i,1)=ww(i);end;ip=reshape(int,1,2*m);op=reshape(ty,1,2*m);当然在此基础上可进行误码率的分析,最简单的方法是将以上ip,op对应元素比较,若不相等,计数器加‘1’,可以使用以下程序如下:numoferr=0;for w=1:2*mif ip(w)~=op(w)numoferr=numoferr+1;end;end;对此程序的一点说明:此程序可实现误码的估计,为了从真正意义上对其优点的认识,可仿真8Q PSK的误码性能,可调用以下程序:function [pb]=smld(snr_in_dB)N=input(‘number’);Eb=1;snr=10^(snr_in_dB/10);sgma=sqrt(1/(2*snr));s000=[1 0];s001=[sqrt(2)/2 sqrt(2)/2];s011=[0 1];s010=[-sqrt(2)/2 sqrt(2)/2];s110=[-1 0];s111=[-sqrt(2)/2 -sqrt(2)/2];s101=[0 -1];s100=[sqrt(2)/2 -sqrt(2)/2];for i=1:N,temp=rand;if (temp<0.125),dsource1(i)=0;dsource2(i)=0;dsource3(i)=0;elseif (temp<0.25),dsource1(i)=0;dsource2(i)=0;dsource3(i)=1elseif (temp<0.375),dsource1(i)=0;dsource2(i)=1;dsource3(i)=0;elseif (temp<0.5),dsource1(i)=0;dsource2(i)=1;dsource3(i)=1;elseif (temp<0.625),dsource1(i)=1;dsource2(i)=0;dsource3(i)=0;elseif (temp<0.75),dsource1(i)=1;dsource2(i)=0;dsource3(i)=1;elseif (temp<0.875),dsource1(i)=1;dsource2(i)=1;dsource3(i)=0;elsedsource1(i)=1;dsource2(i)=1;dsource3(i)=1;end;end;numoferr=0;for i=1:N,n(1)=gngauss(sgma);n(2)=gngauss(sgma);if ((dsource1(i)==0)&(dsource2(i)==0)&dsource3(i)==0), r=s000+n;elseif ((dsource1(i)==0)&(dsource2(i)==0)&(dsource3(i)==1)), r=s001+n;elseif((dsource1(i)==0)&(dsource2(i)==1)&(dsource3(i)==0)),r=s010+n;elseif((dsource1(i)==0)&(dsource2(i)==1)&(dsource3(i)==1)),r=s011+n;elseif((dsource1(i)==1)&(dsource2(i)==0)&(dsource3(i)==0)),r=s100+n;elseif((dsource1(i)==1)&(dsource2(i)==0)&(dsource3(i)==1)),r=s101+n;elseif((dsource1(i)==1)&(dsource2(i)==1)&(dsource3(i)==0)),r=s110+n;else((dsource1(i)==1)&(dsource2(i)==1)&(dsource3(i)==1)),r=s111+n;end;c000=dot(r,s000);c001=dot(r,s001);c010=dot(r,s010);c011=dot(r,s011);c100=dot(r,s100);c101=dot(r,s101);c110=dot(r,s110);c111=dot(r,s111);c_max=max([c000 c001 c010 c011 c100 c101 c110 c111]);if (c000==c_max),decis1=0;decis2=0;decis3=0;elseif (c001==c_max),decis1=0;decis2=0;decis3=1;elseif (c010==c_max),decis1=0;decis2=1;decis3=0;elseif (c011==c_max)decis1=0;decis2=1;decis3=1;elseif (c100==c_max)decis1=1;decis2=0;decis3=0;elseif (c101==c_max)decis1=1;decis2=0;decis3=1;elseif (c110==c_max)decis1=1;decis2=1;decis3=0;elsedecis1=1;decis2=1;decis3=1;end;if (decis1~=dsource1(i)),numoferr=numoferr+1;end;if (decis2~=dsource2(i)),numoferr=numoferr+1;end;if (decis3~=dsource3(i)),numoferr=numoferr+1;end;end;pb=numoferr/(3*N);对TCM的仿真调用程序:function [p]=smld2(snr_in_dB)N=input('number');Es=3;snr=10^(snr_in_dB/10);sgma=sqrt(1/(2*snr));k=1;g=[1 0 1;0 0 1];for i=1:N,temp=rand;if (temp<0.25),dsource1(i)=0;dsource2(i)=0;elseif (temp<0.5)dsource1(i)=0;dsource2(i)=1;elseif (temp<0.75)dsource1(i)=1;dsource2(i)=0;elsedsource1(i)=1;dsource2(i)=1;end;end;int=zeros(1,2*N);for o=1:N,int(1,2*o-1)=dsource2(o);end;for b=1:N,int(1,2*b)=dsource1(b);end;rrr=reshape(int,2,N);eee=rrr';m=size(eee,1);y=zeros(1,m)for n=1:my(:,n)=eee(n,1)end;z=cnv_encd(g,k,y);tyu=length(z)/2;s=zeros(1,3*tyu);for i=1:ms(:,3*i-2)=eee(i,2)ends(:,3*N+1)=0;s(:,3*(N+1)+1)=0;for j=1:tyus(:,3*j-1)=z(2*j-1);end;for k2=1:tyus(:,3*k2)=z(2*k2);end;uu=reshape(s,3,tyu);kk=uu';n1=gngauss(sgma);n2=gngauss(sgma)for i=1:tyuf(i)=bin2deci(kk(i,:));if ((f(i)>=3)&(f(i)<7))R(i)=sqrt(Es)*cos(2*pi*f(i)/8)+n1; H(i)=sqrt(Es)*sin(2*pi*f(i)/8)+n2; T(i)=pi+atan(H(i)/R(i));elseif f(i)<3R(i)=sqrt(Es)*cos(2*pi*f(i)/8)+n1; H(i)=sqrt(Es)*sin(2*pi*f(i)/8)+n2; T(i)=atan(H(i)/R(i));elseR(i)=sqrt(Es)*cos(2*pi*f(i)/8)+n1; H(i)=sqrt(Es)*sin(2*pi*f(i)/8)+n2; T(i)=2*pi+atan(H(i)/R(i));end;end;cc=zeros(tyu,8);dd=zeros(tyu,8);for i=1:tyufor j=0:7cc(i,j+1)=2*pi*j/8-T(i);dd=abs(cc);end;if dd(i,1)==min(dd(i,:))mm(i)=0;elseif dd(i,2)==min(dd(i,:))mm(i)=1;elseif dd(i,3)==min(dd(i,:))mm(i)=2;elseif dd(i,4)==min(dd(i,:))mm(i)=3;elseif dd(i,5)==min(dd(i,:))mm(i)=4;elseif dd(i,6)==min(dd(i,:))mm(i)=5;elseif dd(i,7)==min(dd(i,:))mm(i)=6;else dd(i,8)==min(dd(i,:))mm(i)=7;end;end;out=reshape(mm,tyu,1);k1=size(out,1);z=zeros(3,k1) ;for i=1:k1m1=deci2bin(out(i,1),3); z(:,i)=m1';end;hh=reshape(z,1,3*k1);ty=zeros(k1-2,2);for i=1:k1-2ty(i,2)=hh(:,3*i-2);end;for j=1:k1hh(:,2*j-1)=[];end;[ww,tt,ee]=viterbi(g,k,hh); for i=1:k1-2ty(i,1)=ww(i)end;ip=reshape(eee,1,2*N)op=reshape(ty,1,2*N)numoferr=0;for w=1:2*N,if ip(w)~=op(w)numoferr=numoferr+1;end;end;p=numoferr/(2*N)对误码率图的一点说明,其中‘0’代表不经过信道编码,直接将信号送入8Q PSK调制器,解调后对其误码率的仿真,‘*’则代表使用TCM方式后对误码率的仿真,两者对比后与理论之间的差别所产生的原因有以下几点:①仿真时所取的样点是有局限的,以上两图分别是样点数为200、420点的仿真图,它们的差别就说明了样点数的选择对系统性能的仿真是很重要的;②解调后的判决途径是不一样的,仅用8Q PSK方式是采用以上所提到的途径Ⅰ,而TCM方式是途径Ⅱ,虽说两者是等价的,但对于仿真系统还是稍有区别,不过从以上两图可看出TCM对性能的改善。