目录
1.QPSK调制解调
2. 扩频与解扩
3. MATLAB程序
DS-CDMA是一种多址接入技术,它允许多个用户在同一频段和时间内进行通信。每个用户都被分配一个独特的扩频码(通常是伪随机噪声码),用于在发送端对数据进行扩频,并在接收端进行解扩以恢复原始数据。DS-CDMA(Direct Sequence —Code Division Multiple Access)即直接序列码分多址。从原理上来说,DS-CDMA是通过将携带信息的窄带信号与高速地址码信号相乘而获得的宽带扩频信号。收端需要用与发端同步的相同地址码信号去控制输入变频器的载频相位即可实现解扩。DS-CDMA系统具有抗窄带干扰、抗多径衰落和保密性好的优点。DS-CDMA其余优点:许多用户可以共享频率资源,无须复杂的频率分配和管理;具有软容量特性,即在一定限度内的用户数增加,只会使得信噪比下降,而不会终止通信,也就是说DS-CDMA没有绝对的容量限制。
DS-CDMA通信系统的一些关键特点:
扩频技术:DS-CDMA采用扩频技术,将待传输的信息数据与一个高速的扩频码进行相乘,从而扩展了原始数据的带宽。这样做的好处是可以提高信号的抗干扰能力,降低误码率,并且允许多个用户在同一频段内同时进行通信。
多址接入:DS-CDMA是一种多址接入技术,多个用户可以共享相同的频段和时间资源。每个用户被分配一个独特的扩频码,用于在发送端对数据进行扩频,并在接收端进行解扩以恢复原始数据。这样,不同用户之间的信号可以在接收端被区分开来。
抗干扰性:由于DS-CDMA系统采用了扩频技术,它对于窄带干扰和多径衰落具有较强的抗干扰能力。扩频码的选择和设计可以使得系统对于干扰和多径效应具有一定的鲁棒性。
保密性:DS-CDMA系统中的扩频码可以作为一种加密手段,增加了通信的保密性。只有知道正确扩频码的接收者才能解扩并恢复出原始数据。
容量和质量权衡:DS-CDMA系统具有一定的软容量特性,即系统容量和通信质量之间可以进行权衡。当用户数增加时,系统的容量会增加,但通信质量可能会下降。这是因为不同用户之间的信号会相互干扰,导致误码率上升。
QPSK是一种相位调制技术,其中每个符号携带两个比特的信息。在QPSK中,信号的相位在四个可能的状态之间变化:0°, 90°, 180°, 和 270°。这些相位对应于复平面上的四个点,可以用来表示00、01、10和11这四个二进制组合。
调制公式
(s(t) = A \cos(2\pi f_c t + \theta))
其中,(A) 是振幅,(f_c) 是载波频率,(\theta) 是相位,它取决于输入的比特序列。
在QPSK中,相位的变化是离散的,可以通过I(同相)和Q(正交)分量的组合来表示。具体的相位和比特组合的对应关系可以根据不同的映射方案来确定。
解调公式
解调是通过比较接收信号的相位与预期的相位来进行的。这通常涉及到一个鉴相器,它会测量接收信号与本地振荡器之间的相位差,并根据这个差异来确定传输的比特。
在DS-CDMA系统中,扩频是通过将每个比特与一个扩频码(通常是比信息比特速率高得多的码)相乘来实现的。这个过程扩展了信号的频谱,从而允许在相同的频段内容纳更多的用户。
(s'(t) = s(t) \times c(t))
其中,(s(t)) 是原始信号,(c(t)) 是扩频码,(s'(t)) 是扩频后的信号。
解扩是在接收端通过再次使用相同的扩频码来恢复原始信号的过程。这通常涉及到将接收信号与扩频码的共轭相乘,然后积分或低通滤波以消除高频分量。
(r(t) = s'(t) \times c^(t))
其中,(s'(t)) 是接收到的扩频信号,(c^(t)) 是扩频码的共轭,(r(t)) 是解扩后的信号。
........................................................................
for ii=1:nloop
% --------------------------发射机---------------------
data=rand(user,nd*ml)>0.5; % 生成随机数据
[ich,qch]=qpskmod(data,user,nd,ml); % QPSK调制
[ich1,qch1]=spread(ich,qch,code); % 扩频
[ich2,qch2]=compoversamp2(ich1,qch1,IPOINT); % 过采样
[ich3,qch3]=compconv2(ich2,qch2,xh); % 通过发射滤波器
if user==1
ich4=ich3;
qch4=qch3;
else
ich4=sum(ich3);
qch4=sum(qch3);
end
% --------------------------衰落信道-------------------
if rfade==0
ich5=ich4;
qch5=qch4;
else
[ich5,qch5]=sefade(ich4,qch4,itau,dlvl1,th1,n0,itnd1,...
now1,length(ich4),tstp,fd,flat); % 添加衰落
itnd1=itnd1+itnde1;
end
% ----------------------------------接收机-----------------------------
spow=sum(rot90(ich3.^2+qch3.^2))/nd; % 计算信号功率
attn=sqrt(0.5*spow*sr/br*10^(-ebno(ij)/10)); % 计算加性白噪声的幅度
[ich6,qch6]=comb2(ich5,qch5,attn); % 添加噪声
[ich7,qch7]=compconv2(ich6,qch6,xh2); % 通过接收滤波器
samp1=irfn*IPOINT+1;
ich8=ich7(:,samp1:IPOINT:IPOINT*nd*clen+samp1-1);
qch8=qch7(:,samp1:IPOINT:IPOINT*nd*clen+samp1-1);
[ich9 qch9]=despread(ich8,qch8,code); % 解扩
demodata=qpskdemod(ich9,qch9,user,nd,ml); % QPSK解调
%---------------------误比特率-----------------------------
noe2=sum(sum(abs(data-demodata))); % 计算错误比特数
nod2=user*nd*ml; % 计算总比特数
noe=noe+noe2;
nod=nod+nod2;
end
% ------------------------------数据文件--------------------------
ber(ij)=noe/nod; % 计算误比特率
end
figure;
semilogy(ebno,ber,'b-o'); % 绘制误比特率曲线
grid on
xlabel('EbN0'); % X轴标签
ylabel('error'); % Y轴标签
up4014
其误码率曲线如下所示: