Forums

Viterbi Soft Decision for 16FSK

Started by JAlbertoDJ May 8, 2006
Hi,

I need to build a Viterbi for 16FSK. 1/2 with K=7. 

In the case of BFSK, Soft Decision is not a problem for me, I compare the
correlation for a symbol '0' and for a symbol '1' and i know the
confidence for '0' o for '1'.

In the case of 16FSK, i am lost, because a symbol has 4 bits that belong
to a same frecuency. 

For example: "0000" belong to a tone of 1000 Hz 
For example: "0001" belong to a tone of 1015 Hz 
For example: "0010" belong to a tone of 1030 Hz 
         Etc.......

Thats four bits arrived joined in the same symbol.

How i do for programming the soft decision in this case?

Help, please




You can calculate some uncertainty bits for the symbol and then assign the
same uncertainty bits to all four data bits for decoding. I guess it depends
on how your symbols are numbered. For example, if they are numbered from 0
to 15 in proportion to frequency and you detect that a 0000 was sent you can
probably assign the 2 MSBs a zero uncertainty since it would take a very
large frequency error for them to be wrong. Similiary, if they were grey
coded then maybe you would assign the bits that don't change with the
neighbors a zero uncertainty. As for the certainity for the symbol decision
maybe you can calculate a ratio of the energy in the selected symbol versus
the energy in all the other tones.


"JAlbertoDJ" <nietorosdj@yahoo.es> wrote in message
news:adSdnWcChYgyvsLZnZ2dnUVZ_tSdnZ2d@giganews.com...
> Hi, > > I need to build a Viterbi for 16FSK. 1/2 with K=7. > > In the case of BFSK, Soft Decision is not a problem for me, I compare the > correlation for a symbol '0' and for a symbol '1' and i know the > confidence for '0' o for '1'. > > In the case of 16FSK, i am lost, because a symbol has 4 bits that belong > to a same frecuency. > > For example: "0000" belong to a tone of 1000 Hz > For example: "0001" belong to a tone of 1015 Hz > For example: "0010" belong to a tone of 1030 Hz > Etc....... > > Thats four bits arrived joined in the same symbol. > > How i do for programming the soft decision in this case? > > Help, please > > > >
Hi,

Why don't you use Reed-Solomon codes in your application?  The problem
with Convolutional codes and the Viterbi decoder is that these codes do
not like burst errors, which is what will typically happen when a
symbol is incorrectly demodulated by the MFSK decoder.  There are a few
papers where MFSK and Reed-Solomon codes are used, and the
soft-decision values are used to declare erasures.  There is even a
Viterbi measure defined to determine whether an erasure should be
declared.  Two papers that I can think of is one by Matache
(www.ee.ucla.edu/~matache/MA4_3.pdf), and the other by Stark
(www.eecs.umich.edu/~stark/2002B.pdf).

Anonymous wrote:
> You can calculate some uncertainty bits for the symbol and then assign the > same uncertainty bits to all four data bits for decoding. I guess it depends > on how your symbols are numbered. For example, if they are numbered from 0 > to 15 in proportion to frequency and you detect that a 0000 was sent you can > probably assign the 2 MSBs a zero uncertainty since it would take a very > large frequency error for them to be wrong. Similiary, if they were grey > coded then maybe you would assign the bits that don't change with the > neighbors a zero uncertainty. As for the certainity for the symbol decision > maybe you can calculate a ratio of the energy in the selected symbol versus > the energy in all the other tones. > > > "JAlbertoDJ" <nietorosdj@yahoo.es> wrote in message > news:adSdnWcChYgyvsLZnZ2dnUVZ_tSdnZ2d@giganews.com... > > Hi, > > > > I need to build a Viterbi for 16FSK. 1/2 with K=7. > > > > In the case of BFSK, Soft Decision is not a problem for me, I compare the > > correlation for a symbol '0' and for a symbol '1' and i know the > > confidence for '0' o for '1'. > > > > In the case of 16FSK, i am lost, because a symbol has 4 bits that belong > > to a same frecuency. > > > > For example: "0000" belong to a tone of 1000 Hz > > For example: "0001" belong to a tone of 1015 Hz > > For example: "0010" belong to a tone of 1030 Hz > > Etc....... > > > > Thats four bits arrived joined in the same symbol. > > > > How i do for programming the soft decision in this case? > > > > Help, please > > > > > > > >
You can assign the symbol confidence to all four bits.

John

JAlbertoDJ wrote:
> Hi, > > I need to build a Viterbi for 16FSK. 1/2 with K=7. > > In the case of BFSK, Soft Decision is not a problem for me, I compare the > correlation for a symbol '0' and for a symbol '1' and i know the > confidence for '0' o for '1'. > > In the case of 16FSK, i am lost, because a symbol has 4 bits that belong > to a same frecuency. > > For example: "0000" belong to a tone of 1000 Hz > For example: "0001" belong to a tone of 1015 Hz > For example: "0010" belong to a tone of 1030 Hz > Etc....... > > Thats four bits arrived joined in the same symbol. > > How i do for programming the soft decision in this case? > > Help, please
Thank you for answer.

I am thinking one thing. For example, in the Viterbi Algorith, if i need
to know confidence for two bits into a supposed block of 4 bits i can add
correlations of all symbols that have that bits in that positions.

For example, What would be the confidence for "10" into the block of 4
bits: "XX10 XXXX XXXX......"?

Confidence("10")= Correlation(0010)+Correlation(0110)+
                 +Correlation(1010)+Correlation(1110)+ 
 
That 4 symbols have in common that third bit is "1" and Fouth bit is "0"

For each two bits that i compare in Viterbi, I add Correlation of 4
frecuencies. One of that correlations will be very high (correlation with
recieved symbol), the other 3 correlations will be very low (correlation
with Noise).

I am not sure if this is the correct form for apply Viterbi to my 16FSK.


About burst noise, i will do interleaving with the bits. Also, i will
apply Spread Spectrum. In fact, a symbol will be compound of 4 frecuencies
scattered. But that is other questions.

About Reed-Solomon Codes, i know they are a good option for burst noise.
In fact, my aplication is for ionosphere communications, where burst noise
is very common. But in a first moment i want do it with convolucional code
(1/2, k=7), and see how works.

In a second moment, i would like do something like codes for CD-ROMS. I
think that it use Reed-Solomon into a Convolucional Code or so. I am not
sure.

I wait for your cooments