Reply by Country_Chiel January 5, 20052005-01-05
"Paul Miller" <paul@fxtech.com> wrote in message
news:a8kgt0dg1e2pktnh9ljlrkhptsh3jtksc5@4ax.com...
> I've been looking for a modern, efficient Wiener filter implementation > written in C or C++, and I can't find anything very recent (or one that > actually works). I'd like one implemented on top of fftw if possible. > > Anyone got any pointers to one? > >
You could use LMS I suppose... Country chiel
Reply by David Gelbart January 3, 20052005-01-03
In article <a8kgt0dg1e2pktnh9ljlrkhptsh3jtksc5@4ax.com>,
Paul Miller  <paul@fxtech.com> wrote:
>I've been looking for a modern, efficient Wiener filter implementation >written in C or C++, and I can't find anything very recent (or one that >actually works). I'd like one implemented on top of fftw if possible. > >Anyone got any pointers to one?
My research group co-developed one for audio use; see the first entry in the list at http://www.icsi.berkeley.edu/Speech/papers/gelbart-ms/pointers/ It departs from pure Wiener filtering theory in several ways intended to improve performance. It is available to the public from us, under a license that does not allow commercial exploitation.
Reply by David Gelbart January 3, 20052005-01-03
In article <a8kgt0dg1e2pktnh9ljlrkhptsh3jtksc5@4ax.com>,
Paul Miller  <paul@fxtech.com> wrote:
>I've been looking for a modern, efficient Wiener filter implementation >written in C or C++, and I can't find anything very recent (or one that >actually works). I'd like one implemented on top of fftw if possible. > >Anyone got any pointers to one?
My research group co-developed one for audio use; see the first entry in the list at http://www.icsi.berkeley.edu/Speech/papers/gelbart-ms/pointers/ It departs from pure Wiener filtering theory in several ways intended to improve performance. It is available to the public from us, under a license that does not allow commercial exploitation.
Reply by Paul Miller January 3, 20052005-01-03
>> Anyone got any pointers to one? > >Although I can't directly give you the code, I've written such things >making use of the "Numerical Recipes in C" programs. Essentially, you >need to compute a couple correlation matrices (pretty simple) and call >a solver. I've used TOEPLZ from the Numerical Recipes with good >results.
I should have been more specific.I'm looking for a 2D implementation usable for image restoration. I'm familiar with generating the PSF, and then the basic concept of the filter, but as I said the implementations I have found our lacking. I've tried the one included with "Algorithms for Image Processing and Computer Vision" and it didn't work at all. But the FFT implementation there was pretty basic.
Reply by January 2, 20052005-01-02
Paul Miller wrote:
> I've been looking for a modern, efficient Wiener filter
implementation
> written in C or C++, and I can't find anything very recent (or one
that
> actually works). I'd like one implemented on top of fftw if possible.
> > Anyone got any pointers to one?
Although I can't directly give you the code, I've written such things making use of the "Numerical Recipes in C" programs. Essentially, you need to compute a couple correlation matrices (pretty simple) and call a solver. I've used TOEPLZ from the Numerical Recipes with good results. Jake
Reply by Rune Allnor January 2, 20052005-01-02
Paul Miller wrote:
> I've been looking for a modern, efficient Wiener filter
implementation
> written in C or C++, and I can't find anything very recent (or one
that
> actually works). I'd like one implemented on top of fftw if possible.
> > Anyone got any pointers to one?
I've probably got your question wrong, but a Wiener filter is basically a standard FIR/IIR filter that is designed from a certain type of specification. The Wiener filter is different from the "usual" filters in that its coefficients are computed from covariance matrixes that somehow characterize the signal and/or noise in question. Once the coefficients have been computed, they are used as any other filter. So you might want to ask for algorithms for designing Wiener filters. If so, try and find an implementation for the Singular Value Decomposition, SVD, as it is a fundamental algorithm for designing optimal linear filters. Rune
Reply by Paul Miller January 2, 20052005-01-02
I've been looking for a modern, efficient Wiener filter implementation
written in C or C++, and I can't find anything very recent (or one that
actually works). I'd like one implemented on top of fftw if possible. 

Anyone got any pointers to one?