Thread Subject: Separated the noise

Subject: Separated the noise

From: Muhammad

Date: 26 Dec, 2008 04:13:02

Message: 1 of 6

dear who considering


i write my simple code under my simple information of matlab function
and post the code in order to benefit other beginner
thanks
I have a problem and I hope any help for me

how to separated the original signal from its noise.

I have a wave(.wav)
I blend it with noise.
my listing program :
y=wavread(open.wav);
spect=abs(fft(y,1024));
frek= linspace(0,22050,512)
plot(frek,spect(1:512));
% generate and mix the noise.
open_noise=agwn(y,20);

Thank you.

Subject: Separated the noise

From: ImageAnalyst

Date: 26 Dec, 2008 04:42:47

Message: 2 of 6

On Dec 25, 11:13=A0pm, "Muhammad " <fahrudin_fis...@yahoo.com> wrote:
> dear who considering
>
> i write my simple code under my simple information of matlab function
> and post the code in order to benefit other beginner
> thanks
> I have a problem and I hope any help for me
>
> how to separated the original signal from its noise.
>
> I have a =A0wave(.wav)
> I blend it with noise.
> my listing program :
> y=3Dwavread(open.wav);
> spect=3Dabs(fft(y,1024));
> frek=3D linspace(0,22050,512)
> plot(frek,spect(1:512));
> % generate and mix the noise.
> open_noise=3Dagwn(y,20);
>
> Thank you.

-----------------------------------------------
Muhammed:
I don't know the function agwn(). What is it?
You could add the noise to your signal (y) and then use a Wiener
filter (in the image processing toolkit) to recover an estimate of
your signal. Or you could try a median filter. There are lots of
ways to reduce noise and try to recover your signal. Each makes some
kind of assumption about the type of signal and noise, like the
spectrum or way the noise affects your signal (additive,
multiplicative, Gaussian, salt and pepper, 1/f, whether the noise
comes in before the point spread function takes effect or after,
etc.) For example, if you have additive Gaussian noise, and a signal
presumed to be made up from a known function (e.g. a polymonial of
some order), then you can try a least squares fit.
Good luck,
ImageAnalyst

Subject: Separated the noise

From: Nasser Abbasi

Date: 26 Dec, 2008 05:12:35

Message: 3 of 6


"Muhammad " <fahrudin_fistek@yahoo.com> wrote in message
news:gj1lke$nlp$1@fred.mathworks.com...
> dear who considering
>
>
> i write my simple code under my simple information of matlab function
> and post the code in order to benefit other beginner
> thanks
> I have a problem and I hope any help for me
>
> how to separated the original signal from its noise.
>
> I have a wave(.wav)
> I blend it with noise.
> my listing program :
> y=wavread(open.wav);
> spect=abs(fft(y,1024));
> frek= linspace(0,22050,512)
> plot(frek,spect(1:512));
> % generate and mix the noise.
> open_noise=agwn(y,20);
>
> Thank you.
>

That is probably going to be a very hard to thing to do I would think. To
separate WGN from the signal, that is.

White Gaussian noise has a constant power spectrum which extends over all
frequencies, hence direct filtering would not work.

In addition, if you were able to remove WGN from the signal somehow, this
means you have solved THE communication problem itself, and the Shannon
channel limit do not exist since noise is no longer an issue in
communication as one can extract the original signal.

May be you can, using statistics, and assuming you know the spectrum of the
original signal and may be other assumptions,use Wiener filter to reduce
WGN. But again, I do not think it is possible to eliminate WGN from a signal
completely and in general under all conditions.

I could be wrong ofcourse.

--Nasser

Subject: Separated the noise

From: Greg Heath

Date: 26 Dec, 2008 22:26:17

Message: 4 of 6

On Dec 25, 11:42=A0pm, ImageAnalyst <imageanal...@mailinator.com> wrote:
> On Dec 25, 11:13=A0pm, "Muhammad " <fahrudin_fis...@yahoo.com> wrote:
>
>
>
>
>
> > dear who considering
>
> > i write my simple code under my simple information of matlab function
> > and post the code in order to benefit other beginner
> > thanks
> > I have a problem and I hope any help for me
>
> > how to separated the original signal from its noise.
>
> > I have a =A0wave(.wav)
> > I blend it with noise.
> > my listing program :
> > y=3Dwavread(open.wav);
> > spect=3Dabs(fft(y,1024));
> > frek=3D linspace(0,22050,512)
> > plot(frek,spect(1:512));
> > % generate and mix the noise.
> > open_noise=3Dagwn(y,20);
>
> > Thank you.
>
> -----------------------------------------------
> Muhammed:
> I don't know the function agwn(). =A0What is it?

It's a misprint.

http://www.mathworks.com/access/helpdesk/help/toolbox/comm/ref/awgn.html

Hope this helps.

Greg

Subject: Separated the noise

From: Johan Carlson

Date: 28 Dec, 2008 15:39:02

Message: 5 of 6

Greg Heath <heath@alumni.brown.edu> wrote in message <5d595ffc-c720-4cf6-b41e-b031ad69e4a7@o40g2000yqb.googlegroups.com>...
> On Dec 25, 11:42=A0pm, ImageAnalyst <imageanal...@mailinator.com> wrote:
> > On Dec 25, 11:13=A0pm, "Muhammad " <fahrudin_fis...@yahoo.com> wrote:
> >
> >
> >
> >
> >
> > > dear who considering
> >
> > > i write my simple code under my simple information of matlab function
> > > and post the code in order to benefit other beginner
> > > thanks
> > > I have a problem and I hope any help for me
> >
> > > how to separated the original signal from its noise.
> >
> > > I have a =A0wave(.wav)
> > > I blend it with noise.
> > > my listing program :
> > > y=3Dwavread(open.wav);
> > > spect=3Dabs(fft(y,1024));
> > > frek=3D linspace(0,22050,512)
> > > plot(frek,spect(1:512));
> > > % generate and mix the noise.
> > > open_noise=3Dagwn(y,20);
> >
> > > Thank you.
> >
> > -----------------------------------------------
> > Muhammed:
> > I don't know the function agwn(). =A0What is it?
>
> It's a misprint.
>
> http://www.mathworks.com/access/helpdesk/help/toolbox/comm/ref/awgn.html
>
> Hope this helps.
>
> Greg

Well, in general you can't "separate" the signal and noise components completely. At best, you could exploit some statistical properties of your source signal (the wav file) to design some sort of filter.

Now, in your example, you actually have access to the noise-free signal (it's your x), so you could just subtract the signal from your "noise+signal" variable to obtain the current realization of the noise. Note, however, that this will ONLY work for that given realization of the noise vector. In general, AWGN can't really be predicted and removed completely, for reasons explained above.

/JC

Subject: Separated the noise

From: Greg Heath

Date: 1 Jan, 2009 18:15:45

Message: 6 of 6

On Dec 25 2008, 11:13=A0pm, "Muhammad " <fahrudin_fis...@yahoo.com>
wrote:
> dear who considering
>
> i write my simple code under my simple information of matlab function
> and post the code in order to benefit other beginner
> thanks
> I have a problem and I hope any help for me
>
> how to separated the original signal from its noise.
>
> I have a =A0wave(.wav)
> I blend it with noise.
> my listing program :
> y=3Dwavread(open.wav);
> spect=3Dabs(fft(y,1024));
> frek=3D linspace(0,22050,512)
> plot(frek,spect(1:512));
> % generate and mix the noise.
> open_noise=3Dagwn(y,20);
>
> Thank you.

The most common way to remove white noise is
to use a moving average or moving median filter whose length
is significantly smaller than the decorrelation time of the signal.

Hope this helps.

Greg

Tags for this Thread

Add a New Tag:

Separated by commas
Ex.: root locus, bode

What are tags?

A tag is like a keyword or category label associated with each thread. Tags make it easier for you to find threads of interest.

Anyone can tag a thread. Tags are public and visible to everyone.

rssFeed for this Thread
 

MATLAB Central Terms of Use

NOTICE: Any content you submit to MATLAB Central, including personal information, is not subject to the protections which may be afforded information collected under other sections of The MathWorks, Inc. Web site. You are entirely responsible for all content that you upload, post, e-mail, transmit or otherwise make available via MATLAB Central. The MathWorks does not control the content posted by visitors to MATLAB Central and, does not guarantee the accuracy, integrity, or quality of such content. Under no circumstances will The MathWorks be liable in any way for any content not authored by The MathWorks, or any loss or damage of any kind incurred as a result of the use of any content posted, e-mailed, transmitted or otherwise made available via MATLAB Central. Read the complete Terms prior to use.

Contact us at files@mathworks.com