Re: [Discuss-gnuradio] GSoC2014 Turbo Equalizer
Hey Guys, I wrote a blind turbo equaliser for LDPC encoded data a few years ago in GNU Radio, the code is probably pretty horrific, and it wasn't optimised very well, but it worked as a proof on concept, I could dig out the code if anyone was interested? John On Sat, Mar 1, 2014 at 10:33 AM, Jan Kraemer krae...@int.uni-karlsruhe.dewrote: Hey Nguyen Anh Duc, thanks for your input. It's nice to see that there seems to be some guys interested in the whole turbo EQ topic. These are some interesting points you mentioned. To be honest i never thought about using MLSE/MAP for the equalizer part. Same goes with another turbo decoder in the turbo equalizer cause I discarded them as to computationally heavy to be implemented in software. But it seems that right now there is greater need to speed up the gr-trellis module before attempting a full turbo equalizer. Best regards, Jan Am 28.02.2014 16:57, schrieb Anh Duc Nguyen: Dear Jan Krämer, I am very interested in your proposal. However, to my best of knowledge, turbo equalizer (TB) is pretty complicated and computationally heavy, then it is challenging to have an effective real-time implementation of TB. I would like to have some questions as follows: 1. Your ISI channels' characteristics: fixed/ known beforehand or time-variant, how dispersive they are 2. which techniques do you wish to use for equalizer part: MMSE, MAP, or MLSE? 3. coding: as you presented above - it may be a convolutional or turbo code, and others? 4. Some special hardware platform may require 5. why do you select 2. and 3. to have the best performance in terms of complexity or quality, and that combination is realistic to be real-time implemented in GnuRadio plus 4. To be honest, I have desperately struggled these question for quite a long time, then you and some others can help work together to find the answers, Best regards, Nguyen Anh Duc On Tue, Feb 25, 2014 at 8:59 PM, Jan Krämer krae...@int.uni-karlsruhe.dewrote: Hi everyone, I am a student at Communications Engineering Lab (CEL) at Karlsruhe Institute of Technology. I major in communication systems and I am currently doing my masterthesis on Parallel log-map decoders for manycore architectures. I am interested in participating in GSoC 2014. There is an older GNURadio GSoC proposal from 2013 to implement a turbo equalizer module in GNURadio in which i am particularly interested working on, as it is closely connected to my current field of study. So i would like to share my thoughts on a possible Update of the old turbo equalizer proposal (and maybe upgrading it to a current proposal ?). - *Turbo Equalizer* A Turbo Equalizer is a receiver component that is highly effective when receiving messages corrupted by Intersymbol Interference (ISI). To archive this, the turbo equalizer uses an Equalizer to eliminate the ISI and a Log-Map Decoder for Forward Error Correction. Both components pass soft information to each other to increase the performance. *Objectives* Possible (sub-)projects: 1. Implement the Log-Map decoder - preferably it can be fully configurable (constraint length, number of states, trellis structure) - preferably optimized for real time applications 2. Implement the linear equalizer - preferably optimized for real time applications *Skills* Knowledge of digital signal processing, C/C++, Python *Potential mentor(s)* Sebastian Koslowski, Michael Schwall -- That would be a project I think would be really interesting to work on and i think it fits well with some of the other proposals for new GNU Radio Modules. As the turbo eq itself is a highly complex architecture, it could also be beneficial to split the tasks in this project. It would be great to get some feedback from you, if this was a proposal that would benefit GNURadio and if it has the potential to be included in the GSoC list of ideas. Thanks and regards, Jan Krämer ___ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio ___ Discuss-gnuradio mailing listDiscuss-gnuradio@gnu.orghttps://lists.gnu.org/mailman/listinfo/discuss-gnuradio ___ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio ___ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
Re: [Discuss-gnuradio] GSoC2014 Turbo Equalizer
Hey Nguyen Anh Duc, thanks for your input. It's nice to see that there seems to be some guys interested in the whole turbo EQ topic. These are some interesting points you mentioned. To be honest i never thought about using MLSE/MAP for the equalizer part. Same goes with another turbo decoder in the turbo equalizer cause I discarded them as to computationally heavy to be implemented in software. But it seems that right now there is greater need to speed up the gr-trellis module before attempting a full turbo equalizer. Best regards, Jan Am 28.02.2014 16:57, schrieb Anh Duc Nguyen: Dear Jan Krämer, I am very interested in your proposal. However, to my best of knowledge, turbo equalizer (TB) is pretty complicated and computationally heavy, then it is challenging to have an effective real-time implementation of TB. I would like to have some questions as follows: 1. Your ISI channels' characteristics: fixed/ known beforehand or time-variant, how dispersive they are 2. which techniques do you wish to use for equalizer part: MMSE, MAP, or MLSE? 3. coding: as you presented above - it may be a convolutional or turbo code, and others? 4. Some special hardware platform may require 5. why do you select 2. and 3. to have the best performance in terms of complexity or quality, and that combination is realistic to be real-time implemented in GnuRadio plus 4. To be honest, I have desperately struggled these question for quite a long time, then you and some others can help work together to find the answers, Best regards, Nguyen Anh Duc On Tue, Feb 25, 2014 at 8:59 PM, Jan Krämer krae...@int.uni-karlsruhe.de mailto:krae...@int.uni-karlsruhe.de wrote: Hi everyone, I am a student at Communications Engineering Lab (CEL) at Karlsruhe Institute of Technology. I major in communication systems and I am currently doing my masterthesis on Parallel log-map decoders for manycore architectures. I am interested in participating in GSoC 2014. There is an older GNURadio GSoC proposal from 2013 to implement a turbo equalizer module in GNURadio in which i am particularly interested working on, as it is closely connected to my current field of study. So i would like to share my thoughts on a possible Update of the old turbo equalizer proposal (and maybe upgrading it to a current proposal ?). - *Turbo Equalizer* A Turbo Equalizer is a receiver component that is highly effective when receiving messages corrupted by Intersymbol Interference (ISI). To archive this, the turbo equalizer uses an Equalizer to eliminate the ISI and a Log-Map Decoder for Forward Error Correction. Both components pass soft information to each other to increase the performance. *Objectives* Possible (sub-)projects: 1. Implement the Log-Map decoder - preferably it can be fully configurable (constraint length, number of states, trellis structure) - preferably optimized for real time applications 2. Implement the linear equalizer - preferably optimized for real time applications *Skills* Knowledge of digital signal processing, C/C++, Python *Potential mentor(s)* Sebastian Koslowski, Michael Schwall -- That would be a project I think would be really interesting to work on and i think it fits well with some of the other proposals for new GNU Radio Modules. As the turbo eq itself is a highly complex architecture, it could also be beneficial to split the tasks in this project. It would be great to get some feedback from you, if this was a proposal that would benefit GNURadio and if it has the potential to be included in the GSoC list of ideas. Thanks and regards, Jan Krämer ___ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org mailto:Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio ___ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio ___ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
Re: [Discuss-gnuradio] GSoC2014 Turbo Equalizer
Dear Jan Krämer, I am very interested in your proposal. However, to my best of knowledge, turbo equalizer (TB) is pretty complicated and computationally heavy, then it is challenging to have an effective real-time implementation of TB. I would like to have some questions as follows: 1. Your ISI channels' characteristics: fixed/ known beforehand or time-variant, how dispersive they are 2. which techniques do you wish to use for equalizer part: MMSE, MAP, or MLSE? 3. coding: as you presented above - it may be a convolutional or turbo code, and others? 4. Some special hardware platform may require 5. why do you select 2. and 3. to have the best performance in terms of complexity or quality, and that combination is realistic to be real-time implemented in GnuRadio plus 4. To be honest, I have desperately struggled these question for quite a long time, then you and some others can help work together to find the answers, Best regards, Nguyen Anh Duc On Tue, Feb 25, 2014 at 8:59 PM, Jan Krämer krae...@int.uni-karlsruhe.dewrote: Hi everyone, I am a student at Communications Engineering Lab (CEL) at Karlsruhe Institute of Technology. I major in communication systems and I am currently doing my masterthesis on Parallel log-map decoders for manycore architectures. I am interested in participating in GSoC 2014. There is an older GNURadio GSoC proposal from 2013 to implement a turbo equalizer module in GNURadio in which i am particularly interested working on, as it is closely connected to my current field of study. So i would like to share my thoughts on a possible Update of the old turbo equalizer proposal (and maybe upgrading it to a current proposal ?). - *Turbo Equalizer* A Turbo Equalizer is a receiver component that is highly effective when receiving messages corrupted by Intersymbol Interference (ISI). To archive this, the turbo equalizer uses an Equalizer to eliminate the ISI and a Log-Map Decoder for Forward Error Correction. Both components pass soft information to each other to increase the performance. *Objectives* Possible (sub-)projects: 1. Implement the Log-Map decoder - preferably it can be fully configurable (constraint length, number of states, trellis structure) - preferably optimized for real time applications 2. Implement the linear equalizer - preferably optimized for real time applications *Skills* Knowledge of digital signal processing, C/C++, Python *Potential mentor(s)* Sebastian Koslowski, Michael Schwall -- That would be a project I think would be really interesting to work on and i think it fits well with some of the other proposals for new GNU Radio Modules. As the turbo eq itself is a highly complex architecture, it could also be beneficial to split the tasks in this project. It would be great to get some feedback from you, if this was a proposal that would benefit GNURadio and if it has the potential to be included in the GSoC list of ideas. Thanks and regards, Jan Krämer ___ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio ___ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
Re: [Discuss-gnuradio] GSoC2014 Turbo Equalizer
On 25.02.2014 19:09, Martin Braun wrote: On 02/25/2014 04:39 PM, Achilleas Anastasopoulos wrote: Just FYI, the gr-trellis has implementations of all these components you suggested. One interesting project is to take the core algorithms of gr-trellis (Viterbi and SISO) and make them threaded for multi-core (eg, by parallelizing forward/backward recursions, or by parallelizing using overlapping subblocks, etc) Jan, gr-trellis would be a good place to start looking, but there's still enough to do between gr-trellis and a fully working, optimized, real-time capable Parallel log-map-siso turbo equalizer. When you write a proposal, make sure you've had a look at gr-trellis beforehand. M Hi, Thanks to all for their input. I will have a look at gr-trellis but this definitely sounds like something I'd like to work on! Achilleas, I'd be happy to exchange ideas about parallelizing the SiSo and Viterbi algorithms in gr-trellis. Jan ___ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
Re: [Discuss-gnuradio] GSoC2014 Turbo Equalizer
On Tue, Feb 25, 2014 at 10:39 AM, Achilleas Anastasopoulos anas...@umich.edu wrote: Just FYI, the gr-trellis has implementations of all these components you suggested. One interesting project is to take the core algorithms of gr-trellis (Viterbi and SISO) and make them threaded for multi-core (eg, by parallelizing forward/backward recursions, or by parallelizing using overlapping subblocks, etc) best Achilleas Also using VOLK inside gr-trellis blocks should provide significant speedup there. Tom ___ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
Re: [Discuss-gnuradio] GSoC2014 Turbo Equalizer
Yes, I agree with Tom. A good starting point is the three or four core algorithms in gr-trellis/lib/core_algorithms.cc viterbi_algorithm, siso_algorithm, sccc_decoder pccc_decoder (and their _combined versions) Jan, let me know if you decide to work on these; I can provide some ideas if you are interested. best, Achilleas On Tue, Feb 25, 2014 at 10:47 AM, Tom Rondeau t...@trondeau.com wrote: On Tue, Feb 25, 2014 at 10:39 AM, Achilleas Anastasopoulos anas...@umich.edu wrote: Just FYI, the gr-trellis has implementations of all these components you suggested. One interesting project is to take the core algorithms of gr-trellis (Viterbi and SISO) and make them threaded for multi-core (eg, by parallelizing forward/backward recursions, or by parallelizing using overlapping subblocks, etc) best Achilleas Also using VOLK inside gr-trellis blocks should provide significant speedup there. Tom ___ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
Re: [Discuss-gnuradio] GSoC2014 Turbo Equalizer
On 02/25/2014 04:39 PM, Achilleas Anastasopoulos wrote: Just FYI, the gr-trellis has implementations of all these components you suggested. One interesting project is to take the core algorithms of gr-trellis (Viterbi and SISO) and make them threaded for multi-core (eg, by parallelizing forward/backward recursions, or by parallelizing using overlapping subblocks, etc) Jan, gr-trellis would be a good place to start looking, but there's still enough to do between gr-trellis and a fully working, optimized, real-time capable Parallel log-map-siso turbo equalizer. When you write a proposal, make sure you've had a look at gr-trellis beforehand. M ___ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
Re: [Discuss-gnuradio] GSoC2014 Turbo Equalizer
I know I could look to Google / do an internet search, but maybe asking here would be better.What is/are the -seminal- paper/s on parallel log-map-siso decoding? I implemented the non-parallel version of the log-map algorithm -way- back in 2001 on whatever the portable Mac was at the time (5300ce, IIRC). I stripped all of the crap out, and made it -really- fast for non-parallel / non-intrinsics / non-Altivec / non-SIMD / non-accelerated (beyond whatever the compiler did). I thought a lot about how to parallelize the algorithm, but since this was for a class all I needed was the fastest (which it was) my thoughts ended in May with graduation. I have no idea if I still have this code around, but I keep up with channel coding research to some degree since it's been an interest for years. Hence, my question. Thanks! - MLD ___ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
Re: [Discuss-gnuradio] GSoC2014 Turbo Equalizer
Mike, there are roughly 3 ways you can parallelize these algorithms: 1) packet-level: run a lot of codewords at the same time 2) subblock level: divide each codeword into pieces (overlapping) and run SISOs on each one of them in parallel 3) trellis level: do ACS operations in parallel take a look at the following link and references to get some ideas (not claiming it is a seminal paper though :-)) http://web.eecs.umich.edu/~anastas/docs/turbogpu.pdf best, Achilleas ___ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio