您现在的位置:首页 >> 通信 >> 内容

跳频通信系统误码率matlab仿真,输出误码率

时间:2023/4/5 21:41:40 点击:

  核心提示:A716,包括程序操作录像...

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

作者:我爱C编程 来源:我爱C编程
本站最新成功开发工程项目案例
相关评论
发表我的评论
  • 大名:
  • 内容:
本类固顶
  • 没有
  • FPGA/MATLAB商业/科研类项目合作(www.store718.com) © 2025 版权所有 All Rights Reserved.
  • Email:1480526168@qq.com 站长QQ: 1480526168