Forums

Blind System Identification

Started by Greg Berchin January 17, 2007
Okay, so I'm trying to work my way through "Blind System Identification
and Channel Equalization of IIR Systems without Statistical
Information", by Bai and Fu; specifically "Algorithm 4.1".  Though the
nomenclature seems to be standard for multirate systems, it is
cumbersome.  But I think I've got a good handle on the technique, up to
the point just beyond equation (4.6), where it says:

.  "... as far as equalization is concerned, either G0(z) or G1(z) is
.  sufficient to recover the input because
.                  -1            -1
.  U0(z^(n+1)) =3D G0 (z)Y0(z) =3D G1 (z)Y1(z)"

In equation (4.6) they stated that:

.          beta0(z)          beta1(z)
.  G0(z) =3D --------, G1(z) =3D --------
.          alpha(z)          alpha(z)

And in the neighborhood of equation (4.5) they stated that:

   alpha(z) =3D 1 - a1z^(-1) - ... - anz^(-n)
   beta0(z) =3D B01z^(-1) + B02z^(-2) + ... + B0nz^(-n)
   beta1(z) =3D B11 + B12z^(-1) + ... + B1nz^(-(n-1))

Since it doesn't matter whether we use G0 or G1 to solve for U0, I
tried using G0:
.                  -1
.  U0(z^(n+1)) =3D G0 (z)Y0(z)

or:
.                alpha(z)
.  U0(z^(n+1)) =3D -------- Y0(z)
.                beta0(z)

For simplicity, define:
   U(z) =3D U0(z^(n+1))

then:
   U(z)=B7beta0(z) =3D Y0(z)=B7alpha(z)

U(z)=B7[B01z^(-1)+B02z^(-2)+...+B0nz^(-n)]=3DY0(z)=B7[1-a1z^(-1)-...-anz^(-=
n)]

so:

U(z)=B7B01z^(-1)=3DY0(z)=B7[1-a1z^(-1)-...-anz^(-n)]-U(z)=B7[B02z^(-2)+...+=
B0nz^(-n)]

Assuming causality, the time domain difference equation can be written
by inspection:

(B01)u(k-1)=3Dy0(k)-(a1)y0(k-1)-...-(an)y0(k-n)-(B02)u(k-2)-...-(B0n)u(k-n)

And this is causing me consternation: the system is anticipatory.  The
output value at PREVIOUS time "u(k-1)" is dependent upon the input
value at CURRENT time "y0(k)".  Also, if the same analysis is performed
using G1 instead of G0, a causal system results.  So either there is an
error in the paper or there is an error in my analysis of it; I'm not
certain which.

I suspect that the problem is in the definition of beta0:
   beta0(z) =3D B01z^(-1) + B02z^(-2) + ... + B0nz^(-n)

I think that it should be:
   beta0(z) =3D B01 + B02z^(-1) + ... + B0nz^(-(n-1))

Can anybody provide some insight into this for me?

Thanks,
Greg Berchin

"Greg Berchin" <gberchin@sentientscience.com> wrote in message
news:1169037311.788160.83490@v45g2000cwv.googlegroups.com...
Okay, so I'm trying to work my way through "Blind System Identification
and Channel Equalization of IIR Systems without Statistical
Information", by Bai and Fu; specifically "Algorithm 4.1".  Though the
nomenclature seems to be standard for multirate systems, it is
cumbersome.  But I think I've got a good handle on the technique, up to
the point just beyond equation (4.6), where it says:

.  "... as far as equalization is concerned, either G0(z) or G1(z) is
.  sufficient to recover the input because
.                  -1            -1
.  U0(z^(n+1)) = G0 (z)Y0(z) = G1 (z)Y1(z)"

In equation (4.6) they stated that:

.          beta0(z)          beta1(z)
.  G0(z) = --------, G1(z) = --------
.          alpha(z)          alpha(z)

And in the neighborhood of equation (4.5) they stated that:

   alpha(z) = 1 - a1z^(-1) - ... - anz^(-n)
   beta0(z) = B01z^(-1) + B02z^(-2) + ... + B0nz^(-n)
   beta1(z) = B11 + B12z^(-1) + ... + B1nz^(-(n-1))

Since it doesn't matter whether we use G0 or G1 to solve for U0, I
tried using G0:
.                  -1
.  U0(z^(n+1)) = G0 (z)Y0(z)

or:
.                alpha(z)
.  U0(z^(n+1)) = -------- Y0(z)
.                beta0(z)

For simplicity, define:
   U(z) = U0(z^(n+1))

then:
   U(z)&#2013266103;beta0(z) = Y0(z)&#2013266103;alpha(z)

U(z)&#2013266103;[B01z^(-1)+B02z^(-2)+...+B0nz^(-n)]=Y0(z)&#2013266103;[1-a1z^(-1)-...-anz^(-n)]

so:

U(z)&#2013266103;B01z^(-1)=Y0(z)&#2013266103;[1-a1z^(-1)-...-anz^(-n)]-U(z)&#2013266103;[B02z^(-2)+...+B0nz^(-n)
]

Assuming causality, the time domain difference equation can be written
by inspection:

(B01)u(k-1)=y0(k)-(a1)y0(k-1)-...-(an)y0(k-n)-(B02)u(k-2)-...-(B0n)u(k-n)

Would have thought you can view this as:

y is your output for a control signal at a previous time

control action dosn't appear instantly at the output

And this is causing me consternation: the system is anticipatory.  The
output value at PREVIOUS time "u(k-1)" is dependent upon the input
value at CURRENT time "y0(k)".  Also, if the same analysis is performed
using G1 instead of G0, a causal system results.  So either there is an
error in the paper or there is an error in my analysis of it; I'm not
certain which.

I suspect that the problem is in the definition of beta0:
   beta0(z) = B01z^(-1) + B02z^(-2) + ... + B0nz^(-n)

I think that it should be:
   beta0(z) = B01 + B02z^(-1) + ... + B0nz^(-(n-1))

Can anybody provide some insight into this for me?

Thanks,
Greg Berchin



On Mon, 22 Jan 2007 00:48:37 GMT, "Setanta" <a@a.aaa> wrote:

>Would have thought you can view this as: > >y is your output for a control signal at a previous time > >control action dosn't appear instantly at the output
This is an inverse system, so y0() is the input and I'm solving for u(). Greg
"Greg Berchin" <gberchin@comicast.net> wrote in message
news:7s38r2l4tqh2nlr2rqkvipa14i3pjpcjc6@4ax.com...
> On Mon, 22 Jan 2007 00:48:37 GMT, "Setanta" <a@a.aaa> wrote: > > >Would have thought you can view this as: > > > >y is your output for a control signal at a previous time > > > >control action dosn't appear instantly at the output > > This is an inverse system, so y0() is the input and I'm solving for u(). > > Greg
This gives a good view of what the MA paramaters should look like http://darbelofflab.mit.edu/ProgressReports/HomeAutomation/Report3-2/Report% 202.pdf Would be interested in looking at the data Setanta
Hello Greg,

I have this in a nonlinear analysis book for a control function, but in
your context think of a fft, run the inverse. 
On 19 Okt, 02:48, "coderanger" <godd...@inbox.com> wrote:
> Hello Greg, > > I have this in a nonlinear analysis book for a control function, but in > your context think of a fft, run the inverse.
I would have paid meticulous attention to the details of the notatiopnal simplification introducing U(z) instead of U(z^(n+1)). If that change is not accounted for correctly, you might just end up with one or two anticausal terms. Rune
On Oct 19, 8:08 am, Rune Allnor <all...@tele.ntnu.no> wrote:

> I would have paid meticulous attention to the details of the > notatiopnal simplification introducing U(z) instead of > U(z^(n+1)). If that change is not accounted for correctly, > you might just end up with one or two anticausal terms.
It's been quite a while since I looked at this, but I recall experimenting with several formulations containing varying amounts of causal and anticausal delay (where causality is referenced to the inverse system). Basically, I found that any formulation that differed from the one in the original paper either led to a matrix that was not of full-rank, and therefore could not be inverted, or to an inverse system in which one or more of the leading coefficients (corresponding to anticausal terms) was zero. The project ended before I could sort through all of the mathematics behind this, but my conclusion was that the authors used the specific formulation described in their paper because it was the only one that actually worked. Greg