仿真报告2:数字通信系统误码性能仿真分析
1.概述
在数字通信系统中,信源是信息的来源,但信源输出的是消息或者为符号,以消息或者是符号的形式来表达所要传送的信息。一般数字通信系统从信源通过信源编码器、信道编码、数字调制经过信道进行数字解调、信道译码、信源译码最后到达信宿。本篇文章通过对于以下四种系统:信道带宽无限的单极性基带传输、信道带宽受限时的双极性基带传输、信道带宽受限时的QPSK传输、信道带宽受限时的16QAM传输采用最佳接收,对误码性能进行仿真,并分析比较得出结论。
2.系统模型
一般数字通信系统的通用传输模型为:
2.1信道带宽无限时的单极性基带传输
因为采用的是带宽无限的加性高斯白噪声(AWGN)信道,所以我们可以使用单极性不归零码进行传输。
单极性不归零码的脉冲调制模型为:
所以发送滤波器的冲激响应函数
g
(
t
)
g(t)
g(t)为:
g
(
t
)
=
{
1
0
<
t
<
T
0
0
其
他
(2.1.1)
g(t)=\begin{cases} 1 & 0<t<T_0 \\ 0 & 其他 \end{cases}\tag{2.1.1}
g(t)={100<t<T0其他(2.1.1)
所以发送滤波器的信号时域波形
s
i
(
t
)
s_i(t)
si(t)为:
s
i
(
t
)
=
{
A
发
送
“
1
”
0
发
送
“
0
”
(2.1.2)
s_i(t)=\begin{cases} A & 发送“1” \\ 0 & 发送“0” \end{cases}\tag{2.1.2}
si(t)={A0发送“1”发送“0”(2.1.2)
所以可以设计匹配滤波器进行接收:
设
h
(
t
)
h(t)
h(t)与
s
1
(
t
)
s_1(t)
s1(t)匹配:
h
(
t
)
=
s
1
(
T
−
t
)
h(t)=s_1(T-t)
h(t)=s1(T−t)可得,
r
(
t
)
=
s
1
(
t
)
+
n
w
(
t
)
,
0
<
t
<
T
(2.1.3)
r(t)=s_1(t)+n_w(t),0<t<T\tag{2.1.3}
r(t)=s1(t)+nw(t),0<t<T(2.1.3)
y
(
t
)
=
r
(
t
)
∗
h
(
t
)
=
∫
0
t
r
(
τ
)
h
(
t
−
τ
)
d
τ
(2.1.4)
y(t)=r(t)*h(t)=\int_0^t r(\tau)h(t-\tau)d\tau\tag{2.1.4}
y(t)=r(t)∗h(t)=∫0tr(τ)h(t−τ)dτ(2.1.4)
y
=
y
(
T
)
=
∫
0
t
s
1
(
τ
)
∗
s
1
(
τ
)
d
τ
+
∫
0
t
s
1
(
τ
)
∗
n
w
(
τ
)
d
τ
=
E
s
+
Z
(2.1.5)
y=y(T)=\int_0^t s_1(\tau)*s_1(\tau)d\tau+\int_0^t s_1(\tau)*n_w(\tau)d\tau=E_s+Z\tag{2.1.5}
y=y(T)=∫0ts1(τ)∗s1(τ)dτ+∫0ts1(τ)∗nw(τ)dτ=Es+Z(2.1.5)
2.2信道带宽受限时的双极性基带传输
由于信道带宽受限所以我们采用升余弦滤波器进行设计,同时由于是双极性基带传输,所以可以得到发送的符号为:
s
i
(
t
)
=
{
A
∗
g
T
(
t
)
发
送
“
1
”
−
A
∗
g
T
(
t
)
发
送
“
0
”
(2.2.1)
s_i(t)=\begin{cases} A*g_T(t) & 发送“1” \\ -A*g_T(t) & 发送“0” \end{cases}\tag{2.2.1}
si(t)={A∗gT(t)−A∗gT(t)发送“1”发送“0”(2.2.1)
g
T
(
t
)
g_T(t)
gT(t)为所设计的升余弦滤波器的单位冲激响应函数,滚降因子为
α
\alpha
α,并且满足奈奎斯特第一准则。
所以可以设计匹配滤波器进行接收:(与上文类似)
2.3信道带宽受限时的QPSK传输
QPSK又称为四进制移相键控,该信号的正弦载波有4个可能的离散相位状态,每个载波相位携带2个二进制符号,其信号表达式为:
s
i
(
t
)
=
A
c
o
s
(
ω
c
t
+
θ
i
)
i
=
1
,
2
,
3
,
4
0
<
t
<
T
s
(2.3.1)
s_i(t)=Acos(\omega_c t+\theta _i)\ i=1,2,3,4 \ 0<t<T_s\tag{2.3.1}
si(t)=Acos(ωct+θi) i=1,2,3,4 0<t<Ts(2.3.1)
T
s
T_s
Ts为四进制符号间隔,
θ
i
(
i
=
1
,
2
,
3
,
4
)
\theta _i(i=1,2,3,4)
θi(i=1,2,3,4)为正弦载波的相位,有4种可能状态。如下图所示:
取
θ
i
=
(
2
i
−
1
)
∗
π
4
\theta _i=(2i-1)*\frac \pi 4
θi=(2i−1)∗4π进行分析,可以将2.3.1式写成
s
i
(
t
)
=
A
c
o
s
(
ω
t
+
θ
i
)
=
=
A
(
c
o
s
θ
i
c
o
s
ω
c
t
−
s
i
n
θ
i
s
i
n
ω
c
t
)
0
<
t
<
T
s
(2.3.2)
s_i(t)=Acos(\omega t+\theta _i)==A(cos\theta _icos\omega_c t-sin\theta _isin\omega_c t)0<t<T_s\tag{2.3.2}
si(t)=Acos(ωt+θi)==A(cosθicosωct−sinθisinωct)0<t<Ts(2.3.2)
若
θ
i
=
π
/
4
、
3
π
/
4
、
5
π
/
4
、
7
π
/
4
\theta _i=\pi/4、3\pi/4、5\pi/4、7\pi/4
θi=π/4、3π/4、5π/4、7π/4,则
c
o
s
θ
i
=
±
1
2
;
s
i
n
θ
i
=
±
1
2
cos\theta _i=\pm\frac 1{\sqrt 2};sin\theta _i=\pm\frac 1{\sqrt 2}
cosθi=±21;sinθi=±21于是,2.3.2式可以写成,
s
i
(
t
)
=
A
2
[
I
(
t
)
c
o
s
ω
c
t
−
Q
(
t
)
s
i
n
ω
c
t
]
(2.3.3)
s_i(t)=\frac A{\sqrt 2}[I(t)cos\omega_c t-Q(t)sin\omega_c t]\tag{2.3.3}
si(t)=2A[I(t)cosωct−Q(t)sinωct](2.3.3)
其中
I
(
t
)
=
±
1
,
Q
(
t
)
=
±
1
,
0
<
t
<
T
s
I(t)=\pm 1,Q(t)=\pm 1,0<t<T_s
I(t)=±1,Q(t)=±1,0<t<Ts。
所以可以根据以上原理得到调制模型为:
同样QPSK也可以采用匹配滤波器进行接收,接收模型如下:
2.4信道带宽受限时的16QAM传输
正交幅度调制(QAM)是由两个正交载波的多电平振幅键控信号叠加而成的,它与MPSK的不同之处在于两个支路的多电平幅度序列是相互独立的。
MQAM信号表示式为:
s
Q
A
M
(
t
)
=
a
i
c
g
T
(
t
)
c
o
s
ω
c
t
−
a
i
s
g
T
(
t
)
s
i
n
ω
c
t
,
i
=
1
,
2
,
.
.
.
,
M
,
0
<
t
<
T
s
(2.4.1)
s_{QAM}(t)=a_{i_c}g_T(t)cos\omega _ct-a_{i_s}g_T(t)sin\omega _ct,i=1,2,...,M,0<t<T_s\tag{2.4.1}
sQAM(t)=aicgT(t)cosωct−aisgT(t)sinωct,i=1,2,...,M,0<t<Ts(2.4.1)
所以16QAM信号表示式为:
s
Q
A
M
(
t
)
=
a
i
c
g
T
(
t
)
c
o
s
ω
c
t
−
a
i
s
g
T
(
t
)
s
i
n
ω
c
t
,
i
=
1
,
2
,
.
.
.
,
16
,
0
<
t
<
T
s
(2.4.2)
s_{QAM}(t)=a_{i_c}g_T(t)cos\omega _ct-a_{i_s}g_T(t)sin\omega _ct,i=1,2,...,16,0<t<T_s\tag{2.4.2}
sQAM(t)=aicgT(t)cosωct−aisgT(t)sinωct,i=1,2,...,16,0<t<Ts(2.4.2)
产生MQAM信号的原理框图为:
矩形星座QAM信号的最佳接收模型为:
3.误码性能分析
3.1信道带宽无限时的单极性基带传输
由前文可知无论信号发送“1”还是“0”的时候均满足2.1.5式,所以后面的部分也就是Z为一个高斯分布的变量,表达式为
Z
满
足
N
(
0
,
σ
2
)
Z满足N(0,\sigma^2)
Z满足N(0,σ2),方差
σ
2
=
E
s
N
0
/
2
\sigma^2=E_sN_0/2
σ2=EsN0/2。
平均符号能量为
E
b
=
A
2
T
s
/
2
E_b=A^2T_s/2
Eb=A2Ts/2,所以发送“1”的时候表达式为
N
(
2
E
b
,
σ
2
)
N(2E_b,\sigma^2)
N(2Eb,σ2)的正态分布。所以最优判决门限为
V
T
=
E
s
1
/
2
V_T=E_{s1}/2
VT=Es1/2。
系统的平均误码率为:
E
b
=
E
1
2
(3.1.1)
E_b=\frac {E_1}2\tag{3.1.1}
Eb=2E1(3.1.1)
p
e
=
Q
(
E
b
N
0
E
1
2
2
)
=
Q
(
E
b
N
0
2
)
(3.1.2)
p_e=Q(\frac {E_b}{\sqrt[2]{\frac{N_0E_1}2}})=Q(\sqrt[2]{\frac{E_b}{N_0}})\tag{3.1.2}
pe=Q(22N0E1Eb)=Q(2N0Eb)(3.1.2)
3.2信道带宽受限时的双极性基带传输
根据上文所分析,也应该采用匹配滤波器进行接收,但是由于是双极性不归零码与之前的单极性有所区别,主要的区别在于均值与判决门限与之前的不同。
发送符号“1”,通过2.1.3所示匹配滤波器,均值为
E
b
E_b
Eb。发送符号“0”,均值为
−
E
b
-E_b
−Eb。所以判决门限
V
T
=
0
V_T=0
VT=0
系统的平均误码率为:
E
b
=
E
1
(3.2.1)
E_b= {E_1}\tag{3.2.1}
Eb=E1(3.2.1)
p
e
=
Q
(
E
b
N
0
E
1
2
2
)
=
Q
(
2
E
b
N
0
2
)
(3.2.2)
p_e=Q(\frac {E_b}{\sqrt[2]{\frac{N_0E_1}2}})=Q(\sqrt[2]{\frac{2E_b}{N_0}})\tag{3.2.2}
pe=Q(22N0E1Eb)=Q(2N02Eb)(3.2.2)
3.3信道带宽受限时的QPSK传输
在理想限带及加性白高斯噪声信道条件下的QPSK最佳频带传输系统,若发送端信源的"0"和“1”等概出现,则最佳接收的平均误比特率为
P
b
=
1
2
e
r
f
c
(
E
b
N
0
)
=
Q
(
2
E
b
N
0
2
)
(3.3.1)
P_b=\frac 12erfc(\sqrt{\frac{E_b}{N_0}})=Q(\sqrt[2]{\frac{2E_b}{N_0}})\tag{3.3.1}
Pb=21erfc(N0Eb)=Q(2N02Eb)(3.3.1)
3.4信道带宽受限时的16QAM传输
矩形星座QAM的最佳接收误符率与MASK的一样,取决于数字基带MPAM的误符率。MQAM的正确判决符号的概率为
P
c
=
(
1
−
P
M
)
2
(3.4.1)
P_c=(1-P_{\sqrt M})^2\tag{3.4.1}
Pc=(1−PM)2(3.4.1)
MQAM的误符率为
P
M
=
1
−
P
c
=
2
P
M
−
P
M
2
(3.4.2)
P_M=1-P_c=2P_{\sqrt M}-P_{\sqrt M}^2\tag{3.4.2}
PM=1−Pc=2PM−PM2(3.4.2)
P
16
=
1.5
Q
(
d
m
i
n
2
2
N
0
)
(3.4.3)
P_{\sqrt {16}}=1.5Q(\sqrt \frac{d^2_{min}}{2N_0})\tag{3.4.3}
P16=1.5Q(2N0dmin2)(3.4.3)
4.仿真模型与仿真过程
4.1信道带宽无限时的单极性基带传输
系统参数设置代码:
T_start=0;%开始时间
T_stop=1;%截止时间
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=10;%number of coefficients of RRC
SamplingIns=NumCoff/2;
SamplingStart=NumCoff;
发送信号:
g_T=[ones(1,f_sample/r_s),0];
b1=(sign(rand(1,NumBits)-0.5)+1)/2;%原始序列
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信道:
N_0=10^(-8);%噪声功率
noise_w=wgn(1,length(s),N_0*f_sample,'linear');%产生白噪声
叠加信号:
r=s+noise_w;
figure(1);
subplot(3,1,1);
plot(s);
title('随机信号s') ;
subplot(3,1,2);
plot(noise_w);
title('噪声信号noise-w') ;
subplot(3,1,3);
plot(r);
title('叠加信号r') ;
接收信号:
g_R=g_T;
y1=conv(r,g_R);
figure;
myeyediagram=eyediagram(y1(1:length(y1)),f_sample/r_s);
figure(2)
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;
stem(sample3,'.');
y2=y1.*sample3;
stem(y2,'.')
y2(:,all(y2==0,1))=[];
b_t=b1;
b_r=(sign(y2-5)+1)*0.5;%判决大于5
BER=length(find(b_t~= b_r))/NumBits;%求误码率
4.2信道带宽受限时的双极性基带传输
系统参数设置:
T_start=0;%开始时间
T_stop=1;%截止时间
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;%比特数
NumCoff=80;%number of coefficients of RRC
SamplingIns=NumCoff/2;
SamplingStart=NumCoff;
发送序列:
g_T=rcosdesign(alpha,8,10,'sqrt');
b1=sign(rand(1,NumBits)-0.5);%原始序列
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信道:
N_0=10^(-8);
noise_w=wgn(1,length(s),N_0*f_sample,'linear');%产生白噪声
叠加信号:
r=s+noise_w;
figure(1);
subplot(3,1,1);
plot(s);
title('随机信号s') ;
subplot(3,1,2);
plot(noise_w);
title('噪声信号noise-w') ;
subplot(3,1,3);
plot(r);
title('叠加信号r') ;
接收信号:
g_R=g_T;
y1=conv(r,g_R);
figure;
myeyediagram=eyediagram(y1(1:length(y1)),f_sample/r_s);
figure(2)
plot(y1)
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;
y2=y1.*sample3;
stem(y2,'.');
y2(:,all(y2==0,1))=[];
b_t=b1;
b_r=sign(y2);%双极性码的判决门限为0
BER=length(find(b_t~= b_r))/NumBits;%求误码率
4.3信道带宽受限时的QPSK传输
系统参数设置:
SNR = 4:1:17; % 如果为固定值则是特定信噪比的时候
SNRS = 10.^(SNR./10);
ber = zeros(1,length(SNR));
bers = zeros(1,length(SNR));
Rb = 120;
Tb = 1/Rb;
Rs = Rb / 2;
Ts = 1/Rs;
N = 10000;
Fc = 600000;
Tc = 1/Fc;
alpha = 0.5;
span = 10;
sps = 10;
发送序列:
g_T = rcosdesign(alpha, span, sps);
g_R = g_T;
Eg = sum(g_T.^2);
dataInput = randi([0,1],1,N);
dataInput = dataInput*2 - 1;
%QPSK
data_e = dataInput(2:2:end);
data_o = dataInput(1:2:end);
F1 = upfirdn(data_e, g_T, sps);
F2 = upfirdn(data_o, g_T, sps);
t = 0:length(F1)-1;
t_s = t * (Tc/10);
t = t * (Ts/sps);% F1,F2中每个点时间间隔
s_QPSK = F1 .* cos(2*pi*Fc*t_s) - F2 .* sin(2*pi*Fc*t_s);
接收信号:
r_QPSK = awgn(s_QPSK,SNR(F1));%默认Es = 0dBW
F1_r = r_QPSK .* cos(2*pi*Fc*t_s);
F2_r = r_QPSK .* (-sin(2*pi*Fc*t_s));
y_F1 = upfirdn(F1_r, g_R, 1, sps);
y_F2 = upfirdn(F2_r, g_R, 1, sps);
% desicion
Y_F1 = sign(y_F1(span + 1:end - span));
Y_F2 = sign(y_F2(span + 1:end - span));
dataOutput = [];
dataOutput(2:2:N) = Y_F1;
dataOutput(1:2:N) = Y_F2;
与理论值进行比较:(若信噪比固定则不需要这步)
errnum_F1 = symerr(Y_F1, data_e);
errnum_F2 = symerr(Y_F2, data_o);
totalerrnum = [errnum_F1 , errnum_F2];
ber(F1) = qfunc(sqrt(Eg*SNRS(F1)/2));
bers(F1) = sum(totalerrnum) / N;
4.4信道带宽受限时的16QAM传输
系统参数设置:
M = 16;%16QAM
SNR = 0:1:13;
SNRS = 10.^(SNR./10);
ser = zeros(1,length(SNR));
sers = zeros(1,length(SNR));
Rb = 200;
Tb = 1/Rb;
Rs = Rb / 4;
Ts = 1/Rs;
N = 1000;
Fc = 600000;
Tc = 1/Fc;
alpha = 0.4;
span = 40;
sps = 10;
发送信号:
g_T = rcosdesign(alpha, span, sps);
Eg = sum(g_T.^2);
g_R = g_T;
dataInput = randi([0,1],1,N);
data_e = dataInput(2:2:end);
data_o = dataInput(1:2:end);
data_em = [];
data_om = [];
解调:
r_16QAM = awgn(s_16QAM,SNR(j));
F1_r = r_16QAM .* cos(2*pi*Fc*t_s) .* sqrt(2/Eg);
F2_r = r_16QAM .* (-sin(2*pi*Fc*t_s)) .* sqrt(2/Eg);
y_F1 = upfirdn(F1_r, g_R, 1, sps);
y_F2 = upfirdn(F2_r, g_R, 1, sps);
y_F1 = y_F1 .* sqrt(2/Eg);
y_F2 = y_F2 .* sqrt(2/Eg);
Y_F1 = [];
Y_F2 = [];
判决:
if y_F1(i) <= -2
Y_F1 = [Y_F1, -3];
end
if (y_F1(i) > -2) & (y_F1(i) <= 0)
Y_F1 = [Y_F1, -1];
end
if (y_F1(i) > 0) & (y_F1(i) < 2)
Y_F1 = [Y_F1, 1];
end
if y_F1(i) >= 2
Y_F1 = [Y_F1, 3];
end
恢复:
if Y_F1(i) == -3
Y_F1_bin = [Y_F1_bin,0,0];
end
if Y_F1(i) == -1
Y_F1_bin = [Y_F1_bin,0,1];
end
if Y_F1(i) == 1
Y_F1_bin = [Y_F1_bin,1,1];
end
if Y_F1(i) == 3
Y_F1_bin = [Y_F1_bin,1,0];
end
与理论值进行比较:
ser(j) = 3*qfunc(sqrt(0.2*Es*SNRS(j))) - (1.5*qfunc(sqrt(0.2*Es*SNRS(j))))^2;
sers(j) = mean(totalerrnum) / length(Y_F1);
5.仿真结果分析
5.1信道带宽无限时的单极性基带传输
当噪声功率
N
0
=
1
0
−
8
N_0=10^{-8}
N0=10−8时:
原始信号为:
可以看出在信道噪声较小的情况下接收和判决效果较好,通过查看BER变量可以知道现在的误码率为0。
同样也可以通过眼图来对误码情况进行判断:
让我们提高噪声功率,当噪声功率
N
0
=
1
0
−
3
N_0=10^{-3}
N0=10−3时:
可以看出,通过降低信噪比,提高噪声功率。信号的失真越来越明显,当噪声功率为 1 0 − 3 10^{-3} 10−3的时候此时误码率为0.06。
5.2信道带宽受限时的双极性基带传输
当噪声功率
N
0
=
1
0
−
8
N_0=10^{-8}
N0=10−8时:
原始信号为:
可以看出在信道噪声较小的情况下接收和判决效果较好,通过查看BER变量可以知道现在的误码率为0。
同样也可以通过眼图来对误码情况进行判断:
让我们提高噪声功率,当噪声功率
N
0
=
1
0
−
3
N_0=10^{-3}
N0=10−3时:
可以看出,通过降低信噪比,提高噪声功率。信号的失真越来越明显,当噪声功率为 1 0 − 3 10^{-3} 10−3的时候此时误码率为0.17。
5.3信道带宽受限时的QPSK传输
输入信号为:
输出的信号为:
可以看出有较好的抗噪声性能,通过对于不同信噪比的信号进行求解得出如下曲线:
5.4信道带宽受限时的16QAM传输
输入信号为:
输出的信号为:
可以看出有较好的抗噪声性能,通过对于不同信噪比的信号进行求解得出如下曲线:
6.结论
根据以上结果可以看出,无论是哪种系统,理论与实际均有一定的误差。同时随着信道噪声功率的增加误码率也在增加。
在理论分析中,由于我们考虑的都是较为理想的随机变量(等概分布)。但是在每一次的仿真之中都可以看成一次随机试验,所以仿真与理论分析会有一定的误差。同时在设计的过程中,根据通信系统的种类需要使用不同的方法来确保其最佳接收。
通过这次实验我加深了对于本课程主要学习的知识的认识,果然只有通过实践才能更好的掌握知识。对于MATLAB仿真上,我仍然不是特别的熟悉,希望通过假期的学习,来更加熟悉MATLAB在通信系统上的应用。
7.参考文献
[1] 周炯槃.通信原理(第4版).北京:北京邮电大学出版社,2015.8
[2]tanghonghanhaoli.现代通信原理10.2:采用匹配滤波器的数字基带传输系统误码性能分析https://blog.csdn.net/tanghonghanhaoli/article/details/102969091
[3]tanghonghanhaoli.现代通信原理A.5:数字基带传输系统误码性能仿真
https://blog.csdn.net/tanghonghanhaoli/article/details/103415857