文章目录
1.引言
在数字通信系统中,信源是信息的来源,但信源输出的是消息(或符号),以消息(或符号)的形式来表达所要传送的信息,一般,信源输出消息由传感器转换为电信号。信源编码则是对信源输出消息转化成的电信号用尽量低速率的二进制数字信号来表示,即对有剩余的消息进行少剩余的有效编码,又称信源编码输出的二进制数字序列为信息序列。此信息序列经过信道差错控制编码器在二进制信息序列中引入剩余量,以提高信息传输的可靠性,然后将信道差错控制编码器输出的二进制序列再通过数字调制器,将二进制序列映射为相应的信号波形在通信信道中的传输,而通信信道则是物理媒介,将信号波形从发端传到收端,在收端进行反变换,从而将信息从信源送到信宿。
数字通信系统的组成框图如下图所示:
数字通信系统中,信源是消息的来源。数字调制器有二进制和M进制之分,若此数字调制器是将数字序列映射为适合基带信道传输的相应的脉冲序列,则称其为数字脉冲调制器,也称此数字脉冲调制为基带调制。数字脉冲调制器输出信号波形的功率谱密度是低通型的,所占频带是从直流或低频开始,称功率谱密度为低通型的数字信号为数字基带信号。若通信信道的传递函数为低通型的,则称此信道为基带信号,基带信道适合传送脉冲波形。将数字基带信号通过基带信道传输,则称此系统为数字基带传输系统。
若通信信道为带通型的,其频带远离f=0的频率,为了在带通信道中传输,必须将数字基带信号通过正弦型载波调制,将频谱搬移到载频上,成为带通信号后在信道中传输,称此正弦型载波调制为频带调制。
由于带限信道中噪声的干扰和,为实现最佳接收和减少误码率,发送滤波器应采用根升余弦滚降频谱特性的滤波器,而接收滤波器应采用匹配滤波器,故同样是频谱为根生余弦滚降特性的滤波器。本文讨论的数字基带传输系统只是不归零码。
2.系统模型
2.1 信道带宽无限时的单极性基带传输
发送滤波器的冲激响应如下图所示:
其双边功率谱密度为
由上图可知其功率谱中含有离散的直流分量及连续谱,其第一过零点为带宽
f
=
r
s
f=r_s
f=rs,为了得到最小的平均误码率,一般采用匹配滤波器进行最佳接收。最佳接收框图如下:
随后根据判决门限,大于
V
T
V_T
VT的判定为“1”,小于
V
T
V_T
VT的判定为“0”。如下图:
2.2 信道带宽受限时的双极性基带传输
当信道的带宽受限时,若采用矩形波作为传输的信号,在频域内由于信道带宽有限会造成一定的干扰,由此考虑使用基于无码间干扰基带传输的升余弦滤波器。
升余弦滤波器的冲击响应:
升余弦滤波器的频域响应:
由上图可知升余弦谱满足无码间干扰传输的条件,其滤波器的带宽以及滤波器的滚降因子。
双极性不归零码的最佳接收框图:
2.3 信道带宽受限时的QPSK传输
QPSK信号为四进制移相键控,该信号的正弦载波有4个可能的离散相位状态,每个载波相位携带2个二进制符号。
QPSK矢量图:
所以可以得到正交调制框图如下:
QPSK信号功率谱密度:
QPSK信号可以看为同相及正交支路2PSK的叠加,所以在解调时可对两路信号分别进行2PSK解调,然后进行串并变换,得到两路速率都减半的二进制序列,将它们分别对正交载波
c
o
s
w
c
t
cosw_ct
coswct及
−
s
i
n
w
c
t
-sinw_ct
−sinwct进行2PSK调制,再将再将则会两路的2PSK相加即可得到QPSK信号。
在接收端采样时刻无码间干扰的条件下,最佳接收的接受滤波器应匹配于所接受的确定信号,使接收端采样时刻的信噪比最大。而接收到的确定信号的频谱仅取决于发送滤波器的特性,所以接收滤波器的
G
R
(
f
)
G_R(f)
GR(f)应与发送滤波器的
G
T
(
f
)
G_T(f)
GT(f)共轭匹配即发送滤波器与接收滤波器的传递函数的模值要近似于根升余弦频谱,才可为最佳接收系统,如下图所示。
2.4 信道带宽受限时的16QAM传输
正交振幅调制(QAM)是用两个独立的基带数字信号对两个互相正交的同频载波进行抑制在播的双边带调制,利用这种已调信号在同一带宽内频谱正交的性质来实现两路并行的数字信息传输,它是把MASK与MPSK两种结合到一起的调制技术,使得带宽得到双倍拓展。
16QAM的空间图:
由上图与信号的时域表达式可以得出信号的产生框图如下:
最佳接收系统框图如下:
3.误码性能理论分析
3.1 单极性不归零码
滤波器输入:
r
(
t
)
=
s
(
t
)
+
n
w
(
t
)
r(t)=s(t)+n_w(t)
r(t)=s(t)+nw(t)
采样前的信号:
y
(
t
)
=
∫
r
(
t
−
τ
)
h
(
τ
)
d
τ
y(t)=\int r(t-\tau)h(\tau)d\tau
y(t)=∫r(t−τ)h(τ)dτ
采样值中的噪声:
Z
=
∫
n
w
(
T
b
−
τ
)
h
(
τ
)
d
τ
N
=
(
0
,
σ
2
)
Z=\int n_w(T_b-\tau)h(\tau)d\tau N=(0,\sigma^2)
Z=∫nw(Tb−τ)h(τ)dτN=(0,σ2)其中
σ
2
=
N
0
2
E
h
=
N
0
2
E
1
=
N
0
E
b
,
E
b
=
E
1
+
E
2
2
=
E
1
2
\sigma^2=\frac{N_0}{2}E_h=\frac{N_0}{2}E_1=N_0E_b,E_b=\frac{E_1+E_2}{2}=\frac{E_1}{2}
σ2=2N0Eh=2N0E1=N0Eb,Eb=2E1+E2=2E1
最佳抽样时刻
t
=
T
b
t=T_b
t=Tb时,采样值中的有用信号:
∫
s
i
(
T
b
−
τ
)
h
(
τ
)
d
τ
=
∫
s
i
(
T
b
−
τ
)
s
1
(
T
b
−
τ
)
d
τ
=
{
E
1
发送s1
0
发送s2
\int s_i(T_b-\tau)h(\tau)d\tau=\int s_i(T_b-\tau)s_1(T_b-\tau)d\tau=\begin{cases}E_1& \text{发送s1}\\0& \text{发送s2}\end{cases}
∫si(Tb−τ)h(τ)dτ=∫si(Tb−τ)s1(Tb−τ)dτ={E10发送s1发送s2
平均误比特率:
发送s1(t)时,采样值为
E
1
+
Z
=
2
E
b
+
Z
E_1+Z=2E_b+Z
E1+Z=2Eb+Z。若此值小于判决门限
V
T
V_T
VT则判决出错。即出错概率是
2
E
b
+
Z
<
E
b
2E_b+Z<E_b
2Eb+Z<Eb的概率,也就是
Z
>
E
b
Z>E_b
Z>Eb的概率,可表示为
P
(
e
∣
s
1
)
=
1
2
e
f
r
c
(
E
b
2
σ
2
)
P(e|s_1)=\frac{1}{2}efrc(\frac{E_b}{\sqrt{2\sigma^2}})
P(e∣s1)=21efrc(2σ2Eb)
发送
s
2
(
t
)
s_2(t)
s2(t)同理。
所以平均错误率
P
b
=
1
2
e
f
r
c
(
E
b
2
σ
2
)
=
1
2
e
f
r
c
(
E
b
2
N
0
)
σ
2
=
N
0
E
b
P_b=\frac{1}{2}efrc(\frac{E_b}{\sqrt{2\sigma^2}})=\frac{1}{2}efrc(\frac{E_b}{\sqrt{2N_0}})\sigma^2=N_0E_b
Pb=21efrc(2σ2Eb)=21efrc(2N0Eb)σ2=N0Eb
3.2 信道带宽受限的双极性不归零码
数字PAM信号在限带及加性白高斯噪声信道条件下,最佳基带传输系统的误码率计算公式带宽不受限时的加性白高斯噪声信道条件下匹配滤波器最佳接收的误码率计算公式是相同的,所以在此讨论2PAM信号为双极性不归零码序列时的误码率。
同理于3.1,可得条件概率密度函数表达式为:
发
S
1
(
t
)
S_1(t)
S1(t)时:
P
(
y
∣
s
1
)
=
1
2
π
σ
2
e
x
p
[
−
(
y
−
E
b
)
2
2
σ
2
]
P(y|s_1)=\frac{1}{\sqrt{2\pi\sigma^2}}exp[-\frac{(y-E_b)^2}{2\sigma^2}]
P(y∣s1)=2πσ21exp[−2σ2(y−Eb)2]
发
S
2
(
t
)
S_2(t)
S2(t)时:
P
(
y
∣
s
2
)
=
1
2
π
σ
2
e
x
p
[
−
(
y
+
E
b
)
2
2
σ
2
]
P(y|s_2)=\frac{1}{\sqrt{2\pi\sigma^2}}exp[-\frac{(y+E_b)^2}{2\sigma^2}]
P(y∣s2)=2πσ21exp[−2σ2(y+Eb)2]
得到接收端的平均误比特率为:
P
b
=
1
2
e
r
f
c
(
E
1
N
0
)
=
Q
(
2
E
b
N
0
)
P_b=\frac{1}{2}erfc(\sqrt{\frac{E_1}{N_0}})=Q(\sqrt{\frac{2E_b}{N_0}})
Pb=21erfc(N0E1)=Q(N02Eb)
其中
E
b
E_b
Eb为接收信号的平均比特能量,
E
1
E_1
E1为比特时间间隔内接受信号
S
1
(
t
)
S_1(t)
S1(t)的信号能量。
3.3 信道带宽受限时的QPSK传输
对于QPSK信号而言,同相支路及正交支路的四进制符号速率是二进制信息速率的一半,在给定信号总发送功率的条件下,QPSK同相支路或正交支路的信号功率是总发送功率的一半。于是,得到I支路及Q支路的平均错判概率为:
P
e
I
=
P
e
Q
=
1
2
e
r
f
c
(
(
A
2
2
)
(
2
T
b
)
2
N
0
)
=
1
2
e
r
f
c
(
E
b
N
0
)
P_{eI}=P_{eQ}=\frac{1}{2}erfc(\sqrt{\frac{({\frac{A}{\sqrt2}}^2)(2T_b)}{2N_0}})=\frac{1}{2}erfc(\sqrt{\frac{E_b}{N_0}})
PeI=PeQ=21erfc(2N0(2A2)(2Tb))=21erfc(N0Eb)
若发送的二进制符号为等概率出现的则平均误码率为:
P
b
=
P
e
I
=
P
e
Q
=
1
2
e
r
f
c
(
E
b
N
0
)
=
Q
(
2
E
b
N
0
)
P_b=P_{eI}=P_{eQ}=\frac{1}{2}erfc(\sqrt{\frac{E_b}{N_0}})=Q(\sqrt{\frac{2E_b}{N_0}})
Pb=PeI=PeQ=21erfc(N0Eb)=Q(N02Eb)
3.4 信道带宽受限时的16QAM传输
如图所示,分别按同相及正交支路的
M
\sqrt{M}
M进制ASK进行解调,在采样、判决后经并串变换恢复数据。
矩形星座QAM的最佳接收误符率与MASK的一样,取决于数字基带MPAM的误符率。MQAM的正确判决符号的概率为:
P
c
=
(
1
−
P
M
)
2
P_c=(1-P\sqrt{M})^2
Pc=(1−PM)2
式中,
P
M
P\sqrt{M}
PM表示同相或正交支路
M
\sqrt{M}
M进制ASK的误符率,该
M
\sqrt{M}
M进制ASK的平均功率时MQAM信号的总功率
P
a
v
P_{av}
Pav的一半,即:
P
a
v
=
2
(
1
−
1
M
)
Q
(
d
m
i
n
2
2
N
0
)
P_{av}=2(1-\frac{1}{\sqrt{M}})Q(\sqrt\frac{d_{min}^2}{2N_0})
Pav=2(1−M1)Q(2N0dmin2)
所以,MQAM的误符率为:
P
M
=
1
−
P
c
=
2
P
M
−
P
M
2
P_M=1-P_c=2P\sqrt{M}-P\sqrt{M}^2
PM=1−Pc=2PM−PM2
4.仿真实现与仿真结果
4.1 信道带宽无限时单极性不归零码
MATLAB代码为:
clear all
%------------------
%系统参数设置
%-----------------
T_start=0;%开始时间
T_stop=0.5;%截止时间
T=T_stop-T_start;%仿真持续时间
T_sample=1/1000;%采样间隔
f_sample=1/T_sample; % 采样速率
N_sample=T/T_sample;% 采样点数
n=0:N_sample-1;
r_s=100;%transmission rate
alpha=0.25;%df=alpha*rs=25Hz
NumBits=T*r_s;%number of bits
NumCoff=40;%number of coefficients of RRC
SamplingIns=NumCoff/2;
SamplingStart=NumCoff;
%-------------------------------
%Transmitter
%-------------------------------
g_T=[ones(1,f_sample/r_s),zeros(1,31)];
b1=(sign(rand(1,NumBits)-0.5)+1)/2;%original bits
b2=zeros(f_sample/r_s,NumBits);
b2(1,:)=b1;
b3=reshape(b2,1,f_sample/r_s*NumBits);
s=conv(b3,g_T);%transmitted signal
%--------------------------------
%AWGN channel
%--------------------------------
N_0=10^(-8);
noise_w=wgn(1,length(s),N_0*f_sample,'linear');%产生白噪声
r=s+noise_w;
figure(1)
plot(s);axis([0 600 -0.1 1.5]);title('发送的单极性不归零码序列');
figure(2);
plot(r);axis([0 600 -0.1 1.5]);title('叠加噪声后的发送序列');
%--------------------------------
%receiver
%--------------------------------
g_R=[ones(1,f_sample/r_s),zeros(1,31)];
y1=conv(r,g_R);
figure;
myeyediagram=eyediagram(y1(1:length(y1)),f_sample/r_s);
figure(3)
plot(y1);title('接收到的信号波形');
% hold on
sample1=zeros(f_sample/r_s,NumBits);
sample1(1,:)=ones(1,NumBits);
sample2=reshape(sample1,1,f_sample/r_s*NumBits);
sample3=zeros(1,length(y1));
sample3(NumCoff+1:NumCoff+f_sample/r_s*NumBits)=sample2;
% plot(sample3)
y2=y1.*sample3;
% plot(y2)
y2(:,all(y2==0,1))=[];
b_t=(sign(b1)+1)*0.5;
b_r=(sign(y2)+1)*0.5;
BER=length(find(b_t~= b_r))/NumBits;
运行结果如下:
4.2 信道带宽受限双极性不归零码
MATLAB代码为:
clear all
%------------------
%系统参数设置
%-----------------
T_start=0;%开始时间
T_stop=0.5;%截止时间
T=T_stop-T_start;%仿真持续时间
T_sample=1/1000;%采样间隔
f_sample=1/T_sample; % 采样速率
N_sample=T/T_sample;% 采样点数
n=0:N_sample-1;
r_s=100;%传输速率
alpha=0.25;%df=alpha*rs=25Hz
NumBits=T*r_s;%number of bits
NumCoff=40;%number of coefficients of RRC
SamplingIns=NumCoff/2;
SamplingStart=NumCoff;
%-------------------------------
%Transmitter
%-------------------------------
g_T=firrcos(NumCoff,r_s/2,alpha*r_s,f_sample);%transmission filter
b1=sign(rand(1,NumBits)-0.5);%original bits
b2=zeros(f_sample/r_s,NumBits);
b2(1,:)=b1;
b3=reshape(b2,1,f_sample/r_s*NumBits);
s=conv(b3,g_T);%transmitted signal
%--------------------------------
%AWGN channel
%--------------------------------
N_0=10^(-9);
noise_w=wgn(1,length(s),N_0*f_sample,'linear');%产生白噪声
r=s+noise_w;
figure(1)
plot(s);title('发送的双极性极性不归零码波形')
figure(2)
plot(r);title('叠加噪声后的发送波形')
%--------------------------------
%receiver
%--------------------------------
g_R=firrcos(NumCoff,r_s/2,alpha*r_s,f_sample);%transmission filter
y1=conv(r,g_R);
figure;
myeyediagram=eyediagram(y1(1:length(y1)),f_sample/r_s);
figure(3)
plot(y1):title('接收的的双极性极性不归零码波形')
% hold on
sample1=zeros(f_sample/r_s,NumBits);
sample1(1,:)=ones(1,NumBits);
sample2=reshape(sample1,1,f_sample/r_s*NumBits);
sample3=zeros(1,length(y1));
sample3(NumCoff+1:NumCoff+f_sample/r_s*NumBits)=sample2;
% plot(sample3)
y2=y1.*sample3;
% plot(y2)
y2(:,all(y2==0,1))=[];
b_t=(sign(b1)+1)*0.5;
b_r=(sign(y2)+1)*0.5;
BER=length(find(b_t~= b_r))/NumBits;
运行结果如下:
分析:
由波形初步可判定解调波形与原调制波形较为相似,误差不大,同时可以从眼图观察可得,误码率虽小但由于升余弦的拖尾衰减问题与引入的高斯白噪声,系统还是存在少量的误差,与4.1比较可初步得到,双极性码的最佳接收的平均无码率比单极性的小。
4.3 信道带宽受限时的QPSK传输
MATLAB代码为:
% 信道受限的QPSK基带传输
txfilter = comm.RaisedCosineTransmitFilter('OutputSamplesPerSymbol',8); %发送滤波器句柄
rxfilter = comm.RaisedCosineReceiveFilter('InputSamplesPerSymbol',8, 'DecimationFactor',1); %接收滤波器句柄
qpskModulator = comm.QPSKModulator('BitInput',true); %调制器句柄
qpskDemodulator = comm.QPSKDemodulator('BitOutput',true); %解调器句柄
bits = randi([0 1], 1e6,1); %产生单极性信源
tx_Sym = qpskModulator(bits); %BPSK调制
tx_Smp = txfilter(tx_Sym); %发送滤波
SNR_Range = 0 : 20; %信噪比范围
BER = [];
for snr = SNR_Range
rx_Smp = awgn(tx_Smp, snr + 10*log10(2));%经过信道
tmp = rxfilter(rx_Smp); %匹配滤波
rx_Sym = tmp(1 : 8 : end); %采样
rbits = qpskDemodulator(rx_Sym); %解调
[~,ratio] = biterr(bits(1:end-20), rbits(21:end));%误码率计算
BER = [BER; ratio];
end
figure
subplot(511)
stairs(bits(1:100)); title('发送bit序列'); ylim([-0.1 1.1]);
subplot(512)
plot(real(tx_Smp(41:441))); title('发送波形');
subplot(513)
plot(real(rx_Smp(41:441))); title('接收波形');
subplot(514)
plot(real(tmp(81:481))); title('匹配滤波后波形');
subplot(515)
stairs(rbits(11:110));title('接收bit序列'); ylim([-0.1 1.1]);
figure
semilogy(SNR_Range,BER ,'-or');
grid on
xlabel('SNR')
ylabel('BER')
title('误码率曲线')
scatterplot(tx_Sym); title('发送星座图')
scatterplot(rx_Sym); title('接收星座图')
eyediagram(tx_Smp(100:10000),16); title('发送眼图')
eyediagram(tmp(100:10000),16); title('接收眼图')
fvtool(tx_Smp(1:1000)) ;title('发送频谱')
fvtool(rx_Smp(1:1000)) ;title('接收频谱')
运行结果如下:
分析:
通过发送与接收图形的比较可初步判定,系统的解调具有一定的误差,使解调出的波形与调制波形具有一些区别之处,再计算不同
E
b
=
N
0
E_b=N_0
Eb=N0的情况下的误码率得到上图中的误码率曲线与理论情况下的误码率曲线做比较,分析发现实验仿真得到的误码率曲线基本与理论相符,仅存在少量的误差可以判定为引入噪声与系统参数设定所造成的,但属于可接受范围内,所以可以认定该仿真为正确可行的。
4.4 信道带宽受限时的16QAM传输
MATLAB代码为:
% 信道受限的16QAM基带传输
txfilter = comm.RaisedCosineTransmitFilter('OutputSamplesPerSymbol',8); %发送滤波器句柄
rxfilter = comm.RaisedCosineReceiveFilter('InputSamplesPerSymbol',8, 'DecimationFactor',1); %接收滤波器句柄
hMod = comm.RectangularQAMModulator('ModulationOrder',16,'BitInput',true,'NormalizationMethod','Average Power'); %调制器句柄
hDemod = comm.RectangularQAMDemodulator('ModulationOrder',16,'BitOutput',true,'NormalizationMethod','Average Power'); %解调器句柄
bits = randi([0 1], 4e6,1); %产生单极性信源
tx_Sym = hMod(bits); %BPSK调制
tx_Smp = txfilter(tx_Sym); %发送滤波
SNR_Range = 0 : 20 ; %信噪比范围
BER = [];
for snr = SNR_Range
rx_Smp = awgn(tx_Smp, snr + 10*log10(4));%经过信道
tmp = rxfilter(rx_Smp); %匹配滤波
rx_Sym = tmp(1 : 8 : end); %采样
rbits = hDemod(rx_Sym); %解调
[~,ratio] = biterr(bits(1:end-40), rbits(41:end));%误码率计算
BER = [BER; ratio];
end
figure
subplot(511)
stairs(bits(1:100)); title('发送bit序列'); ylim([-0.1 1.1]);
subplot(512)
plot(real(tx_Smp(41:441))); title('发送波形');
subplot(513)
plot(real(rx_Smp(41:441))); title('接收波形');
subplot(514)
plot(real(tmp(81:481))); title('匹配滤波后波形');
subplot(515)
stairs(rbits(11:110));title('接收bit序列'); ylim([-0.1 1.1]);
figure
semilogy(SNR_Range,BER ,'-or');
grid on
xlabel('SNR')
ylabel('BER')
title('误码率曲线')
scatterplot(tx_Sym); title('发送星座图')
scatterplot(rx_Sym); title('接收星座图')
eyediagram(tx_Smp(100:10000),16); title('发送眼图')
eyediagram(tmp(100:10000),16); title('接收眼图')
fvtool(tx_Smp(1:1000)) ;title('发送频谱')
fvtool(rx_Smp(1:1000)) ;title('接收频谱')
运行结果如下:
分析:
通过发送与接受图形的比较可初步判定,系统的解调具有一定的误差,使解调出的波形与调制波形具有一些区别之处,再计算不同
E
b
=
N
0
E_b=N_0
Eb=N0的情况下的误码率得到上图中的误码率曲线与理论情况下的误码率曲线做比较,分析发现实验仿真得到的误码率曲线基本与理论相符,仅存在少量的误差可以判定为引入噪声与系统参数设定所造成的,但属于可接受范围内,所以可以认定该仿真为正确可行的。
5.小结
同时通过本次的仿真,对单极性码与双极性码的误码率进行了初步的比较,可以得到当 E b = N 0 E_b=N_0 Eb=N0相同的情况下,双极性不归零码的最佳接收平均误比特率比单极性的小,同时也熟悉了QPSK与16QAM信号,发现矩形星座QAM最佳接收误符率与MASK的一样,取决于数字基带MPAM的误符率,而QPSK与2PSK的输入二进制信息速率相同的情况下,二者的发送功率相同,QPSK与2PSK的平均误码率也是相同的。