Forums

Noise and Signal Subspace

Started by Ra?l Gonz?lez May 31, 2004
I have a file with the values associated to the electric field for 32
different frequencies at a fixed point.
Due to the RootMUSIC requierements, white gaussian noise is added to
original vector, obtaining the noisy_matrix.
After that I calculate the covariance matrix and then I get its
eigenvalues.
The problem is that I don�t see any meaningful difference between
eigenvalues that let me identify the noise subspace from the signal
subspace.
Am I doing something wrong? 
Any comment will be very appreciated.
Thank you for your cooperation.
> I have a file with the values associated to the electric field for 32 > different frequencies at a fixed point. > Due to the RootMUSIC requierements, white gaussian noise is added to > original vector, obtaining the noisy_matrix. > After that I calculate the covariance matrix and then I get its > eigenvalues. > The problem is that I don�t see any meaningful difference between > eigenvalues that let me identify the noise subspace from the signal > subspace. > Am I doing something wrong? > Any comment will be very appreciated. > Thank you for your cooperation.
Yes, you are doing something wrong. First, the obvious blunder is adding noise to your data. Never do that. The data are noisy already. Second, you did write a similar post over on comp.soft-sys.matlab where you said something that made me suspect that you have 32 frequencies and 32 measurements. If so, MUSIC will not work, as it needs many more measurements than frequency components. Try again with, say, 40 or 50 measurements (i.e. time series that are 40 or 50 samples long). You should also include some details on exactly how you construct your data covariance matrix. I have commented on such issues beforree here on comp.dsp, check out the post http://groups.google.com/groups?hl=no&lr=&ie=UTF-8&selm=f56893ae.0303211218.30ad3d79%40posting.google.com&rnum=20 and the erratum http://groups.google.com/groups?hl=no&lr=&ie=UTF-8&selm=f56893ae.0303220125.34476203%40posting.google.com Third, I would like to see a description of the experimental setup. MUSIC is intended to resolve frequencies simultaneously present in a time-domain signal. If you did a frequency-step type of measurement, it's not obvious how to get MUSIC to provide useful results. Rune
On Mon, 30 May 2004, Ra?l Gonz?lez wrote:

> I have a file with the values associated to the electric field for 32 > different frequencies at a fixed point. > Due to the RootMUSIC requierements, white gaussian noise is added to > original vector, obtaining the noisy_matrix. > After that I calculate the covariance matrix and then I get its > eigenvalues. > The problem is that I don=B4t see any meaningful difference between > eigenvalues that let me identify the noise subspace from the signal > subspace. > Am I doing something wrong? > Any comment will be very appreciated. > Thank you for your cooperation. >
just a quick guess, but maybe the variance of your noise is too high? try adjusting it and see if it helps. if not, perhaps you have more (or fewer) than the 32 frequency components that you suspected. are the samples complex? also, are you using your aunt ju's email address (tante ju)? julius --=20 The most rigorous proofs will be shown by vigorous handwaving. http://www.mit.edu/~kusuma opinion of author is not necessarily of the institute
Thanks Rune for answer back to me. 

> > Yes, you are doing something wrong. First, the obvious blunder is > adding > noise to your data. Never do that. The data are noisy already.
First of all I would like to describe the experimental setup. The source of data is a tool developed by the University of Madrid. Basically what the tool does is the following: to let the user to locate and orientate an antenna, whose characteristics are known. Then the user has to fix an observation point and define parameters as how many frequencies will emit the antenna as well as its values. The result of the execution is a file containing the module and phase of the electric field at the previously designated point for every frequency. That is, every time I execute the tool, I get a snapshot, a vector which elements are the values for every frequency. After this short explanation of the experimental setup, it seems pretty clear that data aren�t noisy already.
> Second, you did write a similar post over on comp.soft-sys.matlab > where you said something that made me suspect that you have 32 > frequencies and 32 measurements. If so, MUSIC will not work, as it > needs many more measurements than frequency components. Try again > with, > say, 40 or 50 measurements (i.e. time series that are 40 or 50 samples > long).
You are right; I defined 32 frequencies, but only one measurement. I know Root-MUSIC needs more measurements than frequency components, but the reason I m doing so is that I m making an equivalence between frequency with sensors, each frequency is 1 MHz higher than the previous one (simulating a constant distance between sensors, what you are constraint to in Root MUSIC) Then the multiple snapshots (one for each sensor)I get in a normal setup (that with many sensors uniformly separated) are equivalent to the this only one snapshot gotten from a unique sensor but irradiated with 32 different frequencies.
> You should also include some details on exactly how you > construct your data covariance matrix.
I get the data covariance matrix through the pre-programmed COV function in Matlab, which argument is made with the observated vector polluted with white gaussian noise, just to creat a (100 32) input matrix.
> Third, I would like to see a description of the experimental setup. > MUSIC is intended to resolve frequencies simultaneously present in > a time-domain signal. If you did a frequency-step type of measurement, > it's not obvious how to get MUSIC to provide useful results. >
My program is already working with MUSIC. What I want to do is to get the same results through Root-MUSIC.
> Rune
Once again, thank very much for your help. Ra�l
THanks Julius for your answer. 

Julius Kusuma <kusuma@mit.edu> wrote in message news:<Pine.GSO.4.55L.0405311040380.16195@biohazard-cafe.mit.edu>...
> > just a quick guess, but maybe the variance of your noise is too high? try > adjusting it and see if it helps. if not, perhaps you have more (or > fewer) than the 32 frequency components that you suspected. are the > samples complex? >
Read the answer I sent to Rune. I m sure I have 32 frequencies because I m working on a simulated environment. Yes, the samples are complex.
> also, are you using your aunt ju's email address (tante ju)?
Ach so... dann du sprichst deutsch. Gut! Nein, es ist nicht meine Tante addressat. Ich mag sehr die Flugzeuge und "Tante Ju" ist der Nickname der h&#2013266172;bsches Flugzeug alle &#2013266172;ber Geschichte, der Junkers 52! Schonen Tag! Ra&#2013266170;l
tante_ju@teleline.es (Ra?l Gonz?lez) wrote in message news:<1d807096.0406012239.57a01e21@posting.google.com>...
> Thanks Rune for answer back to me. > > > > > Yes, you are doing something wrong. First, the obvious blunder is > > adding > > noise to your data. Never do that. The data are noisy already. > > First of all I would like to describe the experimental setup. The > source of data is a tool developed by the University of Madrid. > Basically what the tool does is the following: to let the user to > locate and orientate an antenna, whose characteristics are known. Then > the user has to fix an observation point and define parameters as how > many frequencies will emit the antenna as well as its values. The > result of the execution is a file containing the module and phase of > the electric field at the previously designated point for every > frequency. That is, every time I execute the tool, I get a snapshot, a > vector which elements are the values for every frequency. > After this short explanation of the experimental setup, it seems > pretty clear that data aren&#2013266100;t noisy already.
Is this a numerical simulation tool? If so, you are right. I assumed you had made measurements on a live system. Experimental data are always noisy on the outset. I'd suggest you pay some attention to Signal-to-Noise Ratio, SNR. Keep the SNR above, say, 30 dB or so.
> > Second, you did write a similar post over on comp.soft-sys.matlab > > where you said something that made me suspect that you have 32 > > frequencies and 32 measurements. If so, MUSIC will not work, as it > > needs many more measurements than frequency components. Try again > > with, > > say, 40 or 50 measurements (i.e. time series that are 40 or 50 samples > > long). > > You are right; I defined 32 frequencies, but only one measurement. I > know Root-MUSIC needs more measurements than frequency components, but > the reason I m doing so is that I m making an equivalence between > frequency with sensors, each frequency is 1 MHz higher than the > previous one (simulating a constant distance between sensors, what you > are constraint to in Root MUSIC) Then the multiple snapshots (one for > each sensor)I get in a normal setup (that with many sensors uniformly > separated) are equivalent to the this only one snapshot gotten from a > unique sensor but irradiated with 32 different frequencies.
OK, try again with time series of length, say, 100 samples.
> > You should also include some details on exactly how you > > construct your data covariance matrix. > > I get the data covariance matrix through the pre-programmed COV > function in Matlab, which argument is made with the observated vector > polluted with white gaussian noise, just to creat a (100 32) input > matrix.
Eh... COV with only a vector as argument appears to return only the variance of that vector? I'd suggest you construct the covariance matrix yourself. My personal favourite is a variation of H in eq. 13.39 in Kay: Modern Spectral Estimation Prentice-Hall, 1988. You could also check out eq. 7.40 in van Trees' vol. IV. Make sure you properly handle the edge effects in the data matrix X, though.
> > Third, I would like to see a description of the experimental setup. > > MUSIC is intended to resolve frequencies simultaneously present in > > a time-domain signal. If you did a frequency-step type of measurement, > > it's not obvious how to get MUSIC to provide useful results. > > > > My program is already working with MUSIC. What I want to do is to get > the same results through Root-MUSIC. > > > Rune > > Once again, thank very much for your help. > Ra&#2013266170;l
Rune
Thank you for your reply Rune.

allnor@tele.ntnu.no (Rune Allnor) wrote in message news:<f56893ae.0406020239.e7519e9@posting.google.com>...
> tante_ju@teleline.es (Ra?l Gonz?lez) wrote in message news:<1d807096.0406012239.57a01e21@posting.google.com>... > > Thanks Rune for answer back to me. > > > > > > > > Yes, you are doing something wrong. First, the obvious blunder is > > > adding > > > noise to your data. Never do that. The data are noisy already. > > > > First of all I would like to describe the experimental setup. The > > source of data is a tool developed by the University of Madrid. > > Basically what the tool does is the following: to let the user to > > locate and orientate an antenna, whose characteristics are known. Then > > the user has to fix an observation point and define parameters as how > > many frequencies will emit the antenna as well as its values. The > > result of the execution is a file containing the module and phase of > > the electric field at the previously designated point for every > > frequency. That is, every time I execute the tool, I get a snapshot, a > > vector which elements are the values for every frequency. > > After this short explanation of the experimental setup, it seems > > pretty clear that data aren&#2013266100;t noisy already. > > Is this a numerical simulation tool? If so, you are right. I assumed > you had made measurements on a live system. Experimental data are > always noisy on the outset.
Yes, it is a simulation tool called FASPRO.
> > I'd suggest you pay some attention to Signal-to-Noise Ratio, SNR. > Keep the SNR above, say, 30 dB or so.
I added noise through the AWGN function in MATLAB, where I can say the amount of noise to be added. It works fine in my MUSIC implementation. I use to work with a SNR higher than 30dB. I tried with 50dB and no change in the results.
> > > Second, you did write a similar post over on comp.soft-sys.matlab > > > where you said something that made me suspect that you have 32 > > > frequencies and 32 measurements. If so, MUSIC will not work, as it > > > needs many more measurements than frequency components. Try again > > > with, > > > say, 40 or 50 measurements (i.e. time series that are 40 or 50 samples > > > long). > > > > You are right; I defined 32 frequencies, but only one measurement. I > > know Root-MUSIC needs more measurements than frequency components, but > > the reason I m doing so is that I m making an equivalence between > > frequency with sensors, each frequency is 1 MHz higher than the > > previous one (simulating a constant distance between sensors, what you > > are constraint to in Root MUSIC) Then the multiple snapshots (one for > > each sensor)I get in a normal setup (that with many sensors uniformly > > separated) are equivalent to the this only one snapshot gotten from a > > unique sensor but irradiated with 32 different frequencies. > > OK, try again with time series of length, say, 100 samples.
One sample for each frequency turns into 100 samples (for each frequency) after the addition of white gaussian noise.
> > > > You should also include some details on exactly how you > > > construct your data covariance matrix. > > > > I get the data covariance matrix through the pre-programmed COV > > function in Matlab, which argument is made with the observated vector > > polluted with white gaussian noise, just to creat a (100 32) input > > matrix. > > Eh... COV with only a vector as argument appears to return only the > variance of that vector? I'd suggest you construct the covariance > matrix yourself. My personal favourite is a variation of H in eq. 13.39 > in > > Kay: Modern Spectral Estimation > Prentice-Hall, 1988. > > You could also check out eq. 7.40 in van Trees' vol. IV. Make sure you > properly handle the edge effects in the data matrix X, though.
I will. Please let me know the title of van Trees vol IV book.
> > > > Third, I would like to see a description of the experimental setup. > > > MUSIC is intended to resolve frequencies simultaneously present in > > > a time-domain signal. If you did a frequency-step type of measurement, > > > it's not obvious how to get MUSIC to provide useful results. > > > > > > > My program is already working with MUSIC. What I want to do is to get > > the same results through Root-MUSIC. > > > > > Rune > > > > Once again, thank very much for your help. > > Ra&#2013266170;l > > Rune
Thanks a lot, Ra&#2013266170;l
tante_ju@teleline.es (Ra?l Gonz?lez) wrote in message news:<1d807096.0406030512.5514696a@posting.google.com>...
 
> One sample for each frequency turns into 100 samples (for each > frequency) after the addition of white gaussian noise.
I'm not sure I understand what you do. What I mean is that you need to make one time series that contain all the 32 frequency bands, add noise to whatever SNR you like, and then run MUSIC. This composite time series needs to be some 100 samples long.
> > > > > > You should also include some details on exactly how you > > > > construct your data covariance matrix. > > > > > > I get the data covariance matrix through the pre-programmed COV > > > function in Matlab, which argument is made with the observated vector > > > polluted with white gaussian noise, just to creat a (100 32) input > > > matrix. > > > > Eh... COV with only a vector as argument appears to return only the > > variance of that vector? I'd suggest you construct the covariance > > matrix yourself. My personal favourite is a variation of H in eq. 13.39 > > in > > > > Kay: Modern Spectral Estimation > > Prentice-Hall, 1988. > > > > You could also check out eq. 7.40 in van Trees' vol. IV. Make sure you > > properly handle the edge effects in the data matrix X, though. > > I will. Please let me know the title of van Trees vol IV book.
That would be van Trees: Detection, Estimation and Modulation Theory vol IV: Optimum Array Processing, Wiley 2002. Rune