For simplicity, suppose we are interested in detecting presence of either a 500Hz, 1kHz, and a 1.5kHz sinusoid in a signal that is being sampled at 100kHz. But lets say we only have 100 samples, or 1ms of data. This is anywhere between 0.5 to 2 'cycles' of the sinusoids. So essentially, the signal is well oversampled, but is not sampled long enough in time to provide clean frequency resolution. Question is: Are there particular techniques to improve frequency resolution for oversampled, but time constrained, signals? (One random thought considered was to decimate at different points in time, say take every tenth sample starting at sample #1, then every tenth starting at sample #2, to create 10 independent signals of same length. Then concatenate to artificially lengthen the same signal. But I wasn't sure if that would increase resolution since it doesn't add any new data....) Thanks!
Improving Frequency Resolution in Time Constrained Signals
Started by ●October 30, 2009
Reply by ●October 30, 20092009-10-30
On 30 Okt, 13:22, "tzoom84" <tszumow...@gmail.com> wrote:> For simplicity, suppose we are interested in detecting presence of either a > 500Hz, 1kHz, and a 1.5kHz sinusoid in a signal that is being sampled at > 100kHz. But lets say we only have 100 samples, or 1ms of data. This is > anywhere between 0.5 to 2 'cycles' of the sinusoids. So essentially, the > signal is well oversampled, but is not sampled long enough in time to > provide clean frequency resolution. > > Question is: Are there particular techniques to improve frequency > resolution for oversampled, but time constrained, signals?No, there aren't. However, a far more interesting question is wheteher it is possible to come up with a guesstimate about which of the candidate sinusoidals is present, given data as stated. Rune
Reply by ●October 30, 20092009-10-30
tzoom84 wrote:> For simplicity, suppose we are interested in detecting presence of either a > 500Hz, 1kHz, and a 1.5kHz sinusoid in a signal that is being sampled at > 100kHz. But lets say we only have 100 samples, or 1ms of data. This is > anywhere between 0.5 to 2 'cycles' of the sinusoids. So essentially, the > signal is well oversampled, but is not sampled long enough in time to > provide clean frequency resolution. > Question is: Are there particular techniques to improve frequency > resolution for oversampled, but time constrained, signals?The frequency resolution is the matter of SNR and the measurement time. The limit is set by Cramer Rao bound. Vladimir Vassilevsky DSP and Mixed Signal Design Consultant http://www.abvolt.com
Reply by ●October 30, 20092009-10-30
>The frequency resolution is the matter of SNR and the measurement time. >The limit is set by Cramer Rao bound.Hmm, I had a feeling that I wouldn't be able to get past that time/frequency resolution trade-off.
Reply by ●October 30, 20092009-10-30
tzoom84 wrote:> For simplicity, suppose we are interested in detecting presence of either a > 500Hz, 1kHz, and a 1.5kHz sinusoid in a signal that is being sampled at > 100kHz. But lets say we only have 100 samples, or 1ms of data. This is > anywhere between 0.5 to 2 'cycles' of the sinusoids. So essentially, the > signal is well oversampled, but is not sampled long enough in time to > provide clean frequency resolution. > > Question is: Are there particular techniques to improve frequency > resolution for oversampled, but time constrained, signals? > > (One random thought considered was to decimate at different points in > time, say take every tenth sample starting at sample #1, then every tenth > starting at sample #2, to create 10 independent signals of same length. > Then concatenate to artificially lengthen the same signal. But I wasn't > sure if that would increase resolution since it doesn't add any new > data....) > > Thanks!From your description, it may be that all you want is to differentiate between which single sinuoid of 3 is present? Actually you have stated two different problems: 1) detect the presence of ONE of the sinusoids. 2) get good frequency resolution - which may imply that you want to measure the frequency of one of the sinusoids.... is that right or not? You have 1msec of data so presumably around 1kHz of frequency resolution. A 1kHz bandwidth is all you need to differentiate between those sinusoids. 0Hz to 1kHz for the 500Hz signal 500Hz to 1.5kHz for the 1kHz signal 1kHz to 2kHz for the 1.5kHz signal. So, you use a lowpass filter and a couple of bandpass filters. A filter with a 1kHz bandwidth will likely have a length of around 1msec or so. So, the attendant problem is that you will just get the filter "filled" with the data that you have available and only get out one or a very few "non-transient" data points. Not great for a sinusoid. All this suggests that you may have enough data if you handle it reasonably. For example, what if you "baseband" the data using 500Hz, 1kHz and 1.5kHz modulation? I'm not sure this will work because of filtering requirements but it's worth some thought. Something like multiply by sin and cos at each frequency then sum the squares. Then lowpass each as best you can and the highest output "wins"...... The trick of course is differentiating signals that each fall in a 1kHz bandwidth with an "interfering" signal at the band edge. And, the "band edges" aren't very sharply defined at that! But, if the "interfering" signals aren't present then you could be OK. Fred
Reply by ●October 31, 20092009-10-31
On Oct 30, 8:22�am, "tzoom84" <tszumow...@gmail.com> wrote:> For simplicity, suppose we are interested in detecting presence of either a > 500Hz, 1kHz, and a 1.5kHz sinusoid in a signal that is being sampled at > 100kHz. But lets say we only have 100 samples, or 1ms of data. This is > anywhere between 0.5 to 2 'cycles' of the sinusoids. So essentially, the > signal is well oversampled, but is not sampled long enough in time to > provide clean frequency resolution. > > Question is: Are there particular techniques to improve frequency > resolution for oversampled, but time constrained, signals? > > (One random thought considered was to decimate at different points in > time, say take every tenth sample starting at sample #1, then every tenth > starting at sample #2, to create 10 independent signals of same length. > Then concatenate to artificially lengthen the same signal. But I wasn't > sure if that would increase resolution since it doesn't add any new > data....) > > Thanks!With a sample rate = 100k and N = 100, you�ve got 100k/100 = 1k bin spacing in the frequency domain (e.g.: DFT frequency index k = 0 corresponds to 0Hz, index k = 1 corresponds to 1kHz, index k = 2 is 2kHz, etc.). So perhaps you�d do 3 DFTs, one at k = .5 (corresponds to 500 Hz), one at k = 1 (corresponds to 1 kHz), and one at k = 1.5 (corresponds to 1.5 kHz). Then compute magnitude squared of each and find the largest. Alternately, you could zero pad an FFT to 200 points and use outputs k = 1, 2 and 3 to represent f = 500 Hz, 1 kHz and 1.5 kHz. Keep in mind, of course, that zero padding doesn�t really improve resolution - it provides an interpolation. If you start with a sampling interval that�s too short, you get a lousy result. Zero padding gives you more (interpolated) points of a lousy result. Of course, I�m presuming that only one tone is present at a time, their amplitudes are the same, and you don�t have a transition between the tones in your 100 point sampling interval. There is a technique that will give you very good frequency resolution, but it requires that you have at least a few bins� spacing between your tonal inputs. So you�re operating well below the margins at which it will work. Kevin McGee
Reply by ●October 31, 20092009-10-31
On Oct 30, 5:22�am, "tzoom84" <tszumow...@gmail.com> wrote:> For simplicity, suppose we are interested in detecting presence of either a > 500Hz, 1kHz, and a 1.5kHz sinusoid in a signal that is being sampled at > 100kHz. But lets say we only have 100 samples, or 1ms of data. This is > anywhere between 0.5 to 2 'cycles' of the sinusoids. So essentially, the > signal is well oversampled, but is not sampled long enough in time to > provide clean frequency resolution. > > Question is: Are there particular techniques to improve frequency > resolution for oversampled, but time constrained, signals?If it's an either-or question, you don't need resolution, you just need to reject the 2 less probable alternatives. 1 kHz is periodic in the data aperture, so will show a clean peak in a DFT. If the clear 1 kHz peak isn't there, then you can try rejecting the 1.5 kHz choice if the (maybe low passed) waveform doesn't show enough inflection points and zero crossings spaced about the appropriate distances apart. What's left if you don't see any of the above is 0.5 kHz. And if there's no noise, you can just randomly pick 3 points and try to solve the equation for a sinusoid with 3 unknowns. Repeat if necessary. . IMHO. YMMV. -- rhn A.T nicholson d.0.t C-o-M http://www.nicholson.com/rhn/dsp.html
Reply by ●October 31, 20092009-10-31
"tzoom84" <tszumowski@gmail.com> wrote in message news:OaOdnfUdh9nrR3fXnZ2dnUVZ_uqdnZ2d@giganews.com...> For simplicity, suppose we are interested in detecting presence of either > a > 500Hz, 1kHz, and a 1.5kHz sinusoid in a signal that is being sampled at > 100kHz. But lets say we only have 100 samples, or 1ms of data. This is > anywhere between 0.5 to 2 'cycles' of the sinusoids. So essentially, the > signal is well oversampled, but is not sampled long enough in time to > provide clean frequency resolution. > > Question is: Are there particular techniques to improve frequency > resolution for oversampled, but time constrained, signals? > > (One random thought considered was to decimate at different points in > time, say take every tenth sample starting at sample #1, then every tenth > starting at sample #2, to create 10 independent signals of same length. > Then concatenate to artificially lengthen the same signal. But I wasn't > sure if that would increase resolution since it doesn't add any new > data....) > Thanks!Can you store a history of samples in memory, like a buffer of 2048 samples perhaps?
Reply by ●November 2, 20092009-11-02
On Oct 30, 10:32=A0am, Vladimir Vassilevsky <nos...@nowhere.com> wrote:> tzoom84 wrote: > > For simplicity, suppose we are interested in detecting presence of eith=er a> > 500Hz, 1kHz, and a 1.5kHz sinusoid in a signal that is being sampled at > > 100kHz. But lets say we only have 100 samples, or 1ms of data. This is > > anywhere between 0.5 to 2 'cycles' of the sinusoids. So essentially, th=e> > signal is well oversampled, but is not sampled long enough in time to > > provide clean frequency resolution. > > Question is: Are there particular techniques to improve frequency > > resolution for oversampled, but time constrained, signals? > > The frequency resolution is the matter of SNR and the measurement time. > The limit is set by Cramer Rao bound. >Actually, resolution has very little to do with SNR. Resolution is the ability to separate 2 distinct signals. The resolution is mostly determined by the length of the observation time. Accuracy, on the other hand is very much SNR dependent. This is when you are trying to estimate the frequency of 1 particular signal. Cheers, David
Reply by ●November 2, 20092009-11-02
Dave wrote:> On Oct 30, 10:32 am, Vladimir Vassilevsky <nos...@nowhere.com> wrote: > >>tzoom84 wrote: >> >>>For simplicity, suppose we are interested in detecting presence of either a >>>500Hz, 1kHz, and a 1.5kHz sinusoid in a signal that is being sampled at >>>100kHz. But lets say we only have 100 samples, or 1ms of data. This is >>>anywhere between 0.5 to 2 'cycles' of the sinusoids. So essentially, the >>>signal is well oversampled, but is not sampled long enough in time to >>>provide clean frequency resolution. >>>Question is: Are there particular techniques to improve frequency >>>resolution for oversampled, but time constrained, signals? >> >>The frequency resolution is the matter of SNR and the measurement time. >>The limit is set by Cramer Rao bound. >> > > > Actually, resolution has very little to do with SNR. Resolution is the > ability to separate 2 distinct signals. The resolution is mostly > determined by the length of the observation time.Then the resolution = Euclidean distance between the signals divided by noise, i.e. SNR.> Accuracy, on the other hand is very much SNR dependent.accuracy ~ log(SNR)> This is when > you are trying to estimate the frequency of 1 particular signal.Engineers don't use words like "many, little, mostly, very, much". Vladimir Vassilevsky DSP and Mixed Signal Design Consultant http://www.abvolt.com






