[英]De-puncturing in soft-decision Viterbi decoding using vitdec
我正在使用 Matlab 實現一個通信系統,我之前使用convenc
對二進制 stream 進行了打孔卷積編碼。 但是,我檢查了vitdec
(Viterbi 解碼)的文檔,這就是我發現的。
decoded = vitdec(code,trellis,tblen,opmode,dectype)
decoded = vitdec(code,trellis,tblen,opmode,'soft',nsdec)
decoded = ... vitdec(code,trellis,tblen,opmode,dectype,puncpat)
decoded = ... vitdec(code,trellis,tblen,opmode,dectype,puncpat,eraspat)
decoded = ... vitdec(...,'cont',...,initmetric,initstates,initinputs)
[decoded,finalmetric,finalstates,finalinputs] = ... vitdec(...,'cont',...)
對於第二個 function 定義(帶軟解碼),穿孔模式向量沒有參數。 我怎么go一下這個?
以下 function 未在文檔中列出,但我試過了並且有效:
decoded = vitdec(code,trellis,tblen,opmode,'soft',nsdec,puncpat)
確保您了解現在code
變量中的元素需要介於0
和2^nsdec-1
之間,而不是像硬決策模式那樣的0
或1
。
根據 MATLAB 文檔 ( https://www.mathworks.com/help/comm/ref/vitdec.html )
decoded = ... vitdec(code,trellis,tblen,opmode,dectype,puncpat)
dectype 指示解碼器做出的決策類型,並影響解碼器在代碼中期望的數據類型。
dectype 的選擇之一是“軟”。 似乎您只是在 puncpat 中放入了與 convenc 完全相同的穿孔模式。
假設code1
是您的代碼,您可以使用此命令:
% trellis = poly2trellis(L, [n1 n2]); n1 and n2 is polynome order
% tbln = 1
c = vitdec(code1, trellis, tbln, 'trunc', 'hard')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.