一、获取代码方式(附课程作业报告和题目内容)
获取代码方式1: 完整代码已上传我的资源:【扩频通信】基于matlab直接序列扩频系统仿真【含Matlab源码 1529期】
获取代码方式2: 通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代码。
备注:订阅紫极神光博客付费专栏,可免费获得1份代码(有效期为订阅日起,三天内有效);
二、简介
三、部分源代码
clc;
clear;
close all;
encod1=round(rand(1,5000)); %产生5000个随机码元
encod1=2*encod1-1; %码序列变为双极性
L=length(encod1);
for m=128 %扩频因子128倍
a=repmat(encod1,1,m);
b=(reshape(a,L,m)).';
x=reshape(b,1,L*m);
len=length(x);
%产生M序列
g=19;state=11;N=len;
gen=dec2bin(g)-48;
M=length(gen);
curState=dec2bin(state,M-1)-48;
for k=1:N
A(k)=curState(M-1);
a=rem(sum(gen(2:end).*curState),2);
curState=[a curState(1:M-2)];
end
x_code=sign(A-0.5);
%Ex 1 绘制M自相关
ac_x=conv(x_code,x_code(len:-1:1))/len;
figure;plot(ac_x(len:end));grid on;
axis([0 63 -0.3 1.2]);title('m序列自相关序列')
msout=x.* x_code; % 已扩频信号
% QPSK 调制,2bit信息映射到一个星座点,并对输出符号归一化
N=length(msout);
msout=(msout+1)/2;
lrem=rem(N,2);
if lrem~=0
msout(N+1:N+(2-lrem))=0;
end
NN=length(msout);
qam_sig = zeros(1,NN/2);
d = sqrt(2)/2; %所采用的星座图进行能量归一化
GrayMap = [d -d]; %对应的I,Q比特为[0 1]
for i1=0:2:NN-1 %4bit为一组
site_I = msout(i1+1);%每组中的第一比特为I分量
site_Q = msout(i1+2);%每组中的第二比特为Q分量
qam_sig(i1/2+1) = GrayMap(site_I+1)+1i*GrayMap(site_Q+1);
end
for condition=1:4
%信道噪声
for SNR1=-20:-10
Eb = 1;
N0= Eb/(10^((SNR1)/10));
sig=qam_sig+sqrt(N0/2)*randn(size(qam_sig))+sqrt(N0/2)*randn(size(qam_sig))*1i;
%加单音、多音、部分带干扰
switch condition
case 1
case 2
band=1;%控制干扰带宽
for jj=1:L
for kk=1:band
interfere=2*rand(1)-1;
sig(jj*(m/2)-(m/2)+kk)=sqrt(2)/2*interfere+sqrt(2)/2*1i*interfere;
end
end
case 3
band=5;%控制干扰带宽
for jj=1:L
for kk=1:band
interfere=2*rand(1)-1;
sig(jj*(m/2)-(m/2)+kk)=sqrt(2)/2*interfere+sqrt(2)/2*1i*interfere;
end
end
case 4
band=15;%控制干扰带宽
for jj=1:L
for kk=1:band
interfere=2*rand(1)-1;
sig(jj*(m/2)-(m/2)+kk)=sqrt(2)/2*interfere+sqrt(2)/2*1i*interfere;
end
end
end
四、运行结果
五、matlab版本及参考文献
1 matlab版本 2014a
2 参考文献 [1] 沈再阳.精通MATLAB信号处理[M].清华大学出版社,2015. [2]高宝建,彭进业,王琳,潘建寿.信号与系统——使用MATLAB分析与实现[M].清华大学出版社,2020. [3]王文光,魏少明,任欣.信号处理与系统分析的MATLAB实现[M].电子工业出版社,2018.
|