2016-04-12 10 views
0

Ich versuche, eine einfache Nachricht mit Matlab zu kodieren und zu decodieren. Die Nachricht wird mit msg = [1 0 0 1 1 1 0 1] bezeichnet. der Codierschritt ist fruchtbar, aber der Decodierschritt "viterbi" gibt eine Binärfolge von Nullen '0 0 0 0 0 0 0 0' nicht die Anfangsnachricht zurück. Jenseits der Codequelle, nicht knwo ich nicht, wo das Problem ist
Convolutiona-Code und Viterbi-Decodierung mit Matlab

trellis = poly2trellis(7,[171 133]) 
code = convenc(msg,trellis); 
decoded = vitdec(code,trellis,64,'cont','hard'); 

Dank viel.

Antwort

1

Sie diese Zeile stattdessen versuchen:

vitdec(code, trellis,8,'trunc','hard') 

Wie in der MATLAB-Hilfe sagt: „Die‚cont‘Modus geeignet ist, wenn Sie diese Funktion wiederholt aufrufen und wollen Kontinuität zwischen den aufeinanderfolgenden Anrufungen zu bewahren.“ Aber Ihr Eingabevektor ist nicht so.

+0

Vielen Dank Herr @ Alireza Amirshahi –