"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?