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

📄 xinyuan.m

📁 用MATLAB实现的扩频通信发送信号的仿真,并加入人为干扰...
💻 M
字号:
clear all
close all
%产生信源
L=10;
x=bingen(L);
figure(1)
t=1:10;
plot(t,x)
t=1/1024:1/1024:10;
%频谱图
dt=t(2)-t(1);
T=t(end);
df=1/T;
N=length(x);
f=-N/2*df:df:N/2*df-df;

%产生扩频码
L1=5;
h=getsscode(L1);

%扩展信源
x1=expanded1(x,L1);
x2=expanded1(x1,L1);

sf=1/1024*fft(x2(1:1024));
sf=fftshift(sf);
figure(2)
subplot(211)
plot(1:length(sf),abs(sf));
xlabel('f');ylabel('sf');

t=1:length(x1);
figure(3);
plot(t,x1,'-*')
axis([1,320,-2,2]);

%截取扩频码相同长度的扩展信源并与扩频码相乘
y=cut(x1,h);
y1=expanded1(y,L1);
figure(2)
subplot(212)
sf=1/1024*fft(y1(1:1024));
sf=fftshift(sf);

plot(1:length(sf),abs(sf));
xlabel('f');ylabel('sf');

figure(4)
plot(x1,y)
axis([1,64,-2,2])

%载波抽样;
fc=1024;
ft=64;
t=1/fc:1/fc:10;
a=cos(2*pi*ft*t);

%扩展扩频后信号;
L2=log2(2*fc/ft);
x2=expanded1(y,L2);
t=1:length(x2);
figure(5)
plot(t,x2,'-k')
axis([1,1280,-2,2])

%调制
z=a.*x2;
figure(6)
plot(1:128,z(1:128),'-k')
 

%求出发送的原始信号的频谱图;
figure(7)
sf=1/1024*fft(z(1:1024));
plot(1:length(sf),abs(sf));
xlabel('f');ylabel('sf');

M=length(sf)/2;
sfx=abs(sf).^2;    %求能量;

figure(9)    % 画出能量幅度谱
plot(1:length(sf),sfx);

sfx1=max(sfx)    %求最大能量
sfM=0.3*sfx1;    %设置能量下降70%时的能量值为门限值
M=length(sf)/2;
[f1,f2]=bro(M,sfx,sfM);    %调用子函数求谱零点单边带宽
f1
f2
fr=f2-f1

N=10;
fp=3*fr;fq=fr/3;
%调用干扰生成子函数,得到干扰信号
s1=bnoise(N,fp);  
s1=s1.*a;      %使干扰信号与发送信号同步
s2=wnoise(N,fq);
s2=s2.*a;
s3=sinanoi(fr,fc);
s3=s3.*a;
s4=mnoise(fr,fc);
s4=s4.*a;
s5=eqnoi(fr,fc);
s5=s5.*a;

%得出添加干扰信号后的频谱图
y1=z+s1;
figure(8)
subplot(511)
sf=1/1024*fft(y1(1:1024));
plot(1:length(sf),abs(sf));
xlabel('f');ylabel('sf');

y2=z+s2;
figure(8)
subplot( 512)
sf=1/1024*fft(y2(1:1024));
plot(1:length(sf),abs(sf));
xlabel('f');ylabel('sf');

y3=z+s3;
figure(8)
subplot(513)
sf=1/1024*fft(y3(1:1024));
plot(1:length(sf),abs(sf));
xlabel('f');ylabel('sf');

y4=z+s4;
figure(8)
subplot(514)
sf=1/1024*fft(y4(1:1024));
plot(1:length(sf),abs(sf));
xlabel('f');ylabel('sf');

y5=z+s5;
figure(8)
subplot(515)
sf=1/1024*fft(y5(1:1024));
plot(1:length(sf),abs(sf));
xlabel('f');ylabel('sf');

⌨️ 快捷键说明

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