主要内容

带射频损伤和校正的端到端CCSDS远程指挥仿真

此示例显示了如何测量空间数据系统(CCSDS)电信链路协商委员会丢失的误码率(BER)和通信链路传输单元(CLTUS)。该示例将射频(RF)前端损伤和添加剂白色高斯噪声(AWGN)添加到链路上。

介绍

CCSDS TC通常用于从地面站向航天器发送命令。由于航天器接收机的频率不确定性和多普勒频移,CCSDS TC接收机的频率误差较大。为了补偿较大的频率偏移,地面站在频率上执行载波扫描或使用FFT-b卫星采集期间在航天器上进行ASD采集。此示例显示如何向信号添加200 KHz频率偏移,并使用基于FFT的采集进行校正。

对于每个信噪比(SNR)点,使用CLTU和采集序列生成的CCSDS TC波形因射频损伤而失真,并通过AWGN信道。该示例显示了如何对这些射频损伤进行建模:

  • 载波频率和相位偏移

  • 副载波频率和相位偏移

  • 定时相位偏移

CCSDS TC接收器补偿损伤,并恢复CLTU中的传输帧(TF)。此示例支持BPSK、PCM/PM/biphase-L和PCM/PSK/PM调制方案。副载波损伤仅适用于PCM/PSK/PM调制方案。这些调制方案万博1manbetx[8]用于生成CCSDS TC波形,以基带同时正交(IQ)样本的形式。

  • PCM/PSK/PM:按照脉冲编码调制(PCM)格式的线路编码信号是在正弦波副载波上调制的相移键控(PSK),然后在剩余载波上调制的相位调制(PM)。

  • PCM / PM / BIPHASE-L:Biphase-L(曼彻斯特)编码数据是在剩余载波上调制的相位。

  • BPSK:利用载波上的非归零(NRZ)数据抑制载波调制。

图中显示了恢复传输帧的处理步骤。

此图显示接收机操作,包括射频损伤补偿、解调、帧同步和传输帧解码。

要从接收到的波形中恢复TFs,请执行以下步骤。

  1. 粗频校正:使用基于fft的算法估计频率偏差。

  2. 载波频率和相位跟踪:使用二阶锁相环(PLL)[1]对载波跟踪。

  3. 子载波频率和相位跟踪:使用二阶Costas环路[1]用于子载波跟踪。

  4. 符号定时跟踪和解调:使用二阶数据转换跟踪环路(DTTL)[3]定时同步和符号解调模块[1]

  5. 帧同步和解码:Bose Chaudhuri-Hocquenghem(BCH)码使用基于硬符号的算法,低密度奇偶校验(LDPC)码使用基于软符号的算法。

该图显示了帧同步和TFS的解码所涉及的处理步骤[4]

  1. 搜索起始序列:当信道编码为BCH时,输入比特流逐位搜索起始序列模式。当信道编码为LDPC时,输入软符号流使用软相关器搜索起始序列模式。对于BCH,起始序列中允许的错误数为0或1(取决于解码模式)。在错误检测模式下,起始序列中允许的错误数为0。在纠错模式下,起始序列中允许的错误数为1。

  2. 解码:检测到开始序列时,解码操作开始。码字(CWS)被解码和可选择误解。

  3. CW拒绝或尾序检测:如果解码器具有任何解码失败或解码输出中的任何未校正错误,则来自该失败CW的数据不会被传送到数据链路子层操作。CW被拒绝,并搜索开始序列重新启动。如果存在尾序列,请搜索尾序列以检测CLTU的末端。对于BCH解码,采用CW拒绝方法。对于LDPC,使用尾部序列相关或CW抑制。当没有使用尾序列时,对开始序列的搜索必须在未校正的CW的开头恢复。当使用尾序列时,搜索可以在未校正CW的末尾恢复。

仿真配置

配置每个符号的样本数量和符号速率。

%每个符号的样本数%由于低符号率和200 KHz频率偏移,因此%每个符号必须使用200个样本作为默认值% PCM /相移键控/ PM调制。对于BPSK和PCM/PM/双相l调制,a%默认值20个样本每个符号被使用(由于中等和高%符号率)。sps=20;%符号速率%TC中规定的每个调制的符号速率为:% - 对于PCM / PSK / PM调制,编码符号速率为4000,2000,1000,% 500, 250, 125, 62.5, 31.25, 15.625,或7.8125符号/秒% CCSDS TC推荐[6])。%-对于PCM/PM/biphase-L调制,编码符号速率为8000、16000,%32000,64000,128000或256000符号/ s。%-对于BPSK调制,编码符号速率为1000、2000、4000、8000,%16000、32000、64000、128000、256000、512000、1024000或2048000%符号/s。SymbolRate = 2048000;

用于符号同步的DTTL在每个符号的采样数为偶数的情况下性能更好。对于每个符号的采样数为奇数的情况,在完美跟踪定时偏移时,定时误差估计值为非零。非零定时误差将DTTL拖离完美跟踪条件。

配置并显示CCSDS TC传输参数。

cfg=ccsdsTCConfig;cfg.ChannelCoding=“BCH”调制=“BPSK”cfg.ModulationIndex=1.2;%适用于PCM/PSK/PM和PCM/PM/双相l。万博1manbetx本例中支持的范围是[0.2 1.5]。如果strcmpi(cfg.Modulation,“PCM / PSK / PM”)cfg.symbolrate = symbolrate;结尾cfg.SamplesPerSymbol=sps
CFG = CCSDSTCConfig具有属性:DataFormat:“CLTU”ConstronCoding:“BCH”HasRandomizer:1调制:“BPSK”只读属性:无属性。

配置接收器参数。

normloopbwcarier = 0.005;用于载波同步器的%归一化环路带宽正常子载波=0.00005;%子载波同步器的归一化环路带宽标准符号=0.005;%符号同步器的归一化环路带宽

要减少环路中的噪声,请减少环路带宽。由于环路带宽减小,频率偏移的拉入范围也减小。当您在同步模块中使用较小的环路带宽时,采集需要较长的时间才能收敛。为了提高低SNR下的性能,降低环路带宽,并为采集序列长度使用更高的值。如果环路不跟踪偏移,考虑增加环路带宽以增加引入范围。

仿真参数

该示例针对多个能量/符号-噪声功率谱密度比(Es/No)点执行两次突发传输。Es/No可以是向量或标量。要获得统计上有效的误码率结果,请运行至少1000次传输的模拟。

numBurst=2;%突发传输数EsNodB=[8.5];% Es/No在dB中SNRIn=EsNodB-10*log10(sps);来自Es/No的%信噪比(dB

加工链

每次处理带有采集序列和单个CLTU的畸变CCSDS TC波形。要同步接收的数据并恢复TFs,需要执行以下处理步骤。

  1. 生成TC-TF中的位。

  2. 使用交替的和零生成采集序列的TC波形。

  3. 使用随机位为TFs生成CCSDS TC波形。

  4. 使用平方根提升余弦滤波器应用脉冲整形(仅适用于BPSK调制)。

  5. 应用子载波频率和相位偏移(仅适用于PCM/PSK/PM调制)。

  6. 应用载波频率和相位偏移。

  7. 应用定时相位偏移。

  8. 通过AWGN信道传递传输的信号。

  9. 校正粗略的频率和相位偏移。

  10. 过滤接收信号。

  11. 校正载波频率和相位偏移。

  12. 校正副载波频率和相位偏移(仅适用于PCM/PSK/PM调制)。

  13. 更正定时偏移和符号解调。

  14. 检测CLTU的启动并解码TFs。

%初始化变量以存储BER和CLTU丢失数bitsErr=0(长度(SNRIn),1);cltuErr=0(长度(SNRIn),1);%方根上升余弦(SRRC)发送和接收BPSK的过滤对象如果strcmpi(cfg.Modulation,“BPSK”)%发送过滤对象txfilter = comm.RaisedCosineTransmitFilter;txfilter。RolloffFactor = 0.35;%滤波器衰减txfilter.FilterSpanInSymbols=6;%过滤器跨度txfilter.OutputSamplesPerSymbol=sps;%SRRC接收筛选器对象rxfilter=comm.RaisedCosineReceiveFilter;rxfilter.RolloffFactor=0.35;%滤波器衰减rxfilter。FilterSpanInSymbols = 6;%过滤器跨度rxfilter.DecimationFactor=1;rxfilter.InputSamplesPerSymbol=sps;结尾%采样率如果strcmpi(cfg.Modulation,“PCM / PM / BIPHASE-L”)%在CCSDS TC建议[6]第2.2.7节中,编码符号速率为%在两相l编码之前定义。fs = 2 * sps * symbolRate;%双相L编码每一位有2个符号别的fs = sps * symbolrate;结尾为了iSNR=1:长度(SNRIn)%设置随机数生成器为默认值rng违约%环路中的信噪比值SNRdB=SNRIn(iSNR);%初始化错误计算参数总数=0;numer=0;totNumBits=0;cltuLost=0;为了iBurst=1:numBurst%800个八位字节的采集序列acqSeqLength=6400;acqBits=repmat([0;1],0.5*acqSeqLength,1);%以零为起始位交替使用1和0,起始位可以是0或1%采集序列的CCSDS TC波形%CCSDS TC中指定的最大子载波频率偏移为%±(2*1e-4)*fsc,其中fsc为副载波频率subfreqoffset = 3.2;%子载波频率偏移(单位:Hz)子相位偏移=4;%副载波相位偏移(度)%频率偏移(单位:Hz)如果strcmpi(cfg.Modulation,“PCM/PSK/PM”)%伴随副载波频率和相位偏移的信号调制acqsymb = helperccsdstcsubcariermodulation(acqbits,cfg,subfreqoffset,subphaseOffset);别的%按照CCSDS电信指令中规定的方案进行信号调制%子载波损伤不适用于BPSK和PCM/PM/biphase-Lcfg.DataFormat=“采集序列”;acqSymb=ccsdsTCWaveform(acqBits,cfg);cfg.DataFormat=“CLTU”;结尾%CLTU的CCSDS TC波形传输帧长度=640;%传输帧中的八位字节数inbits = randi([0 1],TransferFramesLength,1);%TC传输帧中的位如果strcmpi(cfg.Modulation,“PCM/PSK/PM”)%TC同步和信道编码子层操作后的编码位[~, encBits] = ccsdsTCWaveform (inBits cfg);%伴随副载波频率和相位偏移的信号调制waveSymb=HelperCSDSTCSubcarrierModulation(加密位、cfg、子请求偏移、子相位偏移);别的waveSymb=ccsdsTCWaveform(内置,cfg);结尾%带采集序列和CLTU的CCSDS TC波形波形=[acqSymb;waveSymb];%BPSK的发射滤波如果strcmpi(cfg.Modulation,“BPSK”)%利用SRRC滤波器实现脉冲整形数据=[波形;零(txfilter.FilterSpanInSymbols,1)];txSig=txfilter(数据);别的txsig =波形;结尾%添加载波频率和相位偏移频率偏移=200000;%频率偏移(单位:Hz)相位偏移=20;%以度为单位的相位偏移如果fs<=(2*(频偏+cfg.子载波频率))和strcmpi(cfg.调制,“PCM/PSK/PM”)错误('采样率必须大于频率偏移和子载波频率之和的两倍');埃尔塞夫fs <=(2 * freqoffset)错误('采样率必须大于频率偏移的两倍');结尾pfo=通信相位频率偏移(“FrequencyOffset”,频率偏移,...“相位偏移”,相位偏移,“采样器”,fs);txsigoffset = pfo(txsig);%定时偏移作为采样的整数timingErr = 5;%定时误差必须小于等于0.4*spsdelayedSig=[zero(timinger,1);txSigOffset];%通过AWGN通道传递信号rxSig=awgn(复数(延迟信号),SNRdB,“测量”,冰块);%粗载波频率同步如果strcmpi(cfg.Modulation,“PCM/PSK/PM”)%PCM/PSK/PM的粗载波频率同步粗同步=helperccsdstcoarsefroquency补偿器(“FrequencyResolution”,100,...“采样器”,fs);别的%BPSK和PCM/PSK/biphase-L的粗载波频率同步粗同步=通信粗频率补偿器(...'调制',“BPSK”,“FrequencyResolution”,100,...“采样器”,fs);结尾粗频偏移的%补偿[rxCoarse,EstRouseFreqOffset]=粗同步(rxSig);%接收滤波如果strcmpi(cfg.Modulation,“BPSK”)% SRRC接收BPSK过滤rxFiltDelayed=rxfilter(RxCourse);rxFilt=rxFiltDelayed(rxfilter.FilterSpanInSymbols*sps+1:end);别的%PCM/PSK/PM和PCM/PSK/biphase-L的低通滤波用低通滤波器完成%过滤以减少效果%噪声对载波相位跟踪环路的影响B = FIR1(40.0.3);%截止频率为0.3*fs/2的40阶低通滤波器的系数rxFiltDelayed=滤波器(b,1,[rxCoarse;零(0.5*(长度(b)-1),1)]);百分比滤波器延迟rxFilt=rxFiltDelayed(0.5*(长度(b)-1)+1:结束);结尾%精细频率和相位校正如果strcmpi(cfg.Modulation,“BPSK”fineSync = comm.CarrierSynchronizer(“SamplesPerSymbol”,sps,...'调制',“BPSK”,“NormalizedLoopBandwidth”,正常人(承运人);别的fineSync=HelperCSDSTCCarrierSynchronizer(“SamplesPerSymbol”,...cfg。SamplesPerSymbol,“NormalizedLoopBandwidth”,正常人(承运人);结尾[rxFine,phErr]=fineSync(rxFilt);%副载波频率和相位校正如果strcmpi(cfg.Modulation,“PCM/PSK/PM”)subSync=HelperCCSDSTCSubCarrierSynchronizer(“SamplesPerSymbol”,sps,...“NormalizedLoopBandwidth”,子载波);[rxSub,子载波]=子同步(实(rxFine));别的rxSub=实(rxFine);结尾%时序同步和符号解调timeSync=HelperCSDSTCSYMBOLSynchronizer(“SamplesPerSymbol”,sps,...“NormalizedLoopBandwidth”,标准符号);[rxSym,timinger]=timeSync(rxSub);%搜索开始序列和位恢复位= HelperCCSDSTCCLTUBitRecover (rxSym cfg,“纠错”,0.8);bits = bits(〜cellfun(“我是空的”,位);%删除空单元格数组内容%填充位的传输帧的长度如果strcmpi (cfg。ChannelCoding,“BCH”)messageLength=56;别的messageLength=0.5*cfg.ldpcodewordlength;结尾frameLength=messageLength*ceil(长度(内部字节)/messageLength);如果(isempty(bits))||(长度(位{1})〜= frameLength)||(长度(比特)> 1)Cltulost = Cltulost + 1;别的numerr = sum(abs(double(位{1}(1:lengthits))) -  inbits));totnumerrs = totnumerrs + numerr;totnumbits = totnumbits +长度(inbits);结尾结尾比特数(iSNR)=总数字/总数字;cltuErr(iSNR)=cltuLost;%显示错误率和clu丢失数流([[“\ nBER的”,num2str(SNRdB+10*log10(sps)),'数据库Es/编号:%1.2e\n'), bitsErr (iSNR));流([[“\n与一起丢失的CLTU数”,num2str(SNRdB+10*log10(sps)),'db es / no:%d \ n'],cltuErr(iSNR));结尾
误码率8 dB Es/No: 0.00e+00
8db Es/No的clus丢失数:0
误码率为8.5 dB Es/No:0.00e+00
8.5 dB Es/No时丢失的CLTU数:0

误码率结果

当每个Es/No点完成时,绘制仿真的BER结果。bitsErr是一个阵列,具有所有模拟Es/No点的测量BER。该图显示了在范围[4 7.5]内10000次传输和Es/No点情况下获得的模拟结果。

进一步探索

归一化环路带宽和采集序列长度

此示例使用针对采集序列长度(800个八位字节)的大值,以在低SNR值下提高Synchronizers的性能。该表显示了具有每个调制方案的模拟中使用的标准化环路带宽值和用于模拟中的每个符号的样本,用于800个八位字节的采集序列。

表(T = {“BPSK”;“PCM/PSK/PM”;“PCM /下午/ biphase-L”},[0.005; 0.0002; 0.0003],...{“不适用”, 0.00005;“不适用”}, (0.005;0.0005;0.0005),...[20; 200; 20],[2048000; 4000; 256000],“变化无常”,{'调制','运营商同步器',...“副载波同步器”,'符号同步器',“每个符号样本”,“符号速率”})
T=3×6表每符号符号率____________________ ____________________ _______________________ ___________________ __________________ ___________ { 'BPSK'} 0.005 { '不适用'} 0.005 20 2.048e + 06 { 'PCM / PSK / PM'} 0.0002 {[5.0000e调制载波同步子载波同步符号同步样品-05]} 0.0005 200 4000 {'PCM / PM / BIPHase-L'} 0.0003 {不适用'} 0.0005 20 2.56E + 05

您可以使用此示例进一步了解这些同步模块。

  • 载波同步:为了提高相位估计的准确性,可以通过减少归一化带宽来减少噪声对跟踪环路的影响。减少环路带宽会减少拉入范围,并且捕获需要更长的时间来收敛。

  • 子载波同步:您可以绘制估计的子载波偏移,以确定更精确的环路带宽。为了帮助提高子载波频率估计的准确性,可以提高采样率和信噪比。

  • 符号同步:符号同步的DTTL在每个符号较多的采样数时表现良好。当您增加每个符号的采样值时,分辨率就会增加,而DTTL性能也会提高。过多的采样会降低信噪比,影响性能。如果信噪比小于-15 dB(由于每个符号有大量的采样),跟踪环路的性能就会受到影响。

对于任何基于PLL的环路,要在非常低的信噪比下工作,环路带宽必须非常低。这种低环路带宽会减少拉入范围。对于使用LDPC信道编码的CLTU,如果CLTU丢失的数量很高,可以减少阈值检测辅助功能中的起始序列的值帮助器CSDSTCCLTUBITREECOVER.您还可以尝试通过只选择与开始序列具有非常高的归一化相关度量的cltu来改善误码率结果。为了最大化帧检测和最小化误报,本例中使用0.8作为检测阈值。为了减少误报,可以增加检测阈值。如果增加检测阈值,则帧检测率降低。

带有PCM/PSK/PM的副载波频率偏移

CCSDS TC推荐中指定的最大子载波频率偏移量[6] ± ( 2. × 10 - 4. ) F sc 哪里 F sc 是遥控子载波的频率。你必须考虑一个频率偏移最大为3.2赫兹或1.6赫兹的16 kHz或8 kHz正弦波副载波,分别。您可以绘制估计的子载波频率偏移,以分析子载波跟踪的性能。当同步器收敛时,估计值的平均值大约等于输入子载波频率偏移值3.2 Hz。

如果strcmpi(cfg.Modulation,“PCM/PSK/PM”)Estsubcarfreqoffset = diff(subcarpherr)* fs /(2 * pi);rmean = cumsum(estsubcarfreqoffset)./(1:长度(estsubcarfreqoffset))';绘图(RMEAN)XLABEL(“符号”)伊拉贝尔('估计子载波频率偏移(Hz)')标题('PCM/PSK/PM:副载波频率偏移'网格)在…上结尾

附录

该示例使用以下辅助函数:

参考文献

  1. J. Vilà-Valls, M.纳瓦罗,P.克洛斯和M.波提纳尔,《深空通信的同步挑战》,IEEE航空航天和电子系统杂志,第34卷,第1期,第16-27页,2019年1月。

  2. M.Baldi等人,“最先进的空间任务遥控接收器,”IEEE航空航天和电子系统杂志,第32卷,第6期,第4-15页,2017年6月。

  3. S. Million和S. Hinedi,“低信噪比下符号转换密度对数据转换跟踪环路性能的影响”,IEEE国际通信会议记录ICC'95,美国华盛顿州西雅图,1995年,第2卷,第1036-1040页。

  4. TC同步和信道编码。关于空间数据系统标准的建议,CCSDS 231.0-B-3.蓝皮书,第3期,华盛顿特区:CCSDS,2017年9月。

  5. TC同步和信道编码。概念和理论基础的总结.冲洗液230.1 g 2。绿色的书。问题2。华盛顿特区:CCSDS, 2012年11月。

  6. 射频和调制系统.第1部分:。地球站和航天器.401.0 b29冲洗液。蓝色的书。问题29。华盛顿特区:CCSDS, 2019年3月。

  7. 迈克尔大米,数字通信-离散时间方法纽约:普伦蒂斯大厅,2008年。

  8. Nguyen,T.M.,W.L.Martin和Hen Geul Yeh.“剩余载波系统和抑制载波系统所需带宽、无用发射和数据功率效率——比较研究。”IEEE电磁兼容性交易37,不。1(1995年2月):34-50。https://doi.org/10.1109/15.350238。

另见

物体

功能

相关话题