Hi,

I am trying to use the GLFSR source in GRC with PN correlator for system

identification. What I want is to generate a sequence from the GLFSR

source and to get an estimate when the PN correlator uses the same

sequence and to get zero when the sequences generated by the GLFSR and

the PN correlator are totally orthogonal for any delay.

To make this, I need to know how to generate two orthogonal PN sequences

from two different GLFSR blocks. I tried to use different seed

parameters, but I saw that the two sequences are still correlated for

some delay (shift). Anyone who has done this before ? In short, how can

I generate two PN sequences which are orthogonal for any delay ?

brex

On Oct 12, 2011, at 15:28, godana ebrahim [email protected] wrote:

I am trying to use the GLFSR source in GRC with PN correlator for system

identification. What I want is to generate a sequence from the GLFSR

source

and to get an estimate when the PN correlator uses the same sequence and

to

get zero when the sequences generated by the GLFSR and the PN correlator

are

totally orthogonal for any delay.

To make this, I need to know how to generate two orthogonal PN

sequences

from two different GLFSR blocks. I tried to use different seed

parameters,

but I saw that the two sequences are still correlated for some delay

(shift). Anyone who has done this before ? In short, how can I generate

two

PN sequences which are orthogonal for any delay ?

This block optionally takes both a seed and mask parameter. The seed

provides the initial contents of the LFSR, and the mask represents the

generator polynomial feedback taps.

The feedback taps are the thing that creates different sequences, while

the

seed (as you have discovered) determines the phase of the generated

sequence.

The block has a set of default feedback taps for each polynomial degree,

which are known to create maximal-length PN sequences:

http://gnuradio.org/cgit/gnuradio.git/tree/gnuradio-core/src/lib/general/gri_glfsr.cc#n26

Finally, to answer your question, in order for two different GLFSR

blocks to

generate orthogonal sequences, you’ll have to specify your own

polynomial

mask. A good place to learn about maximal-length sequences with

references

to different polynomials:

http://en.wikipedia.org/wiki/Maximum_length_sequence

Johnathan

I tried a simple setup to see if specifying the mask in GRC does things

as expected (as you told me). I took two GLFSR blocks. Both blocks are

set to the same degree (6) and the same seed. The mask of the first

block is set to 0; so that the built-in mask of degree 6 (which has an

integer value of 18) is used. For the other block, I set the mask to 18

in GRC. These two blocks are expected to give the same output sequence.

However, they did not. When I set the mask of both blocks to 0, they

give the same output. So, what is wrong ? Something I am missing here ?

brex

I tried a simple setup to see if specifying the mask in GRC does things

as expected (as you told me). I took two GLFSR blocks. Both blocks are

set to the same degree (6) and the same seed. The mask of the first

block is set to 0; so that the built-in mask of degree 6 (which has an

integer value of 18) is used. For the other block, I set the mask to 18

in GRC. These two blocks are expected to give the same output sequence.

However, they did not. When I set the mask of both blocks to 0, they

give the same output. So, what is wrong ? Something I am missing here ?

brex

I am trying to use the GLFSR source in GRC with PN correlator for system

identification. What I want is to generate a sequence from the GLFSR

source and to get an estimate when the PN correlator uses the same

sequence and to get zero when the sequences generated by the GLFSR and

the PN correlator are totally orthogonal for any delay.

To make this, I need to know how to generate two orthogonal PN sequences from two

different GLFSR blocks. I tried to use different seed parameters, but I saw that

the two sequences are still correlated for some delay (shift). Anyone who has done

this before ? In short, how can I generate two PN sequences which are orthogonal

for any delay ?

This block optionally takes both a seed and mask parameter. The seed

provides the initial contents of the LFSR, and the mask represents the

generator polynomial feedback taps.

The feedback taps are the thing that creates different sequences, while

the seed (as you have discovered) determines the phase of the generated

sequence.

The block has a set of default feedback taps for each polynomial degree,

which are known to create maximal-length PN sequences:

http://gnuradio.org/cgit/gnuradio.git/tree/gnuradio-core/src/lib/general/gri_glfsr.cc#n26

Finally, to answer your question, in order for two different GLFSR

blocks to generate orthogonal sequences, you’ll have to specify your own

polynomial mask. A good place to learn about maximal-length sequences

with references to different polynomials:

http://en.wikipedia.org/wiki/Maximum_length_sequence

Johnathan