1、GSM TCH/FS 信道编译码仿真与分析 0213102 8 号 刘奇 1北京邮电大学课程设计报告题目:GSM TCH/FS 信道编译码仿真与分析班级:0213102专业:信息工程姓名:刘奇导师:邵志嘉完成日期:2005 年 07 月 12 日GSM TCH/FS 信道编译码仿真与分析 0213102 8 号 刘奇 2目录:摘要.03第一章 设计概要. 03一设计题目. 03二设计要求. 03三设计环境. 03第二章 基本原理. 03一循环码. 03二卷积码. 04三交织码. 05四GSM TCH/FS 系统标准. 051GSM 系统简介 . 052TCH/FS 技术标准. 06第三章 设计
2、方案. 06第四章 程序块设计与调试. 08一外编码及其译码. 08二内编码及其译码. 08三交织编码及其译码. 10四信道设计. 11五模块性能测试. 12第五章 系统性能测试与分析. 14一原始信道性能测试与分析. 15二编码改善后的信道性能测试与分析. 16三重点问题的研究. 17第六章 心得体会. 19第七章 参考文献. 19附录: 源程序. 19致谢 . 19GSM TCH/FS 信道编译码仿真与分析 0213102 8 号 刘奇 3摘要:GSM 全速率话音信道(TCH/FS)的信道编码是对话音编码输出每一个话音帧(20ms )260 bit ,13 kbps 话音数据序列逐帧进行编
3、码,根据 GSM 关于TCH/FS 的技术标准,编码过程为:其中,具体实现为:外编码:(50,53,2) 循环截短编码,重排并加尾比特;内编码:(2,1,4) 卷积编码;重排与交织:交织度为 8;关于性能测试:所有编译码模块采用 MATLAB 仿真并通过,仿真内容包括:各个模块的性能测试,高斯噪声干扰下的信道误码率测试,高斯+突发干扰下的信道误码率测试,重点研究问题为,卷积加交织编码对于突发信道的改善及各种情况的讨论。设计概要:一设计题目:GSM TCH/FS 信道编译码仿真与分析;二设计要求:根据 TCH/FS 信道的技术标准,用 MATLAB 语言编写程序模块,实现编译码模块功能,仿真 T
4、CH/FS 信道各模块,检验与测试它们的性能,对 TCH/FS 信道的纠错性能进行仿真及分析。三设计环境:MATLAB6.1。基本原理:1外编码(循环码):外编码采用 截短循环码(53,50,2) ,加奇偶校验比特:将 1 级的前 50 比特送入循环码编码器,进行(53,50,2)截短循环码编码。该循环码的生成多项式为:,)(3DgGSM TCH/FS 信道编译码仿真与分析 0213102 8 号 刘奇 4重排并加尾比特:将 1 级的 182 比特d(0),d(181)和 3 位奇偶校验比特 p(0),p(1),p(2)进行重排:偶数信息比特在前,奇偶校验比特居中,奇数信息比特在后。再加 4
5、比特 0 作为尾比特,得外编码输出:u(0),u(1),u(188)其中,u(k)=d(2k) 和 u(184-k)=d(2k+1) k=0,1,90u(91+k)=p(k) k=0,1,2u(k)=0 (尾比特) k=185,186,187,1882内编码(卷积码):卷积码是一种非线性码,其与分组码的主要差别在于卷积码编码器有记忆,在任意给定的时段,编码器的 n 个输出不仅与此时段的 k 个输入有关,而且也与前 m 个输入(记忆器件中存储的)有关。因此卷积一般可采用(n,k,m)来表示,其中 k 为输入码元数,n 为输出码元数,m 为编码器中的存储器数。一般,n 和 k 选较小的值,m 可取
6、较大值,以获得既简单又高性能的信道编码。卷积码是用来纠正独立随机差错的。本实验中,将外编码得到的 189 比特进行卷积码编码,该卷积码的码率为 1/2,生成多项式为: ;4310DG431DG卷积码输出 378 比特,再将 2 级的 78 比特加于其后,得内编码输出:C(0),C(1),C(455)GSM TCH/FS 信道编译码仿真与分析 0213102 8 号 刘奇 53交织码(交织与重排): 交织编码是一种信道改造技术,它通过信号设计将一个原来属于突发差错的有记忆信道改造为基本上是独立差错的随机无记忆信道。将内编码(卷积码)输出得到的 456 比特按如下公式完成重排和交织:i(B,j)=
7、C(n,k) k=0,1,455 n=0,1,N,N+1,B=B0+4n+(k mod 8)J=2(49k) mod 57+(k mod 8) div 44.1GSM 系统简介:自 1978 年 AMPS 蜂窝模拟移动通信网建成,先后研制出第二代(2G )的 GSM、IS-95 ,和第三代(3G)的 WCDMA、 cdma2000, 及正在研制更新一代的数字移动通信系统。当今,无线移动通信已成为人们日常生活中重要通信方式之一 。上世纪八十年代末,北欧 GSMGroup Special Mobile 开发出 GSMGlobalSystem of Mobile communications 数字蜂
8、窝移动通信系统。该系统面世后,立即风靡全球,并引发了我国移动通信的热潮,中国移动 GSM 系统为国内多数用户使用。GSM 信道编码方案是由分组码、卷积码、交织器构成的。GSM TCH/FS 信道编译码仿真与分析 0213102 8 号 刘奇 64.2GSM TCH/FS 信道编码技术标准简介:信道和传输类型外编码(分组码) 内编码(卷 积码)交织度TCH/FS (260)1 类2 类截短循环码(53,50,2) 182+3+478+0+0卷积码(码率 1/2)456(378)(78)8设计方案:根据 GSM 建议 5.03 对 TCH/FS 编码的规范,对 TCH/FS 系统设计如下仿真方案:
9、1.对所测试码元序列,以矩阵形式实现。2分别编写各模块,并使对应的编,译码模块自环以检验其正确性。3分别测试外编码的检错性能,内编码对高斯干扰的纠错能力以及对突发错误的很有限的纠错能力,内编码加重排交织后对高斯干扰和突发干扰的纠错能力。4测试整个系统对高斯干扰的纠错能力,对高斯干扰和突发干扰的纠错能力。如下图所示:数据对应着矩阵的大小。GSM TCH/FS 信道编译码仿真与分析 0213102 8 号 刘奇 7以系统在高斯干扰信道的性能测试为例,说明测试流图:Eb/N0=-6:2:10YN关于其他信道的测试过程与该图示类似,在此不一一列出。输入话音帧数开 始计算高斯干扰理论误码率Eb/N0=-
10、6计算有编码时第一类编码对高斯干扰的误码率计算有编码时第二类编码对高斯干扰的误码率Eb/N0=Eb/N0+2Eb/N0=10作误码曲线结束返回GSM TCH/FS 信道编译码仿真与分析 0213102 8 号 刘奇 8程序块设计与调试:各功能程序块由老师提供,经阅读代码,没有发现错误,并自己作了相应的注释。此部分工作主要为自环程序设计,测试程序块实现的功能无误。一外编码与译码测试:自环程序代码:fstest_ex.mecho offclear allclose all%信息序列 dsignal=round(rand(1,260);ex_en_sig=T_FS_EX_EN(signal);%外编
11、码flag=T_FS_EX_DE(ex_en_sig);%外编码解码if(flag=0)display “good!“elsedisplay “error!“end测试结果:good!结果分析:在没有任何干扰的情况下,外编码的译码结果是无误的,证明外编码程序是正确的。遇到的问题及分析:外编码与译码自环时,如果信道有干扰(不论是何种干扰) ,自环结果都是“error!”,这说明外编码与译码有检错功能,却没有丝毫纠错能力。二内编码与译码测试:自环程序代码:test0.mecho offclear allclose all%桢个数N=10;GSM TCH/FS 信道编译码仿真与分析 0213102
12、8 号 刘奇 9%信息序列signal=round(rand(1,N*260);%G,kG=1 0 0 1 1;1 1 0 1 1;k=1;%编码u=viterbi_encoder(G,k,signal);%解码rev_sig,survivor_state,cumulated_metric=viterbi_decoder(G,k,u);%误码率err_rate=(length(find(signal=rev_sig)/length(signal)if(err_rate=0)display “good!“elsedisplay “error!“end测试结果:good!结果分析:测试结果显示,卷
13、积编译码模块前后输入数据完全一致,说明卷积编译码程序正确。三交织编码与译码测试:自环程序代码:jiaozhi-test.mecho offclear allclose all%信息序列C=round(rand(1,456*3);u=INTER_WEAVE_8(C);%交织D=COUNTER_WEAVE_8(u);%去交织if(length(find(D=C)=0)display “good!“elsedisplay “error!“endGSM TCH/FS 信道编译码仿真与分析 0213102 8 号 刘奇 10测试结果:good!结果分析:在没有任何干扰的情况下,交织编译码前后数据完全一致
14、,证明程序本身没有问题。遇到的问题及分析:同外编译码模块类似,在信道有干扰的情况下(不论是何种干扰) ,交织编译码都出错,说明交织编译码模块没有任何纠错能力。从后面的实验与分析可知,交织编译码主要是和卷积编译码配合应对突发错误信道。四信道设计:高斯干扰信道,即给信号加上加性高斯噪声 sgma*randn(size(u),部分关键代码:E=1;snr=10(snr_in_dB/10);sgma=sqrt(E/snr)/2);u=signal;u=2*u-1;u=sign(u+sgma*randn(size(u)+eps);u=(u+1)/2;高斯干扰加突发错误信道,即在前述信道上再加上突发错误,
15、Noise=BurstNoise(N_Interval,N_Length,length(u);u=mod(u+Noise,2);在重点研究问题的测试中,修改老师提供的突发错误产生程序:BurstNoise 得到新的突发错误产生程序:BurstNoise1;程序接口为:BurstNoise1(rate,N_Length,length(u)Rate:信道原始误码率;N_Length:突发长度;length(u):输入信号矢量维数;代码:function N=BurstNoise(rate,Length,Sig_Length)N_Interval=round(Length/rate);N=zeros(1,Sig_Length);for i=1:N_Interval:Sig_Length;start_point1=round(i+(N_Interval/2)*rand);start_point=max(i,start_point1);end_point=min(Sig_Length,min(start_point1+Length-1,i+N_Interval-1);