⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sscs.m

📁 一个四用户的扩频通信系统
💻 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 + -