直接序列扩频通信系统仿真
p=num_of_err/N;
echo on Lc=20; A=7; w0=1; br=256000.0; f=40000000.0; SNRindB1=0:2:30; for i=1:length(SNRindB),
smld_err_prb(i)=ss_Pe94(SNRindB(i),Lc,A,w0); echo off; end;
4.4 m序列的性质
①平衡性。
由于p=2n-1为奇数,在每一周期中 1 的个数为(p+1)/2=2n-1(偶数),而 0
的个数为(p-1)/2=2n-1-1(奇数)。m序列每一周期中 1 的个数比 0 的个数多 1
个。上例中p=15, 1 的个数为 8,0 的个数为 7。当p足够大时,在一个周期中
1 与 0 出现的次数基本相等。
周期中 0 比 1 的个数少一个, 故得A-D=-1(j为非零整数时)或p(j为零时)。因
此得
1
R(
j)
1
p
j 0 j 1, 2,, ( p 1) 二值性
R(j)
1
-P
-3 -2 -1 1 2 3
P-1 P
j
0
m序列的自相关函数
4.5 伪噪声特性
如果我们对一个正态分布白噪声取样,若取样值为正, 记为+1,若取样值 为负,记为-1,将每次取样所得极性排成序列,可以写成
扩频通信在空间传输时所占有的带宽相对较宽,而收端又采用相关检测的办 法来解扩,使有用宽带信息信号恢复成窄带信号,而把非所需信号扩展成宽带信 号,然后通过窄带滤波技术提取有用的信号。这样,对于各种干扰信号,因其在 收端的非相关性,解扩后窄带信号中只有很微弱的成份,信噪比很高,因此抗干 扰性强。 4.3.3 隐蔽性好 对各种窄带通信系统的干扰很小由于扩频信号在相对较宽的频带上被扩展了,单 位频带内的功率很小,信号湮没在噪声里,一般不容易被发现,而想进一步检测 信号的参数(如伪随机编码序列)就更加困难,因此说其隐蔽性好。
直接序列扩频通系统仿真
一、课程设计目的
学习扩频通信系统的原理,理解扩频通信系统性能能指标的意义,学会分析 扩频通信系统性能能指标的方法。学会根据给定的系统参数和性能,设计扩频 通信系统的方法。
二、课程设计基本要求
1、学会 MATLAB 的使用和 MATLAB 的程序设计方法; 2、掌握扩频通信系统的原理; 3、理解扩频通信系统性能指标的意义; 4、能够用 Monte Carlo 仿真估计直接序列扩频通信系统的性能。
function [p]=ss_Pe94(snr_in_dB,Lc,A,w0) snr=10^(snr_in_dB/10); sgma=1; Eb=2*sgma^2*snr; E_chip=Eb/Lc; N=10000; num_of_err=0; for i=1:N,
temp=rand; if(temp<0.5),
【4】薛定宇,陈阳泉.高等应用数学问题的 MATLAB 求解.北京:清华大学。2009 年。
八、附录
echo on Lc=20; A=7; w0=1; br=256000.0; f=40000000.0; SNRindB=0:2:30; for i=1:length(SNRindB),
smld_err_prb(i)=ss_Pe94(SNRindB(i),Lc,A,w0); echo off; end; echo on; semilogy(SNRindB, smld_err_prb,'m:*'); title('´ÓMonte Carlo·ÂÕæËùµÃϵͳÎóÂëÐÔÄÜ'); xlabel('ÐÅÔë±È/dB'); ylabel('ÎóÂëÂÊ'); text(20,0.8*10^(-2),'befer DSSS'); echo off;
N0
2
的高斯白噪声
w 和形式为 i n Asin 0n 的正弦干扰加到这个乘积序列上。解调时乘以同样
的余弦载波,通过低通滤波器,再完成与 PN 序列的互相关,并在构成每信息 比特的 Lc 个信号样本上求和(积分)。相加器的输出再馈给检测器,并将这个 信号与阀值零做比较,并判决传输的比特是+1 还是—1。差错计数器计出由检 测器产生的差错数。
5.2 不同正弦干扰下(含无正弦干扰)的蒙特卡洛仿真结果
用一均匀随机数发生器(RNG)产生某个二进制信息符号的序列。每个信 息比特重复 Lc 次,Lc 相应于每个信息比特的 PN 码片数。所得到的序列(其 中包含每比特的 Lc 个重复数)乘以由另一个均匀 RNG 产生的 PN 序列 c(n)。
然后乘以一个余弦载波将其调制成窄带信号,将方差为 2
②游程特性(游程分布的随机性)
我们把一个序列中取值(1 或 0)相同连在一起的元素合称为一个游程。在一
个游程中元素的个数称为游程长度。例如某m序列
③移位相加特性(线性叠加性)
m序列和它的位移序列模二相加后所得序列仍是该m序列的某个位移序列。
设mr是周期为p的m序列mp的r次延迟移位后的序列。
④自相关特性
m序列具有非常重要的自相关特性。在m序列中,常常用+1 代表 0, 用-1
代表 1。 此时定义:设长为 p的m序列,记作
a1,a2,a3,…,ap (p=2n-1)
经过j次移位后,m序列为
aj+1,aj+2,aj+3,…,aj+p
其中,ai+p=ai(以p为周期),以上两序列的对应项相乘然后相加, 利用所 NhomakorabeaR( j)
AD A D
AD p
式中,A、D分别是m序列与其j次移位的序列在一个周期中对应元素相同、不相同 的数目。 上式还可以改写为
R( j) [ai ai j 0]的数目 [ai ai j 1]的数目 p
由移位相加特性可知,ai⊕ai+j仍是m序列中的元素,所以式中分子就等于m序列
中一个周期中 0 的数目与 1 的数目之差。 另外由m序列的均衡性可知,在一个
…+1,-1,+1,+1,+1,-1,-1,+1,-1,… 这是一个随机序列, 它具有如下基本性质: (1) 序列中+1 和-1 出现的概率相等; (2) 序列中长度为 1 的游程约占 1/2, 长度为 2 的游程约占 1/4,长度为 3 的游程约占 1/8, … 一般地,长度为k的游程约占 1/2k,而且+1、-1 游程的数
三、课程设计内容
1、讨扩频通信系统的原理,分析直接序列扩频通信系统的性能; 2、讨论根据给定的系统参数和性能,设计扩频通信系统的方法; 3、通过 Monte Carlo 仿真,说明 直接序列扩频通信系统在抑制正弦干扰方面 的有效性。仿真系统的方框图如图:
四、理论基础
4.1 扩频通信的背景
扩展频谱通信是建立在Claude E.Shannon的信息论基础之上的一种新型的 通信体制。由于扩频通信体制具有抗干扰能力强、截获率低、码分多址、信号隐 蔽、测距和易于组网等一系列优点,自从问世之后便引起了世界各国的极大关注, 并率先应用在军事通信中。随着近年来大规模、超大规模集成电路和微处理器技 的广泛应用,以及一些新型器件的应用,扩频技术的应用形成了新的高潮。事实 上,扩频通信已成为电子对抗环境下提高通信设备抗干扰能力的最有效的手段, 并在近十几年来爆发的几场现代化战争中发挥了巨大的威力。随着CDMA扩频通信 技术在民用通信中的深入应用和不断渗透,以及在卫星通信、深空通信、武器制 导、GPS全球定位系统和跳频通信等民用和国防民事通信的强烈需求下,扩谱通 信的地位越来越重要了。
从本次小学期的经历中可以看出,理论知识决定上层技术。只有将理论掌 握好,才能更好的进行更深层次的学习。
七、参考文献
【1】邵佳,董辰辉.通信系统建模与仿真实例精讲.北京:电子工业出版社,2009 年.
【2】周炯槃等。通信原理.北京:北京邮电大学.2009 年.
【3】刘敏,魏玲.MATLAB 通信仿真与应用.北京:国防工业出版社.2001 年.
目各占一半; (3) 由于白噪声的功率谱为常数,因此其自相关函数为一冲击函数δ(τ)。
把m序列与上述随机序列比较,当周期长度p足够大时,m序列与随机序列的 性质是十分相似的。可见,m序列是一种伪噪声特性较好的伪随机序列, 且易产 生,因此应用十分广泛。
m序列的产生
移位寄存器
五、调试程序和程序设计 5.1 仿真系统框图如图:
data=-1; else
data=1; end; for j=1:Lc,
repeated_data(j)=data; end; for j=1:Lc;
temp=rand; if(temp<0.5),
pn_seq(j)=-1; else
pn_seq(j)=1; end; end; n=(i-1)*Lc+1:i*Lc; y1=cos(2*pi*f*n); [b,a]=butter(7,0.1); interference=A*sin(2*pi*f*n); trans_sig=sqrt(E_chip)*repeated_data.*pn_seq.*y1; noise=sgma*randn(1,Lc); rec_sig=trans_sig+noise+interference; temp=rec_sig.*pn_seq.*y1; y=filter(b,a,temp) decision_variable=sum(y); if(decision_variable<0), decision=-1; else decision=1; end; if(decision~=data), num_of_err=num_of_err+1; end; end;
echo on; semilogy(SNRindB1, smld_err_prb1,'b:*'); title('´ÓMonte Carlo·ÂÕæËùµÃϵͳÎóÂëÐÔÄÜ'); xlabel('ÐÅÔë±È/dB'); ylabel('ÎóÂëÂÊ'); text(6,0.8*10^(-2),'after DSSS'); echo off;