DSPRelated.com
Forums

BFSK with Viterbi vs 16FSK with Viterbi

Started by JAlbertoDJ February 23, 2007

** BER for a FSK noncoherent is

 PE=(M-1)/2 * exp(-Es/2No) => PE= (16-1)/2 * exp(-Es/2No)

 BER= PE*(M/2)/(M-1)=> BER= PE*8/15

 BER= 4 * exp(-Es/2No)


** BER for a BFSK noncoherent is

 BER= 1/2 * exp(-Es/2No)


So, BER for 16FSK is 8 times BER for BFSK.

But, after Viterbi in both cases, will be the different between both
modulations 8 times?




On Feb 23, 10:15 am, "JAlbertoDJ" <nietoro...@yahoo.es> wrote:
> ** BER for a FSK noncoherent is > > PE=(M-1)/2 * exp(-Es/2No) => PE= (16-1)/2 * exp(-Es/2No) > > BER= PE*(M/2)/(M-1)=> BER= PE*8/15 > > BER= 4 * exp(-Es/2No) > > ** BER for a BFSK noncoherent is > > BER= 1/2 * exp(-Es/2No) > > So, BER for 16FSK is 8 times BER for BFSK. > > But, after Viterbi in both cases, will be the different between both > modulations 8 times?
Why do you want to use the Viterbi algorithm? It is useful only if you have there is memory between one transmitted symbol to another, such as if you have an error-correcting code, or if your channel induces memory (such as inter- symbol interference). Hope this helps somehow, Julius
JAlbertoDJ wrote:
> ** BER for a FSK noncoherent is > > PE=(M-1)/2 * exp(-Es/2No) => PE= (16-1)/2 * exp(-Es/2No) > > BER= PE*(M/2)/(M-1)=> BER= PE*8/15 > > BER= 4 * exp(-Es/2No) > > > ** BER for a BFSK noncoherent is > > BER= 1/2 * exp(-Es/2No) > > > So, BER for 16FSK is 8 times BER for BFSK. > > But, after Viterbi in both cases, will be the different between both > modulations 8 times?
Eh? Do you really mean "frequency shift keying", which I hope you do when you qualify it with "noncoherent"? You've obviously pulled some numbers out of a book, without keeping the context. That's never a good thing. You haven't stated your assumptions thoroughly, so read what I have below, then clarify my assumptions about your assumptions if necessary. It looks like you're assuming one of N frequencies will be transmitted, and that the symbol length will remain the same. With this latter assumption your BER will be 8 times higher, but you'll be getting 8 times as many bits as well. You're also not clear on what you mean by "after Viterbi", so I'll assume you mean that you're going to do forward error correction with a convolutional code, and decode it with a Viterbi algorithm. If _my_ assumption is correct, the answer is no, the post-decode BER ratio will not necessarily by 8x. You also haven't stated what you want to do with your 8x increase in bits. You could just want more data, and be planning on using the same FEC code in either case. Alternately, you could be investigating what happens if you take your 8x increase in bits and use a code with a rate that's 8x lower. Let's assume the same-code case. Here I think you'll find that the after-decode BER will be more than 8x higher than the before-decode case -- this is a property of error-correcting codes, that when they're good they're really, really good, and when they're bad they're horrid. In particular, when you start hitting the knee of the input BER to output BER curve you'll see your output stream going to hell a lot sooner. Now let's assume the different-code case. Here you're trying to trade off transmitter and receiver complexity for better data integrity. Frankly, I don't know the answer to this one. I suspect that with a careful selection of codes you'll get significantly better performance this way, because the extra redundancy in the code will more than overcome the extra erroneous bits -- at least until you hit the knee of the curve. I strongly suspect that when things fall apart they'll do so slightly sooner and more so than in the same-code case, but I'd have to do some investigation to be sure. -- Tim Wescott Wescott Design Services http://www.wescottdesign.com Posting from Google? See http://cfaj.freeshell.org/google/ "Applied Control Theory for Embedded Systems" came out in April. See details at http://www.wescottdesign.com/actfes/actfes.html
Ok, i will try to explain better.


I want to compare two systems. The first is a BFSK + convolucional
code(r=1/2, k=7) and the second is a 16FSK + convolucional code(r=1/2,
k=7).

IMPORTANT: Symbol rate is the same in both cases. Then BFSK will be 4
times slower than 16FSK, but that is not the question. 

The question is if BER after Viterbi will be 8 times better in BFSK than
16FSK or will be different.

And, why i don't transmit 4 times slower with 16FSK to get the same Bit
rate than BFSK?  Because of stability of carrier. My system will transmit
to 8 symbols/second, then 2 symbols/second has a BW too narrow. But, i
repeat, that is not the question.