Prev: Undefined function or variable 'newnarx' in 6.5.0.180913a (R13)
Next: How to mex compile openGL code?
From: Muhammad on 25 Dec 2008 23:13 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 25 Dec 2008 23:42 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 26 Dec 2008 00:12
"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 |