DSPRelated.com
Forums

Amazing PRBS

Started by joon...@jippii.fi March 24, 2007
This question is not a real problem. It is just something which makes my head so confused and I really need a relief :)

I tried to get a frequency response of an unknown system using its input-output-data. Input-data is PRBS-signal. It worked really good. My PRBS was length of 2000 and I used 1 period. I obtained the frequency response with FFT(output,one period)/FFT(input,one period). What makes me confused is that why the response is like crap if I use (for instance) only 0.8 period for input and 0.8 period for output (and divide the FFTs).

If I cut 1500 bits from 2000 bits PRBS and use FFT(output,one period)/FFT(intput,one period)I'll get a good result. Why the result is now good but not if use 2000 bits and cut 1500/2000 from input and 1500/2000 from output and use FFT(out)/FFT(in)?
Did you consider the frequency spectrum of the unknown system. When you are considering only some portion of the time-domain signal for interrogation, it is obvious that the frequency bands over which the scan is performed is varying. And based on the length of the FFT, the frequency spacing in the frequency domain also changes. So, when a system identification is performed, the frequency spectrum over which the system responds well and appropriate length for FFT should be considered.
regards,

Venkata S Telasula

j...@jippii.fi wrote: This question is not a real problem. It is just something which makes my head so confused and I really need a relief :)

I tried to get a frequency response of an unknown system using its input-output-data. Input-data is PRBS-signal. It worked really good. My PRBS was length of 2000 and I used 1 period. I obtained the frequency response with FFT(output,one period)/FFT(input,one period). What makes me confused is that why the response is like crap if I use (for instance) only 0.8 period for input and 0.8 period for output (and divide the FFTs).

If I cut 1500 bits from 2000 bits PRBS and use FFT(output,one period)/FFT(intput,one period)I'll get a good result. Why the result is now good but not if use 2000 bits and cut 1500/2000 from input and 1500/2000 from output and use FFT(out)/FFT(in)?
Joonas-

> This question is not a real problem. It is just something which makes my head
> so confused and I really need a relief :)
>
> I tried to get a frequency response of an unknown system using its
> input-output-data. Input-data is PRBS-signal. It worked really good. My PRBS
> was length of 2000 and I used 1 period. I obtained the frequency response
> with FFT(output,one period)/FFT(input,one period). What makes me confused
> is that why the response is like crap if I use (for instance) only 0.8
> period for input and 0.8 period for output (and divide the FFTs).
>
> If I cut 1500 bits from 2000 bits PRBS and use
> FFT(output,one period)/FFT(intput,one period)I'll get a good result. Why
> the result is now good but not if use 2000 bits and cut 1500/2000 from input
> and 1500/2000 from output and use FFT(out)/FFT(in)?

I'm guessing, but if PRBS signals are like MLS signals, then they have specific.
defined "lengths", in which the bit sequence is unique and does not repeat. For
example MLS sequences are typically a power of 2 minus one, e.g. 16383, 65535, etc.
The further the MLS length is away from one of these naturally defined values, the
more inaccurate are the cross-correlation results. The worst-case is a length
halfway between 2 values.

-Jeff
I guess you take the first 1500 bits of the 2000 bits?
Try to take the last 1500 bits and try again.
--- j...@jippii.fiд

> This question is not a real problem. It is just
> something which makes my head so confused and I
> really need a relief :)
>
> I tried to get a frequency response of an unknown
> system using its input-output-data. Input-data is
> PRBS-signal. It worked really good. My PRBS was
> length of 2000 and I used 1 period. I obtained the
> frequency response with FFT(output,one
> period)/FFT(input,one period). What makes me
> confused is that why the response is like crap if I
> use (for instance) only 0.8 period for input and 0.8
> period for output (and divide the FFTs).
>
> If I cut 1500 bits from 2000 bits PRBS and use
> FFT(output,one period)/FFT(intput,one period)I'll
> get a good result. Why the result is now good but
> not if use 2000 bits and cut 1500/2000 from input
> and 1500/2000 from output and use FFT(out)/FFT(in)?
>
This is the basis of my guess.

Denote the system as H where H is an 2000x1 vector
with its n-th element equal to the n-th sample of the
impulse response of the system. Denote the output
sequence as Y, a 2000x1 vector with its n-th element
being the (1999-n) sample of the output signal. Let X
be the 2000x2000 convolution matrix. We can write
Y = XH.
By applying 2000 point DFT to left and right, let F be
the 2000x2000 DFT matrix
FY = FXF^-1FH.
As FXF^-1 is diagonal dominant (X is teopoliz), H can
be approximately be calculated as
H approx D^-1FY
where D approx FXF^-1.

Now let's remove the last 500 samples of the input and
the output. We have
Y1 = X1H
where Y1 is a 1500x1 vector consisting of the last
1500 elements of the vector Y (or equivalently, the
first 1500 samples of output signal) and X1 is a
1500x2000 matrix consisting of the last 1500 rows of
X. Partition X1 and H as
X1 = [X11 X12] where X11 is 500x500 consisting of the
first 500 columns of X1
H = [H11; H12] where H11 is 500x1 consisting of the
first 500 elements of H.
Y1 = X11H11 + X12H12.
If your system has significant responses in both parts
of H11 and H12, or say if your system has a heavy tail
(exceeding 500 samples), apply DFT on the above
equation obviously does not give you any good result.
On the other hand, if the last 500 bits of the input
and the output sequences are removed, we will have
Y2 = X21H21 + X22H22
where X22 is 500x500 consisting of the last 500
columns of X1. As a stable system generally have a
decaying tail approching zero, we can reasonbly hope
that H22 approx 0 and ignore the second term on the
right.
--- Huo Jiaquan д

> I guess you take the first 1500 bits of the 2000
> bits?
> Try to take the last 1500 bits and try again.
> --- j...@jippii.fiд
>
> > This question is not a real problem. It is just
> > something which makes my head so confused and I
> > really need a relief :)
> >
> > I tried to get a frequency response of an unknown
> > system using its input-output-data. Input-data is
> > PRBS-signal. It worked really good. My PRBS was
> > length of 2000 and I used 1 period. I obtained the
> > frequency response with FFT(output,one
> > period)/FFT(input,one period). What makes me
> > confused is that why the response is like crap if
> I
> > use (for instance) only 0.8 period for input and
> 0.8
> > period for output (and divide the FFTs).
> >
> > If I cut 1500 bits from 2000 bits PRBS and use
> > FFT(output,one period)/FFT(intput,one period)I'll
> > get a good result. Why the result is now good but
> > not if use 2000 bits and cut 1500/2000 from input
> > and 1500/2000 from output and use
> FFT(out)/FFT(in)?
>