Help with freq detection… Bug in spike~ ?

Nov 5, 2010 at 6:05am

Help with freq detection… Bug in spike~ ?

Hi,

I’m using [spike~] to calculate the frequency of a signal that’s essentially a pulse train. Using [train~] as test input, I discovered that [spike~] starts outputting faulty values when the period drops below 3ms, and seriously messes up when the period is less than 1ms. The compressed test patch I’m using to test [spike~] is included below.

It looks like [spike~] wasn’t intended to detect periods below a certain threshold.

Can anyone suggest another approach to detect frequency of a pulse train signal that ranges from 6 to 5000 Hz?

Thank you,
Ray

– Pasted Max Patch, click to expand. –
#53101
Nov 5, 2010 at 11:50am

seems like [spike~] calculates the intervals only between signal vectors, as opposed to [zerox~] which calculates the zerocrossings within _one_ signal vector.

Try setting the signal vector size to 1 sample and see if you can sufficient accurate readings with [spike~]…

#190955
Nov 5, 2010 at 3:13pm

mudang, thank you! I’m new to msp and never would have guessed this.

setting vector size to 1 works for periods less than 1ms, but I still am getting errors coming from [spike~]:

[train~] = 0.2ms
[spike~] = one of following 3 values at random (?)

0.204082
0.181406
0.000000

I think I can do some averaging to get a constant number, but the 0.0 output is weird.

Thanks again!
Ray

#190956
Nov 5, 2010 at 3:32pm

p.s.
DSP Status
[x] Scheduler in Overdrive
[x] in Audio Interrupt

got rid of 0.0 errors but then my computer froze :)

#190957

You must be logged in to reply to this topic.