第【73】期--基于FHSS跳频扩频系统的不同调制方式性能对比--MATLAB完整代码
文章目录摘要1. 引言2. 系统理论基础2.1 跳频扩频通信原理2.2 卷积编码与维特比译码2.3 数字调制技术2.3.1 二进制相移键控BPSK2.3.2 四相相移键控QPSK与偏移QPSKOQPSK2.3.3 频移键控FSK2.3.4 正交幅度调制QAM2.4 脉冲成型与采样3 仿真设计3.1 仿真流程图3.2 仿真结果3.3 完整代码4 总结摘要跳频扩频FHSS技术因其抗干扰和保密性在通信领域应用广泛。本文基于MATLAB构建FHSS系统仿真模型采用码率2/3卷积编码、IP帧结构在高斯白噪声信道下对比FSK、BPSK、QPSK、OQPSK、16QAM和64QAM六种调制方式的误码率性能。仿真结果表明低阶调制具有更好抗噪声性能高阶调制牺牲抗干扰能力换取更高频谱效率。1. 引言跳频扩频技术通过载波频率的伪随机跳变有效抵抗窄带干扰和频率选择性衰落具有良好的保密性和多址接入能力。调制技术直接决定系统的频谱效率、功率效率和抗干扰能力不同调制方式在不同信道条件下表现各异。因此在FHSS系统中研究调制方式选择具有重要意义。本文通过MATLAB仿真系统对比常用调制方式在FHSS系统中的BER和PER性能分析调制阶数对系统性能的影响。2. 系统理论基础2.1 跳频扩频通信原理2.2 卷积编码与维特比译码2.3 数字调制技术调制是将基带信号搬移到射频载波上的过程不同调制方式在频谱效率、功率效率和抗噪声性能方面存在显著差异。2.3.1 二进制相移键控BPSK2.3.2 四相相移键控QPSK与偏移QPSKOQPSK2.3.3 频移键控FSK2.3.4 正交幅度调制QAM2.4 脉冲成型与采样3 仿真设计3.1 仿真流程图3.2 仿真结果3.3 完整代码%%FHSS系统-不同调制方式性能对比%固定参数卷积码码率2/3高斯白噪声信道无干扰 clc;clear;close all;tic;%%公共参数 CodeType卷积码;codeRate2/3;constrain_len8;%卷积码约束长度 puncpat[1,1,1,0];%2/3码率删余模式%所有调制方式列表 ModulationList{FSK,GMSK,BPSK,QPSK,OQPSK,16QAM,64QAM};numModlength(ModulationList);%固定信道、干扰 ChannelType高斯白噪声信道;Jam_typeNone;%无干扰%系统参数 Ts0.01;N2400;RsN/Ts;fcRs*30;freqSep10*Rs;numPkts100;%每信噪比点仿真包数减小以加快速度 SINR_dB-2:2:20;%帧结构固定为IP FrameTypeIP;Frame2;%IP帧%跳频参数 fh_seq[fc-4*Rs,fc-2*Rs,fc,fc2*Rs,fc4*Rs];freqLenlength(fh_seq);%采样参数 up_sample_fs100;fsRs*up_sample_fs;dt_fs1/fs;%IP帧固定字段用于组帧 ip_frame_version[0100];ip_frame_IHL[0101];ip_frame_tos[01000000];ip_frame_len[0000000000000101];ip_frame_id[0100101011001101];ip_frame_flag[001];ip_frame_offest[0000000000000];ip_frame_TTL[00100000];ip_frame_protocol[00000001];ip_frame_checksum[0000000000000000];ip_frame_src[1100000010101000...0000000000100111];ip_frame_dst[0111110001111111...1100111100001111];len_iplength(ip_frame_version)length(ip_frame_IHL)length(ip_frame_tos)length(ip_frame_len)...length(ip_frame_id)length(ip_frame_flag)length(ip_frame_offest)length(ip_frame_TTL)...length(ip_frame_protocol)length(ip_frame_checksum)length(ip_frame_src)length(ip_frame_dst);%存储结果 BER_allzeros(numMod,length(SINR_dB));PER_allzeros(numMod,length(SINR_dB));%%对不同调制方式循环formodIdx1:numMod ModulationTypeModulationList{modIdx};modeTypeList{FSK,GMSK,BPSK,QPSK,OQPSK,16QAM,64QAM};Modefind(ismember(modeTypeList,ModulationType)1);%设置调制阶数和每符号比特数switchModecase1%FSK M2;Klog2(M);SamplesPerSymbol2;case2%GMSK M2;Klog2(M);SamplesPerSymbol2;case3%BPSK M2;Klog2(M);SamplesPerSymbol2;case4%QPSK M4;Klog2(M);SamplesPerSymbol2;case5%OQPSK M4;K1;%OQPSK特殊处理 SamplesPerSymbol2;case6%16QAM M16;Klog2(M);SamplesPerSymbol2;case7%64QAM M64;Klog2(M);SamplesPerSymbol2;otherwiseerror(不支持的调制方式);end%每包比特数 numBitsN*K*codeRate;numBits_datanumBits-len_ip;%确保数据比特数为正ifnumBits_data0error(数据比特数为负请检查参数设置);end%初始化误码统计 erTotzeros(1,length(SINR_dB));totPktErzeros(1,length(SINR_dB));forii1:length(SINR_dB)fprintf(调制方式:%s,SINR%d dB,仿真包数:%d\n,ModulationType,SINR_dB(ii),numPkts);SINR_de10^(SINR_dB(ii)/10);nBitErrzeros(1,numPkts);forpktX1:numPkts%生成数据比特 bit_source_sequencerandi([01],numBits_data,1);%IP组帧 ip_frame_lenz1dec2bin(numBits_data5,16);ip_frame_lenzdouble(boolean(ip_frame_lenz1-0));ip_frame_databit_source_sequence;%计算IP首部校验和 ip_sum0;ip_frame1[ip_frame_version ip_frame_IHL ip_frame_tos ip_frame_lenz ip_frame_id ip_frame_flag...ip_frame_offest ip_frame_TTL ip_frame_protocol ip_frame_checksum ip_frame_src ip_frame_dst];forcounti1:(len_ip/16)ip_pian1ip_frame1(1,116*(counti-1):16*counti);ip_zhongnum2str(ip_pian1);ip_zhuan1bin2dec(ip_zhong);ip_sumip_sumip_zhuan1;end ip_sumzdec2bin(ip_sum,20);ip_frame_checksumz1double(boolean(ip_sumz-0));ip_frame_checksumz2~ip_frame_checksumz1;ip_frame_chz1ip_frame_checksumz2(1,5:end);ip_frame_chz2ip_frame_checksumz2(1,1:4);ip_frame_ce1bin2dec(num2str(ip_frame_chz1))bin2dec(num2str(ip_frame_chz2));ip_frame_ce2dec2bin(ip_frame_ce1,16);ip_frame_checksumzdouble(boolean(ip_frame_ce2-0));bit_frame_sequence[ip_frame_version ip_frame_IHL ip_frame_tos ip_frame_lenz...ip_frame_id ip_frame_flag ip_frame_offest ip_frame_TTL ip_frame_protocol...ip_frame_checksumz ip_frame_src ip_frame_dst ip_frame_data];%卷积编码[bit_code_sequence,trel,tblen]conven(bit_frame_sequence,puncpat,constrain_len);%调制[modSignal,hMod]Modulation(bit_code_sequence,Mode,M,SamplesPerSymbol,fs,freqSep);s2reshape(modSignal,1,length(modSignal));Signal_mean_powermean(abs(s2).^2);%脉冲成型矩形 up_sample_fs_tempup_sample_fs;data_transmit_upsamplerectpulse(s2,up_sample_fs_temp);%生成对应长度的时间序列 len_signallength(data_transmit_upsample);t_fs(0:len_signal-1)/fs;%根据信号长度生成时间序列%跳频载波调制 fh_indexrandi([1,freqLen],1,1);fc_current_Pktfh_seq(fh_index);data_transmit_RFdata_transmit_upsample.*exp(1i*2*pi*fc_current_Pkt*t_fs);%信道AWGN data_transmitdata_transmit_RF;Signal_mean_power_channelmean(abs(data_transmit).^2);%干扰无 Jam_signal0;%噪声 NoisePowerSignal_mean_power_channel/SINR_de;noise_seqsqrt(NoisePower/2)*(randn(1,length(data_transmit))1i*randn(1,length(data_transmit)));y_channel_alldata_transmitJam_signalnoise_seq;%下变频使用相同的时间序列 data_receivery_channel_all.*exp(-1i*2*pi*fc_current_Pkt*t_fs);%下采样 data_receiver_dsdownsample(data_receiver,up_sample_fs_temp,up_sample_fs_temp/2);data_receiver_dsreshape(data_receiver_ds,length(data_receiver_ds),1);%解调[bit_Demodulated,hDemod]Demodulation(data_receiver_ds,Mode,M,SamplesPerSymbol,fs,freqSep);%Viterbi译码 bit_decodevitdec(bit_Demodulated,trel,tblen,trunc,hard,puncpat);%误比特统计去除帧尾16位校验和 minLenmin(length(bit_decode),length(bit_frame_sequence));ifminLen16nBitErr(pktX)sum(bit_decode(1:minLen-16)~bit_frame_sequence(1:minLen-16));elsenBitErr(pktX)0;end enderTot(ii)sum(nBitErr);totPktEr(ii)sum(nBitErr0);endBER_all(modIdx,:)erTot/(numBits*numPkts);PER_all(modIdx,:)totPktEr/numPkts;end%%绘图-BER figure;semilogy(SINR_dB,BER_all(1,:),r-o,LineWidth,2,MarkerSize,8);hold on;semilogy(SINR_dB,BER_all(3,:),b-^,LineWidth,2,MarkerSize,8);semilogy(SINR_dB,BER_all(4,:),m-d,LineWidth,2,MarkerSize,8);semilogy(SINR_dB,BER_all(5,:),y-p,LineWidth,2,MarkerSize,8);semilogy(SINR_dB,BER_all(6,:),k-h,LineWidth,2,MarkerSize,8);semilogy(SINR_dB,BER_all(7,:),g--*,LineWidth,2,MarkerSize,8);grid on;box on;xlabel(SINR (dB));ylabel(Bit Error Rate);legend(FSK,BPSK,QPSK,OQPSK,16QAM,64QAM,Location,southwest);title(不同调制方式下的BER性能对比(卷积码2/3,AWGN,无干扰));4 总结本文通过MATLAB仿真系统研究了跳频扩频FHSS通信系统中不同数字调制方式的性能。结果表明在相同信道条件下低阶调制如BPSK、QPSK凭借其简单的星座图结构展现出更强的抗噪声能力和更低的误码率但频谱效率较低而高阶调制如16QAM、64QAM虽然能显著提升频谱效率但其抗干扰性能会相应下降。因此在实际FHSS系统设计中需要在抗干扰能力与频谱效率之间进行权衡根据具体的应用场景和信道条件选择合适的调制方式。往期仿真代码可见往期文章文末VX公众号包含往期博客所有代码所见即所得