1.完整项目描述和程序获取
>面包多安全交易平台:https://mbd.pub/o/bread/ZJeWmpxq
>如果链接失效,可以直接打开本站店铺搜索相关店铺:
>如果链接失效,程序调试报错或者项目合作也可以加微信或者QQ联系。
2.部分仿真图预览
3.算法概述
跳频是最常用的扩频方式之一,其工作原理是指收发双方传输信号的载波频率按照预定规律进行离散变化的通信方式,也就是说,通信中使用的载波频率受伪随机变化码的控制而随机跳变。从通信技术的实现方式来说,“跳频”是一种用码序列进行多频频移键控的通信方式,也是一种码控载频跳变的通信系统。采用跳频技术是为了确保通信的秘密性和抗干扰性。与定频通信相比,跳频通信比较隐蔽也难以被截获。只要对方不清楚载频跳变的规律,就很难截获我方的通信内容。同时,跳频通信也具有良好的抗干扰能力,即使有部分频点被干扰,仍能在其他未被干扰的频点上进行正常的通信。由于跳频通信系统是瞬时窄带系统,它易于与其他的窄带通信系统兼容,也就是说,跳频电台可以与常规的窄带电台互通,有利于设备的更新。
4.部分源码
.....................................................................
%信噪比
snr = 0:12;
Errbit = zeros(1 , length(snr));
for ii = 1 : length(snr)
sumErrBit = 0;
for jj = 1 : frameNum
[ii,jj]
%跳频
if Rjump==1
Jidx = 1;
if Jidx== 1
JF = carrierSeq(Jidx)+carrierSeq(1)*randn/8000;
JF0 = carrierSeq(Jidx);
else
JF = carrierSeq(Jidx);
JF0 = carrierSeq(Jidx);
end
else
Jidx = randi([1 , Pnum] , 1 , HOP_NUM);
if Jidx== 1
JF = carrierSeq(Jidx)+carrierSeq(1)*randn/8000;
JF0 = carrierSeq(Jidx);
else
JF = carrierSeq(Jidx);
JF0 = carrierSeq(Jidx);
end
end
FH_MSK = FHmod(samp , msg_mod , JF , fs);
%信道
FH_MSK_mat = reshape(FH_MSK' , 1 , numel(FH_MSK));
FH_MSK_n = awgn(FH_MSK_mat , snr(ii),'measured');
RFH_MSK_mat = reshape(FH_MSK_n , numel(FH_MSK) / HOP_NUM , HOP_NUM);
RFH_MSK_mat = RFH_MSK_mat';
%解跳
RFH_MSK = FHdemod(samp , RFH_MSK_mat , JF0 , fs);
% 差分解调
RFH_MSK_mat2 = reshape(RFH_MSK' , 1 , numel(RFH_MSK));
RFH_MSK_mat3 = reshape(RFH_MSK_mat2 , samp , numel(RFH_MSK_mat2)/samp);
%差分解调
dmdBit = imag(conj(RFH_MSK_mat3(samp,:)) .* RFH_MSK_mat3(1,:)) >0;
dmdBit = dmdBit(1:end-Tbit_other);
orignalBit = Tx_dat(1:end-Tbit_other);
errBitNum = sum(orignalBit~=dmdBit);
sumErrBit = sumErrBit + errBitNum;
end
% 计算误bit率
Errbit(ii) = sumErrBit / (frameNum*Tbit_total);
end
figure
semilogy(snr , Errbit,'-bs',...
'LineWidth',1,...
'MarkerSize',6,...
'MarkerEdgeColor','k',...
'MarkerFaceColor',[0.9,0.0,0.0]);
xlabel('SNR/dB') ;
ylabel('误码率');
grid on ;
if Rjump==1
save R0.mat snr Errbit
end
if Rjump==100
save R1.mat snr Errbit
end
A716