m基于Simulink的高速跳频通信系统抗干扰性能分析
1.算法描述
信道为Rayleigh衰落信道下的性能分析和Nakagami-m衰落信道下的性能分析。本课题我们采用的仿真参数如下:
simulink仿真模型如下所示:
跳频是最常用的扩频方式之一,其工作原理是指收发双方传输信号的载波频率按照预定规律进行离散变化的通信方式,也就是说,通信中使用的载波频率受伪随机变化码的控制而随机跳变。从通信技术的实现方式来说,“跳频”是一种用码序列进行多频频移键控的通信方式,也是一种码控载频跳变的通信系统。
采用跳频技术是为了确保通信的秘密性和抗干扰性。与定频通信相比,跳频通信比较隐蔽也难以被截获。只要对方不清楚载频跳变的规律,就很难截获我方的通信内容。同时,跳频通信也具有良好的抗干扰能力,即使有部分频点被干扰,仍能在其他未被干扰的频点上进行正常的通信。由于跳频通信系统是瞬时窄带系统,它易于与其他的窄带通信系统兼容,也就是说,跳频电台可以与常规的窄带电台互通,有利于设备的更新。
跳频的原理是:按全网预设的程序,自动操控网内所有台站在一秒钟内同步改变频率多次,并在每个跳频信道上短暂停留。周期性的同步信令从主站发出,指令所有的从站同时跳跃式更换工作频率。
跳频通信的原理说来也并不复杂。它是在普通无线电短波通信基础上增加一个“码控跳频器”。它的主要作用是使跳频通信发射的载波按一定规则的随机跳变序列发生变化。实现跳频通信的关键是,收发双方受伪随机码控制的、用来改变载频频率的本振频率必须严格同步。跳频伪随机码的改变可用微型计算机控制;改变计算机的程序,就可改变跳频的规律。跳频变化的方案不止一套,且经常更换,要识破它就犹如大海捞针,十分困难。
就通信的安全性而言,跳频短波通信比卫星通信更为可靠。这是因为提供卫星服务的机构对其所属国承担了战略责任,必须受到该国政府的控制,而跳频短波通信是完全自主的,因而也是最可信赖的,在涉及国家安全和社会安全的场合,跳频短波通信的地位无可取代。
其中快速跳频抗干扰能力极强,基本上认为是不可被破解的。但系统成本较高,目前只用在军事通信领域。
2.仿真效果预览
matlab2010B仿真结果如下:
3.MATLAB部分代码预览
%参数初始化 %主要用于设置噪声 EbNo = 1000; SNR = 10^(EbNo/10); sigma = 1/(sqrt(SNR))/2; %系统参数初始化 Rb = 100;%100bps Sample_times = 0.02; Sample_Num = 40; MSK_track_depth = 16; %梳状干扰有效性设置 S1 = 1; S2 = 1; S3 = 1; S4 = 1; S5 = 1; S6 = 1; S7 = 1; S8 = 0; S9 = 0; S10 = 0; %以下五个图具体看simulink内部对应的图标 %图4跳频载波频谱图 %图5信源的调制输出信号频谱图 %图6跳频扩频后的信号频谱图 %图8宽带噪声干扰频谱图 %图12梳状干扰频谱图(7个频点) open('tops.mdl'); sim('tops.mdl'); %以下两个图是误码率的仿真图,需要重新调用在不同的信噪比下进行仿真 %所以需要如下代码的编写 %图9宽带噪声干扰信噪比误码率关系曲线 %tops1.mdl %噪声干扰 EbNo = [-20:2:6]; for i = 1:length(EbNo) i SNR = 10^(EbNo(i)/10); sigma = 1/(sqrt(SNR))/2; sim('tops1.mdl'); Err1(i) = err1.signals.values(end,1); end figure; semilogy(EbNo,Err1,'b-o'); xlabel('db'); xlabel('db'); grid on %tops2.mdl %单频干扰 for i = 1:length(EbNo) i SNR = 10^(EbNo(i)/10); sigma = 1/(sqrt(SNR))/2; sim('tops2.mdl'); Err2(i) = err2.signals.values(end,1); end figure; semilogy(EbNo,Err2,'b-o'); xlabel('db'); xlabel('db'); grid on %tops2.mdl %单频干扰 for i = 1:length(EbNo) i SNR = 10^(EbNo(i)/10); sigma = 1/(sqrt(SNR))/2; sim('tops3.mdl'); Err3(i) = err3.signals.values(end,1); end figure; semilogy(EbNo,Err3,'b-o'); xlabel('db'); xlabel('db'); grid on 01_055_m