Sign in

username:

password:



Not a member?

Search audiodsp



Search tips

Subscribe to audiodsp



audiodsp by Keywords

AAC | ADPCM | Convolution | DAFx | FFT | IIR | Mixer | MP3 | MPEG | MPEG-4


Discussion Groups

Discussion Groups | Audio Signal Processing | Filter to remove noise from a corrupted song

Technical discussions related to Audio Signal Processing (digital effects, acoustics, noise reduction, musical signal processing, etc).

  

Post a new Thread

Filter to remove noise from a corrupted song - Farah Rasheed - Nov 18 8:28:45 2007



Hi everyone,

I have a question about filtering a noise signal in MATLAB. I have a
corrupted sound file and I loaded it in MATLAB and plotted the FFT of
the signal. From the FFT, I found that there are two peaks present at
+ & - 44.04kHz at a magnitude of 2.029*10^5.

Now, I need to design a filter to filter out the noise in the signal.
I know that in MATLAB, I need to first define the transfer function of
the filter and then filter it as follows:

[b,a] = zp2tf(z, p, k);
filtered_audio = filter(b, a, corrupted_audio);

The problem I am finding difficult to analyze is that how do I figure
out the poles and zeros of the transfer function of the filter? Since
the peak of the signal from its FFT plot is at 44.04 kHz, is that the
pole of the transfer function of the filter? And what about the zeros
for the filter? I'm confused regarding this. I also found out that the
sampling frequency of the corrupted audio signal is 44.1 kHz. 

Could someone give me a few hints as to how I go about figuring the
filter's transfer function?

Thanks a lot,



(You need to be a member of audiodsp -- send a blank email to audiodsp-subscribe@yahoogroups.com )

Re: Filter to remove noise from a corrupted song - Holz...@Foerstergroup.de - Nov 19 9:17:50 2007

>... From the FFT, I found that there are two peaks present at
>+ & - 44.04kHz at a magnitude of 2.029*10^5.
>... I also found out that the sampling frequency of the corrupted audio 
> signal is 44.1 kHz. 
>
If the sampling frequency is 44.1kHz, the range of your signal is within a range of
(0..22.05kHz), practically it should be limited to a smaller range.
It is quite normal that you see lines at 22.05kHz and 44.1kHz depending on your FFT, and should
not cause problems or "noise" when playing the sound.
Therefore, it depends on what you want to do, if filtering makes sense here.
At least I cannot see the reason. 
Bernhard



(You need to be a member of audiodsp -- send a blank email to audiodsp-subscribe@yahoogroups.com )

Re: Filter to remove noise from a corrupted song - Rahul Rahul - Nov 20 10:04:31 2007

Filtering can also be done by using a low pass filter with cutoff as fs/2
The MATLAB command butter or FIR1 can be used to get the filter coefficients and using the
filter command the filtering can be achieved.

Pls lemme know how it comes out

Farah Rasheed <f...@gmail.com> wrote:                               Hi everyone,
 
 I have a question about filtering a noise signal in MATLAB. I have a
 corrupted sound file and I loaded it in MATLAB and plotted the FFT of
 the signal. From the FFT, I found that there are two peaks present at
 + & - 44.04kHz at a magnitude of 2.029*10^5.
 
 Now, I need to design a filter to filter out the noise in the signal.
 I know that in MATLAB, I need to first define the transfer function of
 the filter and then filter it as follows:
 
 [b,a] = zp2tf(z, p, k);
 filtered_audio = filter(b, a, corrupted_audio);
 
 The problem I am finding difficult to analyze is that how do I figure
 out the poles and zeros of the transfer function of the filter? Since
 the peak of the signal from its FFT plot is at 44.04 kHz, is that the
 pole of the transfer function of the filter? And what about the zeros
 for the filter? I'm confused regarding this. I also found out that the
 sampling frequency of the corrupted audio signal is 44.1 kHz. 
 
 Could someone give me a few hints as to how I go about figuring the
 filter's transfer function?
 
 Thanks a lot,



(You need to be a member of audiodsp -- send a blank email to audiodsp-subscribe@yahoogroups.com )