数字传输系统的最佳接收与误码性
文章目录
1.概述
1.1数字系统通用模型
信源:是消息的来源,但信源输出的是消息(或符号),以消息(或符号)的形式来表达所要传送的信息。信源输出的波形或者数据流会进入第二个模块,信源编码。信源可能是模拟的,也可能是数字的。如果信源是模拟的,则认为它会输出一定的信号波形,如麦克风产生模拟语音信号,或者模拟录像机产生模拟视频信号如果信源是数字的,一般认为其输出“0”、“1”数据流。
信源编码:信源编码是一种以提高通信有效性为目的而对信源符号进行的变换,或者说为了减少或消除信源冗余度而进行的信源符号变换。如果信源为数字的,那么信源编码的主要作用是通过减少冗余来进行压缩,在模拟系统中,信源编码的根本任务是压缩频带。
信道编码:信道编码与信源编码的作用正好相反。信源编码是尽量减少冗余,而信道编码是增加冗余。对要在信道中传送的数字信号进行的纠、检错编码就是信道编码。信道编码之所以能够检出和校正接收比特流中的差错,是因为加入一些冗余比特,把几个比特上携带的信息扩散到更多的比特上。为此付出的代价是必须传送比该信息所需要的更多的比特。
脉冲调制:有时候我们也称为基带调制,就是对比特序列{ }的波形表达通俗点说,就是要把一个一个的bit,表示成为具体的波形,才好发送到信道上去。
带通调制:这里是把基带波形变成频带波形,如果为数字基带传输,则系统中不包括该模块。
信道:我们这门课程只讨论AWGN信道,即在进入接收机之前,有用信号与加性高斯白噪声叠加。我们会讨论两种AWGN信道,一种是频带无限的,第二种是频带有限的。
帯通解调:功能与帯通调制相反,其输入信号为带通波形,输出为基带波形。如果为数字基带传输,则系统中不包括该模块。
检测:作用正好与脉冲调制相反,把波形中的比特序列提取出来。由于噪声干扰的影响,其输出与输入不完全一样。
信道译码: 信道译码是将冗余比特去掉,实现检错或者纠错功能。
信源译码:如果发送端为数字信源编码,这里的信源译码恢复原始信息;如果为模拟信源编码,则恢复模拟信号。
1.2数字基带传输系统模型
发射机:这里的发射机,也就是 “数字系统通用模型”中介绍的脉冲调制模块,具体来说,它是把来自信源的二进制随机序列{bn}通过线路编码、窄脉冲生成器和发送滤波器后变为信号波形s(t) 。
信道(AWNG):我们将讨论两种AWGN信道,即带宽无限的AWGN信道,以及带宽有限的AWGN信道。带宽无限AWGN信道。发送信号通过带宽无限AWGN信道时不会发生形状上的变化。信号在进入接收机之前,叠加加性高斯白噪声,接收信号为发送信号通过带宽有限AWGN信道(其带宽为B)时会发生形状上的变化。信号在进入接收机之前,接收信号为.
接收机:这里的接收机,也就是 “数字系统通用模型”中介绍的检测模块,具体来说,它是把来自信道的信号波形恢复成二进制序列{},理论上{}应与{}完全相同,但由于噪声等影响,会发生误码。
2.信道带宽无限时的单极性基带传输
2.1系统模型
当信道的带宽无限时,可以采用矩形波作为传输的信号,此处使用的为单极性不归零码。假设信源等概发送
2.2误码性能分析
最佳抽样时刻t=Tb时,采样值中的有用信号:
所以判决最佳门限为:.平均误比特率:采样值为。Z为均值为0,方差为的高斯白噪声。
若此值小于判决门限则判决出错。即出错概率是的概率,也就是的概率,可表示为 ,s_2同理。所以平均错误率:
2.3 仿真模型、仿真过程
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=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
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)
title('发送信号时域波形');
hold on
plot(r)
%--------------------------------
%receiver
%--------------------------------
% g_R=firrcos(NumCoff,r_s/2,alpha*r_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)
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
2.3 仿真结果分析
分析:如图可看出在误码率大致为0.4~0.5,可得信道带宽无限时的匹配滤波器接受会产生较大的误差,且由眼图可以看出“眼睛”张开程度较大,说明系统的误码不严重,匹配滤波器作为最佳接收可以有较好的性能。
3.信道带宽受限时的双极性基带传输
3.1系统模型
信道带宽受限时,可以采用根升余弦信号做成型滤波器。以双极性不归零码为例:假设信源等概发送
3.2误码性分析
接收到的信号为
假定发送,最佳抽样时刻t=Tb时,采样值中的有用信号:
假定发送,最佳抽样时刻t=Tb时,采样值中的有用信号:
所以最佳判决电平Z为均值为0,方差为的高斯白噪声。判决器输入判决量为:,判决器比较与的大小,如果比大,则认为发送的是,比小则认为发送的是。
若此值小于判决门限则判决出错。即出错概率是的概率,也就是的概率,可表示为 ,s_2同理。所以平均错误率:
3.3仿真模型与仿真过程
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=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('发送信号时域波形');
%hold on
%plot(r)
%--------------------------------
%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(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;
% 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;
3.4仿真结果分析
分析:当带宽受限时系统传输的信号波形应考虑到码间干扰的问题,所以采用了根升余弦成型滤波器与接收滤波器。由波形初步可判定解调波形与原调制波形较为相似,误差较小。
4.信道带宽受限时的QPSK传输
4.1系统模型
4.2误码性能分析
比特通过QPSK传输时,有的走路,有的走路,路的功率是QPSK功率的一半,为,路比特周期是QPSK比特周期的2倍,为,路比特能量是,与QPSK比特能量相同。
路信号是BPSK,其误比特率是 。同理可知路的误比特率也是 。所以QPSK总的误比特率为
其中和分别是总的二进制码元出现在路或路的概率,且.
4.3仿真模型与仿真过程`
%信道带宽受限时的QPSK传输
clc;clear;
%%%%%%%%%%%%%%%%参数设置%%%%%%%%%%%%%%%%
fc = 5000000;
fs = 25000000;
N = 2000;
Tb = 1/5000000;
SNR=5;
%%%%%%%%%%%%%%%%发射机%%%%%%%%%%%%%%%%
data = round(rand(1,N));
%转为极性码
data_NRZ = 2*data-1;
%分为IQ两路
I = zeros(1,N);
Q = zeros(1,N);
I(1:2:N-1) = data_NRZ(1:2:N-1);
I(2:2:N) = data_NRZ(1:2:N-1);
Q(1:2:N-1) = data_NRZ(2:2:N);
Q(2:2:N) = data_NRZ(2:2:N);
%插0
zero = fs*Tb;
for i = 1:zero*N
if rem(i,zero)==1
I0(i) = I((i-1)/zero+1);
Q0(i) = Q((i-1)/zero+1);
else
I0(i) = 0;
Q0(i) = 0;
end
end
%%%%%%%%%%%%%%%%带宽无限AWGN信道%%%%%%%%%%%%%%%%
%平方根升余弦滤波器
NT=10; %滤波器阶数
rf=0.25; %滚降系数
B=(1+rf)/2.*(1/2.*Tb);%带宽
psf = rcosfir(rf,NT,zero,1/fs,'sqrt');
Ipulse = conv(I0,psf);
Qpulse = conv(Q0,psf);
%调制
num = NT*zero*2;
t = 0:1/fs:(N*zero+num)/fs-1/fs;
for i = 1:zero*N+num
Imod(i) = Ipulse(i)*sqrt(2)*cos(2*pi*fc*t(i));
Qmod(i) = Qpulse(i)*sqrt(2)*sin(2*pi*fc*t(i));
end
QPSK = Imod - Qmod;
%添加噪声
QPSK_in = awgn(QPSK,SNR,'measured');
%%%%%%%%%%%%%%%%接收机%%%%%%%%%%%%%%%%
%接收滤波器
[B,A] = butter(4,[0.08,0.8],'bandpass');
QPSK_in2=filter(B,A,QPSK_in);
%接收端,解调
for i = 1:zero*N+num
Idem(i)=QPSK_in2(i)*sqrt(2)*cos(2*pi*fc*t(i));
Qdem(i)=-QPSK_in2(i)*sqrt(2)*sin(2*pi*fc*t(i));
end
%低通滤波器
[B,A] = butter(4,0.95,'low');
Idem=filter(B,A,Idem);
Qdem=filter(B,A,Qdem);
%匹配滤波
mtf = rcosfir(rf,NT,zero,fs,'sqrt');
Idem2 = conv(Idem,mtf);
Qdem2 = conv(Qdem,mtf);
%数据选择
for i = 1:zero*N
Isel(i) = Idem2(i+num);
Qsel(i) = Qdem2(i+num);
end
%提取码元
for i = 1:N
I_sam(i) = Isel((i-1)*zero+1);
Q_sam(i) = Qsel((i-1)*zero+1);
end
%判决
threshold = 0.0;
for i = 1:N
if I_sam(i)>=threshold
I_final(i) = 1;
else
I_final(i) = -1;
end
if Q_sam(i)>=threshold
Q_final(i) = 1;
else
Q_final(i) = -1;
end
end
%并串变换
data_final(1:2:N-1) = I_final(1:2:N-1);
data_final(2:2:N) = Q_final(1:2:N-1);
N_0=1./(B.*SNR);
%理论计算的误码率
Pb=0.5*erfc(sqrt(1./abs(N_0)));
Pb=Pb(:,1);
%仿真误码率
ber=length(find(data_final~=data_NRZ))/N;
%%%%%%%%%%%%%%%%作图%%%%%%%%%%%%%%%%
figure(1)
subplot(211)
stem(data_NRZ);
axis([0 20 -1.5 1.5]);
title('QPSK发送序列');
subplot(212)
stem(data_final);
axis([0 20 -1.5 1.5]);
title('QPSK还原序列');
figure(2)
subplot(411)
plot(I);
axis([0 100 -2 2]);
title('I');
subplot(412)
plot(I0);
axis([0 100 -2 2]);
title('插0后的I');
subplot(413)
plot(Ipulse);
axis([50 500 -1 1]);
title('经过根升余弦滤波器后的I');
subplot(414)
plot(Idem2);
axis([50 500 -5 5]);
title('经过匹配滤波器后的I');
figure(3)
subplot(411)
plot(Q);
axis([0 100 -2 2]);
title('Q');
subplot(412)
plot(Q0);
axis([0 100 -2 2]);
title('插0后的Q');
subplot(413)
plot(Qpulse);
axis([50 500 -1 1]);
title('经过根升余弦滤波器后的Q');
subplot(414)
plot(Qdem2);
axis([50 500 -5 5]);
title('经过匹配滤波器后的Q');
4.4仿真结果分析
5. 信道带宽受限时的16QAM传输
5.1系统模型
5.2误码性能分析
5.3仿真模型与仿真过程
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/(N*dt);
T=N*dt;
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(pi*t/Ts)./(pi*t/Ts);
hr2=cos(alpha*pi*t/Ts)./(1-(2*alpha*t/Ts).^2);
hr=hr1.*hr2;
HR=abs(t2f(hr));
GT=sqrt(HR);
GR=GT;
%余弦载波信号
A=1.7;
fc=20;
ca=A*cos(2*pi*fc*t);
sa=A*sin(2*pi*fc*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(n0*Bs);
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(2*L:4*L:N)=as/dt;
impc(2*L: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/(lp1*lp2);
plot(f,30+10*log10(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/(lp1*lp2);
plot(f,30+10*log10(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/(lp1*lp2);
plot(f,30+10*log10(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/(lp1*lp2);
plot(f,30+10*log10(P_s3));
title('同相支路解调信号功率谱');
axis([-40 40 -50 30]);
xlabel('f (MHz)');
ylabel('Ps(f) (dBm/MHz)');
%同相支路匹配滤波器解调信号眼图
figure(5);
hold on;
tt=0:dt:Na*L*dt;
title('接收信号眼图');
axis([0.5 1.5 -2 2])
for ii=1:Na*L:N-Na*L
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=2*Pm-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');
5.4仿真结果分析
分析:频带受限的情况下系统采用根升余弦的成型滤波器与匹配滤波器得到最佳接收,调制与解调的波形如上图所示,由于信号为两路信号的叠加,所以在此仅显示同相支路信号,正交支路信号同理,比较可初步判定,系统的解调具有一定的误差,使解调出的波形与调制波形具有一些区别之处,在计算不同Eb/N0的情况下的误码率得到上图中的误码率曲线与理论情况下的误码率曲线做比较,分析发现实验仿真得到的误码率曲线基本与理论相符。
6.结论
在相同的Eb/N0的条件下,双极性信号的平均误比特率比单极性的小。QPSK与2PSK相比较,在两者的信息速率、信号发送功率、噪声功率谱密度相同的条件下,QPSK与2PSK的平均误比特率是相同的,而QPSK的功率谱主瓣宽度比2PSK的窄一半。MASK、MPSK及MQAM的频带利用率相同,但在相同的Eb/N0的条件下,M>2的MPSK误符率小于MASK的误符率;在M>4情况下,MQAM的误符率小于MPSK的误符率。
来源:CSDN
作者:Hmclark
链接:https://blog.csdn.net/Hmclark/article/details/103833375