数字信号的基带传输
1 概述
数字基带传输系统的基本结构如下图所示。
结构 | 作用 |
---|---|
信道信号成型器 | 把原始基带信号变换为适合信道传输的基带信号,主要通过码型变换和波形变换来实现,目的是与信道匹配,便于传输,减小码间串扰,利于同步提取和抽样判决 |
信道 | 是允许基带信号通过的媒质,通常为有线信道,如电缆、架空明线等。信道的传输特性通常不满足无失真传输条件,甚至是随机变化的,信道还会引入噪声,在建模分析中通常吧噪声n(t)等效集中在信道中引入。 |
接收滤波器 | 滤除带外噪声,对信道特性均衡,使输出的基带波形有利于抽样判决。 |
抽样判决器 | 在传输特性不理想及噪声条件下,在规定时刻(由位定时脉冲控制)对接收滤波器的输出波形进行抽样判决,以恢复或再生基带信号。位定时脉冲依靠同步提取电路从接收信号中提取,位定时的准确性直接影响判决结果。 |
参考书:【ISBN号】978-7-5692-2789-5
2 二进制基带信号传输
在二进制基带通信系统中,0和1分别用s0(t)和s1(t)传输。设信息传输速率为R(bit/s),则发送端信号为:
假设0和1是等概率且相互统计独立。
传输信号在信道中叠加了功率谱密度为N0/2(W/Hz)的加性高斯白噪声(AWGN)n(t),则接收端的信号可表示为:
接收端在收到r(t)后,判决在0≤t≤Tb区间内发送的是0还是1。
最佳接收机 是 判决差错概率最小的接收机。
2.1 AGWN信道的最佳接收机
对于AGWN信道的最佳接收机,接收滤波器应该是信号相关器或匹配滤波器。以信号相关器为例进行分析,信号相关器将r(t)与两个可能的发送信号s0(t)和s1(t)做互相关运算,如下图所示。
相关器计算在0≤t≤Tb内的两个输出,即
在t=Tb时对这两个输出采样,判决器根据判决规则判断接收到的信号是s0(t)还是s1(t),分别对应于传输的是比特0或1。
2.2 正交信号 在AWGN信道下的传输性能
当s0(t)和s1(t)和是正交信号时满足互相关函数为0,下面就是一组正交信号:
判决器比较r0和r1,当r0>r1时,传输的是0,当r0<r1时,传输的是1。
接收端判决数据的差错概率(误比特率)为:
其中Eb/N0称为信噪比,Eb为脉冲信号s0(t)或s1(t)的能量(比特能量)。
MATLAB程序
仿真二进制正交信号通过AWGN信道后的误比特率性能。
clc;
clear;
close all;
samp = 10;% 每个脉冲信号的抽样点数
s0 = ones(1,samp); % 基带脉冲信号s0
s1 = [ones(1,samp/2), -ones(1,samp/2)]; % 基带脉冲信号s1
symbol = 100000; % 每种信噪比下的发送符号数
EbN0 = 0:12; % 信噪比,Eb/N0
msg = randi([0 1],1,symbol); % 消息比特(0,1组成的随机序列)
% 把比特0和1映射为发送波形s0(t)和s1(t)
s = zeros(samp,symbol);
for k = 1:symbol
if(msg(k) == 0)
s(1:samp,k) = s0';% 对列赋值,表示物理信号
else
s(1:samp,k) = s1';% 对列赋值,表示物理信号
end
end
bit_error_percent = zeros(1,length(EbN0));
for i = 1:length(EbN0)
decmsg = zeros(1,symbol);
r = awgn(s,EbN0(i)-7); % 加入AWGN。(-7是因为采样率为10,换算为dB=-7dB)
r0 = s0 * r; % 与s0互相关
r1 = s1 * r; % 与s1互相关
judge1 = find(r1 >= r0);% 找出所有r1 > r0的比特位
decmsg(judge1) = 1; % 将所有r1 > r0的比特位,判定为1
bit_error_cnt = 0;
for k = 1:symbol
if(decmsg(k) ~= msg(k))
% 当判定的接收比特与发送比特不一致时,认为判定错误
bit_error_cnt = bit_error_cnt + 1;
end
end
bit_error_percent(i) = bit_error_cnt/symbol;
end
plot(EbN0,bit_error_percent,'-o',EbN0,qfunc(sqrt(10.^(EbN0/10))));
title('二进制正交信号误比特率性能');
xlabel('Eb/N0');
ylabel('误比特率Pe');
legend('仿真结果','理论结果');
结果:
关键变量的信息:(在Eb/N0 = 12情况下)
这几个数据在基带传输系统中的位置如下图所示:
2.3 双极性信号 在AWGN信道下的传输性能
信号形式:
接收端只需要一个相关器即可(与s0(t)做互相关),最佳判决器与阈值0比较,若相关器的输出r00>0,则判决s0(t)被发送,若r00<0,则判决s1(t)被发送。
误比特率为:
MATLAB程序
仿真双极性信号通过AWGN信道后的误比特率性能。
clc;
clear;
close all;
samp = 10;% 每个脉冲信号的抽样点数
s0 = ones(1,samp); % 基带脉冲信号s0
s1 = -s0; % 基带脉冲信号s1
symbol = 100000; % 每种信噪比下的发送符号数
EbN0 = 0:12; % 信噪比,Eb/N0
msg = randi([0 1],1,symbol); % 消息比特(0,1组成的随机序列)
% 把比特0和1映射为发送波形s0(t)和s1(t)
s = zeros(samp,symbol);
for k = 1:symbol
if(msg(k) == 0)
s(1:samp,k) = s0';% 对列赋值,表示物理信号
else
s(1:samp,k) = s1';% 对列赋值,表示物理信号
end
end
bit_error_percent = zeros(1,length(EbN0));
for i = 1:length(EbN0)
decmsg = zeros(1,symbol);
r = awgn(s,EbN0(i)-7); % 加入AWGN。(-7是因为采样率为10,换算为dB=-7dB)
r00 = s0 * r; % 与s0互相关
judge1 = find(r00 < 0); % 找出所有r00 < 0的比特位
decmsg(judge1) = 1; % 将所有r00 < 0的比特位,判定为1
bit_error_cnt = 0;
for k = 1:symbol
if(decmsg(k) ~= msg(k))
% 当判定的接收比特与发送比特不一致时,认为判定错误
bit_error_cnt = bit_error_cnt + 1;
end
end
bit_error_percent(i) = bit_error_cnt/symbol;
end
plot(EbN0,bit_error_percent,'-o',EbN0,qfunc(sqrt(2*10.^(EbN0/10))));
title('二进制双极性信号误比特率性能');
xlabel('Eb/N0');
ylabel('误比特率Pe');
legend('仿真结果','理论结果');
结果:
2.4 单极性信号 在AWGN信道下的传输性能
信号形式:
接收端只需要一个相关器即可(与s1(t)做互相关),最佳判决器与阈值Eb/2比较,若相关器的输出r00>Eb/2,则判决s1(t)被发送,若r00<Eb/2,则判决s0(t)被发送。
误比特率为:
MATLAB程序
仿真单极性信号通过AWGN信道后的误比特率性能。
clc;
clear;
close all;
samp = 10;% 每个脉冲信号的抽样点数
s0 = zeros(1,samp); % 基带脉冲信号s0
s1 = ones(1,samp); % 基带脉冲信号s1
symbol = 100000; % 每种信噪比下的发送符号数
EbN0 = 0:12; % 信噪比,Eb/N0
msg = randi([0 1],1,symbol); % 消息比特(0,1组成的随机序列)
% 把比特0和1映射为发送波形s0(t)和s1(t)
s = zeros(samp,symbol);
for k = 1:symbol
if(msg(k) == 0)
s(1:samp,k) = s0';% 对列赋值,表示物理信号
else
s(1:samp,k) = s1';% 对列赋值,表示物理信号
end
end
bit_error_percent = zeros(1,length(EbN0));
for i = 1:length(EbN0)
decmsg = zeros(1,symbol);
r = awgn(s,EbN0(i)-7); % 加入AWGN。(-7是因为采样率为10,换算为dB=-7dB)
r00 = s1 * r; % 与s0互相关
judge1 = find(r00 > 5); % 找出所有r00 > 5的比特位
decmsg(judge1) = 1; % 将所有r00 > 5的比特位,判定为1
bit_error_cnt = 0;
for k = 1:symbol
if(decmsg(k) ~= msg(k))
% 当判定的接收比特与发送比特不一致时,认为判定错误
bit_error_cnt = bit_error_cnt + 1;
end
end
bit_error_percent(i) = bit_error_cnt/symbol;
end
plot(EbN0,bit_error_percent,'-o',EbN0,qfunc(sqrt(0.5*10.^(EbN0/10))));
title('二进制单极性信号误比特率性能');
xlabel('Eb/N0');
ylabel('误比特率Pe');
legend('仿真结果','理论结果');
结果:
3 基带PAM信号传输
基带PAM信号是脉冲幅度调制信号,采用多个幅度电平的信号波形进行传输,在这种情况下,每个信号波形可以传输多个比特信息。
基带4-PAM信号形式:
式中,Am为第m个波形的幅度,g(t)为矩形脉冲,定义为:
每个波形可用来传输2比特信息,按照Gray编码规则可以把信息比特对影射为四种信号波形,每个信息比特对称为一个符号,脉冲持续时间T称为符号区间。
接收端与信号脉冲g(t)做互相关,最佳幅度检测器将相关器的输出r00与四种可能的传输电平进行比较,并选择在欧氏距离上最接近于r00的幅度电平。
最佳检测器计算距离为;
误比特率为:
其中,Es=5d2,为每个符号的平均能量。
MATLAB程序
仿真4-PAM信号通过AWGN信道后的误比特率性能。
clc;
clear;
close all;
symbol = 100000; % 每种信噪比下的发送符号数
samp = 10; % 每个脉冲信号的抽样点数
M = 4; % 4-PAM
graycode = [0 1 3 2]; % Gray编码规则
EsN0 = 0:12; % 信噪比,Es/N0
msg = randi([0 3],1,symbol); % 消息比特(0 1 2 3 组成的随机序列)
msg1 = graycode(msg+1); % Gray映射:0 1 2 3 -> 0 1 3 2
% 4-PAM调制
msg2 = zeros(1,length(msg1));
for k = 1:length(msg1)
if(msg1(k) == 0)
msg2(k) = -3;
elseif(msg1(k) == 1)
msg2(k) = -1;
elseif(msg1(k) == 2)
msg2(k) = 1;
elseif(msg1(k) == 3)
msg2(k) = 3;
end
end
% 矩形脉冲成型
s = zeros(1,length(msg2)*samp);
for k = 1:length(msg2)
for p = 1:samp
s((k-1)*10+p) = msg2(k);% 将每个msg2(k)扩展为10个相同的点
end
end
bit_error_percent = zeros(1,length(EsN0));
for i = 1:length(EsN0)
r = awgn(real(s),EsN0(i)-7); % 加入AWGN。(-7是因为采样率为10,换算为dB=-7dB)
r00 = intdump(r,samp); % 相关器输出,求10个连续采样点的平均值
% 判决:欧氏距离最接近
msg_demodulation = zeros(1,symbol);
for k = 1:symbol
D0 = abs(r00(k) - (-3));% 计算欧氏距离
D1 = abs(r00(k) - (-1));
D2 = abs(r00(k) - ( 1));
D3 = abs(r00(k) - ( 3));
Dis(1,1:4) = [D0 D1 D2 D3];
[x,y] = min(Dis);% 求最小值的位置
msg_demodulation(k) = y-1;
end
decmsg = graycode(msg_demodulation+1);% Gray逆映射
bit_error_cnt = 0;
for k = 1:symbol
if(decmsg(k) ~= msg(k))
% 当判定的接收比特与发送比特不一致时,认为判定错误
bit_error_cnt = bit_error_cnt + 1;
end
end
bit_error_percent(i) = bit_error_cnt/symbol;
end
plot(EsN0,bit_error_percent,'-o');
title('4-PAM信号误比特率性能');
xlabel('Es/N0');
ylabel('误比特率Pe');
legend('仿真结果');
结果: