实验二(数字基带传输技术仿真实验)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验二数字基带传输技术仿真实验

实验要求:

1、学生按照实验指导报告独立完成相关实验的内容;

2、上机实验后撰写实验报告,记录下自己的实验过程,记录实验心得。

3、以电子形式在规定日期提交实验报告。

实验指导

1、单极性不归零码

单极性不归零码是一种最简单最常用的基带信号形式。这种信号脉冲的零电平和正电平分别对应着二进制代码0和1,即,在一个码元时间内用脉冲的有或者无来对应表示0或者1码。其特点是极性简单,有直流分量,脉冲之间无间隔。

生成单极性不归零码的MATLAB实现程序如下:

function y=snrz(x)

%本函数实现将输入的一段二进制代码编为相应的单极性不归零码输出

%输入x为二进制码,输出y为编号的码

t0=200;

t=0:1/t0:length(x); %给出相应的时间序列

for i=1:length(x) %计算码元的值

if x(i)==1 %如果输入信息为1

for j=1:t0 %该码元对应的点值取1

y((i-1)*t0+j)=1;

end

else

for j=1:t0

%如果输入信息为0,码元对应的点值取0

y((i-1)*t0+j)=0;

end

end

end

y=[y,x(i)];

plot(t,y);

%采用title 命令来实现标记出各码元对应的二元信息

title('1 0 1 1 0 0 1 0');

grid on;

axis([0,i,-0.1,1.1]);

在命令窗口中输入x的二进制代码和函数名,就可以得到所对应的单极性不归零码输出,如输入以下指令,将出现图1所示结果。

x=[1 0 1 1 0 0 1 0];

snrz(x)

图1 单极性不归零码

2、双极性不归零码

在双极性不归零码中,脉冲的正负对应着二进制代码的1和0,由于它是幅度相等极性相反的双极性波形,故当0、1符号等可能出现时无直流分量。这样,恢复信号的判决电平为0,因而不受信道特性变化的影响,抗干扰能力较强,故双极性码较单极性码更有利于在信道中传输。

双极性不归零码的MATLAB实现程序如下:

function y=dnrz(x)

t0=200;

t=0:1/t0:length(x);

for i=1:length(x)

if x(i)==1

for j=1:t0

y((i-1)*t0+j)=1;

end

else

for j=1:t0

%如果输入信息为0,码元对应的点值取-1

y((i-1)*t0+j)=-1;

end

end

end

y=[y,x(i)];

plot(t,y);

title('1 0 1 1 0 0 1 0');

grid on;

axis([0,i,-1.1,1.1]);

在命令窗口中输入x的二进制代码和函数名,就可以得到所对应的双极性不归零码输出,如输入以下指令,将出现图2所示结果。

x=[1 0 1 1 0 0 1 0];

dnrz(x)

图2 双极性不归零码

3、单极性归零码

单极性归零码与单极性不归零码的区别是电脉冲宽度小于码元宽度,每个电脉冲在小于码元长度内总要回到零电平,即输入信息为1时,给出的码元前半时间为1,后半时间为0,输入为0时,与不归零码则完全相同。单极性归零码可以直接提取定时信息,是其他波形提取位定时信息时需要采用的一种过度波形。

单极性归零码的MATLAB实现如下:

function y=srz(x)

%本函数实现将输入的一段二进制代码编为相应的单极性归零码输出

%输入x为二进制码,输出y为编号的码

t0=200;

t=0:1/t0:length(x); %给出相应的时间序列

for i=1:length(x) %计算码元的值

if x(i)==1 %如果输入信息为1

for j=1:t0/2

y((2*i-2)*t0/2+j)=1; %定义前半段时间为1

y((2*i-1)*t0/2+j)=0; %定义后半段时间为0

end

else

for j=1:t0 %如果输入信息为0

y((i-1)*t0+j)=0; %定义所有时间为0

end

end

end

y=[y,x(i)];

plot(t,y);

title('1 0 1 1 0 0 1 0');

grid on;

axis([0,i,-0.1,1.1]);

在命令窗口中输入x的二进制代码和函数名,就可以得到所对应的单极性归零码输出,如输入以下指令,将出现图3所示结果。

x=[1 0 1 1 0 0 1 0];

srz(x)

图3 单极性归零码

4、双极性归零码

它是双极性不归零码的归零形式,每个码元内的脉冲都回到零电平,表示信息1时,前半段时间为1 后半段时间为0,表示信息0时前半段时间为-1后半段时间为0,相邻脉冲之间必然留有零电位的间隔。它除了具有双极性不归零码的特点之外,还有利于同步脉冲的提取。

双极性归零码的MATLAB实现如下:

function y=drz(x)

t0=200;

t=0:1/t0:length(x);

for i=1:length(x)

if x(i)==1

for j=1:t0/2

y((2*i-2)*t0/2+j)=1;

y((2*i-1)*t0/2+j)=0;

end

else

for j=1:t0/2

%如果输入信息为0,定义前半段时间为-1,后半段时间为0

y((2*i-2)*t0/2+j)=-1;

y((2*i-1)*t0/2+j)=0;

end

end

end

y=[y,x(i)];

plot(t,y);

title('1 0 1 1 0 0 1 0');

grid on;

相关文档
最新文档