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

📄 simulate1.m

📁 直接序列扩频(DS)原理的仿真程序
💻 M
字号:
%%%%%直接序列扩频(DS)原理仿真
clc
clear all
%%-------信码——————
N_signal=10;%%%信号的长度
source=round(rand(1,N_signal));
disp(['原信码:']);disp(source);
%%-------伪码——————
N_false=8;%%%伪码的长度
p=zeros(2,N_false);
p(1,:)=round(rand(1,8));%%%%信息1的伪码
p(2,:)=round(rand(1,8));%%%%信息0的伪码
while(p(1,:)==p(2,:))%%%如果信息1和信息0的伪码一样的话就重新产生,直到两者不一样为止
    p(1,:)=round(rand(1,8))%%%%信息1的伪码
    p(2,:)=round(rand(1,8))%%%%信息0的伪码
end
disp('信息1的伪码:');disp(p(1,:));
disp('信息0的伪码:');disp(p(2,:));
%%----伪码展扩后的信号———
signal=[];
wei_signal=[];
for i=1:N_signal
    if(source(i)==1)
        wei_signal=[wei_signal p(1,:)];
        signal1=not(p(1,:));
        signal=[signal signal1];
    else
        wei_signal=[wei_signal p(2,:)];
        signal=[signal p(2,:)];
    end
end
disp('伪码展扩后的信号:');
disp(signal);
%%-------PSK已调波——————
f0=1000;
fs=20*f0;
Tp=1/f0;
t=0:1/fs:Tp-1/fs;
s=[];s1=[];
for i=1:N_signal*N_false
    if(signal(i)==1)
        s=[s -1*sin(2*pi*f0*t)];
        s1=[s1 pi];
    else
        s=[s sin(2*pi*f0*t)];
        s1=[s1 0];
    end
end
plot(s);grid on;title('载频调制后的信号');
  

%%--接收端的调相器信号(仅取决于伪码)——
s2=[];
for i=1:N_signal*N_false
    if(wei_signal(i)==1)
        s2=[s2 pi];
    else
        s2=[s2 0];
    end
end
%%-------中频相位——————
final_s=xor(s1,s2)
%%-------解调输出——————
for i=1:N_false:length(final_s)
    out((i-1)/N_false+1)=sum(final_s(i:i+N_false-1))/N_false;
    if(out((i-1)/N_false+1)>0.5)
        out((i-1)/N_false+1)=1;
    else
        out((i-1)/N_false+1)=0;
    end
end
disp('解调输出:');
disp(out);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -