Example Code

Cross-Coupled Kalman Filters

Code and Documents

Attachment

Unrar the file kalman_cross.rar into mixture.wav and Cross.Kalman.llb

This program uses 2 cross-coupled Kalman filters to separate a mixture of two speech signals

which have been mixed via an unknown linear mixing process. The technique is known as blind

source separation and in the past two cross-coupled LMS algorithms have been used. Here I am trying

Kalman filters as the parameter (weight) estimators. The separated outputs are played via teh sound card

1 channel at a time, so have the speakers on when running.

Q0,R are the process and additive noise variances, Po is the initial (diagonal) error covariance matrix.

There are no references for this one except that you could look up teh cross-coupled LMS papers as the nearest

in theory. Use the attached stereo wav file mixture.wav as a test file.

Same idea but with using LMS is in this oldish  reference and many more! G. Mirchandani, R. L. Zinser, Jr., and J. B. Evans,

"A new adaptive noise cancellation scheme in the presence of crosstalk [speech signals],

" Circuits and Systems II: Analog and Digital Signal Processing,

IEEE Transactions on, vol. 39, pp. 681-694, 1992.

Example code from the Example Code Exchange in the NI Community is licensed with the MIT license.

Comments
Tropo
Member
Member
on
Why do you use reentrant Normalize VI's? The contain no memory, so that is superfluous. And why do you convert the in put into sgl, wheras right after those are converted into dbl. Makes no sense. Just delete the sgl converters.
Contributors