[Discuss-gnuradio] Re: gnuradio trellis

2006-09-28 Thread Anastasopoulos Achilleas

Toby,

for me the term equalization is equivalent to
sequence detection in ISI channels.
If by equalization you mean linear or decision feedback
equalization this is another story.

I am not sure how the gr-trellis stuff will be useful to you if
you do not want to do sequence detection, but some sort of
suboptimal linear or decision-feedback equalization, unless you
want to use it only for the GMSK detection part...

If you tell me more specifically what system you are
working on (modulation type, channel, receiver processing)
I can give more specific comments.

On Thu, 28 Sep 2006, Toby Oliver wrote:


Achilleas,

Okay. I am primarily interested in the equalization for the time being,
but I can see it would seem to make a lot of sense to create the
sequence detection as well.

In terms of making the isi lookup table for multidimensional
modulations, whats the best way to go about it? Is there any published
literature on this that I could base it on?

Kind Regards,
Toby

Anastasopoulos Achilleas wrote:

Oliver,

You are right:
Trellis implementation supports multi-dimensional constellations etc
(through the metric calculation block abstraction, etc), however,
in the examples and the supporting fsm_utils.py files
I have not included support for GMSK, and the automatic
generation of lookup tables for ISI channels is for-one dimensional
modulations.
I think the extension should be straightforward and I'll be glad
to help you in this.

May I suggest you separate the task into two subproblems for reasons
of usability by others:

1) GMSK sequence detection in AWGN channels
(which is a modulation with memory and in theory requires Viterbi
even in the absense of ISI),
and
2) GMSK equalization (ie, GMSK + ISI channel + noise - Viterbi)

For 1) a modification of test_tcm.py is required and hopefully
an automated way to project any given GMSK modulation to its
N-dimensional components; maybe a python implementation of
the Gram-Schmidt (QR decomposition) algorithm...

For 2) a modification of the test_viterbi_equalization.py or
test_viterbi_equalization1.py is required together with
generalizing the code in fsm_utils.py to generate the lookup table
for multi-dimensional modulations.

best,
Achilleas

On Wed, 27 Sep 2006, Toby Oliver wrote:


Achilleas,

I hope you don't mind me emailing you, but I have just been having a
look at your gnuradio trellis code which is very cool. In fact I was
looking to try it out as an equalizer on some GMSK signals but it seems
the make_isi_lookup in fsm_utils currently only supports one-dimensional
modulations. Am I right in assuming the I will need to extend this for a
GMSK signal? Or am I missing something?

Thanks for adding this to Gnuradio, its a really useful (and incredibly
flexible) addition.

Kind Regards,
Toby









___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Re: gnuradio trellis

2006-09-28 Thread Bob McGwier

Achilleas Anastasopoulos wrote:


Bob,

Let's make sure we are talking about the same thing before
we declare that we agree:

Problem 1: KNOWN CHANNEL.
In this case everything is quite straightforward, and all related
problems have been solved 20 years ago.

A) The receiver that minimizes SEQUENCE error probability is
essentially a whitened matched filter followed by Viterbi.

B) The receiver that minimizes SYMBOL error probability is
a whitened matched filter followed by a MAP symbol detector;
it is a bit more complicted than Viterbi (requires a forward and 
backward recursion), but of similar nature

(see the trellis_siso_f block in gr-trellis; that's what is doing!).

ANY other algorithm (including EM) is indeed suboptimal.

Problem 2: UNKNOWN channel.
Here the situation is getting a bit more complicated as we
have a problem of joint DETECTION and ESTIMATION.
The optimal solution is exponentially complex in the sequence length, so
it is of no practical interest. Over the last 15 years there have been
several proposals in solving this problem.
I won't go into that at all.



Which problem are you referring to?

From your reply I think you are referring to problem 1B.


I am indeed.

I think you are proposing a suboptimal version of symbol detection 
based on the EM algorithm. However, the optimal solution to this 
problem is known as well, as I mentioned before, and is implemented in 
gr-trellis

in the block trellis_siso_f.



This is great.   I did not know you had checked in the siso code in 
gr_trellis.  I am now more anxious to go study it more carefully.  I am 
glad I commented.



Thus the statement I personally believe that maximum likelihood 
sequence estimation is suboptimal in comparison to a more completely 
Bayesian approaching built upon computationally feasible 
implementations of the EM algorithm is wrong if it refers to problem 1A.

If it refers to problem 1B then it unclear why one would want to
implement the suboptimal EM if the optimal is known and available.
Of course complexity/performance tradeoff will determine the solution
to be implemeted in each practical scenario.

Achilleas




Thanks for your rapid response!  I think we might find it useful to have 
such a suboptimal version as a variant.  I find it quite useful in many 
problems where the complexity is an issue and the performance of the 
suboptimal implementation is completely adequate.


Bob

--
Robert W. McGwier, Ph.D.
Center for Communications Research
805 Bunn Drive
Princeton, NJ 08540
(609)-924-4600
(sig required by employer)




___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Re: gnuradio trellis

2006-09-28 Thread Anastasopoulos Achilleas





From your reply I think you are referring to problem 1B.


I am indeed.

This is great.   I did not know you had checked in the siso code in 
gr_trellis.  I am now more anxious to go study it more carefully.  I am glad 
I commented.


As a side note, this algorithm is the basis of all turbo-like receivers
that have appeared in the last 10 years. The idea is that when you have 
concatenated systems (eg, CC + interleaver + ISI) you want the inner 
decoder to provide NOT ONLY one sequence estimate, but reliability
information about each of the symbols, so that the outer decoder can use 
them as soft input information.

The trellis_siso block provides the optimal such solution, ie, the
most informative such symbol reliability Pr(x_k| y_1^N)
(the aposteriori probability about a specific input symbol based on the 
entire observation). The interesting thing is that this computation

has complexity linear in the sequence length and in the number of states,
and approximately twice that of Viterbi.

See the example test_turbo_equalization.py in 
gnuradio-examples/python/channel-coding to see how this is used

and the performance advantage it provides over one shot decoding.

Achilleas

PS: I am still working on the documentation of this part of gr_trellis.




___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


[Discuss-gnuradio] Re: gnuradio trellis

2006-09-27 Thread Anastasopoulos Achilleas

Oliver,

You are right:
Trellis implementation supports multi-dimensional constellations etc
(through the metric calculation block abstraction, etc), however,
in the examples and the supporting fsm_utils.py files
I have not included support for GMSK, and the automatic
generation of lookup tables for ISI channels is for-one dimensional 
modulations.

I think the extension should be straightforward and I'll be glad
to help you in this.

May I suggest you separate the task into two subproblems for reasons of 
usability by others:


1) GMSK sequence detection in AWGN channels
(which is a modulation with memory and in theory requires Viterbi
even in the absense of ISI),
and
2) GMSK equalization (ie, GMSK + ISI channel + noise - Viterbi)

For 1) a modification of test_tcm.py is required and hopefully
an automated way to project any given GMSK modulation to its
N-dimensional components; maybe a python implementation of
the Gram-Schmidt (QR decomposition) algorithm...

For 2) a modification of the test_viterbi_equalization.py or
test_viterbi_equalization1.py is required together with
generalizing the code in fsm_utils.py to generate the lookup table
for multi-dimensional modulations.

best,
Achilleas

On Wed, 27 Sep 2006, Toby Oliver wrote:


Achilleas,

I hope you don't mind me emailing you, but I have just been having a
look at your gnuradio trellis code which is very cool. In fact I was
looking to try it out as an equalizer on some GMSK signals but it seems
the make_isi_lookup in fsm_utils currently only supports one-dimensional
modulations. Am I right in assuming the I will need to extend this for a
GMSK signal? Or am I missing something?

Thanks for adding this to Gnuradio, its a really useful (and incredibly
flexible) addition.

Kind Regards,
Toby






___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


[Discuss-gnuradio] Re: gnuradio trellis

2006-09-27 Thread Toby Oliver
Achilleas,

Okay. I am primarily interested in the equalization for the time being,
but I can see it would seem to make a lot of sense to create the
sequence detection as well.

In terms of making the isi lookup table for multidimensional
modulations, whats the best way to go about it? Is there any published
literature on this that I could base it on?

Kind Regards,
Toby

Anastasopoulos Achilleas wrote:
 Oliver,

 You are right:
 Trellis implementation supports multi-dimensional constellations etc
 (through the metric calculation block abstraction, etc), however,
 in the examples and the supporting fsm_utils.py files
 I have not included support for GMSK, and the automatic
 generation of lookup tables for ISI channels is for-one dimensional
 modulations.
 I think the extension should be straightforward and I'll be glad
 to help you in this.

 May I suggest you separate the task into two subproblems for reasons
 of usability by others:

 1) GMSK sequence detection in AWGN channels
 (which is a modulation with memory and in theory requires Viterbi
 even in the absense of ISI),
 and
 2) GMSK equalization (ie, GMSK + ISI channel + noise - Viterbi)

 For 1) a modification of test_tcm.py is required and hopefully
 an automated way to project any given GMSK modulation to its
 N-dimensional components; maybe a python implementation of
 the Gram-Schmidt (QR decomposition) algorithm...

 For 2) a modification of the test_viterbi_equalization.py or
 test_viterbi_equalization1.py is required together with
 generalizing the code in fsm_utils.py to generate the lookup table
 for multi-dimensional modulations.

 best,
 Achilleas

 On Wed, 27 Sep 2006, Toby Oliver wrote:

 Achilleas,

 I hope you don't mind me emailing you, but I have just been having a
 look at your gnuradio trellis code which is very cool. In fact I was
 looking to try it out as an equalizer on some GMSK signals but it seems
 the make_isi_lookup in fsm_utils currently only supports one-dimensional
 modulations. Am I right in assuming the I will need to extend this for a
 GMSK signal? Or am I missing something?

 Thanks for adding this to Gnuradio, its a really useful (and incredibly
 flexible) addition.

 Kind Regards,
 Toby







___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio