DSPRelated.com
Forums

How to count the periods of a cetrain subwave with high resolution?

Started by smart January 10, 2007
I wanna count the periods of a certain subwave in the signal and the
resolution should be higher than 0.2 T( T is the period).
The signal can be well-extracted using band-filtering based on DCT or
FFT.

But FFT or DCT are discrete, so their resolution in the frequency
domain is always integer Hz.
I tried to fit a curve to the frequency domain, and find the maximum
point to a 'sub-integer' level, but that only archieves about 0.5 T
accracy.

What should I do now? Using continuous DCT or FFT transform? Is there
any easier way to do that?

I'll put the demo images on my blog today.
http://smartnose.blogspot.com

Hope you guys would help me.
Thank you.

smart wrote:

> ... FFT or DCT are discrete, so their resolution in the frequency > domain is always integer Hz. ...
That's not true. What do you really mean? Jerry -- Engineering is the art of making what you want from things you can get. �����������������������������������������������������������������������
"Jerry Avins" <jya@ieee.org> wrote in message
news:ypmdnbPjQd3VNDjYnZ2dnUVZ_rPinZ2d@rcn.net...
> smart wrote: > > > ... FFT or DCT are discrete, so their resolution in the frequency > > domain is always integer Hz. ... > > That's not true. What do you really mean? > >
I think he means that digital is always an approximation ie it has a resolution fs/N Hz- analogue is more exact. F. -- Posted via a free Usenet account from http://www.teranews.com
Fitlike Min wrote:
> "Jerry Avins" <jya@ieee.org> wrote in message > news:ypmdnbPjQd3VNDjYnZ2dnUVZ_rPinZ2d@rcn.net... >> smart wrote: >> >>> ... FFT or DCT are discrete, so their resolution in the frequency >>> domain is always integer Hz. ... >> That's not true. What do you really mean? >> >> > I think he means that digital is always an approximation ie it has a > resolution fs/N Hz- analogue is more exact.
Why don't we wait for him to say instead of guessing? Jerry -- Engineering is the art of making what you want from things you can get. &#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;
Hi, all. We got time difference, sorry.

What I mean is if the length of this signal is N, then in the frequency
domain, we got only N points. 1/N, 2/N,...k/N. and the corresponding
period number is 1,2,3...N.

For example (in matlab),

x=3D[-3.14:0.1:3.14];
y=3Dcos(x);
dc=3Ddct(y);
plot(dc);

the singnal y has one period, so the transformed dc has a peak exactly
at dc(3);

for
x=3D[-3.14:0.1:3.14];
y=3Dcos(1.5*x);
dc=3Ddct(y);
plot(dc);

y now has 1.5 periods, dc has positive and negtive peaks at dc(3) and
dc(5), and other small peaks.

So, if y has fractional(thank god, I finally rememberred this word,
:-P) periods, DCT can only describe this fraction by noise data on
other subwaves.

How do I detect this fraction directly from the frequency domain?

Thank you all.

Jerry Avins wrote:
> Fitlike Min wrote: > > "Jerry Avins" <jya@ieee.org> wrote in message > > news:ypmdnbPjQd3VNDjYnZ2dnUVZ_rPinZ2d@rcn.net... > >> smart wrote: > >> > >>> ... FFT or DCT are discrete, so their resolution in the frequency > >>> domain is always integer Hz. ... > >> That's not true. What do you really mean? > >> > >> > > I think he means that digital is always an approximation ie it has a > > resolution fs/N Hz- analogue is more exact. > > Why don't we wait for him to say instead of guessing? > > Jerry > -- > Engineering is the art of making what you want from things you can get. > =AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=
=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF= =AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF
you see

x=3D[-3.14:0.1:3.14];
y=3Dcos(1.5*x);
dc1=3Ddct(y);
figure;
plot(dc1);
y=3Dcos(1.2*x);
dc2=3Ddct(y);
figure;
plot(dc2);

The only difference of dc1 and dc2 is the amplitude at each point.

I guess the cotinuous transform must have a peak somewhere at 3.5 or
2=2E8 etc.

I'm a vision engineer, I never dealt with this before.

smart wrote:
> Hi, all. We got time difference, sorry. > > What I mean is if the length of this signal is N, then in the frequency > domain, we got only N points. 1/N, 2/N,...k/N. and the corresponding > period number is 1,2,3...N. > > For example (in matlab), > > x=3D[-3.14:0.1:3.14]; > y=3Dcos(x); > dc=3Ddct(y); > plot(dc); > > the singnal y has one period, so the transformed dc has a peak exactly > at dc(3); > > for > x=3D[-3.14:0.1:3.14]; > y=3Dcos(1.5*x); > dc=3Ddct(y); > plot(dc); > > y now has 1.5 periods, dc has positive and negtive peaks at dc(3) and > dc(5), and other small peaks. > > So, if y has fractional(thank god, I finally rememberred this word, > :-P) periods, DCT can only describe this fraction by noise data on > other subwaves. > > How do I detect this fraction directly from the frequency domain? > > Thank you all. > > Jerry Avins wrote: > > Fitlike Min wrote: > > > "Jerry Avins" <jya@ieee.org> wrote in message > > > news:ypmdnbPjQd3VNDjYnZ2dnUVZ_rPinZ2d@rcn.net... > > >> smart wrote: > > >> > > >>> ... FFT or DCT are discrete, so their resolution in the frequency > > >>> domain is always integer Hz. ... > > >> That's not true. What do you really mean? > > >> > > >> > > > I think he means that digital is always an approximation ie it has a > > > resolution fs/N Hz- analogue is more exact. > > > > Why don't we wait for him to say instead of guessing? > > > > Jerry > > -- > > Engineering is the art of making what you want from things you can get. > > =AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=
=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF= =AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF=AF
Did I make any fundamental mistake?

On 1=D4=C212=C8=D5, =C9=CF=CE=E79=CA=B108=B7=D6, "smart" <smartn...@gmail.c=
om> wrote:
> you see > > x=3D[-3.14:0.1:3.14]; > y=3Dcos(1.5*x); > dc1=3Ddct(y); > figure; > plot(dc1); > y=3Dcos(1.2*x); > dc2=3Ddct(y); > figure; > plot(dc2); > > The only difference of dc1 and dc2 is the amplitude at each point. > > I guess the cotinuous transform must have a peak somewhere at 3.5 or > 2.8 etc. > > I'm a vision engineer, I never dealt with this before. > > > > smart wrote: > > Hi, all. We got time difference, sorry. > > > What I mean is if the length of this signal is N, then in the frequency > > domain, we got only N points. 1/N, 2/N,...k/N. and the corresponding > > period number is 1,2,3...N. > > > For example (in matlab), > > > x=3D[-3.14:0.1:3.14]; > > y=3Dcos(x); > > dc=3Ddct(y); > > plot(dc); > > > the singnal y has one period, so the transformed dc has a peak exactly > > at dc(3); > > > for > > x=3D[-3.14:0.1:3.14]; > > y=3Dcos(1.5*x); > > dc=3Ddct(y); > > plot(dc); > > > y now has 1.5 periods, dc has positive and negtive peaks at dc(3) and > > dc(5), and other small peaks. > > > So, if y has fractional(thank god, I finally rememberred this word, > > :-P) periods, DCT can only describe this fraction by noise data on > > other subwaves. > > > How do I detect this fraction directly from the frequency domain? > > > Thank you all. > > > Jerry Avins wrote: > > > Fitlike Min wrote: > > > > "Jerry Avins" <j...@ieee.org> wrote in message > > > >news:ypmdnbPjQd3VNDjYnZ2dnUVZ_rPinZ2d@rcn.net... > > > >> smart wrote: > > > > >>> ... FFT or DCT are discrete, so their resolution in the frequency > > > >>> domain is always integer Hz. ... > > > >> That's not true. What do you really mean? > > > > > I think he means that digital is always an approximation ie it has a > > > > resolution fs/N Hz- analogue is more exact. > > > > Why don't we wait for him to say instead of guessing? > > > > Jerry > > > -- > > > Engineering is the art of making what you want from things you can ge=
t=2E
> > > =A1=A5=A1=A5=A1=A5=A1=A5=A1=A5=A1=A5=A1=A5=A1=A5=A1=A5=A1=A5=A1=A5=A1=
=A5=A1=A5=A1=A5=A1=A5=A1=A5=A1=A5=A1=A5=A1=A5=A1=A5=A1=A5=A1=A5=A1=A5=A1=A5= =A1=A5=A1=A5=A1=A5=A1=A5=A1=A5=A1=A5=A1=A5=A1=A5=A1=A5=A1=A5=A1=A5=A1=A5=A1= =A5=A1=A5=A1=A5=A1=A5=A1=A5=A1=A5=A1=A5=A1=A5=A1=A5=A1=A5=A1=A5=A1=A5=A1=A5= =A1=A5=A1=A5=A1=A5=A1=A5=A1=A5=A1=A5=A1=A5=A1=A5=A1=A5=A1=A5=A1=A5=A1=A5=A1= =A5=A1=A5=A1=A5=A1=A5=A1=A5=A1=A5=A1=A5=A1=A5=A1=A5=A1=A5- =D2=FE=B2=D8=B1= =BB=D2=FD=D3=C3=CE=C4=D7=D6 -- =CF=D4=CA=BE=D2=FD=D3=C3=B5=C4=CE=C4=D7=D6 -

smart wrote:
> you see > > x=[-3.14:0.1:3.14]; > y=cos(1.5*x);
If you have a model-based estimation problem, you can (and in this case should) estimate the parameter directly. Try to look up "single tone estimation" or "line spectra estimation". Some of the algorithms for these applications are said to have super- resolution, that is, its resolution is higher than suggested than the Fourier transform. Sounds like what you are looking for. Here's a little something that I wrote a long time ago: http://cnx.org/content/m10588/latest/ If you google "frequency esitmation" there are several useful links, too. Hope that helps, Julius
Ya, great, you've got what I want. Thank you julius!
julius wrote:
> smart wrote: > > you see > > > > x=[-3.14:0.1:3.14]; > > y=cos(1.5*x); > > If you have a model-based estimation problem, you can (and in > this case should) estimate the parameter directly. Try to look up > "single tone estimation" or "line spectra estimation". Some of > the algorithms for these applications are said to have super- > resolution, that is, its resolution is higher than suggested than > the Fourier transform. > > Sounds like what you are looking for. > > Here's a little something that I wrote a long time ago: > > http://cnx.org/content/m10588/latest/ > > If you google "frequency esitmation" there are several useful > links, too. > > Hope that helps, > Julius
On 13 Jan 2007 15:21:21 -0800, "julius" <juliusk@gmail.com> wrote:

> > >smart wrote: >> you see >> >> x=[-3.14:0.1:3.14]; >> y=cos(1.5*x); > >If you have a model-based estimation problem, you can (and in >this case should) estimate the parameter directly. Try to look up >"single tone estimation" or "line spectra estimation". Some of >the algorithms for these applications are said to have super- >resolution, that is, its resolution is higher than suggested than >the Fourier transform. > >Sounds like what you are looking for. > >Here's a little something that I wrote a long time ago: > >http://cnx.org/content/m10588/latest/ > >If you google "frequency esitmation" there are several useful >links, too. > >Hope that helps, >Julius
Hi Julius, (Hope all is well with you. I enjoyed reading your posts, to Rune Allnor, regarding Ph.D candidates.) Perhaps "smart" can find something useful at: http://home.comcast.net/~kootsoop/freqalgs.htm See Ya' Julius, [-Rick-]