www.pudn.com > xinyuan.rar > xinyuan.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');