DSPRelated.com
Forums

Improving Frequency Resolution in Time Constrained Signals

Started by tzoom84 October 30, 2009
On Nov 5, 6:55&#4294967295;pm, Jerry Avins <j...@ieee.org> wrote:
> Greg Heath wrote: > > On Oct 31, 3:42 am, "Ron N." <rhnlo...@yahoo.com> wrote: > >> 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. &#4294967295;1 kHz is periodic in the > >> data aperture, so will show a clean peak in a DFT. &#4294967295;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. &#4294967295;Repeat > >> if necessary. > > > Better to use all of the points and solve the linear set > > of 100 equations for the magnitudes of sine and cosine > > given one of the 3 candidate frequencies. The > > classification is made to the candidate with the > > maximum squared amplitude A^2 + B^2 > > > A*cos(2*pi*f*t) + B*sin(2*pi*f*t) = m(t) > > > Alternatively, you can solve for all 6 coefficients > > simultaneously. > > > Piece of cake? > > Sure. You must realize that you propose calculating three DFT bins and > ignoring the rest. How much quicker is than than calculating 100 bins > with FFT?
No quicker. However the frequency resolution is only 1kHz. Zero-padding to interpolate the fft @500Hz yields confus = 5604 4250 146 40 9944 16 0 144 9856 elapsedtime = 10.7500 compared to the DFT result confus = 9922 78 0 68 9902 30 0 26 9974 elapsedtime = 10.0160 Therefore DFT is better. Hope this helps. Greg
On Nov 6, 10:09&#4294967295;am, Greg Heath <he...@alumni.brown.edu> wrote:
> On Nov 5, 6:55&#4294967295;pm, Jerry Avins <j...@ieee.org> wrote: > > > > > > > Greg Heath wrote: > > > On Oct 31, 3:42 am, "Ron N." <rhnlo...@yahoo.com> wrote: > > >> 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. &#4294967295;1 kHz is periodic in the > > >> data aperture, so will show a clean peak in a DFT. &#4294967295;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. &#4294967295;Repeat > > >> if necessary. > > > > Better to use all of the points and solve the linear set > > > of 100 equations for the magnitudes of sine and cosine > > > given one of the 3 candidate frequencies. The > > > classification is made to the candidate with the > > > maximum squared amplitude A^2 + B^2 > > > > A*cos(2*pi*f*t) + B*sin(2*pi*f*t) = m(t) > > > > Alternatively, you can solve for all 6 coefficients > > > simultaneously. > > > > Piece of cake? > > > Sure. You must realize that you propose calculating three DFT bins and > > ignoring the rest. How much quicker is than than calculating 100 bins > > with FFT? > > No quicker. However the frequency resolution is only 1kHz. > Zero-padding to interpolate the fft @500Hz yields
2 ms zero-padded FFT confus = &#4294967295; &#4294967295; &#4294967295; &#4294967295;5604 &#4294967295; &#4294967295; &#4294967295; &#4294967295;4250 &#4294967295; &#4294967295; &#4294967295; &#4294967295;146 % Detection of 500Hz poor &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; 40 &#4294967295; &#4294967295; &#4294967295; &#4294967295;9944 &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295;16 &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295;0 &#4294967295; &#4294967295; &#4294967295; &#4294967295; 144 &#4294967295; &#4294967295; &#4294967295; &#4294967295;9856 elapsedtime = &#4294967295; 10.7500 ------------------------------------------- 4 ms Zero padded FFT confus = 8454 1451 95 % Detection of 500Hz improved 4770 5230 0 % Detection of 1kHz significantly degraded 0 4738 5262 % Detection of 1.5kHz significantly degraded elapsedtime = 13.0470 ------------------------------------------- compared to the 1 ms DFT result
> confus = > > &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295;9922 &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295;78 &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; 0 > &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295;68 &#4294967295; &#4294967295; &#4294967295; &#4294967295;9902 &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295;30 > &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; 0 &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295;26 &#4294967295; &#4294967295; &#4294967295; &#4294967295;9974 > > elapsedtime = &#4294967295; &#4294967295;10.0160
Therefore the 3 frequency DFT is significantly better. Hope this helps. Greg