From: Muhammad on
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.

From: ImageAnalyst on
On Dec 25, 11:13 pm, "Muhammad " <fahrudin_fis...(a)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  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.

-----------------------------------------------
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
From: Nasser Abbasi on

"Muhammad " <fahrudin_fistek(a)yahoo.com> wrote in message
news:gj1lke$nlp$1(a)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