📄 sscs.m
字号:
%扩频通信系统仿真
clear all
user_bits=10000;
%用户随机信号
user1=randsrc(1,user_bits);
user2=randsrc(1,user_bits);
user3=randsrc(1,user_bits);
user4=randsrc(1,user_bits);
%Walsh码进行直接序列扩频
pn1=walsh(1);
pn2=walsh(2);
pn3=walsh(3);
pn4=walsh(4);
user1_dsss=dsss(pn1(:),user1);
user2_dsss=dsss(pn2(:),user2);
user3_dsss=dsss(pn3(:),user3);
user4_dsss=dsss(pn4(:),user4);
% BPSK 调制
A=1;
fc=1;%载波频率
t=(1/16:1/16:1)*2*pi;
CI=A*cos(t*fc);
composite_signal=user1_dsss*CI+user2_dsss*CI+user3_dsss*CI+user4_dsss*CI;
comp_sig_bpsk=composite_signal;
%AWGN 信道
num_of_err=[];
error_rate=[];
for snr_in_dbs=-50:3:10
com_sig_t=awgn(comp_sig_bpsk,snr_in_dbs); %信噪比
%BPSK 解调
com_sig_demod=com_sig_t*CI';
bpskdemod_sig=com_sig_demod';
%DSSS 解调
dsdemod_sig=demod(pn1(:),bpskdemod_sig);
%判决再生
temp_err_rate=0;
temp_error=0;
for i=1:user_bits
if dsdemod_sig(i)<0
decision=-1;
else
decision=1;
end
if decision~=user1(i)
temp_error=temp_error+1;
end
end
num_of_err=[num_of_err temp_error];
temp_err_rate=temp_error/user_bits;
error_rate=[error_rate temp_err_rate];
end
figure(1)
subplot(2,1,1)
stem(user4)
xlabel('用户信号')
axis([1,10,-1,1])
subplot(2,1,2)
stem(user4_dsss)
xlabel('扩频信号')
axis([1,10*16,-1,1])
figure(2)
plot((user4_dsss(1:100)*CI)')
xlabel('BPSK调制信号')
axis([1,15,-1,1])
figure(3)
plot(bpskdemod_sig)
xlabel('解调信号')
axis([1,100,-30,30])
figure(4)
plot(dsdemod_sig)
xlabel('解扩信号')
axis([1,100,-100,100])
figure(5)
snr_in_dbs=-50:3:10;
semilogy(snr_in_dbs,error_rate)
grid on; %加网格线
title('误比特率与信噪比关系图');
xlabel('信噪比snr_in_dbs');
ylabel('误码率error_rate/dB')
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -