1、目 录摘要IAbstractII1设计任务及要求11.1设计任务11.2 设计要求12 PCM(脉冲编码调制)编译码22.1脉冲编码调制基础原理22.2 逐次比较法编码32.3 折叠二进制码原理42.4逐次比较法译码原理52.5 MATLAB编程实现PCM编译码63 HDB3码编解码73.1 AMI码编码基础原理73.2 HDB3码编码基础原理73.3 HDB3码译码83.4 MATLAB实现HDB3码编解码94 汉明码编译码104.1汉明码结构原理104.2 MATLAB实现汉明码编译码125 2PSK调制和解调135.1数字调制技术135.2 二进制相移键控(2PSK)基础原理135.3
2、MATLAB实现2PSK调制和解调155.4 AWGN信道模拟166 MATLAB软件仿真176.1 MATLAB介绍176.2 发送端仿真结果176.2.1 PCM编码仿真176.2.2 HDB3码及汉明码编码仿真186.2.3 2PSK调制和AWGN信道仿真186.3 接收端仿真结果196.3.1 2PSK解调仿真196.3.2 汉明码及HDB3码解码仿真196.3.3 PCM解码仿真206.4 仿真结果分析207 小结和体会218 参考文件22附录23摘 要 通信系统是一个十分复杂系统,在具体实现上有多个多样方法,但总过程却是含有共性。对于一个模拟信号数字化传输,过程可分为数字化,信源编
3、解码,信道编解码,调制解调,加扰等。本试验利用MATLAB实现了PCM编码,HDB3码,汉明码,PSK调制,AWGN及对应解调过程,完整实现了一个通信系统全部过程。 MATLAB是由美国Mathworks企业公布关键面对科学计算、可视化和交互式程序设计高科技计算环境。它将数值分析、矩阵计算、科学数据可视化和非线性动态系统建模和仿真等很多强大功效集成在一个易于使用视窗环境中,为科学研究、工程设计和必需进行有效数值计算众多科学领域提供了一个全方面处理方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)编辑模式,代表了当今国际科学计算软件优异水平。关键字:通信系统,调制,解调,
4、MATLAB AbstractCommunication system is a very complicated system in the implementation of a variety of methods. But the process has general characters. For a analog signal digital transmission, the process can be divided into digital, source decoding, channel decoding, modem, scrambling, etc. This e
5、xperiment using MATLAB the delta modulation, Miller code, hamming code, PSK modulation, AWGN and the corresponding demodulation process, complete implements a communication system of all process.MATLAB is a high-level technical computing language and interactive environment for algorithm development
6、, data visualization, data analysis, and numeric computation. Using MATLAB, you can solve technical computing problems faster than with traditional programming languages, such as C, C+, and Fortran.Key words:communication system,modulation,demodulation,MATLAB1设计任务及要求1.1设计任务能够用软件(如MATLAB),也能够在硬件试验系统平
7、台上完成一个经典通信系统(以下图1所表示)仿真。图1.1 经典通信系统组成1.2 设计要求1、系统发送端要求:模拟信源数字化基带码信道码调制信道类型一时间函数PCMHDB3码汉明码PSKAWGN2、在接收端解调、信道解码、基带解码、数模转换和发送端一一对应。3、要完成整个系统各步骤和整个系统仿真,最终在接收端或正确或近似地再现输入(信源),完成课程设计汇报。2 PCM(脉冲编码调制)编译码2.1脉冲编码调制基础原理把从模拟信号抽样、量化,直到变换成为二进制符号基础过程,称为脉冲编码调制,简称脉码调制。如:在下图中,模拟信号抽样值为3.15,3.96,5.00,6.38,6.80和6.42。若根
8、据“四舍五入”标准量化为整数值,则抽样值量化后变为3,4,5,6,7和6。在根据二进制数编码后,量化值(quantized value)就变成二进制符号:011、100、101、110、111和110。图2.1 二进制编码原理图2.2 PCM系统原理方框图2.2 逐次比较法编码上节编码器(a)中量化器和编码器常组成一个不能分离编码电路,这种编码电路有不一样实现方案,最常见一个方案成为逐次比较法编码,其基础原理方框图以下图所表示。比较器保持电路恒流源记忆电路Is Iw , ci =1Is Iw , ci = 0c1, c2, c3Is Iw输入信号抽样脉冲图2.3 逐次比较法编码原理方框图图中示
9、出一个3位编码器。其输入信号抽样脉冲值在0和7.5之间。它将输入模拟抽样脉冲编成3位二进制编码c1 c2 c3。图中输入信号抽样脉冲电流Is由保持电路短时间保持,并和多个称为权值电流标准电流Iw逐次比较。每比较一次,得出1位二进制码。权值电流Iw是在电路中预先产生。Iw个数决定于编码位数,现在共有3个不一样Iw值。因为表示量化值二进制码有3位,即c1c2c3。它们能够表示8个十进制数,从0至7,以下表所表示。 表1 编码表量化值c1c2c3量化值c1c2c300004100100151012010611030117111所以,若根据“四舍五入”标准编码,则此编码器能够对-0.5至+7.5之间输
10、入抽样值正确编码。由此表可推知,用于判定c1值权值电流Iw=3.5,即若抽样值Is 3.5,则比较器输出c1 = 1。c1除输出外,还送入记忆电路暂存。第二次比较时,需要依据此暂存c1值,决定第二个权值电流值。若c1 = 0,则第二个权值电流值Iw = 1.5;若c1 = 1,则Iw = 5.5。第二次比较根据此规则进行:若Is Iw,则c2 = 1。此c2值除输出外,也送入记忆电路。在第三次比较时,所用权值电流值须依据c1 和c2值决定。如如,若c1 c2 = 0 0,则Iw = 0.5;若c1 c2 = 1 0,则Iw = 4.5;依这类推。2.3 折叠二进制码原理表1给出二进制编码是根据
11、二进制数自然规律排列,称为自然二进制码。但这不是唯一编码方法,常见还有折叠二进制码。折叠二进制码是用最高位表示电压极性正负,而用其它位来表示电压绝对值。这就是说,在用最高位表示极性后,双极性电压能够采取单极性编码方法处理,从而使编码电路和编码过程大为简化。折叠码另一个优点是误码对于小电压影响较小。在13折线法中采取折叠码有8位。其中第一位c1表示量化值极性正负。后面7位分为段落码和段内码两部分,用于表示量化值绝对值。其中第2至4位(c2 c3 c4)是段落码,累计3位,能够表示8种斜率段落;其它4位(c5 c8)为段内码,能够表示每一段落内16种量化电平。段内码代表16个量化电平是均匀划分。所
12、以,这7位码总共能表示27 128种量化值。在下面表中给出了段落码和段内码编码规则。表2 段落码编码规则段落序号段落码c2 c3 c4段落范围 (量化单位)段落序号段落码 c2 c3 c4段落范围 (量化单位)811110242048401164128711051210243010326461012565122001163251001282561000016表3 段内码编码规则量化间隔段内码c5 c6 c7 c8量化间隔段内码c5 c6 c7 c8量化间隔段内码c5 c6 c7 c8量化间隔段内码c5 c6 c7 c815111111101170111300111411101010106011
13、020010131101910015010110001121100810004010000000在上述编码方法中,即使段内码是按量化间隔均匀编码,不过因为各个段落斜率不等,长度不等,故不一样段落量化间隔是不一样。其中第1和2段最短,斜率最大,其横坐标x归一化动态范围只有1/128。再将其等分为16小段后,每一小段动态范围只有(1/128)*(1/16) = 1/2048。这就是最小量化间隔,后面将此最小量化间隔(1/2048)称为1个量化单位。第8段最长,其横坐标x动态范围为1/2。将其16等分后,每段长度为1/32。假若采取均匀量化而仍期望对于小电压保持有一样动态范围1/2048,则需要用1
14、1位码组才行。现在采取非均匀量化,只需要7位就够了。2.4逐次比较法译码原理 下图所表示编码器中虚线方框内是当地译码器,而接收端译码器关键部分原理就和当地译码器原理一样。 图2.4 逐次比较法非均匀编码器原理框图在此图中,当地译码器记忆电路得到输入c7值后,使恒流源产生为下次比较所需要权值电流Iw。在编码器输出c8值后,对此抽样值编码已经完成,所以比较器要等候下一个抽样值抵达,暂不需要恒流源产生新权值电流。在接收端译码器中,仍保留当地译码器部分。由记忆电路接收发送来码组。当记忆电路接收到码组最终一位c8后,使恒流源再产生一个权值电流,它等于最终一个间隔中间值。在上如中,此中间值等于1248。因
15、为编码器中比较器只是比较抽样绝对值,当地译码器也只是产生正值权值电流,所以在接收端译码器中,最终一步要依据接收码组第一位c1值控制输出电流正负极性。在下图中示出接收端译码器基础原理方框图。c2 c8记忆电路7/11变换恒流源极性控制c1译码输出图2.5 接收译码器原理框图2.5 MATLAB编程实现PCM编译码1、PCM编码步骤图 2、PCM译码步骤图 图2.6 编码步骤图 图2.7译码步骤图3 HDB3码编解码3.1 AMI码编码基础原理AMI码全称为传号交替反转码,其编码规则为将消息码“1”(传号)交替地变换为“+1”和“-1”,而“0”(空号)保持不变。如:消息码: 0 1 1 0 0
16、0 0 0 0 0 1 1 0 0 1 1AMI码: 0 -1 +1 0 0 0 0 0 0 0 1 +1 0 0 1 +1 AMI码对应波形是含有正、负、零三种电平脉冲序列。它能够看成是单极性波形变形,即“0”仍对应零电平,而“1”交替对应正负电平。AMI码优点:没有直流成份,且高、低频分量少,编译码电路简单,且可利用传号极性交替这一规律观察误码情况;假如它是AMI-RZ波形,接收后只要全波整流,就可变为单极性RZ波形,从中能够提取位定时分量AMI码缺点:当原信码出现长连“0”串时,信号电平长时间不跳变,造成提取定时信号困难。处理连“0”码问题有效方法之一是采取HDB3码。3.2 HDB3码
17、编码基础原理HDB3码全称为3阶高密度双极性码,它是AMI码一个改善型,改善目标是为了保持AMI码优点而克服其缺点,使连“0”个数不超出3个。 其编码规则是:(1)检验消息码中“0”个数。当连“0”数目小于等于3时,HDB3码和AMI码一样,+1和-1交替;(2)连“0”数目超出3时,将每4个连“0”化作一小节,定义为B00V,称为破坏节,其中V称为破坏脉冲,而B称为调整脉冲;(3)V和前一个相邻非“0”脉冲极性相同(这破坏了极性交替规则,所以V称为破坏脉冲),而且要求相邻V码之间极性必需交替。V取值为+1或-1;(4)B取值可选0、+1或-1,以使V同时满足(3)中两个要求; (5)V码后面
18、传号码极性也要交替。 如:消息码: 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 l 1 AMI码: -1 0 0 0 0 +1 0 0 0 0 -1 +1 0 0 0 0 0 0 0 0 -1 +1 HDB3码: -1 0 0 0 V +1 0 0 0 +V -1 +1-B 0 0V +B 0 0 +V -l +1其中V脉冲和B脉冲和1脉冲波形相同,用V或B符号表示目标是为了示意该非“0”码是由原信码“0”变换而来。HDB3码既要包含AMI交替特征使输出无直流特征,又要不出现四个以上连0,所以能够先满足后者。1)把“0000”换为替换节。规则:先将“0000
19、”分离开来,第一个“0000”直接变为“0000”,然后数相邻两个“0000”之间“1”个数,奇数则变为“000V”,偶数则变为“B00V”。2)更新符号。依据HDB3码编码规则有:B总是和其前面1或V符号相反,V总是和前面1或B相符号相同,1总是和前面V或B符号相反,就可编符号了。比如:消息代码:1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1中间码: 1 0 0 0 V 1 0 0 0 V 1 1 B 0 0 V 1 1 B 0 0 V B 0 0 V 1 1 1 0 0 0 V 1HDB3码:+1 0
20、0 0 +V -1 0 0 0 -V +1 -1 +B 0 0 + V -1 +1 -B 0 0 -V +B 0 0 +V -1 +1 -1 0 0 0 -V +13.3 HDB3码译码HDB3码编码即使比较复杂,但译码却比较简单。从上述编码规则看出,每一个破坏脉冲V总是和前一非“0”脉冲同极性(包含B在内)。这就是说,从收到符号序列中能够轻易地找到破坏点V,于是也断定V符号及其前面3个符号必是连“0”符号,从而恢复4个连“0”码,再将全部-1变成+1后便得到原消息代码。解码规则以下:1)若3连“0”前后非零脉冲同极性,则将最终一个非零元素译为零,如+1000+1 就应该译成“10000”;若
21、2连 “0”前后非零脉冲极性相同,则两零前后全部译为零,如-100-1,就应该译为0000。2)再将全部-1变换成+1后,就能够得到原消息代码。3.4 MATLAB实现HDB3码编解码1、HDB3码编码 2、HDB3码解码HDB3码输入极性标志初始化解码输出YN2连“0”前后非零脉冲极性判定 相同?后一个非零脉冲为V码 将*00V清零单极性码输入AMI码编码“1”极性交替“B”脉冲位置统计 更新符号YN检测4连“0”?“V”脉冲位置统计 更新符号HDB3码输出图3.1 HDB3编码步骤图 图3.2 HDB3解码步骤图4 汉明码编译码4.1汉明码结构原理汉明码是能够纠正1位错码且编码效率较高一个
22、线性分组码(线性分组码:根据一组线性方程组成分组码 )。在偶数监督码中,因为使用了一位监督位a0,它和信息位an-1 a1一起组成一个代数式:在接收端解码时,实际上就是在计算若S = 0,就认为无错码;若S = 1,就认为有错码。现将上式称为监督关系式,S称为校正子。因为校正子S只有两种取值,故它只能代表有错和无错这两种信息,而不能指犯错码位置。若监督位增加一位,即变成两位,则能增加一个类似监督关系式。因为两个校正子可能值有4中组合: 00,01,10,11,故能表示4种不一样信息。若用其中1种组合表示无错,则其它3种组合就有可能用来指示一个错码3种不一样位置。同理,r个监督关系式能指示1位错
23、码 个可能位置。通常来说,若码长为n,信息位数为k,则监督位数rnk。假如期望用r个监督位结构出r个监督关系式来指示1位错码n种可能位置,则要求根据上述方法结构码称为汉明码。设分组码(n,k)中k4,为了纠正一位错码,要求监督位数r3。若取r=3,则n= k + r =7。我们用a6a5a0 表示这7个码元,用S1、S2、S3表示三个监督关系式中校正子,则S1 S2 S3值和错码位置对应关系能够要求以下表4所列。表4 校正子和错码位置关系S1 S2 S3错码位置S1 S2 S3错码位置001010100011a0a1a2a3101110111000a4a5a6无 错由表4中要求可见,仅当一错码
24、位置在a2 、a4 、a5 或a6 时,校正子S1 为1;不然S1 为0。这就意味着a2 、a4 、a5 和a6四个码元组成偶数监督关系S1 a6a5 a4 a2 同理,a1 、a3 、a5 和a6组成偶数监督关系 S2 a6a5 a3 a1 和a0 、a3 、a4 和a6组成偶数监督关系S3 a6a4 a3 a0 在发送端编码时,信息位a6 、a5 、a4 和a3 值决定于输入信号,所以它们是随机。监督位a2 、a1 和a0 应依据信息位取值按监督关系来确定,即监督位应使上三式中S1、S2和S3值为零(表示变成码组中应无错码) 由上式经移项运算,解出监督位 给定信息位后,可直接按上式算出监督
25、位,其结果如表5所列。表5 监督位计算结果信息位监督位信息位监督位a6a5a4a3a2a1a0a6a5a4a3a2a1a00000000100100011010001010110011100001110111011010101100010001001101010111100110111101111111100010001001010100111接收端收到每个码组后,先计算出S1 、S2 和S3 ,再按表5判定错码情况。如,若接收码组为0000011,计算可得S1 0,S2 1,S3 1。S1 S2 S3 等于011,可知在a3 位有一错码。按上述方法结构码称为汉明码。表5中所列(7,4)汉明码
26、最小码距d0 3,所以这种码能纠正一个错码或检测两个错码。汉明码有以下特点:码长 n2r1 最小码距d3信息码位 k2rm1 纠错能力t1监督码位 rnkm这里m为2正整数,给定m后,即可结构出具体汉明码(n,k)。4.2 MATLAB实现汉明码编译码MATLAB中提供了汉明码编码和译码函数,本程序直接调用进行编程。encode函数 功效:编码函数 语法:code=encode(msg,N,K) 说明:该函数对二进制信息msg进行汉明编码,K为信息位长度,N为码字长度。msg是一个K列矩阵。其中要求N=2m-1,K=N-m,m为监督位长度。decode函数 功效:译码函数 语法:rcvcode
27、=decode(code,N,K) 说明:该函数对接收码字进行译码,恢复出原始信息,译码参数及方法必需和编码时采取完全相同。 hammgen函数 功效:汉明码生成矩阵和校验矩阵产生函数 语法:H=hammgen(M);H,G=hammgen(M);H,G,N,K=hammgen(M) 说明:该函数功效是产生生成矩阵和校验矩阵,其中M=N-K为校验位长度,H为汉明码校验矩阵,G为汉明码生成矩阵。部分源程序汉明码编码:ym=encode(abs(yh),7,4,hamming/binary);汉明码解码:dm=decode(c_de,7,4,hamming/binary);5 2PSK调制和解调5
28、.1数字调制技术为了使数字信号在带通信道中传输,必需用数字基带信号对载波进行调制以使信号和信道特征相匹配。这种用数字信号控制载波,把数字基带信号变换为数字带通信号(已调信号)过程成为数字调制。在接收端经过解调器把带通信号还原成数字基带信号过程成为数字解调。通常把包含调制和解调过程数字传输系统叫做数字带通传输系统。通常来说,数字调制和模拟调制基础原理相同,不过数字调制有离散取值特点。所以数字调制技术有两种方法:利用模拟调制方法去实现数字式调制;经过开关键控载波,通常称为键控法。基础键控方法有振幅键控、频移键控、相移键控。 振幅键控 频移键控 相移键控图5.1 正弦载波三种键控波形5.2 二进制相
29、移键控(2PSK)基础原理数字调制可分为二进制调制和多进制调制。相移键控是利用载波相位改变来传输数字信息,而振幅和频率保持不变。在2PSK中,通常见初始相位0和分别表示二进制“1”和“0”。所以,2PSK信号时域表示式为:式中,j jn表示第n个符号绝对相位:所以,上式能够改写为因为表示信号两种码元波形相同,极性相反,故2PSK信号能够表述为一个双极性全占空矩形脉冲序列和一个正弦载波相乘:式中这里,g(t)是脉宽为Ts单个矩形脉冲,而an统计特征为即发送二进制符号“0”时,e2psk(t)取0相位;发送二进制符号“1”时,e2psk(t)取相位。这种以载波不一样相位直接去表示对应二进制数字信号
30、调制方法,称为二进制绝对相移方法。 (a) 模拟调制方法 (b)键控法图5.2 2PSK信号调制器原理方框图2PSK信号解调通常采取相干解调法,解调器原理框图以下图5.3所表示。假设数字信息为“10011”,相干解调各点波形以下图5.4所表示。图5.3 2PSK信号解调原理框图图5.4 2PSK信号相干解调时各点时间波形5.3 MATLAB实现2PSK调制和解调1、2PSK调制步骤图 2、2PSK解调步骤图带通滤波器设计和载波相乘低通滤波器设计抽样判决2psk信号相干解调输出载波频率初始化数字基带信号输入符号1=相位jn:符号0=相位jn: 0控制载波产生2psk信号e2psk(t)=cos(
31、2*fc*t+ jn)2psk信号输出图5.5 2psk调制 图5.6 2psk解调5.4 AWGN信道模拟加性高斯白噪声 AWGN(Additive White Gaussian Noise) 是最基础噪声和干扰模型。加性噪声是叠加在信号上一个噪声,通常记为n(t),而且不管有没有信号,噪声n(t)全部是一直存在。所以通常称它为加性噪声或加性干扰。白噪声:噪声功率谱密度在全部频率上均为一常数,则称这么噪声为白噪声。假如白噪声取值概率分布服从高斯分布,则称这么噪声为高斯白噪声。 这里,在进行通信仿真时,我们考虑加性高斯白噪声信道(即AWGN信道),即在发射信号上加一个高斯白噪声随机序列。在MA
32、TLAB中产生高斯白噪声很简单,采取命令awgn或wgn,如程序中采取CC=awgn(c,10,0)。y=awgn(x,SNR)即:增加高斯白噪声至信号x,信噪比SNR单位为dB,信号功率设定为1,假如信号x为复数,则增加复数高斯白噪声。y=awgn(x,SNR,sigpower)即:假如sigpower是一个数值,则表示单位为dBW信号功率;假如sigpower为measured,则awgn在增加高斯白噪声前自行测量信号功率。y=awgn(x,SNR,sigpower,state)即:重置randn状态为state。y=wgn(M,N,P)即:产生M*N高斯白噪声。P表示dBW为单位输出噪声
33、功率。6 MATLAB软件仿真6.1 MATLAB介绍MATLAB是一个高级矩阵/阵列语言,它包含控制语句、函数、数据结构、输入和输出和面向对象编程特点。用户能够在命令窗口中将输入语句和实施命令同时,也能够先编写好一个较大复杂应用程序(M文件)后再一起运行,可移植性好、可拓展性极强。MATLAB是一个包含大量计算算法集合。其拥有600多个工程中要用到数学运算函数,能够方便实现用户所需多种计算功效。MATLAB这些函数所能处理问题大致包含矩阵运算和线性方程组求解、微分方程及偏微分方程组求解、符号运算、傅立叶变换和数据统计分析、工程中优化问题、稀疏矩阵运算、复数多种运算、三角函数和其它初等数学运算
34、、多维数组操作和建模动态仿真等。6.2 发送端仿真结果6.2.1 PCM编码仿真图6.1 原始信号和PCM编码输出6.2.2 HDB3码及汉明码编码仿真图6.2 HDB3编码和汉明码信号输出6.2.3 2PSK调制和AWGN信道仿真图6.3 2PSK调制信号和加噪信号6.3 接收端仿真结果6.3.1 2PSK解调仿真图6.4 2PSK信号相干解调时间波形6.3.2 汉明码及HDB3码解码仿真图6.5 HDB3码解码信号输出6.3.3 PCM解码仿真图6.6 PCM解码信号输出6.4 仿真结果分析由以上图可知,并比较PCM编码信号、HDB3码编码信号、汉明码编码信号可看出代码正确,能够实现PCM
35、编码、HDB3编码、汉明码编码功效。比较汉明码编码信号、2PSK调制信号和2PSK解调信号可看出,2PSK调制和解调代码正确,可实现2PSK调制和解调。比较原始正弦信号和输出信号波形可看出,最终在接收端能够近似地再现信源,实现整个通信系统仿真。附录一、主程序:%-%- PCM编码 -%-t=0:0.3:2*pi; s=sin(t);code=pcm(s); figure(1);subplot(2,1,1);plot(t,s); title(原始正弦信号);subplot(2,1,2);stairs(0:length(code(1:64)-1,code(1:64);axis(0 length(c
36、ode(1:64) -2 2);title(PCM编码信号输出)%-%- HDB3编码 -%-xn=code(1:21*8); % 输入单极性码/ AMI码编码yn=xn; % 输出yn初始化num=0; % 计数器初始化for k=1:length(xn) if xn(k)=1 num=num+1; % 1计数器 if num/2 = fix(num/2) % 奇数个1时输出-1,进行极性交替 yn(k)=1; else yn(k)=-1; end endendnum=0; % 连零计数器初始化yh=yn; % 输出初始化sign=0; % 极性标志初始化为0V=zeros(1,length
37、(yn); % V脉冲位置统计变量 B=zeros(1,length(yn); % B脉冲位置统计变量for k=1:length(yn) if yn(k)=0 num=num+1; % 连“0”个数计数 if num=4 % 假如4连“0” num=0; % 计数器清零 yh(k)=1*yh(k-4); % 让0000最终一个0改变为和前一个非零符号相同极性符号 V(k)=yh(k); % V脉冲位置统计 if yh(k)=sign % 假如目前V符号和前一个V符号极性相同 yh(k)=-1*yh(k); % 让目前V符号极性反转,以满足V符号间相互极性反转要求 yh(k-3)=yh(k);
38、 % 添加B符号,和V符号同极性 B(k-3)=yh(k); % B脉冲位置统计 V(k)=yh(k); % V脉冲位置统计 yh(k+1:length(yn)=-1*yh(k+1:length(yn); % 并让后面非零符号从V符号开始再交替改变 end sign=yh(k); % 统计前一个V符号极性 end else num=0; % 目前输入为“1”则连“0”计数器清零 endend % 编码完成re=xn,yn,yh,V,B; % 结果输出: xn AMI HDB3 V&B符号figure(2);subplot(3,1,1);stairs(0:length(code(1:64)-1,
39、code(1:64);axis(0 length(code(1:64) -2 2);title(PCM编码信号输出)subplot(3,1,2);stairs(0:length(yh(1:64)-1,yh(1:64);axis(0 length(yh(1:64) -2 2);title(HDB3码信号输出)%-%- 汉明码编码 -%-yh1=abs(yh)-yh;ym=encode(abs(yh),7,4,hamming/binary);subplot(3,1,3);stairs(0:length(ym(1:64)-1,ym(1:64);axis(0 length(ym(1:64) -2 2);title(汉明码信号输出)%-%- psk调制 -%-