我们需要正确的输出重置nrLDPCDecode的状态吗?

6视图(30天)
你好,
我模拟通信系统与5 g NR工具箱。我生成一个数据帧,并使用nrLDPCEncode与LDPC编码。然后,这个编码数据帧通过衰落信道,和awgn噪音是补充道。接收,我将收到帧相同,通过2算法(信道估计和数据检测)得到2的结果。现在,这两个算法都使用nrLDPCDecode在同一帧的数据。运行仿真后的性能相比也许1000通道实现,对不同信噪比。
现在的问题是,我使用相同的传输数据帧,并运行它通过nrLDPCDecode用不同的算法处理后的接收器。这将会导致一些问题,而解码?早些时候,我们曾经做重置(LDPCDecoder)和释放(LDPCDecoder)如果我们有一个comm.LDPC解码对象,这确保了对象没有任何残留的记忆及其状态被清除。这在nrLDPCDecode自动发生吗?或者我们将编码和解码单个流每次?
算法的伪代码会发生什么。这只是为了表示,我不做完整的OFDM调制或其他措施。这段代码不会运行,因为它并不完整,只是为了给你一个主意。我的问题是,结构/流的代码是错误的吗?我需要algorithm1和algorithm2是分开的吗?我每次都需要生成新的数据吗?
data =兰迪([0 1]transport_block_length 1);
CRCencoded = nrCRCEncode (datain cbsInfo.CRC);
cbsIn = nrCodeBlockSegmentLDPC (CRCencoded cbsInfo.BGN);
enc_bits = nrLDPCEncode (cbsIn cbsInfo.BGN);
outlen =装天花板(transport_block_length /率);
ratematched_bits = nrRateMatchLDPC (enc_bits outlen,房车,调制,nlayers);
Mod_data = qammod (ratematched_bits Mvec (1),“UnitAveragePower”,真的,“InputType”,“一点”);
channel_object = = comm.RayleighChannel (“SampleRate”Fs,“PathDelays”延迟,
“AveragePathGains”powers_dB,“NormalizePathGains”假的,
“MaximumDopplerShift”fd_max,“PathGainsOutputPort”,真正的);
snr_ii = 1:长度(信噪比)
mc_ii = 1: No_of_Channel_Realizations
释放(channel_object);重置(channel_object);
陈(Faded_Data CIR] = (Mod_data);
Received_data = Faded_Data + AWGN_Noise;
Processed_LLR_Values1 = algorithm1 (Received_data);
Processed_LLR_Values2 = algorithm2 (Received_data);
% %后加工1
raterec_bits1 = nrRateRecoverLDPC (Processed_LLR_Values1 (:), transport_block_length,速度,房车,调制,nlayers);
[dec_bits1] = nrLDPCDecode (raterec_bits1 cbsInfo.BGN 20);%马克斯大致固定的迭代次数根据图在“新停止标准LDPC码迭代译码的H-ARQsystems”
cbsOut1 = nrCodeBlockDesegmentLDPC (dec_bits1 cbsInfo.BGN desegmentlength);
CRCdecoded1 = nrCRCDecode (cbsOut1 cbsInfo.CRC);
bit_error1 (mc_ii) = (CRCdecoded1 ~ =数据)/长度总和(CRCdecoded1);
% %后加工2
raterec_bits2 = nrRateRecoverLDPC (Processed_LLR_Values2 (:), transport_block_length,速度,房车,调制,nlayers);
[dec_bits2] = nrLDPCDecode (raterec_bits2 cbsInfo.BGN 20);%马克斯大致固定的迭代次数根据图在“新停止标准LDPC码迭代译码的H-ARQsystems”
cbsOut2 = nrCodeBlockDesegmentLDPC (dec_bits2 cbsInfo.BGN desegmentlength);
CRCdecoded2 = nrCRCDecode (cbsOut2 cbsInfo.CRC);
bit_error2 (mc_ii) = (CRCdecoded2 ~ =数据)/长度总和(CRCdecoded2);
结束
结束

答案(1)

Nadia Shaik
Nadia Shaik 2023年3月10日
嗨Abhay,
我知道你想知道“nrLDPCDecode”有任何残留的记忆,如果你可以使用相同的传输数据帧并运行它通过“nrLDPCDecode”用不同的算法处理后的接收器。
comm.LDPCDecoder ”是一个系统Obejct因此“重置”和“发布”功能。另一方面,“ nrLDPCDecode ”功能作用于一组llr(对数似比率)和不保留任何先前解码或运行算法的内存用于处理接收到的数据。如果输入“nrLDPCDecode”是一个有效的llr和解码过程都使用相同的参数来配置运行时,解码结果应该是一致的。
我希望这可以帮助!

类别

找到更多的在PHY组件帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!