Solving wiener hopf equation for optimal filter coefficients
45 views (last 30 days)
Show older comments
Hello @all!
I hope you can help me about my problem. I coded some program to estimate the filter-coefficients of an unknown system, e.g. that has 6 filter-coefficients. There are a lot of algorithms to estimate this coefficients like LMS and whatever.
But now, I would like to get the optimal coefficients through solving the wiener hopf equation. That works with an estimate of the autocorrelation-matrix (e.g. i would get it through corrmtx in MATLAB) and the cross-correlation-vector. For getting the cross-correlation vector I must use "xcorr".
And there, there is my question about: Over how many lags do i have to use xcorr? I've got a white noise signal as input for my unknown system. When I chose my lag as same as number of filter-coefficients i got a 6x6 autocorrelation matrix and a 6 length cross-correlation vector. When I use them in the wiener hopf equation I got not the optimal filter coefficients...
0 Comments
Answers (3)
Pourya Alinezhad
on 30 Jun 2013
Edited: Pourya Alinezhad
on 30 Jun 2013
the problem you are facing is how to choose the length of the filter M. in the absence of a priori information ,we compute the optimal coefficients ,starting from a small reasonable number.As you increase the number,you check the MMSE (minimum mean square error) ,and if it's value is small enough ,e.g,MMSE<0.01, we accept the corresponding number of the coefficients. :)
1 Comment
Pourya Alinezhad
on 30 Jun 2013
Edited: Pourya Alinezhad
on 30 Jun 2013
also notice that length of X(t) (input to filter) is assumed to be infinite.but you have to provide enough data at input. obviously with a 6 tap filter you will have first output signal with 6 input samples. for more info take a look at "Adaptive_Filtering_Matlab_Poularikas" chapter 4 :wiener filters you can also find good information in "Adaptive filters theory and applications" by farhang-broujeny.
Randy82
on 30 Jun 2013
4 Comments
Pourya Alinezhad
on 1 Jul 2013
exactly.and if you choose lags=7 then one of them will be zero. if you set lags=5 then it will be an estimate of the main system.
Randy82
on 30 Jun 2013
2 Comments
Pourya Alinezhad
on 30 Jun 2013
Edited: Pourya Alinezhad
on 1 Jul 2013
for asamplebiasedautoc function you can use what you mentioned:xcorr(x,x,'biased') . it will work correctly as you can find in page 25 of the aforesaid book.
Pourya Alinezhad
on 30 Jun 2013
and we just use 19 and 20 element because we have tow tap weights.... w=R/rdx; MATRIX DIMINUTIONS AND SIZES MUST AGREE.
See Also
Categories
Find more on Linear Prediction in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!