The Phenix 140SC However, has a much more "complicated' design, on top of it's age (the particular watch I have I mean) It uses a "free spring balance" meaning it's regulated through the interia of the wheel and some other interesting design tidbits, this makes the watch more complicated and difficult to adjust/regulate, however should technially produce a more accurate watch). I noticed the eta2412 produces about 320~ peaks within the 11 seconds clip (from your algorithim I mean) which provides lots of data to produce the accurate calculated Hz/Period (if I understood what is going on anyways) An interesting point of this movement is it's relatively simplicity, but also the use of a timed annular balance wheel and spring regulator. However, some brands Phenix for example although nice quality watches, were known to try new things, having made their movements completely inhouse.sometimes doing odd things, which would cause a lot of weird "inner" housing noise. The Russians are also known between the 40s and 60s to have some high quality little machines. ETA is quite famous for having high quality well made movements. I'm unsure how familiar you are with watches or specifically their movements and inner workings, if you are ignore this paragraph. If I use a longer file length, would the 0 padding be required? To be honest, I'm not sure I quite understand the additional padding at all. You mentioned the length of the data was low.the other files are around 60 seconds or so. What did you mean by DC? A resonsant frequency of some kind? Or was this simply not required, being FindPeaks ignored anything below 0.002?
#Mechanical watch timing software code#
But it may just be something easily modified within the code or having better recordings.įirstly, is there a reason that you didn't filter the audio files? There is a lot of background noise in the recordings. thank you for your hardwork! It's incredible how accurate the algorithm managed to calculate the period. Hallo Neil! I finally got a chance to have a look at your work, and wow.
This is our period In:= 1/actualFreq // N This is our actual frequency In:= actualFreq = freqbin/(Length/sndSampleRate) // N
ListLinePlot], PlotRange -> All,įind our big peak in this region freqbin = This will tell us our resolution we will get in the frequency domain - make sure we are good enough resolution = 1/(bins/sndSampleRate) // NĬompute a power spectral density of the binary bins and plot it - we have a spike at DC and a spike at our desired frequency spec = Abs^2] Use the approximate frequency to window the data to what we care about approxFreq = 6 Īpproxbins = Round // N We can make up for some of that if we pad the data with a ton of zeros: paddingAmount = 20 ĪrrayPad] We need better frequency resolution because you only collected 11 seconds of data - the longer the data, the better the resolution. Now let's change to use binary (1's or zeros) for the peaks to make a nice time domain array binarypeaks = PeakDetect Through many readings of this link, this link, this (the last link does nearly what but alas it's bpm) and many others, I've managed to cobble together something.that doesn't seem to get me anywhere. Any kind of drift more than +/-0.002 second isn't acceptable. This is currently done 'by hand' for each individual file I have to deal with and when a person has MMA.well, you get the pointĪccuracy is a must in this case, the possible periods of the beats are at 0.200 and 0.166 repeating (5hz, and 6hz respectfully). I'm not particularly interested per say in the amplitude, however what I'd like to do, is to be able to automate and count the freq. It's extremely oscillatory, however, there is a clear and obvious local maximum (when zoomed in far enough anyways (the duration of a tick is 0.016s or so) :)īlue is the original soundwave, and orange is a Highpass and Wiener filtered form at 44100Hz sample.Ī finely zoomed in picture of each "tick" (unfiltered in an audio program) looks like so:
Here are the original files, for those willing to play. I'm looking to find the frequency of a relatively large dataset (or a relatively short audio file) of a repeating sound, like so: