数字信号传输
——单级性、双极性信号误码率的判断
实验目的:
1.学习掌握数字信号序列的单级性、双极性码编码;regrettable
2.掌握信号信噪比(BER)及误码率(SNR)的计算,判断分析其关系,了解抗干扰能力与信噪比的关系。
3.会用Matlab绘制单级性、双极性信号,能计算其通过加性噪声信道后的信噪比。绘制误码率——信噪比图。
实验要求:
1.产生两组数字信号序列,要求分别为单级性、双极性信号(归零或非归零均可)。
让其通过一个有加性高斯白噪声的信道,计算判断其信噪比的大小,并比较那种信号的抗干扰性能强。
2.绘制单级性、双极性信号的误码率——信噪比图,观察分析数字信号的误码率BER和信噪比SNR之间的关系。
实验内容:
一、数字基带信号的常见码型
⑴码型知识
通信的任务是准确迅速地传递信息。信源信号经过信源编码之后成为离散的二进制数字信号。我们用一些离散的波形来代替这些数字信号。这些离散的信号可以直接进行传输,或者调制到载波上进行传输。这样就形成了两种最基本的数字信号的传输方式:基带传输和频带传输。
由于未经调制的 电脉冲信号所占有的频带通常从直流到低频开始,因而成为数字基带信号。在数字传输系统中,其传输对象主要是二元数字信号。
首先,简单介绍一下单级性码和双极性码。
滑冰的英文
单极性码:用一种电平以及零电平分别表示“1”和“0”码。
双极性码:用正-负电平分别表示“1”和“0”码。
而最简单的二元码中基带信号的波形为矩形,幅度取值只有两种电平。通常的二元码有如下几种:
1.单级性非归零码(NRZ(L))
属于非归零码NRZ(Not Return Zero code)在整个码元期间电平保持不变。在这种编码中用高电平和低电平(通常为零电平)分别表示二进制 信息“1”、“0”。
2.双极性非归零码
也同单级性非归零码相同的是在整个码元期间电平保持不变,但它用正电平,负电平分别表示“1”,“0”.
3.单级性归零码(RZ(L))
归零码RZ(Return Zero code )在整个码元期间高电平只维持一段时间,其余时间返回零电平。单级性归零码与单级性非归零码不同,发送“1”时在整个码元期间高电平只持续一段时间,在码元其余时间内则返回零电平。
另外,还有一种双极性归零码,它的幅度取值有三种:-1、0、1,所以将它归于三元码进行讨论。
⑵Matlab实现单级性、双极性码
由上述知识,我们可以用阶梯函数stairs(x)绘制出单级性非归零码和双极性非归零码。
比如随意产生一个数字信号序列:
0 0 1 0 1 0 0 0 0 1 0 0 1 0 0 1 1 1 1 0 1 0 1 0 0 0 1 0
例程1:单级性码绘图为:
h1=[0 0 1 0 1 0 0 0 0 1 0 0 1 0 0 1 1 1 1 0 1 0 1 0 0once什么意思 0 1 0]
stairs(h1)
grid on
axis([-0.1 length(h1) -1.1 1.1]);
title('单极性归零码');
例程2:双级性码绘图为:
h2=[-1 -1 1 -1 1 -1 -1 -1 -1 1 -1 -1 1 -1 -1 1 1 1 1 -1 1 -1 1 -1 -1 -1 1 -1]
stairs(h2)
grid on
axis([-0.1 length(h1) -1.1 1.1]);
title('双极性归零码');
在矩形图中我们可以看到如果重复发送"1"码,势必要连续发送正电流;如果重复发送"0"码,势必要连续不送电流或连续发送负电流,这样使某一位码元与其下一位码元之间没有间隙,不易
区分识别。归零码可以改善这种状况。下面我们用归零码来表示刚才的序列。
◆以单级性归零码为例:
归零码的编码与非归零码的区别就在于,每个码元范围内电平有改变,不论所要传输的信息码是“1”或“0”,在本例中都取占码元长度一半的时长,这样我们可以做判断条件,当传输的信号为“1”时,在1/2码元长度内画高电平,紧接着的1/2码元内给零电平;同样,如果传输信号为“0”,则整个码元内为零电平。程序如下:
例程3:
code=100; %描点数为100,也就是说每比特内画图取点数为100
x=[0 0 1 0 1 0 0 0 0 1 0 0 1 0 0 1 1 1 1 0 1 0 1 0 0 0 1 0] ; t=0:.01:length(x); %时间序列,取长度为序列x长度,步长为0.01
for i=1:length(x) %编码过程
if x(i)==1
for j=1:code/2
% 由于是采用归零码,所以每个码元期间内有一半为序列编码,另一半则归零,所以取描点间隔的一半
y(code/2*(2*i-2)+j)=1;
y(code/2*(2*i-1)+j)=0;
end
el
for j=1:code/2
y(code/2*(2*i-2)+j)=0;
y(code/2*(2*i-1)+j)=0;
end
end
end
y=[y,x(i)]; %添加其后后一位
plot(t,y);
axis([0 length(x) -1.0 1.2]); %规范坐标范围,x轴为(0,length(x)),y轴为(-1.0, 1.2)
title('单极性归零码');
里约热内卢 英文
二、信号通过加性高斯白噪声信道后的信噪比分析
上次实验做过在随机信号中加入加性高斯白噪声,仍然使用awgn()函数,计算信号的信噪比,按定义单级性信号的信噪比r= ,其中A2是输入信号的幅度能量,分母b2是噪声信号的能量,这样对数字信号序列X的能量求解就用sum(abs(上海英语X).^2)来求解。同样,求双极性信号的信噪比按公式:r=来计算。
例程4:外壳英文信号通过加性高斯白噪声信道后的信噪比
snr=0;
vobul=[1 0 1 0 0 0 1 1]
ln=awgn(l,9,'measured');
Ps=sum(abs(l).^2);%signal power
Pn=sum(abs(l-ln).^2);%noi power
snr=10*log10(Ps/Pn);%信噪比
三、绘制单级性,双极性信号的误码率-信噪比图形
在这里直接产生一组信噪比数值,便于规律计算对应的误码率。根据通信原理的知识,我们知道在采样时刻幅度只有两个电平(如幅度A和0),接收端设定判决门限d,规定接收信号r大于d,判定信号幅度为A;接收信号r小于d,判定信号幅度为0。单极性非归零码的平均信号功率为,高斯噪声功率为,误码率为:。.效劳性数字信号的误码率为:Pe下车英文=,其中r为输入信号的信噪比,erfc()函数是互补误差函数,用于计算信号的误码率。双极性非归零码的平均信号功率为,误比特率为。其中,Q函数在MATLAB中可由erfc函数实现而双极性信号的误码率为:Pe=。
绘制信噪比和误码率则采用milogy函数来实现。semilogy(x)类似于plot函数,只是这类绘图中y轴采用对数log坐标。
例程6:
SNR=0.1:.01:100; %取一组信噪比值,便于以下计算对应的误码率
SNR0dB=10*log10(SNR); %信噪比线性化
S=erfc(sqrt(SNR/2))/2;
%根据误码率与信噪比关系公式,求单极性非归零码误码率序列
D=erfc(sqrt(SNR))/2; %双极性非归零误码率序列
milogy(SNR0dB,S);
hold on
milogy(SNR0dB,D,'--');
xlabel('SNR0dB');
ylabel('BER0dB');
axis([-10 15 0.000001 1]);
title('数字基带传输误码率-信噪比曲线');
legend('单极性非归零码','双极性非归零码'); firstname %给图形添加图例,见图5
实验结果:
一、单极性、双极性码型:
图1单极性、双极性码型
我们观测到序列0 0 1 0 1 0 0 0 0 1 0 0 1 0 0 1 1 1 1 0 1 0 1 0 0 0 1 0对应的数字编码如上图,其中单极性非归零码见图2,双极性非归零码见图3.
图2 单级性非归零码
图3 双极性非归零码
如下是单极性归零码(图4)可以看到对应每个码元区间内电平高度有变换。在双极性归零码中,这种电平的变换更明显,当我们拿到波形图时可以在图上无误的读出原序列。
图4 单极性归零码
图5 双极性归零码
二、单极性、双极性码型的信噪比:
单极性码l=[0 0 1 0 1 0 0 0 0 1 0 0 1 0 0 1 1 1 1 0 1 0 1 0 0 0 1 0] 信噪比snr