基于matlab实现Link16通信战术数据链分析

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法       神经网络预测       雷达通信       无线传感器        电力系统

信号处理              图像处理               路径规划       元胞自动机        无人机 

⛄ 内容介绍

Link 16是一种军事数据链网络,用于在战场上实现实时通信和共享战术数据。对于Link 16通信的战术数据链分析,主要包括以下方面:

  1. 数据链性能分析:评估Link 16数据链的性能参数,如传输速率、带宽、误码率、时延等。通过对这些参数的分析,可以确定Link 16数据链在特定环境下的表现和限制。

  2. 链路质量评估:对于Link 16通信链路的质量进行评估,包括信号强度、接收功率、信噪比等。这有助于判断通信链路的可靠性和稳定性,并为进一步分析提供基础。

  3. 障碍物影响分析:分析障碍物(如地形、建筑物等)对Link 16信号传播的影响。这涉及信号衰落、多径效应、阻塞和干扰等问题的识别和分析。

  4. 通信容量分析:评估Link 16数据链的容量,即支持数据传输的能力。这包括对链路资源的利用率、数据传输需求的估计以及数据链网络负荷的分析。

  5. 网络拓扑和节点分析:分析Link 16数据链的网络拓扑结构,包括节点配置和连接关系等。这有助于确定通信节点之间。

  6. 网络安全分析:对Link 16通信的网络安全性进行评估和分析,识别潜在威胁和安全漏洞,并提出相应的安全措施和防御策略。

通过对Link 16通信的战术数据链进行综合分析,可以为军事作战和指挥决策重要的支持。这些分析结果可用于优化通信资源分配、改进通信策略、增强战场态势感知能力以及改善指挥与控制效能。

⛄ 部分代码

%% 简易跳频系统误比特率统计分析% 调制-->跳频-->信道-->解跳-->解调-->误码分析ticclc;clear;close all;%% 参数设置FH = 1;                         % 0: 不跳频传输 1:跳频传输XINGZUO = 4;%BPSK:0   QPSK:1  '16QAM':2   '64QAM':3    'MSK':4CRC_CODE = 0;%1: CRC编码  0:不CRC编码DatainCode = 1;%'NO': 0 不编码 || 'rs':1 RS(31,15)编码  || 'juanji':2 (2,1,7)卷积编码 interwine = 1;CCSK = 1;% ******************** 系统参数设置*****************%Rb = 5e4;                       % 速率:50Kb/sTb = 1 / Rb;                    % bit间隔% ********************跳频参数设置 *****************%hopping = 1000;                 % 跳频速率bitsPerHop = Rb / hopping;      % 每跳bit数目(必须为整数)samp = 20;                      % 过采样倍数fs = samp*Rb;                   % 采样率BW = 5e6;                       % 跳频带宽freqNum = floor(BW / (Rb*4));   % 跳频频点数目freqInterval = BW / freqNum;    % 频点间隔freqSeq = ([0:freqNum-1] - floor(freqNum/2)) * freqInterval;   % 跳频频点序列carrier = 3e6;                  % 跳频中心频率carrierSeq = carrier + freqSeq; % 发送时跳频频点序列ts = 1/fs;fd = 300;                                          %多普勒频偏pathPower = [-1.0 -1.0 -1.0 0 0 0 -3.0 -5.0 -7.0];pathDelays = [0 50 120 200 230 500 1600 2300 5000]*1e-8;rchan = comm.RayleighChannel('SampleRate',fs, ...    'PathDelays',pathDelays,'AveragePathGains',pathPower, ...    'MaximumDopplerShift',fd,'FadingTechnique','Sum of sinusoids');switch FH    case 0        FIG_FH = '非跳频传输';    case 1        FIG_FH = '跳频传输';end% ********************调制参数设置 *****************%switch XINGZUO    case 0  %'BPSK'        xz_n = 1;        FIG_XINGZUO = 'BPSK';    case 1  %'QPSK'        xz_n = 2;        FIG_XINGZUO = 'QPSK';    case 2  %'16QAM'        xz_n = 4;        FIG_XINGZUO = '16QAM';    case 3  %'64QAM'        xz_n = 6;        FIG_XINGZUO = '64QAM';    case 4  %'MSK'        xz_n = 4;        FIG_XINGZUO = 'MSK';endM = 2^xz_n;% ***************CRC(237,225) X^12+1 *****************%switch CRC_CODE    case 0  %不采取检错编码        crc_n = 1;    case 1  %(237,225)检错编码        crc_n = 225;end% ***************RS(31,15)编码参数*****************%switch DatainCode    case 0  %0:不编码%         rs_m = 1;rs_k = 1;        rs_m = 5; rs_n = 2^rs_m - 1;        rs_t = 8; rs_k = rs_n - 2*rs_t ;%t: 能纠正的符号错误个数 k: 信息段长度        FIG_code = '无纠错编码';    case 1  %1: RS(31,15)编码        rs_m = 5; rs_n = 2^rs_m - 1;        rs_t = 8; rs_k = rs_n - 2*rs_t ;%t: 能纠正的符号错误个数 k: 信息段长度        FIG_code = 'RS(31,15)编码';    case 2  %2: (2,1,7)卷积编码 %         rs_m = 1;rs_k = 1;        rs_m = 5; rs_n = 2^rs_m - 1;        rs_t = 8; rs_k = rs_n - 2*rs_t ;%t: 能纠正的符号错误个数 k: 信息段长度        FIG_code = '(2,1,7)卷积编码';end% ************************产生信源信号*******************%MSG_len = rs_m * rs_k * xz_n*crc_n; % 输入大小最好为rs_m * rs_k*xz_n的整数倍(后面会每rs_m位转换为十进制,然后gf的输入的列数必须为rs_k)% ***************** 传输信息参数设置*****************%SYNC_BIT_NUM = 0;                                            % 同步bit数目frameNum = 1;                                                % 传输帧数目PACKET_NUM = 3;                                                % 每一帧的包数目BIT_PER_PACKET = MSG_len*bitsPerHop;                                       %每一包的比特数MSG_BIT_NUM = BIT_PER_PACKET*PACKET_NUM;                      % 有效消息bit数目TX_BIT_NUM = SYNC_BIT_NUM + MSG_BIT_NUM;            % 需要发送的bit数目%% 构造发送序列SYNC = randi([0 ,1] , 1 , SYNC_BIT_NUM);                        % 同步二进制序列(用一串随机序列代替)MSG = randi([0,1] ,1 ,TX_BIT_NUM - SYNC_BIT_NUM);       % 消息字符号dataIn = [SYNC , MSG];                                          % 构造整个发送bit序列                                      % %% CRC检错编码switch CRC_CODE    case 0        dataIn_crc = dataIn';        FIG_CRC_CODE = 'no CRC';    case 1  %(237,225)检错编码        poly = 'z12+1';     %多项式        ChecksumsPerFrame = length(dataIn)/crc_n;%将传入帧细分为ChecksumsPerFrame个等长的子帧。因为每crc_n位数据编码一次        crcgenerator = comm.CRCGenerator(poly,'ChecksumsPerFrame',ChecksumsPerFrame);%CRC编码生成器        crcdetector = comm.CRCDetector(poly,'ChecksumsPerFrame',ChecksumsPerFrame);%CRC解码生成器        dataIn_crc = crcgenerator(dataIn'); %CRC编码 输入应是列向量        FIG_CRC_CODE = 'CRC(237,225)';enddataIn_crc = dataIn_crc';%转换回行向量%% 信源纠错编码switch DatainCode    case 0        encoded_msg = dataIn_crc;                      %1*30 0000    case 1  %'rs'  每kk位编码为nn位        %下面是(31,15)RS编码(每15个用31个来表示)        nn = rs_n;                        %编码后码字长度(信息段+监督段)        kk = rs_k;                        %信息段长度        encoded_msg = LSY_RSCode(dataIn_crc,nn,kk);%1 * 62 0000    case 2  %'juanji' 每k位编码为n位        %(n,k,m) n为输出长度 k为输入长度 m为编码约束度 n*(m+1)为约束长度 k/n为码率        %下面是(2,1,7)卷积码        L = 7;                   %约束长度        tbdepth = 42;       % Traceback depth for Viterbi decoder Viterbi译码器回溯深度 一般是约束长度的5-9倍        trel = poly2trellis(L,[171,133]);         %卷积码生成多项式        encoded_msg = convenc(dataIn_crc,trel);       %卷积编码 1*60 0000end%% 交织 (对原数据分块进行处理:只是改变数据位置 不改变数据数量)interwine_msg = zeros(1,length(encoded_msg));switch interwine    case 0        interwine_msg = encoded_msg;        FIG_interwine = 'NO interwine';    case 1        rows = 10;cols = 100;%设定交织的深度与宽度 rows*cols应该等于输入矩阵的行数(因为交织按列取来做填充)        division = length(encoded_msg)/(rows*cols);%交织次数        for i =1:division            temp_data_1 = encoded_msg(1,(((i-1)*(rows*cols))+1):(i*(rows*cols)));%通过按列填充矩阵,并按行输出符号来恢复符号排序 https://www.jianshu.com/p/ac6c18fc3545            temp_data_2 = matintrlv(temp_data_1,rows,cols);            interwine_msg(1:i*rows*cols) = horzcat(interwine_msg(1:(i-1)*rows*cols),temp_data_2);        end        FIG_interwine = 'interwine';end%% CCSK软扩频 CCSK序列为32位switch CCSK    case 0        ccsk_msg = interwine_msg;        FIG_CCSK = 'NO CCSK';    case 1        % ccskcode=[0 1 1 1 1 1 0 0 1 1 1 0 1 0 0 1 0 0 0 0 1 0 1 0 1 1 1 0 1 1 0 0]';%Link16的CCSK序列 自相关性并不是最优        ccskcode=[1 0 1 1 1 0 1 0 0 0 1 1 1 1 0 1 0 0 1 0 0 0 0 0 0 1 1 0 0 1 1 0]';%优化后的CCSK序列 相关性更好  Link16 关键技术研究及系统建模        %n_ccsk = 32;%CCSK序列长度        ccsk_msg = LSY_CCSK32(interwine_msg,ccskcode);        FIG_CCSK = 'NO CCSK';end%% 星座映射data_xz= reshape(ccsk_msg,log2(M),[])';       %以每组log2(M)比特进行分组,M=4data_xzde= bi2de(data_xz,'left-msb');            %二进制转化为十进制data = rcvBB1dim(1:end-EXCEED_BIT);    %去掉末尾的0         [ii jj]    end     % 计算误bit率    ber(ii) = sumErrBit / (frameNum*TX_BIT_NUM);    berPacket(ii) = sumErrPacket/(frameNum*PACKET_NUM);end%% 误码输出figuresemilogy(snr,ber,'-*')save MSK+RS+CCSK+FH berhold ongrid onBER_qpsk = duibizu_qpsk(dataIn,snr,PACKET_NUM);save MSK+RS+CCSK BER_qpsksemilogy(snr,BER_qpsk,'-o')hold onBER_16qam = duibizu_16qam(dataIn,snr,PACKET_NUM);save MSK+CCSK BER_16qamsemilogy(snr,BER_16qam,'-x')hold onBER_64qam = duibizu_64qam(dataIn,snr,PACKET_NUM);save MSK BER_64qamsemilogy(snr,BER_64qam,'-s')hold ongrid onxlabel('Eb/No (dB)')%如果不进行转换就是SNRylabel('误比特率')%如果不进行转换就是误码率legend('MSK+RS+CCSK+FH','MSK+RS+CCSK','MSK+CCSK','MSK')toc

⛄ 运行结果

⛄ 参考文献

[1] 宋南莹温东刘翠海.Link-16战术数据链系统纠错性能分析[J].数字技术与应用, 2018, 036(010):210-211,213.

[2] 朱天杰,刘强,潘杨杨,等.基于Link16的战术数据链网络规划平台[J].火力与指挥控制, 2015, 40(11):6.DOI:10.3969/j.issn.1002-0640.2015.11.043.

[3] 殷璐,严建钢,樊严.Link-16战术数据链抗干扰性能评估与仿真[J].航天电子对抗, 2007.DOI:JournalArticle/5aeadaeec095d70944f61c1f.

⛳️ 代码获取关注我

❤️部分理论引用网络文献,若有侵权联系博主删除
❤️ 关注我领取海量matlab电子书和数学建模资料

🍅 仿真咨询

1.卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断
2.图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知
3.旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划
4.无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配
5.传感器部署优化、通信协议优化、路由优化、目标定位
6.信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号
7.生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化
8.微电网优化、无功优化、配电网重构、储能配置
9.元胞自动机交通流 人群疏散 病毒扩散 晶体生长

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Matlab科研辅导帮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值