Hi,

I'm currently working on my bachelors thesis. I examine the noise reduction
performance of the wiener filter in various transform domains.

I began with the FFT and the KLT (Karhunen–Loève Transform) domain.
For each block I transform the block with the fft/klt and then compute the
filter coefficients, filter the signal, inverse transform and then write it
out.

My problem is now that I get some "noise" at the output signal (I'm sorry that I
can't describte that in a better way) and I don't now where that comes from.

I'm not very familiar with effects that are possible but maybe you are. I upped
it here:

http://www.loaditup.de/504774.html (hope the link works)

It would be very nice of you if you could download the file, listen to it and
tell me if you have heard something like that before ;)

The input signal is a 10sec speech signal with 16kHz sampling rate.

Every block is of length 32, overlap is 50% and I use a hann window.

Is the noise maybe caused by the short blocklength ? If I use a bigger length it
is not so intense any more - but still there.

I would be very happe if you could help me with that. If you need more
information please feel free to ask ;)

Thank,

Hendrik

# need help - Wiener filter

Started by ●June 9, 2010

Reply by ●July 5, 20102010-07-05

On Thu, Jun 10, 2010 at 2:02 AM, wrote:

> Hi,

> I'm currently working on my bachelors thesis. I examine the noise reduction

> performance of the wiener filter in various transform domains.

What are the input files to your program? How do you get an estimate of

noise? Are you following any reference paper/text ?

> I began with the FFT and the KLT (KarhunenLoe Transform) domain. For

> each block I transform the block with the fft/klt and then compute the

> filter coefficients, filter the signal, inverse transform and then write it

> out.

>

> My problem is now that I get some "noise" at the output signal (I'm sorry

> that I can't describte that in a better way) and I don't now where that

> comes from.

>

> I'm not very familiar with effects that are possible but maybe you are. I

> upped it here:

> http://www.loaditup.de/504774.html (hope the link works)

Link doesn't work for me.

> It would be very nice of you if you could download the file, listen to it

> and tell me if you have heard something like that before ;)

>

> The input signal is a 10sec speech signal with 16kHz sampling rate.

> Every block is of length 32, overlap is 50% and I use a hann window.

Generally for speech the window size should be 20 - 30 msecs, so choose

block-length accordingly.

> Hi,

> I'm currently working on my bachelors thesis. I examine the noise reduction

> performance of the wiener filter in various transform domains.

What are the input files to your program? How do you get an estimate of

noise? Are you following any reference paper/text ?

> I began with the FFT and the KLT (KarhunenLoe Transform) domain. For

> each block I transform the block with the fft/klt and then compute the

> filter coefficients, filter the signal, inverse transform and then write it

> out.

>

> My problem is now that I get some "noise" at the output signal (I'm sorry

> that I can't describte that in a better way) and I don't now where that

> comes from.

>

> I'm not very familiar with effects that are possible but maybe you are. I

> upped it here:

> http://www.loaditup.de/504774.html (hope the link works)

Link doesn't work for me.

> It would be very nice of you if you could download the file, listen to it

> and tell me if you have heard something like that before ;)

>

> The input signal is a 10sec speech signal with 16kHz sampling rate.

> Every block is of length 32, overlap is 50% and I use a hann window.

Generally for speech the window size should be 20 - 30 msecs, so choose

block-length accordingly.

Reply by ●July 12, 20102010-07-12

Hi,

Unfortunately, the link doesn't work for me either. Anyway, I think I know

what your problem is.

The Wiener filter adaptively calculates the coefficients of a RIF or IIR

filter (I don't know which one are you using). Anyway, did you pay attention

to phase? At every block you filter, the phase characteristic of your FIR or

IIR filter is different, and the result is that your output file is

distorted.

I worked with some speech signals I have recorded myself and I have added

some simulated noise (rand and randn in MATLAB), and some real noise (what I

have recorded in traffic, in a hall and in the bus). Before I handled the

phases, my result was so distorted, that output noise was bigger than input.

You need to see that the filtered components are passed through an all-pass

filter such that the phase shifts are corrected.

Take a look on the mathworks homepage. They have a very good Wiener filter

example, and it is useful to understand the main points.

Regarding the SNR, I have estimated it as follows. I compute the maximum

power (that is signal+noise) and the noise power, and teh SNR is

20lg(Pmax/Pnoise).

Hope this was of any help. If you have further questions and I could help

you, then just let me know.

Paul

Hi,

>I'm currently working on my bachelors thesis. I examine the noise reduction performance of the wiener filter in various transform domains.

>

>I began with the FFT and the KLT (Karhunen–Loève Transform) domain. For each block I transform the block with the fft/klt and then compute the filter coefficients, filter the signal, inverse transform and then write it out.

>

>My problem is now that I get some "noise" at the output signal (I'm sorry that I can't describte that in a better way) and I don't now where that comes from.

>

>I'm not very familiar with effects that are possible but maybe you are. I upped it here:

>http://www.loaditup.de/504774.html (hope the link works)

>

>It would be very nice of you if you could download the file, listen to it and tell me if you have heard something like that before ;)

>

>The input signal is a 10sec speech signal with 16kHz sampling rate.

>Every block is of length 32, overlap is 50% and I use a hann window.

>

>Is the noise maybe caused by the short blocklength ? If I use a bigger length it is not so intense any more - but still there.

>

>I would be very happe if you could help me with that. If you need more information please feel free to ask ;)

>

>Thank,

>Hendrik

Unfortunately, the link doesn't work for me either. Anyway, I think I know

what your problem is.

The Wiener filter adaptively calculates the coefficients of a RIF or IIR

filter (I don't know which one are you using). Anyway, did you pay attention

to phase? At every block you filter, the phase characteristic of your FIR or

IIR filter is different, and the result is that your output file is

distorted.

I worked with some speech signals I have recorded myself and I have added

some simulated noise (rand and randn in MATLAB), and some real noise (what I

have recorded in traffic, in a hall and in the bus). Before I handled the

phases, my result was so distorted, that output noise was bigger than input.

You need to see that the filtered components are passed through an all-pass

filter such that the phase shifts are corrected.

Take a look on the mathworks homepage. They have a very good Wiener filter

example, and it is useful to understand the main points.

Regarding the SNR, I have estimated it as follows. I compute the maximum

power (that is signal+noise) and the noise power, and teh SNR is

20lg(Pmax/Pnoise).

Hope this was of any help. If you have further questions and I could help

you, then just let me know.

Paul

Hi,

>I'm currently working on my bachelors thesis. I examine the noise reduction performance of the wiener filter in various transform domains.

>

>I began with the FFT and the KLT (Karhunen–Loève Transform) domain. For each block I transform the block with the fft/klt and then compute the filter coefficients, filter the signal, inverse transform and then write it out.

>

>My problem is now that I get some "noise" at the output signal (I'm sorry that I can't describte that in a better way) and I don't now where that comes from.

>

>I'm not very familiar with effects that are possible but maybe you are. I upped it here:

>http://www.loaditup.de/504774.html (hope the link works)

>

>It would be very nice of you if you could download the file, listen to it and tell me if you have heard something like that before ;)

>

>The input signal is a 10sec speech signal with 16kHz sampling rate.

>Every block is of length 32, overlap is 50% and I use a hann window.

>

>Is the noise maybe caused by the short blocklength ? If I use a bigger length it is not so intense any more - but still there.

>

>I would be very happe if you could help me with that. If you need more information please feel free to ask ;)

>

>Thank,

>Hendrik