信源编码是对信源输出消息转换成的电信号用尽量低速率的二进制数字信号来表示,即对有剩余的消息进行少剩余的有效编码。此信息序列经过信道差错控制编码器在二进制信息序列中引入剩余度,以提高信息传输的可靠性,然后将信道差错控制编码器输出的二进制序列再通过数字调制器,将二进制序列映射为相应的信号波形在通信信道中传输。
而在数字基带传输系统中,确定信号在受到加性高斯白噪声干扰下的最佳接收为采用匹配滤波器,使得在最佳采样时刻的信噪比最大,然后再选择合适的判决门限进行判决,可以使得误比特率最小。
在实际数字通信系统中的信道往往是有限的,为此要进一步考虑适合于限带信道传输的限带信号的设计,而在本文中采用的为基于无码间干扰基带传输的升余弦滤波器。
对于单极性不归零码来说,
s1(t)=A 发“1”
s2(t)=0 发“0”
在加性白高斯噪声干扰下,利用匹配滤波器的最佳接收,其平均误码率比低通滤波器的小,因为该低通滤波器的单边带宽B>2/Tb。
图1 在加性高斯白噪声下的最佳接收
图2 采样值的概率密度函数
可根据上图的概率密度函数详细分析,代入相关的表达式从而计算系统的平均误码率
当信道的带宽受限时,若采用矩形波作为传输的信号,在频域内由于信道带宽有限会造成一定的干扰,由此考虑使用基于无码间干扰基带传输的升余弦滤波器。
同理,当采用双极性序列时 ,
s1(t)=A 发“1”
s2(t)=-A 发“0”
图3 升余弦滤波器冲激响应
图4 升余弦滤波器的频率响应
由上图可知升余弦谱满足无码间干扰传输的条件,其滤波器的带宽W=(1+a)/2Ts,a为滤波器的滚降因子。
图5 在加性白高斯噪声的干扰下的最佳接收框图
在基带信道是理想限带情况下,适当的设计发送滤波器及接收滤波器可以使得在接收端采样时刻的码间干扰为0,则合成传递函数必须满足以下条件:
Gt(f)*C(f)*Gr(f)=∣X |升余 (f)∣exp( −j2πft 0)
在接收端采样时刻无码间干扰的条件下,最佳接收的接受滤波器应匹配于所接受的确定信号,使接收端采样时刻的信噪比最大。而接收到的确定信号的频谱仅取决于发送滤波器的特性即发送滤波器与接收滤波器的传递函数的模值要近似于根升余弦频谱,才可为最佳接收系统。
si(t)=Acos(2Πfct+ θi),i=1,2,3,4
图6 QPSK信号相位图
图7 QPSK信号的产生
由于QPSK信号可以看为同相及正交支路2PSK的叠加,所以在解调时可对两路信号分别进行2PSK解调,然后进行串并变换,得到输出数据。
在接收端采样时刻无码间干扰的条件下,最佳接收的接受滤波器应匹配于所接受的确定信号,使接收端采样时刻的信噪比最大。而接收到的确定信号的频谱仅取决于发送滤波器的特性,所以接收滤波器的GR(f) 应与发送滤波器的模值等于根升余弦频谱。
正交幅度调制(QAM)是由两个正交载波的多电平振幅键控信号叠加而成的,它与MPSK的不同之处在于两个支路的多电平幅度序列是相互独立的。
图8 16QAM信号的空间图
S QAM (t)=a i c g T (t)cosw c t−a i s g T (t)sinw c t i=1,2,3,…M i=1,2,3,…Mi=1,2,3,…M 0≤t≤Ts
如图所示,对于该信号分别按同相与正交支路的M−−√ \sqrt{M} M进制ASK解调,在采样、判决后经串并变换恢复数据。
在接收端采样时刻无码间干扰的条件下,最佳接收的接受滤波器应匹配于所接受的确定信号,使接收端采样时刻的信噪比最大。而接收到的确定信号的频谱仅取决于发送滤波器的特性,所以接收滤波器的GR(f)
(f)应与发送滤波器的GT(f) 共轭匹配即发送滤波器与接收滤波器的传递函数的模值要近似于根升余弦频谱,才可为最佳接收系统。
数字PAM信号在限带及加性白高斯噪声信道条件下,最佳基带传输系统的误码率计算公式带宽不受限时的加性白高斯噪声信道条件下匹配滤波器最佳接收的误码率计算公式是相同的,所以在此讨论2PAM信号为双极性不归零码序列时的误码率。
得到接收端的平均误比特率为:
Pb=Q√(2Eb/N0)
其中Eb为接收信号的平均比特能量,E1为比特时间间隔内接受信号S1(t) 的信号能量。
对于QPSK信号而言,同相支路及正交支路的四进制符号速率是二进制信息速率的一半,在给定信号总发送功率的条件下,QPSK同相支路或正交支路的信号功率是总发送功率的一半。
得到接收端的平均误比特率为:
Pb=Q√(2Eb/N0)
所以可以得到,在QPSK与2PSK的输入二进制信息速率相同的情况下,二者的发送功率相同,QPSK与2PSK的平均误码率也是相同的。
MATLAB代码为:
clear all
%------------------
%系统参数设置
%-----------------
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=alphars=25Hz
NumBits=Tr_s;%number of bits
NumCoff=40;%number of coefficients of RRC
SamplingIns=NumCoff/2;
SamplingStart=NumCoff;
%-------------------------------
%Transmitter
%-------------------------------
% g_T=firrcos(NumCoff,r_s/2,alphar_s,f_sample);%transmission filter
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_sNumBits);
s=conv(b3,g_T);%transmitted signal
%--------------------------------
%AWGN channel
%--------------------------------
N_0=10^(-8);
noise_w=wgn(1,length(s),N_0f_sample,‘linear’);%产生白噪声
r=s+noise_w;
figure(1)
plot(s)
hold on
plot®
%--------------------------------
%receiver
%--------------------------------
% g_R=firrcos(NumCoff,r_s/2,alphar_s,f_sample);%transmission filter
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_sNumBits);
sample3=zeros(1,length(y1));
sample3(NumCoff+1:NumCoff+f_sample/r_sNumBits)=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
clear all
%------------------
%系统参数设置
%-----------------
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=alphars=25Hz
NumBits=Tr_s;%number of bits
NumCoff=40;%number of coefficients of RRC
SamplingIns=NumCoff/2;
SamplingStart=NumCoff;
%-------------------------------
%Transmitter
%-------------------------------
g_T=firrcos(NumCoff,r_s/2,alphar_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_sNumBits);
s=conv(b3,g_T);%transmitted signal
%--------------------------------
%AWGN channel
%--------------------------------
N_0=10^(-9);
noise_w=wgn(1,length(s),N_0f_sample,‘linear’);%产生白噪声
r=s+noise_w;
figure(1)
plot(s)
%hold on
%plot®
%--------------------------------
%receiver
%--------------------------------
g_R=firrcos(NumCoff,r_s/2,alphar_s,f_sample);%transmission filter
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_sNumBits);
sample3=zeros(1,length(y1));
sample3(NumCoff+1:NumCoff+f_sample/r_sNumBits)=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;
MATLAB代码为:
close all
clc
clear
%设置仿真参数
global dt t f df N T
N=2^16;
L=64;
M=N/L;
Rb=2;
Ts=1/Rb;
dt=Ts/L;
df=1/(Ndt);
T=Ndt;
Bs=N*df/2;
Na=4;
alpha=0.8;
t=linspace(-T/2,T/2,N);
f=linspace(-Bs,Bs,N)+eps;
P_s0=zeros(1,N);
P_s1=zeros(1,N);
P_s2=zeros(1,N);
P_s3=zeros(1,N);
Eb_N0=zeros(1,10);
eb_n0=zeros(1,10);
Pe=zeros(1,10);
%升余弦滚降函数
hr1=sin(pit/Ts)./(pit/Ts);
hr2=cos(alphapit/Ts)./(1-(2alphat/Ts).^2);
hr=hr1.hr2;
HR=abs(t2f(hr));
GT=sqrt(HR);
GR=GT;
%余弦载波信号
A=1.4;
fc=20;
ca=Acos(2pifct);
sa=Asin(2pifc*t);
%QPSK信号通过频带系统
for lp1=1:10
Eb_N0(lp1)=(lp1-1);
eb_n0(lp1)=10^(Eb_N0(lp1)/10);
Eb=1;n0=Eb/eb_n0(lp1);
n0=sqrt(n0Bs);
n_err=0;
for lp2=1:5
a=sign(randn(1,M));
as=a(1:2:M);
ac=a(2:2:M);
imps=zeros(1,N);
impc=zeros(1,N);
imps(L:2L:N)=as/dt;
impc(L:2*L:N)=ac/dt;
IMPS=t2f(imps);
IMPC=t2f(impc);
bfs=IMPS.*GT;
bfc=IMPC.*GT;
bs=real(f2t(bfs));
bc=real(f2t(bfc));
sts=bs.*sa;
stc=bc.*ca;
sc=stc-sts;
Ps0=bfc.*conj(bfc)/T;
P_s0=P_s0+Ps0;
S1=t2f(stc);
Ps1=S1.*conj(S1)/T;
P_s1=P_s1+Ps1;
S2=t2f(sc);
Ps2=S2.*conj(S2)/T;
P_s2=P_s2+Ps2;
nr=n0*randn(1,N);
sr=sc+nr;
src=sr.*ca;
srs=-sr.*sa;
Yc=t2f(src).*GR;
Ys=t2f(srs).*GR;
yc=real(f2t(Yc));
ys=real(f2t(Ys));
Ps3=Yc.*conj(Yc)/T;
P_s3=P_s3+Ps3;
yoc=sign(yc(L:2*L:N));
yos=sign(ys(L:2*L:N));
yo=reshape([yos;yoc],1,M);
n_err=n_err+length(find(yo~=a));
end
Pe(lp1)=n_err/(M*lp2);
end
%同相支路调制信号波形与平均功率谱
figure(1);
subplot(2,1,1);
plot(t,bc);
title(‘同相支路调制信号波形’);
axis([-8 8 -2.5 2.5]);
subplot(2,1,2);
P_s0=P_s0/(lp1lp2);
plot(f,30+10log10(P_s0));
title(‘同相支路调制信号功率谱’);
axis([-25 25 -50 30]);
xlabel(‘f (MHz)’);
ylabel(‘Ps(f) (dBm/MHz)’);
%同相支路已调信号波形与平均功率谱
figure(2);
subplot(2,1,1);
plot(t,stc);
title(‘同相支路已调信号波形’);
axis([-8 8 -2.5 2.5]);
subplot(2,1,2);
P_s1=P_s1/(lp1lp2);
plot(f,30+10log10(P_s1));
title(‘同相支路已调信号功率谱’);
axis([-40 40 -50 30]);
xlabel(‘f (MHz)’);
ylabel(‘Ps(f) (dBm/MHz)’);
%QPSK信号波形与平均功率谱
figure(3);
subplot(2,1,1);
plot(t,sc);
title(‘QPSK信号波形’);
axis([-8 8 -4 4]);
subplot(2,1,2);
P_s2=P_s2/(lp1lp2);
plot(f,30+10log10(P_s2));
title(‘QPSK信号功率谱’);
axis([-40 40 -50 30]);
xlabel(‘f (MHz)’);
ylabel(‘Ps(f) (dBm/MHz)’);
%同相支路匹配滤波器解调信号波形与平均功率谱
figure(4);
subplot(2,1,1);
plot(t,yc);
title(‘同相支路解调信号波形’);
axis([-8 8 -2.5 2.5]);
subplot(2,1,2);
P_s3=P_s3/(lp1lp2);
plot(f,30+10log10(P_s3));
title(‘同相支路解调信号功率谱’);
axis([-40 40 -50 30]);
xlabel(‘f (MHz)’);
ylabel(‘Ps(f) (dBm/MHz)’);
%同相支路匹配滤波器解调信号眼图
figure(5);
hold on;
tt=0:dt:NaLdt;
title(‘接收信号眼图’);
for ii=1:NaL:N-NaL
plot(tt,yc(ii:ii+Na*L));
end
%误码率曲线
figure(6);
semilogy(Eb_N0,Pe,‘r-s’);
eb_n0=10.^(Eb_N0/10);
hold on
semilogy(Eb_N0,0.5*erfc(sqrt(eb_n0)));
title(‘误码率曲线’);
axis([0,9,1e-4,1]);
xlabel(’(Eb/N0)dB’);
ylabel(‘Pe’);
由仿真结果易得,频带受限的情况下系统采用根升余弦的成型滤波器与匹配滤波器得到最佳接收,调制与解调的波形如上图26、27所示(由于信号为两路信号的叠加,所以在此仅显示同相支路信号,正交支路信号同理),比较可初步判定,系统的解调具有一定的误差,使解调出的波形与调制波形具有一些区别之处,再计算不同Eb/N0 的情况下的误码率得到上图中的误码率曲线与理论情况下的误码率曲线做比较,分析发现实验仿真得到的误码率曲线基本与理论相符,仅存在少量的误差可以判定为引入噪声与系统参数设定所造成的,但属于可接受范围内,所以可以认定该仿真为正确可行的。
close all
clc
clear
%设置仿真参数
global dt t f df N T
N=2^16;
L=64;
M=N/L;
Rb=2;
Ts=1/Rb;
dt=Ts/L;
df=1/(Ndt);
T=Ndt;
Bs=N*df/2;
Na=4;
alpha=0.8;
t=linspace(-T/2,T/2,N);
f=linspace(-Bs,Bs,N)+eps;
P_s0=zeros(1,N);
P_s1=zeros(1,N);
P_s2=zeros(1,N);
P_s3=zeros(1,N);
Eb_N0=zeros(1,10);
eb_n0=zeros(1,10);
Pe=zeros(1,10);
%升余弦滚降函数
hr1=sin(pit/Ts)./(pit/Ts);
hr2=cos(alphapit/Ts)./(1-(2alphat/Ts).^2);
hr=hr1.hr2;
HR=abs(t2f(hr));
GT=sqrt(HR);
GR=GT;
%余弦载波信号
A=1.7;
fc=20;
ca=Acos(2pifct);
sa=Asin(2pifc*t);
%16QAM信号通过频带系统
for lp1=1:10
Eb_N0(lp1)=(lp1-1);
eb_n0(lp1)=10^(Eb_N0(lp1)/10);
Eb=1;n0=Eb/eb_n0(lp1);
n0=sqrt(n0Bs);
n_err=0;
for lp2=1:10
a=round(rand(1,M));
as=a(1:2:M);
ac=a(2:2:M);
as=Graycode(as);
ac=Graycode(ac);
imps=zeros(1,N);
impc=zeros(1,N);
imps(2L:4L:N)=as/dt;
impc(2L:4*L:N)=ac/dt;
IMPS=t2f(imps);
IMPC=t2f(impc);
bfs=IMPS.*GT;
bfc=IMPC.*GT;
bs=real(f2t(bfs));
bc=real(f2t(bfc));
sts=bs.*sa;
stc=bc.*ca;
sc=stc-sts;
Ps0=bfc.*conj(bfc)/T;
P_s0=P_s0+Ps0;
S1=t2f(stc);
Ps1=S1.*conj(S1)/T;
P_s1=P_s1+Ps1;
S2=t2f(sc);
Ps2=S2.*conj(S2)/T;
P_s2=P_s2+Ps2;
nr=n0*randn(1,N);
sr=sc+nr;
src=sr.*ca;
srs=-sr.*sa;
Yc=t2f(src).*GR;
Ys=t2f(srs).*GR;
yc=real(f2t(Yc))/A^2;
ys=real(f2t(Ys))/A^2;
Ps3=Yc.*conj(Yc)/T;
P_s3=P_s3+Ps3;
yc1=yc(2*L:4*L:N);
ys1=ys(2*L:4*L:N);
yoc=Graydeco(yc1);
yos=Graydeco(ys1);
yo=reshape([yos;yoc],1,M);
n_err=n_err+length(find(yo~=a));
end
Pe(lp1)=n_err/(M*lp2);
end
%同相支路调制信号波形与平均功率谱
figure(1);
subplot(2,1,1);
plot(t,bc);
title(‘同相支路调制信号波形’);
axis([-8 8 -10 10]);
subplot(2,1,2);
P_s0=P_s0/(lp1lp2);
plot(f,30+10log10(P_s0));
title(‘同相支路调制信号功率谱’);
axis([-25 25 -50 30]);
xlabel(‘f (MHz)’);
ylabel(‘Ps(f) (dBm/MHz)’);
%同相支路已调信号波形与平均功率谱
figure(2);
subplot(2,1,1);
plot(t,stc);
title(‘同相支路已调信号波形’);
axis([-8 8 -5 5]);
subplot(2,1,2);
P_s1=P_s1/(lp1lp2);
plot(f,30+10log10(P_s1));
title(‘同相支路已调信号功率谱’);
axis([-40 40 -50 30]);
xlabel(‘f (MHz)’);
ylabel(‘Ps(f) (dBm/MHz)’);
%16QAM信号波形与平均功率谱
figure(3);
subplot(2,1,1);
plot(t,sc);
title(‘16QAM信号波形’);
axis([-8 8 -5 5]);
subplot(2,1,2);
P_s2=P_s2/(lp1lp2);
plot(f,30+10log10(P_s2));
title(‘16QAM信号功率谱’);
axis([-40 40 -50 30]);
xlabel(‘f (MHz)’);
ylabel(‘Ps(f) (dBm/MHz)’);
%同相支路匹配滤波器解调信号波形与平均功率谱
figure(4);
subplot(2,1,1);
plot(t,yc);
title(‘同相支路解调信号波形’);
axis([-8 8 -2.5 2.5]);
subplot(2,1,2);
P_s3=P_s3/(lp1lp2);
plot(f,30+10log10(P_s3));
title(‘同相支路解调信号功率谱’);
axis([-40 40 -50 30]);
xlabel(‘f (MHz)’);
ylabel(‘Ps(f) (dBm/MHz)’);
%同相支路匹配滤波器解调信号眼图
figure(5);
hold on;
tt=0:dt:NaLdt;
title(‘接收信号眼图’);
axis([0.5 1.5 -2 2])
for ii=1:NaL:N-NaL
plot(tt,yc(ii:ii+Na*L));
end
%误码率曲线
figure(6);
semilogy(Eb_N0,Pe,‘r-s’);
eb_n0=10.^(Eb_N0/10);
hold on
MM=16;
P1=erfc(sqrt(((6*log2(MM))/(MM-1))*eb_n0));
Pm=(1-1/sqrt(MM))P1;
Pc=2Pm-Pm.^2;
Pb=Pc/log2(MM);
semilogy(Eb_N0,Pb);
title(‘误码率曲线’);
axis([0,9,1e-6,1e-1]);
xlabel(’(Eb/N0)dB’);
ylabel(‘Pe’);
figure(7);
plot(yc1,ys1,‘g.’);
grid;
title(‘接收信号星座图’);
xlabel(‘yc’);
ylabel(‘ys’);
由仿真结果易得,频带受限的情况下系统采用根升余弦的成型滤波器与匹配滤波器得到最佳接收,调制与解调的波形如上图30、31所示(由于信号为两路信号的叠加,所以在此仅显示同相支路信号,正交支路信号同理),比较可初步判定,系统的解调具有一定的误差,使解调出的波形与调制波形具有一些区别之处,再计算不同Eb/N0 的情况下的误码率得到上图中的误码率曲线与理论情况下的误码率曲线做比较,分析发现实验仿真得到的误码率曲线基本与理论相符,仅存在少量的误差可以判定为引入噪声与系统参数设定所造成的,但属于可接受范围内,所以可以认定该仿真为正确可行的。
在数字通信系统中,信源是信息的来源,但信源输出的是消息(或符号)来表达所要传达的信息。若通信信道的传递函数为低通的,则称此信道为基带信道,适合于传送脉冲波形,所以将数字基带信号通过基带信道传输的系统称为数字基带传输系统。
而在数字基带传输系统中,确定信号在受到加性高斯白噪声干扰下的最佳接收为采用匹配滤波器,使得在最佳采样时刻的信噪比最大,然后再选择合适的判决门限进行判决,可以使得误比特率最小。
在实际数字通信系统中的信道往往是有限的,为此要进一步考虑适合于限带信道传输的限带信号的设计,而在本文中采用的为基于无码间干扰基带传输的升余弦滤波器。