discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] Using the viterbi decoder from gr-dtv dvbt in gr-


From: Gonzalo Arcos
Subject: Re: [Discuss-gnuradio] Using the viterbi decoder from gr-dtv dvbt in gr-iee802-11
Date: Thu, 28 Jan 2016 20:52:27 -0300

Thank you for your answer Tom. 

I infer from your mail that changing the value of K might as well mean building the decoder from scratch. Which leads to my next question, is there any tutorials on how to program a viterbi decoder for an arbitrarily value of K in an optimized way? does anyone know? I need to be able to increase the performance of this process.. Maybe another possibility is stick with IT++ and use something like gpgpu to speedup the process? 
What do you guys think? Do you have any suggestion?

I have my reserves about gpgpu being useful in this scenario where the incoming packet rate is very high, and therefore the transfer of data between the main system and the gpu would be frequent and repeated. At the same time, im running out of ideas.

Thanks a lot for the answers so far.

2016-01-28 20:41 GMT-03:00 Tom Rondeau <address@hidden>:
On Fri, Jan 29, 2016 at 12:38 AM, Gonzalo Arcos <address@hidden> wrote:
Hello Tom,

Thank you for your answer.

I dont see how using the viterbi decoder from gr-fec would fix my problem. I would still need the viterbi decoder to work on K=5 to be able to integrate it with gr-ieee802-11, it is the same situation i am now with the decoder i linked. My question is first if there is a highly optimized decoder at least for 1/2 K=5, or in case it does not exist, if it is possible for me to modify an existing implementation. I repeat, i am a novice in the field of convolutional decoding.

Thanks

Apologies, I misread your first email and swapped the constraint lengths.

But no, modifying the implementation for different values of K is /not/ trivial.

Tom


 
2016-01-28 20:05 GMT-03:00 Tom Rondeau <address@hidden>:
On Thu, Jan 28, 2016 at 11:13 PM, Gonzalo Arcos <address@hidden> wrote:
And the gr-ieee-80211 project is:
https://github.com/bastibl/gr-ieee802-11

thanks in advance


We have a highly optimized Viterbi decoder for K=7, rate 1/2 in gr-fec, which is done mostly in a VOLK kernel. Those parameters (R=1/2, K=7) are fixed, but the polynomials can be set externally.

Tom


 
2016-01-28 19:11 GMT-03:00 Gonzalo Arcos <address@hidden>:
I am trying to optimize the current performance of gr-iee802-11. Ive done some profiling and came to the conclusion that there is a lot of work being put in decoding the convolutional code at the receiver.

I have done some research, and found out that there exists a viterbi decoder that was developed for the digital tv branch, that supposedly outperforms IT++ by a factor of 9x!, IT++ being the library that gr-iee802-11 uses to decode the convolution.

When trying to adapt this decoder to gr-iee802-11 ive found some hassles. First, the constraint length for the viterbi decoder in dvbt is K = 7, while in gr-ieee802-11 uses a constraint length of K=5.
In addition, the generator polynomials also differ.

I would appreciate if someone could help me here, i am a beginner in the matter of convolutional codes, i would like if someone could asses me if it is possible to adapt this viterbi decoder to gr-iee802-11 at all, and in case it is indeed possible, if it is very complex task for a non expert on the matter.

The source file d_viterbi.c has a comment that says:
That changing the polynomials would need me to "regenerate the BUTTERFLY macro calls in viterbi()" I am not certain about what should the new parameters be for the polinomials 0133 0171.
https://github.com/gnuradio/gnuradio/tree/master/gr-dtv/lib/dvbt


_______________________________________________
Discuss-gnuradio mailing list
address@hidden
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio






reply via email to

[Prev in Thread] Current Thread [Next in Thread]