将信息码与伪随机码进行相乘或模二加,产生一速率与伪随机码速率相同的扩频序列,这时信息带宽已经被展宽(如图2b),然后用扩频序列去调制载波,则信号频谱被搬移到射频上(如图2c)。
在接收端,接收到的信号经混频后,用与发射同步的伪随机码对中频信号进行相关解扩,将信号的频带恢复为信息的频带,然后再进行解调,恢复出所传送的信息a(t)。
对信道中的干扰,这些干扰包括:
窄带干扰、多径干扰、多址干扰等。
由于这些干扰与伪随机码不相关,接收机的相关解扩对它们相当于一次扩频,将干扰和噪声的频谱展宽,降低了功率谱密度,经滤波后就大大降低了进入信号通频带内的干扰功率,使解调器的输入信噪比得到提高,从而提高了系统的抗干扰能力。
图2给出了直扩系统的频谱图。
[1]
图1直扩系统组成框图
1.2扩频通信常用的伪随机码
常用的伪随机码主要有m序列、GOLD序列、WALSH码和OVSF码,其中最常见的是m序列。
GOLD码是m序列的复合码,是由2个码长相等,码时钟速率相同的序列优选对模2加构成,每改变2个序列相对位移就可得到一个新的GOLD序列。
GOLD序列具有良好的自、互相关特性,且地址数远远大于m序列地址数,结构简单,易于实现,在工程上得到较为广泛的应用。
WALSH函数是一种非正弦的完备正交函数系,具有理想的互相关特性,两两之间的互相关函数为0,亦即它们是正交的,因而在码分多址通信中,WALSH函数可以作为地址码使用,在IS-95中,正向传输信道就使用了64阶WALSH函数。
OVSF码是一种正交可变扩频因子码,保证在不同时隙上的不同扩频因子的扩频码正交,而在每个时隙上可使用的码的数目不固定,与每个物理信道的数据速率和扩频因子有关,OVSF码在TD-SCDMA系统中得到了广泛使用。
[2]
1.3扩频通信技术的优点
扩频通信之所以得到重视和发展,并成为近代通信主要研究和发展的方向,是因为它具有其它通信系统不能与之相比的独特性能。
1)抗同频干扰性能好。
接收机采用相关运算只接收PN码相同的扩频信号,对所有载波频率相同的信号或干扰具有很强的抑制能力。
2)良好的抗衰落性能。
一般信道中的衰落是有频率选择性的,不会对宽频带的扩频信号接收产生太大的影响。
3)抗多径干扰能力强。
由于扩频系统中采用的PN码具有很好的自相关性,互相关性很弱,不同的路径传输来的信号能容易地被分离开,并在时间和相位上重新对齐,形成几路信号功率的叠加,从而改善了接收系统的性能,增加了系统的可靠性。
[3]
2部分程序代码及仿真结果
仿真参数:
信源速率2kbps,扩频因子:
64,调制方式:
BPSK,信道:
高斯信道
closeall
clearall
SNR=[1:
1:
15]
Rb=0.25;
Tb=1/Rb;
M=100;
L=400;
N=M*L;
dt=Tb/L;
df=1/(N*dt);
Bs=N*df/2;
T=N*dt;
t=linspace(-T/2,T/2,N);
x=sign(rand(1,M)-0.5);
t0=linspace(0,T,M);
fori=1:
100;
d((1+(i-1)*400):
i*400)=x(i);
end
figure
(1)
plot(t,d)
xlabel('t(ms)');
ylabel('s(t)(V)');
title('信源');
axis([0,200,-1.5,1.5]);
gridon
fs=4000;
z=reshape(d,2,N/2);
Q=z(1,:
);
I=z(2,:
);
tq=linspace(-T/2,T/2,length(I));
BPSK=(I.*cos(2*fs*pi*tq)-Q.*sin(2*fs*pi*tq))/sqrt
(2);
figure
(2)
plot(tq,QPSK)
xlabel('t(ms)');
ylabel('QPSK(t)(V)');
title('BPSK信号');
axis([0,200,-1.5,1.5]);
gridon
user=1;
seq=1;
stage=3;
ptap1=[13];
ptap2=[23];
regi1=[111];
regi2=[111];
switchseq
case1
code=mseq(stage,ptap1,regi1,user);
case2
m1=mseq(stage,ptap1,regi1);
m2=mseq(stage,ptap2,regi2);
code=goldseq(m1,m2,user);
case3
m1=mseq(stage,ptap1,regi1);
m2=mseq(stage,ptap2,regi2);
code=[goldseq(m1,m2,user),zeros(user,1)];
end
xxx=code
clen=length(code);
xlength=100*50;
x_code=zeros(1,xlength);
fori=1:
xlength
ifmod(i,7)~=0
x_code(i)=sign(code(mod(i,7))-0.5);
elseifmod(i,7)==0
x_code(i)=sign(code(7)-0.5);
end
end
k_code=zeros(1,length(QPSK));
fori=1:
5000
k_code((1+(i-1)*4):
i*4)=x_code(i);ã
end
figure(3)
plot(tq,k_code)
xlabel('t(ms)');
ylabel('k_code(t)(V)');
title('扩频码');
axis([20,25,-1.5,1.5]);
gridon
b=BPSK.*k_code;
fc=4e4;
td=linspace(0,T,length(b));
s=b.*cos(2*fc*pi*td);
figure(4)
plot(td,s)
xlabel('t(ms)');
ylabel('s(t)(V)');
title('扩频调制信号');
axis([20,31,-1.5,1.5]);
gridon
r=awgn(s,SNR(10),'measured');
rs=r.*cos(2*fc*pi*td);
figure(5)
plot(td,rs)
xlabel('t(ms)');
ylabel('rs(t)(V)');
title('扩频解调信号');
axis([20,28,-1.5,1.5]);
gridon
jk_code=rs.*k_code;
figure(6)
plot(td,jk_code)
xlabel('t(ms)');
ylabel('rk(t)(V)');
axis([20,33,-1.5,1.5]);
gridon
[f,rf]=T2F(td,jk_code);
[tl,l]=lpf(f,rf,fc/10000);
liremod=cos(2*fs*pi*tq)*sqrt
(2).*l;
[fi,lif]=T2F(tq,liremod);
[tji,iremod]=lpf(fi,lif,fs/10000);
iremodo=sign(iremod);
lqremod=(-1)*sin(2*fs*pi*tq)*sqrt
(2).*l;
[fq,lqf]=T2F(tq,lqremod);
[tjq,qremod]=lpf(fq,lqf,fs/10000);
qremodo=sign(qremod);
zl=[qremodo,iremodo];
figure(7)
plot(t,zl)
xlabel('t(ms)');
ylabel('zl(t)(V)');
axis([0,200,-1.5,1.5]);
gridon
z2=0;
xo=zeros(size(x));
fori=1:
100
z2=0
forj=1+(i-1)*400:
i*400
z2=z2+zl(j);
end
ifz2>=0
xo(i)=1;
else
xo(i)=-1;
end
end
figure(8)
plot(t0,xo)
xlabel('t(ms)');
ylabel('xo(t)(V)');
title('解调后输出的信号');
axis([0,400,-1.5,1.5]);
gridon
fora=1:
15
r=awgn(s,SNR(a),'measured');;
rs=r.*cos(2*fc*pi*td);
jk_code=rs.*k_code;
[f,rf]=T2F(td,jk_code);
[tl,l]=lpf(f,rf,fc/10000);
liremod=cos(2*fs*pi*tq)*sqrt
(2).*l;
[fi,lif]=T2F(tq,liremod);
[tji,iremod]=lpf(fi,lif,fs/10000);¨
iremodo=sign(iremod);
lqremod=(-1)*sin(2*fs*pi*tq)*sqrt
(2).*l;
[fq,lqf]=T2F(tq,lqremod);
[tjq,qremod]=lpf(fq,lqf,fs/10000);
qremodo=sign(qremod);
zl=[qremodo,iremodo];
z2=0;
xo=zeros(size(x));
fori=1:
100
z2=0
forj=1+(i-1)*400:
i*400
z2=z2+zl(j);
end
ifz2>=0
xo(i)=1;
else
xo(i)=-1;
end
end
z=0;
fori=1:
100
if(x(i)~=xo(i))
z=z+1;
end
end
z1(a)=z/100
end
figure(8)
plot(SNR,z1)
xlabel('SNR');
ylabel('z1');
title('误码率');
axis([0,15,10^(-4),1]);
gridon
程序运行结果:
3仿真参数:
信源速率2kbps,扩频因子:
64,调制方式:
BPSK,信道:
高斯信道
4总结与感想:
扩频通信以其较强的抗干扰、抗衰落、抗多径性能而成为第三代通信的核心技术,本文阐述了扩频通信的理论基础和实现方法,利用MATLAB,详细讲述了各模块的设计,并给出了仿真建模中需注意的问题。
在给定仿真条件下,运行了仿真系统,验证了所建仿真模型的正确性。
通过仿真研究了扩频增益和输出端信噪比的关系,结果表明,在相同误码率下,增大扩频增益,可以提高系统输出端的信噪比,从而提高系统的抗干扰能力。
参考文献
[1]邵保华.软件无线电在扩频通信发射中的应用研究[D].哈尔滨工程大学,2004年.
[2]张蕾,郑实勤.基于MATLAB的直接序列扩频通信系统性能仿真分析研究[J].电气传动自动化,2007年第3期.
[3]查光明,熊贤祚.扩频通信[M].西安电子科技大学出版社,1990年.