跳频通信系统的matlab仿真文档格式.docx
《跳频通信系统的matlab仿真文档格式.docx》由会员分享,可在线阅读,更多相关《跳频通信系统的matlab仿真文档格式.docx(15页珍藏版)》请在冰豆网上搜索。
跳频通信是扩频通信的一个分支,它的突出优点是抗干扰性强,很适合军事通信环境。
自70年代第一部跳频电台问世以来,其应用发展势头锐不可挡。
80年代是跳频电台发展速度最快的十年,世界各国军队普遍装备跳频电台,广泛使用跳频技术是80年代VHF频段军用无线通信发展的主要特征。
进入90年代后,跳频技术在军用抗干扰通信领域已相当成熟的同时,跳频通信的应用进一步拓展到民用领域[3]。
其主要原理如图所示:
跳频扩频仿真系统框图
Figure1跳频系统框图
仿真要求
●画出系统中各点处的信号波形;
●仿真理想信道下(无噪声、无多径)的系统性能;
●仿真高斯白噪声下的系统的信噪比-误码率性能;
●仿真多径+高斯白噪声下的系统的信噪比-误码率性能(为简单可设2径);
●信道中出现单频干扰、或窄带干扰、或宽带干扰的情况下,对系统性能的影响。
理想信道系统各处波形
●原始基带信号
●2FSK调制后信号波形及其频谱
●跳频图案
●跳频后的波形及其频谱
●发射信号加高斯白噪声后的信号及其频谱
●接收机混频后的波形及其频谱
●原始信号,判决前,以及判决后信号
原始信号与解调信号的对比:
误码率
Num=
0
Ratio=
高斯白噪声下的系统的信噪比-误码率性能
信噪比范围设置:
r=-30:
5;
%信噪比dB
系统仿真时间:
Elapsedtimeis126.527909seconds.
多径+高斯白噪声下的系统的信噪比-误码率性能
结论
由理想的跳频系统中各处波形以及最后的误码率可以看出系统实现了跳频的功能;
当接收信号中加入高斯噪声后,随着信噪比的降低,系统开始出现误码,而且误码率随着系统信噪比的降低而增大,但是系统在信噪比为-5dB以下才会出现误码,说明跳频系统的抗噪声性能很好;
当在多径衰落和高斯噪声的系统中仿真时,发现系统的抗噪声性能进一步下降,在信噪比相同的情况下,有多径衰落的系统误码率更高一些;
在以上前提下,在系统中加入单频干扰信号后,系统的抗噪声性能进一步下降,在信噪比相同的情况下,误码率进一步升高。
部分程序
M序列的产生:
functionseq=Mcreate(prim_poly);
prim_poly;
connections=de2bi(prim_poly);
%Ò
Æ
Î
»
¼
Ä
´
æ
÷
Ï
µ
Ê
ý
N=length(connections);
tmp1=fliplr(connections);
%
con=tmp1(2:
N);
m=length(connections)-1;
%
L=2^m-1;
%lengthoftheshiftregistersequencerequested
registers=[zeros(1,m-1)1];
%initialregistercontents
%seq
(1)=registers(m);
%firstelementofthesequence
forii=1:
L
seq(ii)=registers(m);
tmp2=registers*con'
;
tmp2=mod(tmp2,2);
registers(2:
m)=registers(1:
m-1);
registers
(1)=tmp2;
end;
end
频谱图像的输出:
functionPlot_f(SignalFSK,fs);
nfft=fs+1;
Y=fft(SignalFSK,nfft);
PSignalFSK=Y.*conj(Y)/nfft;
f=fs*(0:
nfft/2)/nfft;
plot(f,PSignalFSK(1:
nfft/2+1));
xlabel('
frequency(Hz)'
);
axis([010000-infinf]);
主体程序:
clc
clear
g=40;
fs=100000;
r=-10;
delay=0;
sig1=round(rand(1,g));
%产生随机信号源
signal1=[];
fork=1:
g%离散点化
ifsig1(1,k)==0
sig=-ones(1,1000);
%bit0设置1000个样点
else
sig=ones(1,1000);
%bit1设置1000个样点
end
signal1=[signal1sig];
figure
(1)
plot(signal1);
%画出信号源的时域图像
axis([-1001000*g-1.51.5]);
title('
信号源'
)
T0=200;
f0=1/T0;
T1=400;
f1=1/T1;
u0=gensig('
sin'
T0,1000*g-1,1);
u0=rot90(u0);
u1=gensig('
T1,1000*g-1,1);
u1=rot90(u1);
y0=u0.*sign(-signal1+1);
y1=u1.*sign(signal1+1);
SignalFSK=y0+y1;
%生成的FSK信号
figure
(2);
subplot(2,1,1);
plot(SignalFSK);
%FSK信号的时域波形
axis([-1001000*g-33]);
SignalFSK'
%%%%FSK信号频谱
subplot(2,1,2);
Plot_f(SignalFSK,fs);
FSK调制后的频谱'
%Preparationof8newcarrierfrequencies
t1=(0:
100*pi/999:
100*pi);
%载波1
t2=(0:
110*pi/999:
110*pi);
%载波2
t3=(0:
120*pi/999:
120*pi);
%载波3
t4=(0:
130*pi/999:
130*pi);
%载波4
t5=(0:
140*pi/999:
140*pi);
t6=(0:
150*pi/999:
150*pi);
%1000个样点
t7=(0:
160*pi/999:
160*pi);
t8=(0:
170*pi/999:
170*pi);
c1=cos(t1);
%载波1
c2=cos(t2);
c3=cos(t3);
%载波3
c4=cos(t4);
c5=cos(t5);
c6=cos(t6);
c7=cos(t7);
c8=cos(t8);
adr1=Mcreate(1001203);
adr1=[adr1,adr1
(1),adr1
(2)];
%用户地址为初始m序列
fh_seq1=[];
g
seq_1=adr1(3*k-2)*2^2+adr1(3*k-1)*2+adr1(3*k);
fh_seq1=[fh_seq1seq_1];
%生成用户载波序列
spread_signal1=[];
%用户一载波
help_despread_signal1=[];
%辅助信号,解调时用
fhp=[];
c=fh_seq1(k);
switch(c)
case(0)
spread_signal1=[spread_signal1c8];
case
(1)
spread_signal1=[spread_signal1c1];
%形成随机载频序列
case
(2)
spread_signal1=[spread_signal1c2];
case(3)
spread_signal1=[spread_signal1c3];
case(4)
spread_signal1=[spread_signal1c4];
case(5)
spread_signal1=[spread_signal1c5];
case(6)
spread_signal1=[spread_signal1c6];
case(7)
spread_signal1=[spread_signal1c7];
fhp=[fhp(500*c+5000)];
figure(3);
plot(fhp,'
*'
跳频图案'
freq_hopped_sig1=SignalFSK.*spread_signal1;
%跳频扩频调制
figure(4);
plot((1:
1000*g),freq_hopped_sig1);
%跳频扩频后的时域信号
axis([-1001000*g-22]);
\bf\it跳频扩频后的时域信号'
%%%%%%扩频调制后的频谱
Plot_f(freq_hopped_sig1,fs);
扩频调制后的频谱'
%%%%%%%%%%%%%%%%%%%%%加多径
s1=freq_hopped_sig1;
s=[zeros(1,delay)s1(1:
(1000*g-delay))];
freq_hopped_sig1=freq_hopped_sig1+s;
%%%%%%%%%%%%%%%%%%%%%%%%%%%
%加高斯白噪声
awgn_signal=awgn(freq_hopped_sig1,r,1/2);
%%%信噪比为r;
figure(5);
subplot(2,1,1)
plot([1:
1000*g],awgn_signal);
\bf\it扩频调制后加高斯白噪声的信号'
subplot(2,1,2)
Plot_f(awgn_signal,fs);
扩频调制后加高斯白噪声的信号频谱'
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%解调,相干解调
receive_signal=awgn_signal.*spread_signal1;
%混频
%%%%%%%低通滤波
cof_band=fir1(64,1000/fs);
signal_out=filter(cof_band,1,receive_signal);
figure(6)
1000*g],receive_signal);
\bf\it混频后的信号'
Plot_f(receive_signal,fs);
混频后的频谱'
figure(7)
1000*g],signal_out);
\bf\it低通滤波后的信号'
Plot_f(signal_out,fs);
低通滤波后的频谱'
%%%%%%%%%%%u0
[u2,k]=gensig('
u2=rot90(u2);
[u3,k]=gensig('
u3=rot90(u3);
receive_signal0=signal_out.*u2;
cof_band=fir1(64,600/fs);
signal_out0=filter(cof_band,1,receive_signal0);
%%%%%%%%u1
receive_signal1=signal_out.*u3;
%接收的信号即为带有高斯白噪声的信号1
signal_out1=filter(cof_band,1,receive_signal1);
uout=signal_out1-signal_out0;
figure(8);
plot(k,signal1);
原始信源'
plot(k,uout);
axis([-1001000*g-44]);
FSK解调后的信号'
%-------------------------
%Samplesentence%抽样判决
sentenced_signal=ones(1,g);
forn=1:
ut=0;
form=(n-1)*1000+1:
1:
1000*n;
ut=ut+uout(m);
ifut<
sentenced_signal(n)=0;
sentenced_signal_wave=[];
%输出采样序列波形这里是+1,-1方波
ifsentenced_signal(1,k)==0
%1000minusonesforbit0
%1000onesforbit1
sentenced_signal_wave=[sentenced_signal_wavesig];
figure(9),subplot(2,1,1)
\bf\itOriginalBitSequence'
plot(sentenced_signal_wave);
\bf\itAfterSentencedBitSequence'
[Num,Ratio]=biterr(sentenced_signal,sig1)%输出的信噪比和误码率