# Soft Decision Viterbi Decoding?

Started by December 19, 2007
```Hi,
I have done convolutional codeing (length =3, rate=1/2) and viterbi hard
decoding. The steps I have followed are:

Data --> Convolutional Encoder --> QPSK Modulation --> Channel -->
Demodulation --> Viterbi Hard Decoding

The above steps give me good result for AWGN channel.

Can anyone plz tell me how is the Soft Viterbi Decoding differ from the
above mentioned hard viterbi decoding? will be grateful if someone comes
up with a tutorial.

Regards,
```
```
ssohaib wrote:

> I have done convolutional codeing (length =3, rate=1/2) and viterbi hard
> decoding. The steps I have followed are:
>
> Data --> Convolutional Encoder --> QPSK Modulation --> Channel -->
> Demodulation --> Viterbi Hard Decoding
>
> The above steps give me good result for AWGN channel.
>
> Can anyone plz tell me how is the Soft Viterbi Decoding differ from the
> above mentioned hard viterbi decoding?

It is almost the same. The only difference is that you use the Euclidean
distances instead of the Hamming weights for the calculation of the path
costs.

DSP and Mixed Signal Design Consultant
http://www.abvolt.com
```
```Hi,
Good to see your reply. Just take a practical example of simulating this
Viterbi Soft Decoder in Matlab or any other language.

I am using QPSK as a modulation scheme and we have rayleigh fading channel
with white gaussian noise. Now the steps i am following are:

Data --> convolutional coding (K=3, rate=1/2) --> QPSK mod --> Rayleigh
Flat fadin channel + AWGN --> Viterbi Soft Deocoding.

I havent put any demodulator above as i think soft decoding does
demodualtion and detection in one step.
I am calculating the eucledian distance by ||r-hs||^2, where r is recieved
signal, h is channel and s is transmited signal.

I have done all this in matlab but the BER curve i am obtaining is same as
if there is not coding used. But when i use only AWGN channel with no
fading i get the curve as expected (i.e. better performance).

Can you plz tell me what is wroong in my step? or is there any thing
special that we have to do in case of rayleigh flat fading channel?

waiting for ur kind replies.

Thanks.
```
```On Dec 19, 4:09 pm, "ssohaib" <ssoh...@gmail.com> wrote:
> Hi,
> Good to see your reply. Just take a practical example of simulating this
> Viterbi Soft Decoder in Matlab or any other language.
>
> I am using QPSK as a modulation scheme and we have rayleigh fading channel
> with white gaussian noise. Now the steps i am following are:
>
> Data --> convolutional coding (K=3, rate=1/2) --> QPSK mod --> Rayleigh
> Flat fadin channel + AWGN --> Viterbi Soft Deocoding.
>
> I havent put any demodulator above as i think soft decoding does
> demodualtion and detection in one step.
> I am calculating the eucledian distance by ||r-hs||^2, where r is recieved
> signal, h is channel and s is transmited signal.
>
> I have done all this in matlab but the BER curve i am obtaining is same as
> if there is not coding used. But when i use only AWGN channel with no
> fading i get the curve as expected (i.e. better performance).
>
> Can you plz tell me what is wroong in my step? or is there any thing
> special that we have to do in case of rayleigh flat fading channel?
>
> waiting for ur kind replies.
>
> Thanks.

You might see an advantage by increasing the constraint length of your
code or decreasing the duration of the fades. The standard solution
though is to add a convolutional interleaver to randomize the errors

John
```
```On Dec 19, 4:09 pm, "ssohaib" <ssoh...@gmail.com> wrote:
> Hi,
> Good to see your reply. Just take a practical example of simulating this
> Viterbi Soft Decoder in Matlab or any other language.
>
> I am using QPSK as a modulation scheme and we have rayleigh fading channel
> with white gaussian noise. Now the steps i am following are:
>
> Data --> convolutional coding (K=3, rate=1/2) --> QPSK mod --> Rayleigh
> Flat fadin channel + AWGN --> Viterbi Soft Deocoding.
>
> I havent put any demodulator above as i think soft decoding does
> demodualtion and detection in one step.
> I am calculating the eucledian distance by ||r-hs||^2, where r is recieved
> signal, h is channel and s is transmited signal.
>
> I have done all this in matlab but the BER curve i am obtaining is same as
> if there is not coding used. But when i use only AWGN channel with no
> fading i get the curve as expected (i.e. better performance).
>
> Can you plz tell me what is wroong in my step? or is there any thing
> special that we have to do in case of rayleigh flat fading channel?
>
> waiting for ur kind replies.
>
> Thanks.

You might see an advantage by increasing the constraint length of your
code or decreasing the duration of the fades. The standard solution
though is to add a convolutional interleaver to randomize the errors

John
```
```hi,
do u guys think that the stpes i am following are correct for soft viterbi
decoding?

Data --> convolutional coding (K=3, rate=1/2) --> QPSK mod --> Rayleigh
Flat fadin channel + AWGN --> Viterbi Soft Deocoding.

BR
```
```Hi guys
I have studied alot about soft decoding from proakis, sklar and internet
but every timr they talk about is quantization (8levels mostly) but what i
think is that how can we have such levels in case of QPSK modulated coded
signal (K=3, rate=1/2)? Like in case of QPSK we have symbols
(+-0707+-0.707j) then how can we define level in such a case?

waiting

```
```On Dec 22, 5:45 pm, "ssohaib" <ssoh...@gmail.com> wrote:
> Hi guys
> I have studied alot about soft decoding from proakis, sklar and internet
> but every timr they talk about is quantization (8levels mostly) but what i
> think is that how can we have such levels in case of QPSK modulated coded
> signal (K=3, rate=1/2)? Like in case of QPSK we have symbols
> (+-0707+-0.707j) then how can we define level in such a case?
>
> waiting

You can take soft I and Q values separately and apply to VD.

John
```
```Good to see your reply. Could you plz eleborate how can i quntize the I and
Q seperatly. Lets spoose after noise we  have some thing like
0.807-0.984j. How can i qunatize 0.807 and -0.984j in to 8 levels?

Waiting.

```
```ssohaib wrote:
> Good to see your reply. Could you plz eleborate how can i quntize the I and
> Q seperatly. Lets spoose after noise we  have some thing like
> 0.807-0.984j. How can i qunatize 0.807 and -0.984j in to 8 levels?

Is a spoose something like a moose?

I almost understand your last sentence. Take "in" away, and I do
understand it. If that's what you mean, multiply each by 256, add .5,
keep the integer part only, and divide that by 256.

0.807 -> 0.80859375      -0.984 -> -0.98046875

Please understand that I'm glad to help and I don't want to put you
down. I think that your need to ask that question is a good indication
that you don't firmly understand the operations you're doing. It's
possible to pass an elementary course working by rote and formula, but
without real understanding, that knowledge won't carry you far.

Jerry
--
Engineering is the art of making what you want from things you can get.
&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;
```