当前位置:文档之家› 通信原理实验报告汉明编译码系统自行设计实验附加同步位实验

通信原理实验报告汉明编译码系统自行设计实验附加同步位实验

通信原理实验报告汉明编译码系统自行设计实验附加同步位实验
通信原理实验报告汉明编译码系统自行设计实验附加同步位实验

汉明编译码系统自行设计实验

一、 实验原理

差错控制编码的基本作法是:在发送端被传输的信息序列上附加一些监督码元,这些多余的码元与信息之间以某种确定的规则建立校验关系。汉明码(7,4)是一种纠错码,是能纠正单个错误的线性分组码。它有以下特点:

码长

n=2m -1 最小码距d=3 信息码位 k=2n -m -1

纠错能力t=1

监督码位

r=n -k

这里m 位≥2的正整数,给定m 后,既可构造出具体的汉明码(n ,k )。

汉明码的监督矩阵有n 列m 行,它的n 列分别由除了全0之外的m 位码组构成,每个码组只在某列中出现一次。系统中的监督矩阵如下图所示:

1110100

H=

01110101101001

其相应的生成矩阵为:

1000101010011100101100001011

G=

汉明译码的方法,可以采用计算校正子,然后确定错误图样并加以纠正的方法。 图9.1和图9.2给出汉明编码器和译码器电原理图。

a 6 a 5 a 4 a 3 a 2 a 1 a 0

a 6 a 5 a 4 a 3

图9.1汉明编码器电原理图

a 6 a 5 a 4 a 3

a 6 a 5 a 4 a 3 a 3 a 3 a 3

图9.2汉明译码器电原理图

3-8译码器

校正子生成

错码 指示

7

65

432 1

● ●

● ● ●

表1.1 (7,4)汉明编码输入数据与监督码元生成表

4位信息位 a 6, a 5, a 4, a 3 3位监督码元 a 2, a 1, a 0

4位信息位 a 6, a 5, a 4, a 3 3位监督码元

a 2, a 1, a 0

0000 000 1000 101 0001 011 1001 110 0010 110 1010 011 0011 101 1011 000 0100 111 1100 010 0101 100 1101 001 0110 001 1110 100 0111

010

1111

111

表1.1为(7,4)汉明编码输入数据与监督码元生成表。编码输出数据最先输出是a 6bit ,其次是a 5、a 4……,最后输出a 0位。

二、实验内容

1. 编写分频和m 序列verilog 程序 思路:

分频:晶振为14.336MHz ,要分频得到32kHz ,采用计数的方法。14336/(32*2)=224。其中32*2是因为每半个周期电平翻转一次。所以如下图程序中第16行,count1以224为周期计数(即从0数到223),每到数223则clk_32k 翻转实现分频。其他频率的分频改变计数值大小即可得到。

M 序列:M 序列又叫做伪随机序列,是不能预先确定但可以重复产生的序列。程序上通过移位寄存器实现。逻辑图如下:

程序:

程序中要注意的是,如第10行处给m_out赋初值,否则0000状态下移位寄存器是无法得到其他值的,会一直处于全0状态。

遇到的问题及解决方法:

1.编译时出现如下错误:

后来发现是由于模块名称的命名问题,注意项目下主模块使用与项目名称相同的命名即可解决。

2.仿真时各个寄存器都没有值。后来发现是仿真文件(.vwf)文件没有保存,

必须保存之后才能够得到正确的仿真。

M 序列仿真现象如下图:

从仿真截图的m_outer 一行(最下方一行)可以看出,输出的M 序列为:

000111101011001…,之后又是重复的。对应的寄存器中m_out1中为(倒数第二行从第2个开始):0010、0100、1000、0001、0011、0111、1111、1110、1101、1010、0101、1011、0110、1100、1001…。可见生成的M 序列各4位码依次符合左移关系,且每15个为一周期,符合M 序列为2n -1的规律,n 为4时2n -1=15。每个4位码的第4位按顺序即是m_outer 中输出的M 序列。可见生成的M 序列符合相关要求,是成功的。

2. 以M 序列作为输入信号编写(7,4)汉明编码程序,将M 序列和汉明码序列输出到测试孔观察和记录。 思路:

编码:

a 6 a 5 a 4 a 3 a 2 a 1 a 0

a 6 a 5 a 4 a 3

图9.1汉明编码器电原理图

由编码原理图可以的到编码方程,高4位直接由M 序列的4位平移得到,而低3位可由高4位计算得到,如a0=a6+a5+a3。同理可写出整套编码方程如下:

h_out[6:3]<=m_out1[3:0];

h_out[0]<=m_out1[3]+m_out1[2]+m_out1[0]; h_out[1]<=m_out1[2]+m_out1[1]+m_out1[0]; h_out[2]<=m_out1[3]+m_out1[2]+m_out1[1];

输出:因为M 序列的时钟是32k 的,而4位的M 序列对应编码得到的汉明码是7位的,所以由4:7比例关系得到相应的汉明编码输出的时钟应该是56k 。仿照上面32k 的分频可以的到56k 分频程序如下:

always@(posedge clk) begin

if(count2==8'd127)//14336/(56*2)=128 count2<=8'b0;

else

count2<=count2+8'b1;

end

always@(negedge count2[6])

begin

clk_56k<=clk_56k+1'd1;

end

编码时根据32k时钟每数4个编码一次,同理输出时根据56k时钟每数7个输出一次。

程序:

程序中56行以前为定义分频和产生M序列部分,不再重复贴出,57到71行为汉明码编码部分,73到84行为汉明码输出部分。需要注意的是编码的时候

数4个编码一次(),而输出的时候数7个编码一次

()。这样才能保证M序列的4位码与输出7位汉明码之间是匹配的。

遇到的问题及解决方法:

一开始我写这段程序的时候没有h_out1,从h_out的4个编码方程把汉明码算出来之后就直接h_out[6:1]<=h_out[5:0];移位,然后就输出h_outer<=h_out[6];

一仿真发现输出的汉明码根本找不到规律。

后来我发现,在编码和输出之间需要一个缓冲,如果没有缓冲的话,有可能的上面的编码方程里h_out这在按对应位编码,下面输出部分的程序就把h_out 给移位输出了,于是此时h_out里各位的值可能在编码还没完成的时候就发生了改变。所以我后来就加入了h_out1作为缓冲,h_out编码完之后先送给h_out1,再由h_out1进行移位之后输出。这样仿真的时候就得到了正确的汉明码输出。

汉明码输出仿真现象如下图:

仿真中第4行h_out为编码得到为汉明编码,下方倒数第2行m_out1为M序列。由下图可以明显看出它们的对应关系:

(1)汉明码的前4位与M序列完全相同,并且是连续的4个M序列中有1个是与汉明码对应的,而不是每一个都对应。因为M序列移位4次之后才是一个全新的码,才进行一次新的汉明码编码。

(2)从上方时钟信号可以看出,每个M序列对应1个32k时钟周期。每个汉明码对应7个56k时钟周期和4个32k时钟周期。

(3)汉明码与其相对应的M序列之间有1个32k时钟周期的延时,因为经过了编码过程。所以第一个输出的汉明码0111010之前的输出为0000000.

(4)仿真输出的汉明码都符合上文实验原理部分表1.1中信息位与监督码元的关系,输出的都是正确的汉明码。

从仿真来看,M序列和汉明码的输出都是正确的成功的。

下载到实验箱观察并记录实验现象:

上图为把分频信号送到测试孔从示波器上观察到的波形。上方CH1黄色波形为56k时钟信号,图片右边测量值为55.99kHz。下方CH2蓝色波形为32kHz 时钟信号,右边测量值为32.00kHz。可见32k和56k分频得到的实际结果都是很准的。

上图中上方黄色波形为32k时钟信号,下方蓝色波形为输出的M序列波形。图中蓝色波形读数为100100011110…

仿真波形

实测波形

从上方仿真的M序列仿真波形中可以找到完全相同的一段,读数也为10010001110…把两者的时钟轴调整为相同宽度时可以看到,仿真与实测波形完

全相同。

上图中上方黄色波形为56k时钟信号波形,下方蓝色波形为汉明码输出。由两个光标间卡住的7个时钟周期可以读出下方对应的汉明码输出为0001011,如果继续往下读可以读得连续输出为000101111101…把时间轴右移一点到如下图:

继续把下面的读下去是0010110…,连起来即是0001011111010010110…其中可以看出0001011后面跟着的下一个七位汉明码是1110100,由上图中两个光标之间卡住的7个时钟信号可以读出下方对应的汉明码输出为1110100,然后在仿真中找到了相应的汉明码输出部分如下图:

由上图仿真中第4行h_out可以找到连续的一段汉明码输出为0001011111010010110……与之前上面示波器中实测读得的序列0001011111010010110…完全相同。可见实验箱实际观察测得的汉明编码输出与仿真完全一致,符合汉明编码的相关性质。

3.将汉明编码序列加错,模拟信道误码。注意加错频率。

思路:

因为(7,4)汉明码最多只能纠错1位,所以能够正确译码的情况下每7位最多只能错1位。对输出的汉明码序列采取每14位就有1位取反的方法,也就是输出一个7位无错码的汉明码,然后输出一个7位有1位错码的汉明码,并且交替重复。来模拟信道误码。

程序:

程序中通过第113行的eh_out[0]<=h_outer;将正常编码得到的汉明码输出h_outer复制到eh_out中。通过第105行的if(ecnt_h==4’d13)来判断计数,每14位输出就把最后1位取反,即eh_out[0]<=~h_outer;以此实现模拟信道误码。遇到的问题及仿真:

遇到的问题及仿真部分将在下面译码部分中一并叙述。

4.汉明译码程序编写。将m序列和汉明译码数据输出到测试孔观察和记录。加

大误码率,观察译码性能。

思路:

译码:译码首先要计算校正子。根据校正子计算公式可写出3位校正子计算方程如下:

s_fir[2]<=eh_out[6]+eh_out[5]+eh_out[4]+eh_out[2];

s_fir[1]<=eh_out[5]+eh_out[4]+eh_out[3]+eh_out[1];

s_fir[0]<=eh_out[6]+eh_out[5]+eh_out[3]+eh_out[0];

若校正子为000,则没有错码,无需纠错,可根据译码方程直接译码。若校正子不为000,在1个7位汉明码只有1位错码的情况下,由校正子可以计算出错码位置,将该位译码结果取反,则得到正确的译码。结合译码公式写出译码方程如下:

decode_out[3]=eh_out[6]+(s_fir[2]&(~s_fir[1])&s_fir[0]);//101

decode_out[2]=eh_out[5]+(s_fir[2]&s_fir[1]&s_fir[0]);//111

decode_out[1]=eh_out[4]+(s_fir[2]&s_fir[1]&(~s_fir[0]));//110

decode_out[0]=eh_out[3]+((~s_fir[2])&s_fir[1]&s_fir[0]);//011

若在1个7位汉明码中错码位数多于1位,则不能得到正确的译码。

输出:因为汉明码是56kHz时钟下的7位码,译码之后要转变为32kHz的4位码输出。所以要在56k时钟下触发译码,数7个译码一次。而输出时在32k 时钟下4个输出一次。

程序:

程序中127到126行为译码部分,147到156为转换输出部分。该段程序需要注意的问题是汉明码码流接收到了之后从什么时候开始译码。我是设置两个校正子的寄存器s_fir和s_sec来解决这个问题。接收到的7位汉明码计算的校正子存放在s_fir中,计算完成后,移动到s_sec中保存,将s_fir腾出用以存放下一个7位汉明码的校正子。则s_fir和s_sec中保存着连续的两个7位汉明码的校正子。如果收到的连续2个校正子中至少有1个校正子是000的无错码校正子,则认为以收到了符合译码条件的汉明码,可以开始译码,否则继续等待下面的码流。即程序中第135行if((s_fir&s_sec)!=3’d0)所进行的判断。

遇到的问题及解决方法:

本来觉得遇到最大的问题会是什么时候开始译码的问题,但在这个问题上考虑的比较充分,所以并没有真的碰到什么问题。反而是在输出部分遇到了问题。我一开始写的输出部分的程序如下:

always @(posedge clk_32k)

begin

decode_outer<=decode_out1[3];

decode_out1[3:1]<=decode_out1[2:0];

if(decode_cnt==2'd3)

begin

decode_out1<=decode_out;

decode_cnt<=2'd0;

end

else

decode_cnt<=decode_cnt+2'd1;

end

逻辑上完全是仿照的M序列输出的方式,把decode_out的码流送进decode_out1中进行缓冲,decode_out1每数4位将最高位送到decode_outer进行输出。我觉得逻辑上是没有问题的,但是仿真得到的译码输出则不太好,有一小段和M序列相同,但也有很多和M序列不同。后来和老师一起反复检查之后终于发现,逻辑上的问题在于开始译码的时候已经数7位译码一次得到4位了,这里输出时又进行一次数4位输出1位,则相当于缓冲了两次才输出了一次,正常的输出顺序被打乱了,本来译码得到的4位变换为32k时钟就可以直接输出了。然后重新写了转换输出部分的程序如下:

always @(posedge clk_32k)

begin

decode_outer<=decode_out[decode_cnt];

if(decode_cnt==2'd0)

begin

decode_cnt<=2'd3;

end

else

decode_cnt<=decode_cnt-2'd1;

end

新程序中每位的decode_out都不用再经过decode_out1缓冲,而是直接从decode_outer中输出了。

编码加错及译码输出仿真现象如下图:

由上图中可以看出,第4行(3)译码输出decode_outer的波形与第5行(4)M序列输出m_outer的波形是一样的,只不过译码输出有一定的延时。见下图:

标着相同红色数字的高电平是相互对应的,下面是M序列,上面是译码输出,明显可以看出两者波形完全相同,只是译码输出比输入的M序列延时了11个32k时钟周期。另外,第8行(14)7位汉明码输出h_out的前4位与倒数第5行(31)4位译码输出decode_out完全相同,只是后者比前者延迟了9个56k时钟周期(具体延时周期个数的得到在后面会展示)。见下图:

由上图红框中可以明显看出汉明码前4位(即信息位)与译码输出的4位是完全相同的。而由下方的校正子可以看出,绿线上的000表示接受到的没有误码,010(非000)表示有误码,可以看到s_fir中000与010是交替出现的,这与程序中模拟信道误码时每14个输出的汉明码元取反一个是一致的,即7位无错汉明码与7位中有1位错的汉明码交替出现。另外上图中由绿线和蓝色箭头组成的关系可以看出校正子从s_fir移动到s_sec的过程。

另外,具体的延时周期的得到可以由下图看出:

可见除了正常的时延外,译码输出即使在接收到校正子不为000(有1位误码)时,也能够自行纠错,输出正确的译码,与输入M序列完全相同,该程序编写和仿真都是成功的。

改变误码律的译码输出仿真:

(1)每15个错1位仿真

程序改为:

其实就是对第112行中原来是if(ecnt_h==4’d13)中的4’d13改为了4’d14。

仿真结果见下图:

M序列m_outer与译码输出decode_outer的对应关系如下图:

相同的由下图红框的对应关系能够看出汉明码前4位信息位与译码完全相同:

上图中能够发现在第一个红框之前的汉明码是1011000,而译码是1010,是不正确的,是因为不是一开始就能接收到能够正确译码的码流,而且接受到正确码流后译码还有一定的延时,所以在此之前的输出是不正确的。另外,从校正子s_fir一行中可以看到,改为15位1个错码之后,不在是7的整数倍,所以不像之前错码只固定出现在a1位上,对照下表能够读出接收到的错码出现的位置,以用红字标明在上图中s_fir一行中。

可见,在误码率为1/15时,在找到起始点开始正确译码之后,对于误码出现在不同位置上的汉明编码,该程序都能正确译码。

(2)每13个错1位仿真

程序改为:

即汉明码输出每13位取反1位

仿真结果见下图:

可以发现当误码率为1/13的时候,找到同步开始译码,正确译码了2个之后,下面的译码就出现了错码得不到纠正的情况。可是仔细看校正子s_fir和s_sec,并没有同时出现均不为000的情况,所以理论上应该是能够正常译码。一定是程序不够完善,导致误码率在1/13就不能正确输出了。我仔细观察仿真中每一位的逻辑关系,发现在误码律达到1/13的时候由于各寄存器之间有延时,导致纠错的时候有时对应输出位会发生变化。于是我在译码纠错之前增加了一个对接收汉明码进行缓冲的寄存器eh_out1,并以此作为基准译码,仿真得到了正确的输出!

译码部分修改程序如下:

always @(posedge clk_56k)

begin

if(decodecnt_h==3'd6)

begin

eh_out1<=eh_out;//缓冲

s_fir[2]<=eh_out[6]+eh_out[5]+eh_out[4]+eh_out[2];//计算监督位

s_fir[1]<=eh_out[5]+eh_out[4]+eh_out[3]+eh_out[1];

s_fir[0]<=eh_out[6]+eh_out[5]+eh_out[3]+eh_out[0];

s_sec<=s_fir;

if((s_fir&s_sec)!=3'd0)//连续两组监督位出错时保持此状态等待新信息计算

decodecnt_h<=3'd6;

else

decodecnt_h<=3'd0;

decode_out[3]=eh_out1[6]+(s_fir[2]&(~s_fir[1])&s_fir[0]);//101

decode_out[2]=eh_out1[5]+(s_fir[2]&s_fir[1]&s_fir[0]);//111

decode_out[1]=eh_out1[4]+(s_fir[2]&s_fir[1]&(~s_fir[0]));//110

decode_out[0]=eh_out1[3]+((~s_fir[2])&s_fir[1]&s_fir[0]);//011

end

else

decodecnt_h<=decodecnt_h+3'd1;

end

仿真结果见下图:

修改了程序之后,在误码率为1/13的情况下,仿真如上图,在实现同步之后能够连续无误地纠错译码输出。对应的倒数第二行红字标出的为相应的错码出现的位置。注意到错码位置为a3、a4、a5情况下能够正确译码,这才是纠错能力的直接体现。因为a2、a1、a0位置上的错码,即使纠错失败,但是由于不是信息位,不会输出到译码输出,所以看不出来能否正确纠错。因为增加了一个缓冲寄存器,现在译码输出decode_out与收到的汉明码eh_out之间的延时变为大约9.5个32k时钟周期。

下载到实验箱观察并记录实验现象:

(1)加错

上图中,CH1黄色波形为56k时钟波形,CH2蓝色波形为eh_out即汉明码以1/13的错码率加错之后的输出波形。①中读数为1010001,是加错在a1上的,即所对应正确的汉明码应为1010011。②中读数为1100010因为误码率为1/13,所以

紧接着①的②中,是没有错码的,即1100010就是正确的汉明码输出。③中读数1000001,加错在a2上,即所对应正确的汉明码为1000101。并且错码位置从a1移动到a2上,呈递增移动的关系,符合误码率1/13的情况。因为误码率为1/14时,每隔一个输出有误码,且误码位置不变,所以误码率为1/13时,每隔一个输出有误码,且误码位置呈增移动关系。

上图为仿真中汉明码输出的顺序,①中为1010011,②中为1000101,③中为1000101,与示波器上看到的加错汉明码输出所对应的正确码组顺序完全一致。并且由仿真中①前面红线上的读数为1010,而由上面加错的示波器波形上可读出①前面读数也为1010,仿真中③后面红线上读数为1111,由示波器波形上也可读出③后面都是高电平,可见实验箱上的结果与仿真完全对应!

(2)译码

上图中CH1黄色波形为decode_outer译码输出,CH2蓝色波形为m_outer即M 序列输出。CH1与CH2波形中标为相同数码的高电平相互对应(红线相连的也是相互对应),可见上方译码输出与下方M序列输出间除了有一定的延时外,波形完全对应,即成功译码。对应的可以从仿真中找到译码输出decode_outer波形完全相同的一段,见下图:

因为两者时间轴比例不同,所以对上图进行横向压缩,得到下图:

可见实验箱上实测结果与仿真结果完全相同。上图中实验箱与仿真对应部分(即

与下方仿真对比那段)的译码波形读数为00111101011001…而从上文中M序列编程部分已知M序列输出为000111101011001…的循环,可见实验箱译码波形为M序列输出的一部分。

三、实验中遇到的问题

1.编程中遇到问题及解决方法在上文每段程序下方已有说明,在此不再赘述。

2.我使用的实验室的电脑的Quartus每次实验都弹出试用版的窗口,我每次实验都需要重复一遍破解工作。后来我发现,如果只是进行编程和仿真的话,用30天试用版好像也没有什么问题。但是下载到实验箱的时候会失败,必须使用破解版才能够成功下载。

3.通过USB线把程序下载到实验箱上的方法我完全用不起来,前置USB接口驱动电压较低,但是即使我用主机后端的USB接口也仍然连接了之后识别不到硬件。只能用数据线实现,而且数据线好像十分脆弱,不是每一根都能用,我是从老师那里拿了一大把,一根一根的试了好多条才试到一条能用的。

4.下载时要记得打开实验箱的电源,否则会失败。

5.实验箱上能够用于外接示波器的测量端口有限,一定要注意设置准确。

6.附加实验同步位提取实验见下方。

位同步提取实验(附加)

一、实验要求及内容

1.将PCM编译码时钟TP503(256KHz)做为码元速率为512Kbps的1010…码流数据。

2.用导线将TP503连接到TPM03作为FPGA的数据输入。(此步骤必须在往FPGA下载了程序之后才能操作!)

3.用FPGA的输入时钟14.336MHz直接分频得到512KHz的时钟输出到TPM05。

4.用示波器同时观察TPM03和TPM05,可见两者并不能同步。

5.现要求从输入数据中提取位同步信息得到可以与输入数据同步的时钟信号。

二、实验程序及记录与分析

思路:

由PCM编译码时钟可以得到一个256kHz信号。对14.336MHz时钟信号直接进行分频,14336/(256*2)=28,可以得到另一个256kHz信号。对时钟信号进行分频得到分频结果进行滞后或者超前的判断,即进行位同步提取,然后根据滞后或者超前的判断信号,对分频模块里的分频系数进行修正,再次将分频结果送至位同步提取模块里头进行判断,如此反复可以得到相对稳定的同步信号。

程序:

module tbw(in_pcm,clk_fpga,out_fpga,out_fpga_no);

input in_pcm,clk_fpga;

output reg out_fpga,out_fpga_no;

reg [5:0]count,count_tb;

reg [5:0]count_set;//计数初值

reg [5:0]count_no;

initial

begin

count_set<=6'd55;

end

always@(posedge clk_fpga) //此处计数为递减计数

begin

if(count==6'd0)

count<=count_set; //计数到0时重新装入计数初值else count<=count-1'b1;//递减计数

if(count<27) //分频,计数到27翻转,即14336/(256*2)=28 out_fpga<=1'b1;

else out_fpga<=1'b0;

count_tb<=count; //取出计数值,判断超前或者滞后

end

always@(posedge in_pcm) //对计数初值进行更改

begin

if(count_tb<27) //超前

count_set<=6'd56;

else if(count_tb>27) //滞后

count_set<=6'd54;

else //同步

count_set<=6'd55;

end

always @(posedge clk_fpga) //未同步256kHz信号

begin

if(count_no==6'd27)

begin

count_no<=6'd0;

out_fpga_no<=~out_fpga_no;

end

else

count_no<=count_no+6'd1;

end

endmodule

程序中in_pcm为PCM编译码时钟输出的256kHz信号,clk_fpga为14.336MHz 时钟信号。out_fpga为同步输出信号,out_fpga_no为未同步输出信号。count_set为计数初值,分频计数翻转时读取count值作为count_tb来判断是超前还是滞后,若超前则增大计数初值(递减计数),使得每次翻转所需的计数次数增加,反之减少计数初值。

遇到的问题及解决方法:

一开始在分频部分本来写的和M序列中的分频相同,都是使用递增计数,计数到设定的计数上限值时,再清零。但是发现了一个问题,就是如果在快要计数到一开始设定的的计数值count_set时,如果由超前滞后判断并已产生新的count_set,而此数值小于当前计数值,则会将寄存器加满才回零,会导致一部分高电平或者低电平时间比较长,可能还增大了不同步的程度。

解决方法是改为由高到低递减计数,则无论计数中途count_set是否改变,计数都是从当前count值递减计数到0再重新装入新的count_set。

同步位仿真现象如下图:

由第二行in_pcm与第三行out_fpga的对比可以看出,两者都是256kHz的信号,但是一开始两者是不同步的,经过2个256kHz的周期之后就基本同步了。具体见下图:

由标号为红1的周期可以看出两者不同步程度较大,out_fpga滞后于in_pcm 较多,到周期2的时候之后就较小了,到周期3的时候就几乎没有滞后了。

下载到实验箱观察并记录实验现象:

(1)用示波器同时观察TPM03和TPM05,可见两者并不能同步

见下图:

基于MATLAB的循环码实验报告

课程名称:信息论与编码 课程设计题目:循环码的编码和译码程序设计指导教师: 系别:专业: 学号:姓名: 合作者 完成时间: 成绩:评阅人:

一、实验目的: 1、通过实验了解循环码的工作原理。 2、深刻理解RS 码构造、RS 编译码等相关概念和算法。 二、实验原理 1、RS 循环码编译码原理与特点 设C 使某 线性分组码的码字集合,如果对任C c c c C n n ∈=--),,,(021 ,它的循环 移位),,,(1032)1(---=n n n c c c c C 也属于C ,则称该 码为循环码。 该码在结构上有另外的限制,即一个码字任意循环移位的结果仍是一个有效码字。其特点是:(1)可以用反馈移位寄存器很容易实现编码和伴随式的计算;(2)由于循环码有很多固有的代数结构,从而可以找到各种简单使用的译码办法。 如果一个 线性码具有以下的属性,则称为循环码:如果n 元组 },,,{110-=n c c c c 是子空间S 的一个码字,则经过循环移位得到的},,,{201)1(--=n n c c c c 也 同样是S 中的一个码字;或者,一般来说,经过j 次循环移位后得到的 },,,,,,,{11011)(---+--=j n n j n j n j c c c c c c c 也是S 中的一个码字。 RS 码的编码系统是建立在比特组基础上的,即字节,而不是单个的0和1,因此它是非二进制BCH 码,这使得它处理突发错误的能力特别强。 码长:12-=m n 信息段:t n k 2-= (t 为纠错符号数) 监督段:k n t -=2 最小码段:12+=t d 最小距离为d 的本原RS 码的生成多项式为:g(x)=(x-α)(x -α2)(x -α3)…(x -αd -2) 信息元多项式为::m(x)=m0+m1x+m2x2+…+mk -1xk-1 循环码特点有: 1)循环码是线性分组码的一种,所以它具有线性分组的码的一般特性,且具有循环性,纠错能力强。 2)循环码是一种无权码,循环码编排的特点为相邻的两个数码之间符合卡诺中的邻接条件,即相邻数码间只有一位码元不同,因此它具有一个很好的优点是它满足邻接条件,没有瞬时错误(在数码变换过程中,在速度上会有快有慢,中间经过其他一些数码形式,即为瞬时错误)。 3)码字的循环特性,循环码中任一许用码经过牡环移位后,所得到的码组仍然是许用码组。

通信原理实验报告

通信原理实验报告

作者: 日期:

通信原理实验报告 实验名称:实验一—数字基带传输系统的—MATLAB方真 实验二模拟信号幅度调制仿真实验班级:10通信工程三班_________ 学号:2010550920 ________________ 姓名:彭龙龙______________

指导老师:王仕果______________

实验一数字基带传输系统的MATLA仿真 一、实验目的 1、熟悉和掌握常用的用于通信原理时域仿真分析的MATLAB函数; 2、掌握连续时间和离散时间信号的MATLAB产生; 3、牢固掌握冲激函数和阶跃函数等函数的概念,掌握卷积表达式及其物理意义,掌握卷积的计算方法、卷积的基本性质; 4、掌握利用MATLAB计算卷积的编程方法,并利用所编写的MATLAB程序验证卷积的常用基本性质; 5、掌握MATLAB描述通信系统中不同波形的常用方法及有关函数,并学会利用MATLAB求解系统功率谱,绘制相应曲线。 基本要求:掌握用MATLAB描述连续时间信号和离散时间信号的方法,能够编写 MATLAB程序,实现各种常用信号的MATLA实现,并且以图形的方式再现各种信号的波形。 二、实验内容 1、编写MATLAB程序产生离散随机信号 2、编写MATLAB程序生成连续时间信号 3、编写MATLAB程序实现常见特殊信号 三、实验原理 从通信的角度来看,通信的过程就是消息的交换和传递的过程。而从数学的角度来看,信息从一地传送到另一地的整个过程或者各个环节不外乎是一些码或信号的交换过程。例如信源压缩编码、纠错编码、AMI编码、扰码等属于码层次上的变换,而基带成形、滤波、调 制等则是信号层坎上的处理。码的变换是易于用软件来仿真的。要仿真信号的变换,必须解 决信号与信号系统在软件中表示的问题。 3.1信号及系统在计算机中的表示 3.1.1时域取样及频域取样 一般来说,任意信号s(t)是定义在时间区间(-R, +R)上的连续函数,但所有计算机的CPU都只能按指令周期离散运行,同时计算机也不能处理( -R, + R)这样一个时间段。 为此将把s(t)按区间T, T截短为 2 2 S T(t),再对S T(t)按时间间隔△ t均匀取样,得到取样 点数为: 仿真时用这个样值集合来表示信号 T Nt t s(t)。显然△ t反映了仿真系统对信号波形的分辨 率, (3-1) △ t越小则仿真的精确度越高。据通信原理所学,信号被取样以后,对应的频谱时频率的周期函数,其重复周期是—。如果信号的最高频率为f H,那么必须有f H W 丄才能保证不发 t 2 t 生频域混叠失真。设 1 B s 2 t 则称B s为仿真系统的系统带宽。如果在仿真程序中设定的采样间隔是△ (3-2) t,那么不能用

实验6 BCH循环码的编码与译码的matlab实现

实验6 BCH循环码的编码与译码 一、实验内容 用VC或Matlab软件编写循环BCH码的编码与译码程序。利用程序对教科书的例题做一个测试。 二、实验环境 1.计算机 2.Windows 2000 或以上 3.Microsoft Visual C++ 6.0 或以上 4.Matlab 6.0或以上 三、实验目的 1.通过BCH循环码的编码与译码程序的编写,彻底了解并掌握循环BCH的编码与译码原理 2.通过循环BCH码的编码与译码程序的编写,提高编程能力。 四、实验要求 1.提前预习实验,认真阅读实验原理以及相应的参考书。 2.对不同信道的进行误码率分析。特别是对称信道,画出误码性能图。即信道误码率与循环汉明码 之间的关系。 3.认真填写实验报告。 五、实验原理 1.循环BCH的编码与译码原理(略) 2.循环BCH的程序实现。 六、实验步骤 bch_en_decode.m文件 function bch_en_decode() code=bch155 code=code+randerr(5,15,1:3); code=rem(code,2); code=gf(code) %随机产生1-3位错误 decode=debch155(code) end function decode=debch155(code) code=gf(code); M=4; code = gf(code.x,M); [m , n]=size(code);decode=[]; code1=[]; for i=1:m ;code1=code(i,:); M=code1.m;T2=6;N=15; S = code1* ((gf(2,M,code1.prim_poly)).^([N-1:-1:0]'*([1:T2]))); LambdaX = gf([1 zeros(1,T2)],M,code1.prim_poly);

通信原理实验报告

实验一常用信号的表示 【实验目的】 掌握使用MATLAB的信号工具箱来表示常用信号的方法。 【实验环境】 装有MATLAB6.5或以上版本的PC机。 【实验内容】 1. 周期性方波信号square 调用格式:x=square(t,duty) 功能:产生一个周期为2π、幅度为1 ±的周期性方波信号。其中duty表示占空比,即在信号的一个周期中正值所占的百分比。 例1:产生频率为40Hz,占空比分别为25%、50%、75%的周期性方波。如图1-1所示。 clear; % 清空工作空间内的变量 td=1/100000; t=0:td:1; x1=square(2*pi*40*t,25); x2=square(2*pi*40*t,50); x3=square(2*pi*40*t,75); % 信号函数的调用subplot(311); % 设置3行1列的作图区,并在第1区作图plot(t,x1); title('占空比25%'); axis([0 0.2 -1.5 1.5]); % 限定坐标轴的范围 subplot(312); plot(t,x2); title('占空比50%'); axis([0 0.2 -1.5 1.5]); subplot(313); plot(t,x3); title('占空比75%'); axis([0 0.2 -1.5 1.5]);

图1-1 周期性方波 2. 非周期性矩形脉冲信号rectpuls 调用格式:x=rectpuls(t,width) 功能:产生一个幅度为1、宽度为width、以t=0为中心左右对称的矩形波信号。该函数横坐标范围同向量t决定,其矩形波形是以t=0为中心向左右各展开width/2的范围。Width 的默认值为1。 例2:生成幅度为2,宽度T=4、中心在t=0的矩形波x(t)以及x(t-T/2)。如图1-2所示。 t=-4:0.0001:4; T=4; % 设置信号宽度 x1=2*rectpuls(t,T); % 信号函数调用 subplot(121); plot(t,x1); title('x(t)'); axis([-4 6 0 2.2]); x2=2*rectpuls(t-T/2,T); % 信号函数调用

实验6 循环码的软件编、译码实验

实验六循环码的软件编、译码实验 一、实验目的 (1)通过实验了解循环码的工作原理。 (2)了解生成多项式g(x)与编码、译码的关系。 (3)了解码距d与纠、检错能力之间的关系。 (4)分析(7.3)循环码的纠错能力。 二、实验要求 用你熟悉的某种计算机高级语言或单片机汇编语言,编制一(7,3)循环码的编、译码程序,并改变接受序列R(x)和错误图样E(x),考查纠错能力情况。 设(7,3)循环码的生成多项式为:g(x)=x4+x3+x2+1 对应(11101)(1)按编、译码计算程序框图编写编、译码程序 (2)计算出所有的码字集合,可纠的错误图样E(x)表和对应的错误伴随式表。 (3)考查和分析该码检、纠一、二位错误的能力情况。 (4)整理好所有的程序清单,变量名尽量用程序框图所给名称,并作注释。 (5) 出示软件报告. 三、实验设计原理 循环码是一类很重要的线性分组码纠错码类,循环码的主要优点是编、译码器较简单,编码和译码能用同样的反馈移存器重构,在多余度相同的条件下检测能力较强,不检测的错误概率随多余度增加按指数下降。另外由于循环码具有特殊的代数结构,使得循环码的编、译码电路易于在微机上通过算法软件实现。 1、循环码编码原理 设有一(n,k)循环码,码字C=[C n-1…C r C r-1…C0],其中r=n-k。码字多项式为: C (x ) = C n-1x n-1+ C n-2x n-2+… +C1x+C0。 码字的生成多项式为: g(x)= g r-1x r-1+g r-2x r-2+…+g1x+g0 待编码的信息多项式为:m(x)=m K-1x K-1+…+m0 x n-k.m(x)=C n-1x n-1+…+C n-K x n-K

通信原理实验报告2

通信原理 实验报告 课程名称:通信原理 实验三:二进制数字信号调制仿真实验实验四:模拟信号数字传输仿真实验姓名: 学号: 班级: 2012年12 月

实验三二进制数字信号调制仿真实验 一、实验目的 1.加深对数字调制的原理与实现方法; 2.掌握OOK、2FSK、2PSK功率谱密度函数的求法; 3.掌握OOK、2FSK、2PSK功率谱密度函数的特点及其比较; 4.进一步掌握MATLAB中M文件的调试、子函数的定义和调用方法。 二、实验内容 1. 复习二进制数字信号幅度调制的原理 2. 编写MATLAB程序实现OOK调制; 3. 编写MATLAB程序实现2FSK调制; 4. 编写MATLAB程序实现2PSK调制; 5. 编写MATLAB程序实现数字调制信号功率谱函数的求解。 三、实验原理 在数字通信系统中,需要将输入的数字序列映射为信号波形在信道中传输,此时信源输出数字序列,经过信号映射后成为适于信道传输的数字调制信号。数字序列中每个数字产生的时间间隔称为码元间隔,单位时间内产生的符号数称为符号速率,它反映了数字符号产生的快慢程度。由于数字符号是按码元间隔不断产生的,经过将数字符号一一映射为响应的信号波形后,就形成了数字调制信号。根据映射后信号的频谱特性,可以分为基带信号和频带信号。 通常基带信号指信号的频谱为低通型,而频带信号的频谱为带通型。 调制信号为二进制数字基带信号时,对应的调制称为二进制调制。在二进制数字调制中,载波的幅度、频率和相位只有两种变化状态。相应的调制方式有二进制振幅键控(OOK/2ASK)、二进制频移键控(2FSK)和二进制相移键控(2PSK)。 下面分别介绍以上三种调制方法的原理,及其MATLAB实现: 本实验研究的基带信号是二进制数字信号,所以应该首先设计MATLAB程序生成二进制数字序列。根据实验一的实践和第一部分的介绍,可以很容易的得到二进制数字序列生成的MATLAB程序。 假定要设计程序产生一组长度为500的二进制单极性不归零信号,以之作为后续调制的信源,并求出它的功率谱密度,以方便后面对已调信号频域特性和基带信号频域特性的比较。整个过程可用如下程序段实现: %定义相关参数 clear all; close all; A=1 fc=2; %2Hz; N_sample=8; N=500; %码元数 Ts=1; %1 Baud/s dt=Ts/fc/N_sample; %波形采样间隔 t=0:dt:N*Ts-dt; Lt=length(t);

通信原理实验一、二实验报告

通信原理 实验一 实 验 报 告 实验日期: 学院: 班级: 学号: 姓名: 指导老师:

实验一数字基带传输系统的MA TLAB仿真 一、实验目的 1、熟悉和掌握常用的用于通信原理时域仿真分析的MATLAB函数; 2、掌握连续时间和离散时间信号的MATLAB产生; 3、牢固掌握冲激函数和阶跃函数等函数的概念,掌握卷积表达式及其物理意义,掌握 卷积的计算方法、卷积的基本性质; 4、掌握利用MATLAB计算卷积的编程方法,并利用所编写的MA TLAB程序验证卷积的 常用基本性质; 5、掌握MATLAB描述通信系统中不同波形的常用方法及有关函数,并学会利用 MATLAB求解系统功率谱,绘制相应曲线。 基本要求:掌握用MATLAB描述连续时间信号和离散时间信号的方法,能够编写 MATLAB程序,实现各种常用信号的MA TLAB实现,并且以图形的方式再现各种信号的波形。 二、实验内容 1、编写MATLAB 程序产生离散随机信号 2、编写MATLAB 程序生成连续时间信号 3、编写MATLAB 程序实现常见特殊信号 三、实验原理 从通信的角度来看,通信的过程就是消息的交换和传递的过程。而从数学的角度来看, 信息从一地传送到另一地的整个过程或者各个环节不外乎是一些码或信号的交换过程。例如 信源压缩编码、纠错编码、AMI编码、扰码等属于码层次上的变换,而基带成形、滤波、调 制等则是信号层次上的处理。码的变换是易于用软件来仿真的。要仿真信号的变换,必须解 决信号与信号系统在软件中表示的问题。 四、实验步骤 (1)分析程序program1_1 每条指令的作用,运行该程序,将结果保存,贴在下面的空白 处。然后修改程序,将dt 改为0.2,并执行修改后的程序,保存图形,看看所得图形的效果 怎样。 dt=0.01 时的信号波形 Sinusoidal signal x(t) -2-1.5-1-0.500.51 1.52 Time t (sec) dt=0.2 时的信号波形

通信原理实验报告一

实验一信号源实验 一、实验目的 1、了解通信系统的一般模型及信源在整个通信系统中的作用。 2、掌握信号源模块的使用方法。 二、实验内容 1、对应液晶屏显示,观测DDS信源输出波形。 2、观测各路数字信源输出。 3、观测正弦点频信源输出。 4、模拟语音信源耳机接听话筒语音信号。 三、实验仪器 1、信号源模块一块 2、20M双踪示波器一台 四、实验原理 信号源模块大致分为DDS信源、数字信源、正弦点频信源和模拟语音信源几部分。 1、DDS信源 DDS直接数字频率合成信源输出波形种类、频率、幅度及方波B占空比均可通过“DDS信源按键”调节(具体的操作方法见“实验步骤”),并对应液晶屏显示波形信息。 正弦波输出频率范围为1Hz~200KHz,幅度范围为200mV~4V。 三角波输出频率范围为1Hz~20KHz,幅度范围为200mV~4V。 锯齿波输出频率范围为1Hz~20KHz,幅度范围为200mV~4V。 方波A输出频率范围为1Hz~50KHz,幅度范围为200mV~4V,占空比50%不变。 方波B输出频率范围为1Hz~20KHz,幅度范围为200mV~4V,占空比以5%步进可调。 输出波形如下图1-1所示。

正弦波:1Hz-200KHz 三角波:1Hz-20KHz 锯齿波:1Hz-20KHz 方波A:1Hz-50KHz(占空比50%) 方波B:1Hz-20KHz(占空比0%-100%可调) 图1-1 DDS信源信号波形 2、数字信源 (1)数字时钟信号 24.576M:钟振输出时钟信号,频率为24.576MHz。 2048K:类似方波的时钟信号输出点,频率为2048 KHz。64K:方波时钟信号输出点,频率为64 KHz。 32K:方波时钟信号输出点,频率为32KHz。 8K:方波时钟信号输出点,频率为8KHz。 输出时钟如下图1-2所示。

通信原理实验报告

通信原理实验报告 一.实验目的 熟悉掌握MATLAB软件的应用,学会对一个连续信号的频谱进行仿真,熟悉sigexpand(x2,ts2/ts1)函数的意义和应用,完成抽样信号对原始信号的恢复。 二.实验内容 设低通信号x(t)=cos(4pi*t)+1.5sin(6pi*t)+0.5cos(20pi*t); (1)画出该低通信号的波形 (2)画出抽样频率为fs=10Hz(亚采样)、20Hz(临界采样)、50Hz(过采样)的抽样序列 (3)抽样序列恢复出原始信号 (4)三种抽样频率下,分别分析对比模拟信号、离散采样信号、恢复信号的时域波形的差异。 原始信号与恢复信号的时域波形之差有何特点?有什么样的发现和结论? (5)三种抽样频率下,分别分析对比模拟信号、离散采样信号、恢复信号的频域特性的差异。 原始信号与恢复信号的频域波形之差有何特点?有什么样的发现和结论? 实验程序及输出结果 clear; close all; dt=0.05; t=-2:dt:2 x=cos(4*pi*t)+1.5*sin(6*pi*t)+0.5*cos(20*pi*t); N=length(t); Y=fft(x)/N*2; fs=1/dt; df=fs/(N-1); f=(0:N-1)*df; subplot(2,1,1) plot(t,x) title('抽样时域波形') xlabel('t') grid; subplot(2,1,2) plot(f,abs(Y)); title('抽样频域信号 |Y|'); xlabel('f'); grid;

定义sigexpand函数 function[out]=sigexpand(d,M) N=length(d); out=zeros(M,N); out(1,:)=d; out=reshape(out,1,M*N); 频域时域分析fs=10Hz clear; close all; dt=0.1; t0=-2:0.01:2 t=-2:dt:2 ts1=0.01 x0=cos(4*pi*t0)+1.5*sin(6*pi*t0)+0.5*cos(20*pi*t0); x=cos(4*pi*t)+1.5*sin(6*pi*t)+0.5*cos(20*pi*t); B=length(t0); Y2=fft(x0)/B*2; fs2=1/0.01; df2=fs2/(B-1); f2=(0:B-1)*df2; N=length(t); Y=fft(x)/N*2;

通信原理实验报告——xxx

通信原理 实验报告 实验名称:实验一码型变换实验 姓名:xxxx 专业班级:电信xxxxx班 学号:xxxxxxxxxxxxx 中南大学物理与电子学院 X2013年下学期 xx月xx号

码型变换实验: 一、实验目的 1、了解几种常用的数字基带信号。 2、掌握常用数字基带传输码型的编码规则。 3、掌握常用CPLD实现码型变换的方法。 二、实验内容 1、观察NRZ码、RZ码、AMI码HDB3码CMI 码BPH码的波形。 2、观察全0码或者全1码时各码型的波形。 3、观察HDB3码、AMI码的正负极性波形。 4、观察RZ码、AMI码、HDB3码、CMI码、 BPH码经过码型反变换后的输出波形。5、自行设计码型变换电路,下载并观察波 形。 三、实验器材 1、信号源模块 2、编码、译码模块 3、20M双示踪示波器 4、连接线 四、实验结果分析 1、CMI、RZ、BPH码遍解码电路观测

信号源: S1:01110010 S2:01010101 S3:00110011 CMI码: DOUT1波形:1110010 NRZ-OUT输出波形:01010101001100110111 RZ码: DOUT1:11001101

NRZ-OUT输出波形:001100110111001001 DOUT1:10111001001010101

NRZ-OUT输出波形:010110010110011 2、AMI、HDB3码编解码电路观测 S1:01110010 S2:00011000 S3:01000011 AMI码: DOUT1:

DOUT2: AMI-OUT:101001100100110111010011001

(7,4)循环码的编码和译码

(7,4)循环码的编码译码 编码的实验原理: 根据循环码的代数性质建立系统编码的过程,可以把消息矢量用如下多项式表示: 要编码成系统循环码形式,把消息比特移入码字寄存器的最右边k 位,而把监督比特加在最左边的n-k 个中,则要用k n x -乘以m(x)得到 k n x - m(x)= k n x - m(x)= q(x) g(x)+ p(x),其中p(x)可以表示为 p(x)= ,则p(x)+ k n x - m(x) = + 另U(x)= p(x)+ k n x - m(x),则U=(0p ,1p ,2p ,·,1--k n p ,0m ,1m ,·,1-k m )。 本实验根据以上原理,用matlab 实现书上例6.8系统形式的循 环码,生成多项式为g(x)= (7,4)循环码的编码的程序如下:clear; clc; a=[1 0 1 1]; %高次项系数在前的生成多项式 Gx=[1 0 1 1]; %将数组a 的高位依次放在数组Data 的低位 Data=zeros(1,7); Data(1)=a(4); Data(2)=a(3); Data(3)=a(2); Data(4)=a(1); %Data 除以Gx 得到余数Rx [Qx,Rx]=deconv(Data,Gx); 12211...)(m x m x m x m x m k k k k ++++=----k n k n n k n k x m x m x m x m -+-----++++0112211 (011) 1...p x p x p k n k n +++----0 111...p x p x p k n k n +++----k n k n n k n k x m x m x m x m -+-----++++0112211 (3) 1x x ++

通信原理2DPSK调制与解调实验报告

通信原理课程设计报告

一. 2DPSK基本原理 1.2DPSK信号原理 2DPSK方式即是利用前后相邻码元的相对相位值去表示数字信息的一种方式。现假设用Φ表示本码元初相与前一码元初相之差,并规定:Φ=0表示0码,Φ=π表示1码。则数字信息序列与2DPSK信号的码元相位关系可举例表示如2PSK信号是用载波的不同相位直接去表示相应的数字信号而得出的,在接收端只能采用相干解调,它的时域波形图如图2.1所示。 图1.1 2DPSK信号 在这种绝对移相方式中,发送端是采用某一个相位作为基准,所以在系统接收端也必须采用相同的基准相位。如果基准相位发生变化,则在接收端回复的信号将与发送的数字信息完全相反。所以在实际过程中一般不采用绝对移相方式,而采用相对移相方式。 定义?Φ为本码元初相与前一码元初相之差,假设: ?Φ=0→数字信息“0”; ?Φ=π→数字信息“1”。 则数字信息序列与2DPSK信号的码元相位关系可举例表示如下: 数字信息: 1 0 1 1 0 1 1 1 0 1

DPSK信号相位:0 π π 0 π π 0 π 0 0 π 或:π 0 0 π 0 0 π 0 π π 0 2. 2DPSK信号的调制原理 一般来说,2DPSK信号有两种调试方法,即模拟调制法和键控法。2DPSK 信号的的模拟调制法框图如图1.2.1所示,其中码变换的过程为将输入的单极性不归零码转换为双极性不归零码。 图1.2.1 模拟调制法 2DPSK信号的的键控调制法框图如图1.2.2所示,其中码变换的过程为将输入的基带信号差分,即变为它的相对码。选相开关作用为当输入为数字信息“0”时接相位0,当输入数字信息为“1”时接pi。 图1.2.2 键控法调制原理图 码变换相乘 载波 s(t)e o(t)

通信原理实验报告

通信原理 实 验 报 告

实验一 数字基带信号实验(AMI/HDB3) 一、 实验目的 1、了解单极性码、双极性码、归零码、不归零码等基带信号波形特点 2、掌握AMI 、HDB 3的编码规则 3、掌握从HDB 3码信号中提取位同步信号的方法 4、掌握集中插入帧同步码时分复用信号的帧结构特点 5、了解HDB 3(AMI )编译码集成电路CD22103 二、 实验内容 1、用示波器观察单极性非归零码(NRZ )、传号交替反转码(AMI )、三阶高密度 双极性码(HDB 3)、整流后的AMI 码及整流后的HDB 3码 2、用示波器观察从HDB 3/AMI 码中提取位同步信号的波形 3、用示波器观察HDB 3、AMI 译码输出波形 三、 基本原理 本实验使用数字信源模块(EL-TS-M6)、AMI/HDB 3编译码模块(EL-TS-M6)。 BS S5S4S3S2S1 BS-OUT NRZ-OUT CLK 并 行 码 产 生 器 八选一 八选一八选一分 频 器 三选一 NRZ 抽 样 晶振 FS 倒相器 图1-1 数字信源方框图 010×0111××××××××× ×××××××数据2 数据1 帧同步码 无定义位 图1-2 帧结构 四、实验步骤 1、 熟悉信源模块和HDB3/AMI 编译码模块的工作原理。 2、 插上模块(EL-TS-M6),打开电源。用示波器观察数字信源模块上的各种信号波形。 用FS 作为示波器的外同步信号,进行下列观察: (1) 示波器的两个通道探头分别接NRZ-OUT 和BS-OUT ,对照发光二极管的发光状态,判断数字信源单元是否已正常工作(1码对应的发光管亮,0码对应的发光管熄);

通信原理实验报告

实 验 报 告 实验名称:PAM编译码器系统 姓名: 学号: 日期: 一.实验名称:PAM编译码器系统 二、实验仪器 1、J H5001通信原理综合实验系统一台 2、20MHz双踪示波器一台

3、函数信号发生器一台 三、实验目的 1、验证抽样定理 2、观察了解PAM信号形成的过程 3、了解混迭效应形成的原因 四、实验内容 准备工作:将交换模块内的抽样时钟模式开关KQ02设置在NH位置(右端),将测试信号选择开关KQ01设置在外部测试信号输入2_3位置(右端)。 1.近似自然抽样脉冲序列测量 (1)首先将输入信号选择开关K701设置在T(测试状态)位置,将低通滤波器选择开关K702设置在F(滤波位置),为便于观测,调整函数信号发生器正弦波输出频率为200~1000Hz、输出电平为2Vp-p的测试信号送入信号测试端口J005和J006(地)。 (2)用示波器同时观测正弦波输入信号(J005)和抽样脉冲序列信号(TP703),观测时以TP703做同步。调整示波器同步电平和微调调整函数信号发生器输出频率,使抽样序列与输入测试信号基本同步。测量抽样脉冲序列信号与正弦波输入信号的对应关系。 2.重建信号观测 TP704为重建信号输出测试点。保持测试信号不变,用示波器同时观测重建信号输出测试点和正弦波输入信号,观测时以J005输入信号做同步。 3.平顶抽样脉冲序列测量 将交换模块内的抽样时钟模式开关KQ02设置在H位置(左端)。 方法同1测量,请同学自拟测量方案。记录测量波形,与自然抽样测量结果做比较。 4.平顶抽样重建信号观测 将交换模块内的抽样时钟模式开关KQ02设置在H位置(左端)。 方法同2测量,请同学自拟测量方案。记录测量波形,与自然抽样测量结果对比分析平顶抽样的测试结果。 5.信号混迭观测 (1)当输入信号频率高于4KHz(1/2抽样频率)时,重建信号将出现混迭效应。观测时,将跳线开关K702设置在NF(无输入滤波器)位置。调整函数信号发生器正

通信原理实验报告89077

实验一、PCM编译码实验 实验步骤 1. 准备工作:加电后,将交换模块中的跳线开关KQ01置于左端PCM编码位置,此时MC145540工作在PCM编码状态。 2. PCM串行接口时序观察 (1)输出时钟和帧同步时隙信号观测:用示波器同时观测抽样时钟信号(TP504)和输出时钟信号(TP503),观测时以TP504做同步。分析和掌握PCM编码抽样时钟信号与输出时钟的对应关系(同步沿、脉冲宽度等)。 (2)抽样时钟信号与PCM编码数据测量:用示波器同时观测抽样时钟信号(TP504)和编码输出数据信号端口(TP502),观测时以TP504做同步。分析和掌握PCM编码输出数据与抽样时钟信号(同步沿、脉冲宽度)及输出时钟的对应关系。 3. PCM编码器 (1)方法一: (A)准备:将跳线开关K501设置在测试位置,跳线开关K001置于右端选择外部信号,用函数信号发生器产生一个频率为1000Hz、电平为2Vp-p的正弦波测试信号送入信号测试端口J005和J006(地)。 (B)用示波器同时观测抽样时钟信号(TP504)和编码输出数据信号端口(TP502),观测时以TP504做同步。分析和掌握PCM编码输出数据与抽样时钟信号(同步沿、脉冲宽度)及输出时钟的对应关系。分析为什么采用一般的示波器不能进行有效的观察。 (2)方法二: (A)准备:将输入信号选择开关K501设置在测试位置,将交换模块内测试信号选择开关K001设置在内部测试信号(左端)。此时由该模块产生一个1KHz的测试信号,送入PCM编码器。(B)用示波器同时观测抽样时钟信号(TP504)和编码输出数据信号端口(TP502),观测时以内部测试信号(TP501)做同步(注意:需三通道观察)。分析和掌握PCM编码输出数据与帧同步时隙信号、发送时钟的对应关系。 4. PCM译码器 (1)准备:跳线开关K501设置在测试位置、K504设置在正常位置,K001置于右端选择外部信号。此时将PCM输出编码数据直接送入本地译码器,构成自环。用函数信号发生器产生一个频率为1000Hz、电平为2Vp-p的正弦波测试信号送入信号测试端口J005和J006(地)。 (2) PCM译码器输出模拟信号观测:用示波器同时观测解码器输出信号端(TP506)和编码器输入信号端口(TP501),观测信号时以TP501做同步。定性的观测解码信号与输入信号的关系:质量、电平、延时。 5. PCM频率响应测量:将测试信号电平固定在2Vp-p,调整测试信号频率,定性的观测解码恢复出的模拟信号电平。观测输出信号信电平相对变化随输入信号频率变化的相对关系。

通信原理实验报告

通信原理实验报告 实验一抽样定理 实验二 CVSD编译码系统实验 实验一抽样定理 一、实验目的 所谓抽样。就是对时间连续的信号隔一定的时间间隔T 抽取一个瞬时幅度值(样值),即x(t)*s(t)=x(t)s(t)。在一个频带限制在(0,f h)内的时间连续信号f(t),如果以小于等于1/(2 f h)的时间间隔对它进行抽样,那么根据这些抽样值就能完全恢复原信号。 抽样定理告诉我们:如果对某一带宽有限的时间连续信号(模拟信号)进行抽样,且抽样速率达到一定数值时,那么根据这些抽样值就能准确地还原信号。这就是说,若要传输模拟信号,不一定要传输模拟信号本身,可以只传输按抽样定理得到的抽样值。 二、功能模块介绍 1.DDS 信号源:位于实验箱的左侧 (1)它可以提供正弦波、三角波等信号,通过连接P03 测试点至PAM 脉冲调幅模块的32P010 作为脉冲幅度调制器的调制信号x(t)。抽样脉冲信号则是通过P09 测试点连至PAM 脉冲调幅模块。 (2)按下复合式按键旋钮SS01,可切换不同的信号输出状态,例如D04D03D02D01=0010 对应的是输出正弦波,每种LED 状态对应一种信号输出,具体实验板上可见。 (3)旋转复合式按键旋钮SS01,可步进式调节输出信号的频率,顺时针旋转频率每步增加100Hz,逆时针减小100Hz。 (4)调节调幅旋钮W01,可改变P03 输出的各种信号幅度。 2.抽样脉冲形成电路模块 它提供有限高度,不同宽度和频率的抽样脉冲序列,可通过P09 测试点连线送到PAM 脉冲调幅模块32P02,作为脉冲幅度调制器的抽样脉冲s(t)。P09 测试点可用于抽样脉冲的连接和测量。该模块提供的抽样脉冲频率可通过旋转SS01 进行调节,占空比为50%。 3.PAM 脉冲调幅模块 它采用模拟开关CD4066 实现脉冲幅度调制。抽样脉冲序列为高电平时,模拟开关导通,有调制信号输出;抽样脉冲序列为低电平,模拟开关断开,无信号输出。因此,本模块实现的是自然抽样。在32TP01 测试点可以测量到已调信号波形。 调制信号和抽样脉冲都需要外接连线输入。已调信号经过PAM 模拟信道(模拟实际信道的惰性)的传输,从32P03 铆孔输出,可能会产生波形失真。PAM 模拟信道电路示意图如下图所示,32W01(R1)电位器可改变模拟信道的传输特性。

卷积码实验报告

卷积码实验报告 篇一:卷积码实验报告 实验五信道编解码() 本章目标 掌握数字频带传输系统调制解调的仿真过程掌握数字频带传输系统误码率仿真分析方法 5.1实验目的 1. 使用MATLAB进行卷积码编/译码器的仿真。 2. 熟练掌握MATLAB软件、语句。 3. 了解卷积码编/译码器的原理、知识。 5.2实验要求 1. 编写源程序、准备测试数据。 2. 在 MATLAB环境下完成程序的编辑、编译、运行,获得程序结果。如果结果有误, 应找出原因,并设法更正之。 5.3 实验原理 (一)卷积码编码器 1. 连接表示 卷积码由3个整数n,k,N描述。k/n也表示编码效率(每编码比特所含的信 N称为约束长度,息量);但n与线性分组码中的含义不同,不再表示分组或码子长度; 表示在编码移位寄存器中k元组的级数。卷积码不同于分组码的一个重要特征就是编码器的记忆性,即卷积码编码过程中产生的n元组,不仅是当前输入k元组的函数,而且

还是前面N?1个输入k元组的函数。实际情况下,n和k经常取较小的值,而通过N的变化来控制编码的能力和复杂性。 下面以图1中的卷积码编码器为例介绍卷积码编码器。该图表示一个约束长度 K?3的(2,1)卷积译码器,模2加法器的数目为n?2,因此,编码效率k/n?1/2。 在每个输入比特时间上,1位信息比特移入寄存器最左端的一级,同时将寄存器中原有比特均右移一级,接着便交替采样两个模2加法器,得到的码元就是与该输入比特相对应的分支字。对每一个输入信号比特都重复上述采样过程。 图1卷积码编码器(编码效率1/2,K?3) 用于描述反馈移位寄存器实现循环码时所使用的生成多项式也可用户描述卷积码编码器的连接。应用n个生成多项式描述编码的移位寄存器与模2加法器的连接方式,n个生成多项式分别对应n个模2加法器,每个生成多项式不超过K?1阶。仍以图 1中的编码器为例,用生成多项式g1(X)代表上方连接,g2(X)代表下方连接,则有: g1(X)?1?X?X2g2(X)?1?X 2 多项式中的最低阶项对应于寄存器的输入级。输出序

通信原理实验报告眼图

部分响应系统 一、实验目的 1.通过实验掌握第一类部分响应系统的原理及实现方法; 2.掌握基带信号眼图的概念及绘制方法。 二、实验原理 1.部分响应系统 为了提高系统的频带利用率,减小定时误差带来的码间干扰,升余弦传输特性在这两者的选择是有矛盾的。理想低通传输特性可以有最高的频带利用率 2=s η,但拖尾的波动比较大,衰减也比较慢。若能改善这种情况,并保留系统 的带宽等于奈奎斯特带宽,就能在保证一定的传输质量前提下显著地提高传输速率。这是有实际意义的,特别是在高速大容量传输系统中。部分响应传输系统就具有这样的特点。 部分响应传输系统是通过对理想低通滤波器冲激响应的线性加权组合,来控制整个传输系统冲激响应拖尾的波动幅度和衰减。当然,这样做会引入很强的码间干扰,但这种码间干扰是可控制的,是已知的,因此很容易从接收信号的抽样值中减去。由于这种组合并不影响系统的传输带宽,因此频带利用率高。 第一类部分响应系统是在相邻的两个码元间引入码间干扰。由于理想低通系统的传递函数为 其冲激响应为s s T t T t t h //sin )(ππ= ,如果用)(t h 以及)(t h 的时延s T 的波形作为系统的 冲激响应,那么它的系统带宽肯定限制在??? ? ? ?-s s T T 21,21,也就是说,系统的频带利用率为2bit/Hz 。 接着来看系统的冲激响应函数)(t g : s s s s s s s T t T t T t T T t c T t c T t h t h t g /11 sin )(sin sin )()()(-= ?? ????-+=-+=ππππ s T f 21 ||< 其他 ???=0 )(s T f H

通信原理实验报告systemview-数字信号的基带传输

通信原理实验报告 实验名称:数字信号的基带传输 一.实验目的 (1)理解无码间干扰数字基带信号的传输; (2)掌握升余弦滚降滤波器的特性;

(3)通过时域、频域波形分析系统性能。 二、仿真环境 SystemView 仿真软件 三、实验原理 (1)数字基带传输系统的基本结构 它主要由信道信号形成器、信道、接收滤滤器和抽样判决器组成。为了保证系统可靠有序地工作,还应有同步系统。 1.信道信号形成器 把原始基带信号变换成适合于信道传输的基带信号,这种变换主要是通过码型变换和波形变换来实现的。 2.信道 是允许基带信号通过的媒质,通常为有线信道,信道的传输特性通常不满足无失真传输条件,甚至是随机变化的。另外信道还会进入噪声。 3.接收滤波器 滤除带外噪声,对信道特性均衡,使输出的基带波形有利于抽样判决。 4.抽样判决器 在传输特性不理想及噪声背景下,在规定时刻(由位定时脉冲控制)对接收滤波器的输出波形进行抽样判决,以恢复或再生基带信号。而用来抽样的位定时脉冲则依靠同步提取电路从接收信号中提取。 (2) 奈奎斯特第一准则 奈奎斯特准则提出:只要信号经过整形后能够在抽样点保持不变, 即使其波形已经发生了变化,也能够在抽样判决后恢复原始的信号, 因为信息完全恢复携带在抽样点幅度上。 奈奎斯特准则要求在波形成形输入到接收端的滤波器输出的整个 传送过程传递函数满足: 令k′=j -k , 并考虑到k′也为整数,可用k 表示: 在实际应用中,理想低通滤波器是不可能实现的,升余弦滤波器 是在实际中满足无码间干扰传输的充要条件,已获得广泛应用的滤波 器。 升余弦滤波器满足的传递函数为: ???=+-0)(1])[(0或其它常数t T k j h b k j k j ≠=???=+0 1)(0t kT h b 00≠=k k

通信原理实验报告修订版

通信原理实验报告 IMB standardization office【IMB 5AB- IMBK 08- IMB 2C】

学院 实验报告 课程名称: 姓名: 学号: 班级: 指导教师: 2017年6月1日

目录 实验网络和实验板简介 (3) 实验1 数字基带信号与 AMI/HDB3编译码 (4) 1.1 实验目的 (4) 1.2 基本原理 (4) 1.3 实验步骤及实验结果 (5) 1.4 实验思考题 (10) 实验2 数字调制 (12) 2.1 实验目的 (12) 2.2 实验原理 (12) 2.3 实验步骤及实验结果 (12) 2.4 实验思考题 (14) 实验3 模拟锁相环与载波同步 (15) 3.1 实验目的 (15) 3.2 实验原理 (15) 3.3 实验步骤及实验结果 (15) 3.4 实验思考题 (18) 实验4 数字解调与眼图 (18) 4.1 实验目的 (18) 4.2 实验原理 (18) 4.3 实验步骤及实验结果 (19) 4. 2FSK解调实验 (21) 4.4 实验思考题 (22) 实验5 数字锁相环与位同步 (22) 5.1 实验目的 (22) 5.2 实验原理 (22) 5.3 实验步骤及实验结果 (23) 5.4 实验思考题 (24) 实验6 帧同步 (25) 6.1 实验目的 (25) 6.2 实验原理 (25) 6.3 实验步骤及实验结果 (26) 6.4 实验思考题 (28) 实验 7 时分复用数字基带通信系统 (28) 7.1 实验目的 (28) 7.2 实验原理 (29) 7.3 实验步骤及实验结果 (30) 7.4 实验思考题 (31) 实验 8 时分复用 2DPSK、2FSK 通信系统 (31) 8.1 实验目的 (31) 8.2 实验原理 (32) 8.3 实验步骤及实验结果 (32) 8.4 实验思考题 (33)

北京邮电大学通信原理软件实验报告-28页文档资料

《通信原理软件》实验报告专业通信工程 班级 2011211118 姓名朱博文 学号 2011210511 报告日期 2013.12.20

基础实验: 第一次实验 实验二时域仿真精度分析 一、实验目的 1. 了解时域取样对仿真精度的影响 2. 学会提高仿真精度的方法 二、实验原理 一般来说,任意信号s(t)是定义在时间区间上的连续函数,但所有计算机的CPU 都只能按指令周期离散运行,同时计算机也不能处理这样一个时间段。为此将把s(t)截短,按时间间隔均匀取样,仿真时用这个样值集合来表示信号 s(t)。△t反映了仿真系统对信号波形的分辨率,△t越小则仿真的精确度越高。据通信原理所学,信号被取样以后,对应的频谱是频率的周期函数,才能保证不发生频域混叠失真,这是奈奎斯特抽样定理。设为仿真系统的系统带宽。如果在仿真程序中设定的采样间隔是,那么不能用此仿真程序来研究带宽大于的信号或系统。换句话说,就是当系统带宽一定的情况下,信号的采样频率最小不得小于2*f,如此便可以保证信号的不失真,在此基础上时域采样频率越高,其时域波形对原信号的还原度也越高,信号波形越平滑。也就是说,要保证信号的通信成功,必须要满足奈奎斯特抽样定理,如果需要观察时域波形的某些特性,那么采样点数越多,可得到越真实的时域信

号。 三、实验内容 1、方案思路: 通过改变取点频率观察示波器显示信号的变化 2、程序及其注释说明: 3、仿真波形及频谱图: Period=0.01 Period=0.3 4、实验结果分析: 以上两图区别在于示波器取点频率不同,第二幅图取点频率低于第一幅图,导致示波器在画图时第二幅图不如第一幅图平滑。 四、思考题 1.两幅图中第一幅图比第二幅图更加平滑,因为第一幅图中取样点数更 多 2.改为0.5后显示为一条直线,因为取点处函数值均为0 实验三频域仿真精度分析 一、实验目的

相关主题
文本预览
相关文档 最新文档