文章来源‘’微信公众号:EW Frontier‘’ 关注可了解更多的雷达通信及人工智能相关知识。问题或建议,请公众号留言;
0.跳频通信系统模型
上图为跳频通信系统流程图,本程序简单模拟跳频信号的生成部分,包含信源的生成、BPSK载波调制、跳频调制三个基本步骤。
1.基带信号及载波生成
%% 跳频扩频
clc; clear all; close all;
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
[digital_signal, carrier_signal, time]=original_bit_seq;
subplot(5,1,1);
plot(time,digital_signal,'r','linewidth',1);
grid on;
title(' \bf\it Bit Sequence')
subplot(5,1,2);
plot(time,carrier_signal,'linewidth',1);
grid on;
title('\bf\it Carrier Signal');
function [digital_signal, carrier_signal, time, N]=original_bit_seq
% 生成基带数字序列
fs = 100; %采样率
f=2;
t = 0:1/(fs-1):1;
N =30; % number digital bits
bit_sequence=round(rand(1,N));
% allocating the dynamic variables
time = [];
digital_signal = [];
carrier_signal = [];
% 生成基带信号及载波信号
for ii = 1:1:N
if bit_sequence(ii) == 0
bit = -ones(1,length(t));
else
bit = ones(1,length(t));
end
digital_signal = [digital_signal bit];
carrier = cos(2*f*t*pi);
carrier_signal = [carrier_signal carrier];
time = [time t];
t = t + 1;
end
2.BPSK调制
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
[bpsk_sig]= BPSK_modultaed_signal(digital_signal, carrier_signal);
subplot(5,1,3);
plot(time,bpsk_sig)
grid on;
title('\bf\it BPSK Modulated Signal');
function [bpsk_sig]= BPSK_modultaed_signal(digital_signal, carrier_signal)
% bpsk modulated signal by multiplying the bit sequence with carrier signal
% bpsk_sig=signal.*carrier;
bpsk_sig=digital_signal.*carrier_signal;
end
3.跳频图案生成
%% 生成随机6组载频信号 用作跳频频率集 %%%%%%%%%
spread_signal= spread_frequncey;
subplot(5,1,4)
plot(time, spread_signal);
title('\bf\it Spread Signal With 6 Frequencies');
function spread_signal= spread_frequncey
M = 6;
new_carrier_freq=[];
spread_signal=[];
%% generating 6 new carrier frequencies
list=[9;19;29;39;59;119]';
for li=1:M
t=[0:2*pi/list(li):2*pi];
c1=cos(t);
ll=120/(list(li)+1);
c1 =repelem(c1,ll,1);
new_carrier_freq(li,:)= reshape(c1.',1,[]);
end
%% Random frequency hopps to generate spread signal
for n=1:25
hop_rand=randi([1 M],1,1);
switch(hop_rand)
case(1)
spread_signal=[spread_signal new_carrier_freq(1,:)];
case(2)
spread_signal=[spread_signal new_carrier_freq(2,:)];
case(3)
spread_signal=[spread_signal new_carrier_freq(3,:)];
case(4)
spread_signal=[spread_signal new_carrier_freq(4,:)];
case(5)
spread_signal=[spread_signal new_carrier_freq(5,:)];
case(6)
spread_signal=[spread_signal new_carrier_freq(6,:)];
end
end
subplot(5,1,4)
plot(spread_signal);
title('\bf\it Spread Signal With 6 Frequencies');
end
4.跳频信号生成
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
freq_hopped_sig=bpsk_sig.*spread_signal;
subplot(5,1,5) plot(time, freq_hopped_sig);
title('\bf\it Frequency Hopped Spread Spectrum Signal');