0
$\begingroup$

I'm currently working with a dataset of $5000$ pulses of $N=15000$ samples each. I managed to implement the RLS algorithms with a FIR M-Tap filter such that $M\leq 15000$ ($150$ seems to achieve the best results).

I would like to initialise the coefficients of my filter to the values achieved via Wiener (optimal filter of $N$ coefficients).

$\endgroup$
  • $\begingroup$ It is not really clear what you are asking, and I don't think you intend to have N (15000) coefficients for your solution? In this post I used a Wiener filter to compensate for a sound response which may be similar or offer further insight for what you are trying to do? (Or lead to more specific questions): dsp.stackexchange.com/questions/31318/… $\endgroup$ – Dan Boschen Mar 16 '17 at 11:46
  • $\begingroup$ Thanks for your reply, and sorry if it's not very clear... my understanding is that a weiner filter requires a desired output, with which the filtered output is compared to create an errror signal. Given I'm working with pulses that have 15000 samples each, my desired output is set to be a square pulse of 15000 samples. Therefore yes, I kind of expect to have 15000 coefficients. This is because each sample of the pulse is considered to be a random variable, as 5000 pulses are fed into the algorithm. $\endgroup$ – Marco Datola Mar 16 '17 at 12:35
  • $\begingroup$ The Wiener filter results from a overdetermined solution so you will not have 15000 coefficients in the end, but can use all 15000 samples to develop the solution for the filter. Review the link I gave you as that should clear that up (or where I might be confused with your question). Each coefficient in the final filter has an error related to the error of the input; and those errors accumulate at the output based on the filter length; that is why you do NOT want 15,000 coefficients! $\endgroup$ – Dan Boschen Mar 16 '17 at 13:16
0
$\begingroup$

Please see link here on how to implement the Wiener Filter and a simple explanation of its operation in terms of deconvolution (described as an LMS filter using the Wiener-Hopf equations, but is a Wiener Filter implementation. It should be noted that the true Wiener filter is an MMSE solution which the LMS solution will converge to).

Compensating Loudspeaker frequency response in an audio signal

$\endgroup$
  • $\begingroup$ If I understand correctly the solution presented in the link you provided should be then utilised in an Adaptive Filter (such as LMS or RLS). The adaptive filter will converge to the Wiener coefficients. $\endgroup$ – Marco Datola Mar 16 '17 at 15:07
  • $\begingroup$ Yes, exactly. Also note in the link the guidance on how many coefficients you should use to optimize the SNR of the resulting signal. Let us know how it works out for you. $\endgroup$ – Dan Boschen Mar 16 '17 at 15:09
  • $\begingroup$ Ok, Perfect, thanks so much for your help! The only thing that confuses me is the way in which you build the autocorrelation matrix. Do you think building such (autocorrelation) matrix using a vector (15000 samples) where each sample is the average (across all 5000 pulses) of the values pulses have for that sample, is a good idea to evaluate both Wiener coefficients AND initialise the inverse autocorrelation matrix for the RLS algorithm? Also, do you evaluate the number of taps doubling the index at which the cross correlation between desired and measured signals is at highest value? $\endgroup$ – Marco Datola Mar 16 '17 at 15:37
  • $\begingroup$ Thanks for pointing out the confusion; if you are referring to the graphic and background information that is just for the purpose of understanding why an autocorreation is done at all. Refer to the actual code in the response for how I would do it. My answer is in regards to the Wiener Filter using the Wiener-Hopf equations, not the recursive RLS algorithm; with regards to that question I would think that would be a great starting point but not certain if the RLS would continue to offer further improvement (interesting question). $\endgroup$ – Dan Boschen Mar 16 '17 at 15:43
  • $\begingroup$ My first inclination is if you have the Wiener coefficients, then you are done! Would be interested in your results if you experiment with that. But yes for your last question in your last comment, you would evaluate the number of taps doubling the index where the cross correlation is strongest as you want the dominant tap of the filter to be in the center. $\endgroup$ – Dan Boschen Mar 16 '17 at 15:46

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.