- 1、本文档共13页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
tcm_网格编码(MATLAB程序).
TCM——格状编码调制
格状编码调制是为解决卫星通信中信道噪声对接收的影响及带宽的限制而产生的,其将信道编码与调制很好的结合起来,并且能发挥各自的优点,这种方法在不增加带宽和相同的信息速率下可获得3~6dB的功率增益。其中信道编码主要使用卷积码,为了适应卷积码则应用了多进制移相键控调制(亦可用多进制QAM),并且根据Ungerboack提出的规律:对经过编码的调制系统来说,其信道信号数目只要是未经编码的调制系统的两倍,便可得到足够的编码增益,对于每符号传送k比特的系统,应选择有m=2k+1点的扩张信号星座形式传送信息,对于信号集合划分规则等不作太多的阐述,本实验选择k=2,则m=8,即使用8QPSK调制器,为此,TCM结构图如下:
其中为了得到足够大的编码增益,未编码比特为k’=1,对这样的系统卷积码编码器的结构为:
对于卷积码的编码可用以下程序实现:
k=1;
g=[1 0 1;0 0 1];
int=input(xulie)
m=size(int,1);
y=zeros(1,m)
for n=1:m
y(:,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:m
s(:,3*i-2)=int(i,2)
end
s(:,3*m+1)=0;
s(:,3*(m+1)+1)=0;
for j=1:tyu
s(:,3*j-1)=z(2*j-1)
end;
for k2=1:tyu
s(:,3*k2)=z(2*k2)
end;
uu=reshape(s,3,tyu);
kk=uu;
(注意:对添零后卷积编码的处理),将编码处理后的信号进行调制,相位调制实现比较容易,对于通过信道后的解调,有两种实现途径:①接收信号通过相关器后,将接收到的信号矢量映射到M个可能发送的信号矢量上去,并且选出对应于最大映射的矢量;②亦可计算接收信号矢量的相位,并从M个可能发送的信号矢量中选出相位最接近的信号。本实验就是通过第二个途径实现的。其具体程序如下:
n1=gngauss(sgma);
n2=gngauss(sgma);
for i=1:tyu
f(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)3
R(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))
else
R(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:tyu
for j=0:7
cc(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)
对于解码则是编码的逆过程,在此将解调后的信号经反映射,变换为卷积码的码序列,应用viter
文档评论(0)