From the original SynthMaker forum (2004–2014), with its members’ names and dates.
treacherousumbrella ·
Has anybody attempted to use this for fundamental frequency estimation?
Have been reading various papers on this and it seems that it would be a much more useful technique than the zero crossing method, which I have found to be somewhat lacking in accuracy when dealing with noisy signals.
There are two new modules in SM2, cross correlation and auto correlation, but I'm failing to see how they relate to the techniques discussed elsewhere. Cross correlation seems like it would possibly be a useful module, yet it relies on the green timing system so real time accuracy is out of the question?
oddson ·
The FFT modules can estimate frequency very accurately.
Examples of a guitar tuner.
I've no idea how you'd perform autocorrelation in SM... I didn't think it was possible but I haven't upgraded to V.2
tor ·
This is only accourate to down to each 0.5Hz but it works.
sorry im tired atm.. you wanted something more accourate than zero crossing.
well well... maybe someone find it useful
oddson ·
tor wrote: This is only accourate to down to each 0.5Hz but it works.
It takes a while to find the frequency.
I've posted an x-cross method here:
Pitch to midi in SM?
But the FFT method is better:
oddson ·
The auto-correlation module in V.2 just uses a delay and multiplies the delay against the original signal to get a running 'correlation' signal.
(Which doesn't really make sense as a wave against itself --which should be perfectly correlated-- gives all positive results but not a steady value of 1 -- rather it's the square of the amplitude)
It also averages the value over whatever window you give it. (But again it will not provide an actual measure of correlation.)
But assuming this issue is not a problem for you... I'm still not sure how this module will help you determine pitch unless you already have a putative value for pitch. I.e. if you already suspect the value of the fundamental frequency you can use this to confirm or even use it to zero-in but I can't see how you can get it to tell you what the best fit is unless it sweeps through all possible wavelengths and settles on the one with the best average output. And without knowing the approximate value in advance you would need the average window to be long enough to capture at least a full wavelength before changing the delay. It would have to sweep slowly at first as it eliminated low frequency values - you could then shorten the window up as you increase the trial frequency value. You can't start the other way as you'd hit high correlation values at multiples (octaves) so you need to find the first-best-fit.
This just doesn't seem to be fruitful approach. (It might work for a tuner as you'd zero in on the highest correlation value as you tuned the instrument to the expected delay.) But maybe I'm missing something obvious.
I know auto-correlation can be used to find pitch... I just can't see how this correlation module will get you there (or anywhere close).
EDIT - just opened the cross correlation module. It looks like it sweeps through using a green loop. I'm pretty sure the FFT approach will kick it's ass but I haven't tested.
treacherousumbrella ·
Thanks for the replies 🙂
@Tor, I was after autocorrelation but I'm not sure it will be possible in SM so I may yet have to stick with this method. I have built a reasonably accurate zero crossing detector, but will compare yours also, thanks.
@Oddson the device I am attempting to build involves tuning an effect in real time to the fundamental frequency of the signal. I had previously ruled out FFT for this purpose, as while potentially very accurate in the f domain, it will have poor resolution in the time domain as to when the pitch change occurred. This is further compounded by the forced use of green maths for the FFT in SM and the associated trigger timing errors.
I had previously tested this method from the wiki - [old link]
but yours appears to use slightly different modules IIRC so will test aswell, thanks.
The cross-correlation module seems to be exactly what I need, but again operates using green maths. The human ear is very sensitive to pitch changes and can certainly hear changes that are far more subtle than the 100Hz trigger signal available from the Tick 100 module.
This leads me to the issue of the limited array modules/code available for stream and am currently struggling to imagine a way that the shift array could be performed in stream code. Autocorrelation is certainly possible in real time as it is used by devices such as Autotune, amongst others.
http://valhalladsp.wordpress.com/2009/0 ... -analysis/
Approx 600 samples are required to detect a frequency as low as 50Hz, requiring 600 calculations per sample but this paper suggests an interesting adaptive solution - http://cnx.org/content/m11714/latest/
There are many other papers which are on the more mathematical side if anyone is interested.
tor ·
just some thoughts
I have not yet looked at the wiki example that you link to Treasure. But from reading the description i guess it works kind of the same way as mine. As Oddson mention mine use a whole second to to get the right readout but this can be adjusted down at the cost of accuracy as in the wiki example. Just put a divider on the SR input. Also as mentioned this works fine on fundametal waveforms but not so wel on more complex tones containing hamonics. But if you drive the signal hard through a clipper this problem should be eliminated. If you have more than one cross corrs in paralell and time shift them and average the result you probably get more accurat results with shorter estimation times.
tor ·
ahrgh...... yet again im sorry. too quick thoughts seem to fool me 😉
number of extra zero crossings of complex waveforms will will not be affected by a hard diven clipper. the extra crossings will result in the manner of higher octave readouts. something we do not want 😕
tor ·
it is a disease... posting out loud quick thoughts without filtering 😀
oddson ·
treacherousumbrella wrote: @Oddson the device I am attempting to build involves tuning an effect in real time to the fundamental frequency of the signal. I had previously ruled out FFT for this purpose, as while potentially very accurate in the f domain, it will have poor resolution in the time domain as to when the pitch change occurred. This is further compounded by the forced use of green maths for the FFT in SM and the associated trigger timing errors.
If you know your target frequency or the approximate value the autocorreletion approach might be feasible as you don't have to scan all over the place to find it. But detecting pitch requires time by definition... the green FFT method can be sped up to the max trigger rate of SynthMaker if you drop the bin resolution with just a little loss of accuracy (I was aiming for high accuracy as I was working on a guitar tuner).
treacherousumbrella ·
oddson wrote: If you know your target frequency or the approximate value the autocorreletion approach might be feasible as you don't have to scan all over the place to find it. But detecting pitch requires time by definition... the green FFT method can be sped up to the max trigger rate of SynthMaker if you drop the bin resolution with just a little loss of accuracy (I was aiming for high accuracy as I was working on a guitar tuner).
The autocorrelation approach is certainly feasible as it is used in a number of professional products, whether it is feasible in synth maker may prove to be another matter. As for knowing the required frequency, only the lower limit is important as the window size must be as least as long as 1 cycle of the lowest frequency, where half wave rectification is used. This obviously declines logarithmic as the pitch/f increases. Pitch detection does, of course, require time, but this time may be as small as one cycle of the fundamental frequency.
Thanks for the FFT schematics, they work very well for a guitar tuner but the timing accuracy proves to be too low for my purposes.
treacherousumbrella ·
tor wrote: it is a disease... posting out loud quick thoughts without filtering 😀
I'm sure everyone is guilty of that at times 🙂
tor wrote: If you have more than one cross corrs in paralell and time shift them and average the result you probably get more accurat results with shorter estimation times.
I am thinking somewhat along these lines at the moment. Constructing an algorithm that lays part way between peak detection and autocorrelation, by grabbing 10/20 concurrent samples then looking for this repeating pattern over the length of the window. I am not yet sure if this will result in any better accuracy than the zero crossing/peak detection methods but will post an OSM if it's effective.
trogluddite ·
Hi All,
I'm interested in the pitch detection problem too - been using it for my GRRR guitar synth (Thread Here)
Currently, Im using zero crossing detection with some heavy filtering to 'desensitize' it to harmonics - with OKish results. My zero crosser interpolates the crossing point for a bit of extra accuracy, but I'd love to lose the octave shifts when the harmonics start to dominate.
Anyway, I have an idea for an autocorrelation algorithm - but it all depends on a technicality that I can't seem to find the answer to. The following scribble may help to illustrate my question...
The examples I've seen on the net show example plots of the autocorrelation function vs. time as being like the "diagram" on the left - with one obvious minimum per wave cycle - but is it possible for a waveform to give an autocorrelation function like the one on the right - with 'false' minima where the function changes from fall to rise several times per cycle?
Trouble is I don't know the answer without building it (lots of hard work and time I'd rather avoid if I'm wrong!) - my grasp of the maths isn't up to reasoning this one out. If one minimum per cycle is a reasonable assumption, then I have an idea for using the periodicity of the autocorrelation function to make a relatively 'lite' implementation.
Dell ·
Hi.
What you are requesting can be done in Synthmaker, providing you know what fundamentals you want to enhance.
In the 70’s DBX created such a device and called it a Sub-harmonic Synthesiser even though the frequencies it generated were fundamentals.
There is a downside for such a processor. You must have a lot of amplification in addition to have loudspeakers that are robust enough to withstand the fundamental frequencies.
Since everything is based on estimates, the results almost always sounds worse for it amplifies the fundamentals on everything. These hardware processors were pretty much limited to a certain frequency then drastically rolled off to prevent loudspeaker damage.
There were a few VST plug-ins available in the early 2000 that offered such a design, however never brought good results.
All of this in the Sound Reinforcement Market is classed as synthetic bass for, it does not sound natural compared to real thing.
Also, bear in mind the lower the frequency, the slower the response. That is just how frequencies work, and if you try to speed them up the pitch is increased.
I bid you good luck on your idea. It will take a lot of time and calculations to get done, but Synthmaker will not have an issue to create it.
Cheers!
treacherousumbrella ·
I can't picture a scenario where any false minima would be present that weren't harmonically related, unless perhaps feeding a signal that contained very strong inharmonic frequencies. In most music this type of signal would be very rare in a monophonic signal.
False minima at harmonic frequencies are certainly possible but it seems that commonly the signal is still filtered before frequency estimation to narrow down the harmonic content to a range that would be most likely to contain the fundamental frequency, reducing the enrgy of higher harmonics. Another paper suggested that false minima at harmonic frequencies could be dealt with via a logic approach after estimation, will try and dig it out.
I am interested in your method for interpolating the crossing point, the only way I have been able to achieve this is through over sampling so far.
treacherousumbrella ·
Dell wrote: Hi.
What you are requesting can be done in Synthmaker, providing you know what fundamentals you want to enhance.
In the 70’s DBX created such a device and called it a Sub-harmonic Synthesiser even though the frequencies it generated were fundamentals.
Thanks for the input, but subharmonic generation is not my intended use for the f0 estimation, a good f0 estimator could certainly be useful for others who wish to pursue that route though. 🙂
tor ·
here is a new version of the zero crossing based on my thought in the earlier post. it is rather quick and accourate 🙂
the read out could be smoothed more but i have not yet found a proper way to do it.
trogluddite ·
treacherousumbrella wrote: I am interested in your method for interpolating the crossing point, the only way I have been able to achieve this is through over sampling so far.
In the GRRR thread, I also posted a few of the individual modules - mostly ASM, but the original code is also in there too. Basically it's just a very simple linear interpolation - if sampleA is below zero, and sampleB above zero...
X = (Sample B)/(SampleA-SampleB)
Not sure how the accuracy would compare to oversampling, but it certainly seems more accurate at catching high frequencies than using purely an integer sample count.
I also use a trick I picked up from examining the old Roland GR manual - as well as some serious LP filtering there is a bandpass filter at the detector input. The BP takes its centre frequency from the frequency detector, so that there is a kind of feedback loop which stabilises the pitch detection - helps to eliminate noise and harmonics as notes decay, though that may be an optimisation that only works well with guitar type signals.
treacherousumbrella ·
Aha, very nice solution. Should save some CPU over using the oversampling method. The bandpass feedback loop sounds interesting too, although do you not find a certain inertia to frequency change? Will have to investigate, thanks.
Dell ·
treacherousumbrella wrote:
Dell wrote: Hi.
What you are requesting can be done in Synthmaker, providing you know what fundamentals you want to enhance.
In the 70’s DBX created such a device and called it a Sub-harmonic Synthesiser even though the frequencies it generated were fundamentals.
Thanks for the input, but subharmonic generation is not my intended use for the f0 estimation, a good f0 estimator could certainly be useful for others who wish to pursue that route though. 🙂
Possibly, I did not explain myself correctly.
DBX never generated sub harmonics. They amplified fundamentals based on A notes. However, due to the intensity of the fundamental notes, it spoiled the original content. I measured the ones I owned years ago to confirm. 🙂
Have you ever considered a Dynamic Equaliser which will give you better control on all the frequencies?
That may be better suited for your needs since you are only looking to highlight certain notes while playing a guitar.
Voxengo created a larger scale version (32-band I believe) that follows the same concept.
Cheers!
treacherousumbrella ·
Dell wrote:
Possibly, I did not explain myself correctly.
DBX never generated sub harmonics. They amplified fundamentals based on A notes. However, due to the intensity of the fundamental notes, it spoiled the original content. I measured the ones I owned years ago to confirm. 🙂
Have you ever considered a Dynamic Equaliser which will give you better control on all the frequencies?
That may be better suited for your needs since you are only looking to highlight certain notes while playing a guitar.
Voxengo created a larger scale version (32-band I believe) that follows the same concept.
Cheers!
I'm not quite sure that I understand the relevance of the DBX device. To me it appears to be a sort of multiband compressor?
The technique that is being examined in this thread is designed to create a real time estimation of the fundamental frequency of a monophonic signal for the purposes of tuning another audio effect, such as a filter, pitchshifter (ala Autotune), or any other effect that may be relevant. 🙂
trogluddite ·
treacherousumbrella wrote: The bandpass feedback loop sounds interesting too, although do you not find a certain inertia to frequency change?
That's what makes me wonder how guitar specific it is - generally seems to work quite well at following hammer-ons etc., apart from the odd occasion if you drop the note by a whole octave - it will then stay locked onto the second harmonic sometimes. I guess that for guitar there is enough broadband noise in the transients to give it a kick to the new frequency.
Dell wrote: looking to highlight certain notes while playing a guitar.
You've obviously never heard me play guitar!! 😉
Seriously though, I think you' may have something with the filtering/EQ - it has struck me before that there are theoretically no harmonics in the same octave as the root, since harmonic 2 is an octave up - so a set of steep BPs at octave intervals might to be able to tell us which octave our note is in. Combined with the zeroX measurement, that should nail the note we're looking for - the note is in the lowest octave who's filter shows a significant signal level.
treacherousumbrella ·
trogluddite wrote: Seriously though, I think you' may have something with the filtering/EQ - it has struck me before that there are theoretically no harmonics in the same octave as the root, since harmonic 2 is an octave up - so a set of steep BPs at octave intervals might to be able to tell us which octave our note is in. Combined with the zeroX measurement, that should nail the note we're looking for - the note is in the lowest octave who's filter shows a significant signal level.
That is one possible solution I have been toying with for greater accuracy, an array of BP filters then feeding the peak detector with only the output of the filter with the highest amplitude, I have yet to implement it though. IME the zero crossing/peak detection methods seem to be far more accurate when fed with a very narrow band of signal.
trogluddite ·
Have to be careful which filter band you select though - greatest amplitude doesn't always imply the fundamental, that's why I was suggesting the lowest band with a "significant" amplitude, though what's stumped me so far is how to decide "significant".
A fixed threshold didn't worked too well in my early experiments (admitedly only 3 bands) - I think maybe it should measure the amplitude (power?) as a proportion of the overall signal level.
I'll keep my eye on the thread, but I'm a little bogged down in a couple of other projects to devote too much time to experimenting ATM.
PS: Just realised that most of these zeroX codes are mono, so if four bands is enough, it could use mono4 - and hence no extra CPU power.
trogluddite ·
My curiosilty got the better of me again (I've always been a cat person) 😕
Here's a proper Autocorrelation module - but watch your CPU's folks, it reads 20% CPU (SM meter) on my Core2 Quad - a right greedy bugger, despite using mono4 to get a 512 sample window from 128 loop iterations. There's quite a bit that can be optimised further in assembly, and maybe some hopping will work OK, but even so, this method is going to be very greedy compared to zero crossings.
oddson ·
trogluddite wrote: Here's a proper Autocorrelation module
What the hell is the output?
EDIT - Oh... I get it. This is just the correlation part. How do you get to a pitch detector from here? How will it ever be faster than FFT?
MichaelBenjamin ·
nice module, made me look up correlation - interesting.
from wikipedia:
Autocorrelation is the cross-correlation of a signal with itself. Informally, it is the similarity between observations as a function of the time separation between them. It is a mathematical tool for finding repeating patterns, such as the presence of a periodic signal which has been buried under noise, or identifying the missing fundamental frequency in a signal implied by its harmonic frequencies. It is often used in signal processing for analyzing functions or series of values, such as time domain signals.
so its a pattern detector!
you could use it to control values kind of semi automatic. or feed the correlation value back to the delay time to get a strange oscillator maybe?
edit:
gives some nice sounds, like a fridge crossed with a modem and a plotter
trogluddite ·
oddson wrote: How do you get to a pitch detector from here? How will it ever be faster than FFT?
Like I say, I was just being curious to see if the maths was do-able (I never tried used big code loops before) - trying to find freq from the correlation would involve even more code to scan for the null, and you'd also need to oversample/interpolate to get better than sample accuracy.
In terms of comparison to FFT, I'm not sure how that would pan out - it may be cheaper CPU wise if run at a similar data rate (i.e. every 400 samples or so equiv. to the green FFT at max. ticks)
For the kind of "real-time" detection needed for pitch FX and driving synths, I'd agree that this is a dead-end unless there are some serious mathematical shortcuts that can be taken.
But still - as MB has pointed out, it's never a complete waste to look into these things - an alternative application for it could always turn up sooner or later.
Dell ·
treacherousumbrella wrote:
I'm not quite sure that I understand the relevance of the DBX device. To me it appears to be a sort of multiband compressor?
The technique that is being examined in this thread is designed to create a real time estimation of the fundamental frequency of a monophonic signal for the purposes of tuning another audio effect, such as a filter, pitchshifter (ala Autotune), or any other effect that may be relevant. 🙂
Hi.
The dbx splits the signal into three bands (however you can create more if you like) and boost the output based on the dynamic signal of the music.
In the hardware world it is classed as a Dynamic Expander for it boost (not contract) the dynamic signal in the music.
In your case, you could create multiple frequency bands based on the fundamental notes required, select the desired dB level each frequency will boost on to, achieve more energy at the fundamental note(s).
Typically, to get started in Synthmaker, you would require multiple band pass filter modules, configured to what ever frequencies you desire, multiple mono to float modules to trigger the dB boost, and a full understanding on how the Q will reflect the dB level of the surrounding frequencies that fall between the fundamental notes.
Your biggest challenge will be slowing down the response (release) time so the fundamental notes are not cut off too abruptly using the tick 25. Of course, you could just use compressors in an inverted fashion and have more control on the Attack & Release. In addition the dB estimate will need to be configured properly to prevent too much overshoot on the output level at the fundamental frequency or frequencies.
Bear in mind such a design will drain a lot of CPU continuously pending on how sophisticated the design is.
Cheers!
Dell ·
trogluddite wrote:
Dell wrote: looking to highlight certain notes while playing a guitar.
You've obviously never heard me play guitar!! 😉
Seriously though, I think you' may have something with the filtering/EQ - it has struck me before that there are theoretically no harmonics in the same octave as the root, since harmonic 2 is an octave up - so a set of steep BPs at octave intervals might to be able to tell us which octave our note is in. Combined with the zeroX measurement, that should nail the note we're looking for - the note is in the lowest octave who's filter shows a significant signal level.
Precisely! 🙂
trogluddite ·
Dell wrote: you could just use compressors in an inverted fashion
Makes me wonder if we could do exactly the opposite of the dbx - i.e. compress the harmonic bands rather than expanding the fundamental.
Say there is a lot of energy in Band 1, so we suspect this is where our freq lies. We could send the dB level of band 1 to the gain-reduction input of compressors for bands 2,3,4 etc. to supress the harmonics - so it would be a form parallel compression where each band of gain reduction depends upon the power of all lower bands.
Using mono4, the parallel filtering and compression could be reasonably CPU 'lite' - especially as we will never be hearing any of these signals, so hi-fi quality and consistency of phase are not important.
It's a fairly similar idea to the DBX, but I feel that making the freq bands interact with each other may enhance selectivity - we have a fairly simple rule to observe; fundamental will be in the lowest active freq band - so I figure that my suggeston may help to bias the power distribution in the direction that we're interested in.
P.S. Any idea which is the best filter type/algorithm for this kind of freq splitting - the ones I'm currently using in my guitar synth really don't seem selective enough for this kind of job.
Dell ·
trogluddite wrote:
Dell wrote: you could just use compressors in an inverted fashion
Makes me wonder if we could do exactly the opposite of the dbx - i.e. compress the harmonic bands rather than expanding the fundamental.
Say there is a lot of energy in Band 1, so we suspect this is where our freq lies. We could send the dB level of band 1 to the gain-reduction input of compressors for bands 2,3,4 etc. to supress the harmonics - so it would be a form parallel compression where each band of gain reduction depends upon the power of all lower bands.
Using mono4, the parallel filtering and compression could be reasonably CPU 'lite' - especially as we will never be hearing any of these signals, so hi-fi quality and consistency of phase are not important.
It's a fairly similar idea to the DBX, but I feel that making the freq bands interact with each other may enhance selectivity - we have a fairly simple rule to observe; fundamental will be in the lowest active freq band - so I figure that my suggeston may help to bias the power distribution in the direction that we're interested in.
P.S. Any idea which is the best filter type/algorithm for this kind of freq splitting - the ones I'm currently using in my guitar synth really don't seem selective enough for this kind of job.
That is definitely possible.
It would be a matter of how much CPU you are willing to sacrifice in order for it to be done.
Each harmonic note would need to be filtered using a band-pass filter based on the note’s frequency and, have it’s own compressor.
To eliminate any interference from the other frequencies once compression is taking place at the harmonic note (a common artefact with multi-band compressors is once you reduce a particular frequency, all the others are automatically increased), each compressor output will need to be wired in parallel at the outputs. Using such a method is more of a sophisticated way of design due to each circuit being discrete.
However, for every compressor module added to the outputs, the CPU Consumption is increased.
If you used four compressors, that is four times the output and four times the CPU Consumption. You can regulate the output level with a VCA module so the four compressors will offer an output of one compressor. However, the consumption will not be reduced for it is still four compressors sitting on the outputs.
I couldn’t say what filter is best for a Guitar since my experience with musical instruments stems from Pianos & Saxophones.
Cheers!
trogluddite ·
Dell wrote: However, for every compressor module added to the outputs, the CPU Consumption is increased.
With use of mono4 that can be mitigated quite a bit, I think - by definition, our input source would only be a mono signal, so four bands would be for the price of one, CPU wise, using mono4.
Four bands may even be sufficient if using using the filters/compression simply to identify the correct octave - combined with zero crossings (and a little logic) to find the precise note - kind of like the octave/semitone knobs on a synth oscillator.
Four octaves would span most of the range of many instruments, especially as it is 'octave up' detection on low notes that is often the biggest headache with zero-X pitch detection.
Thanks for your ideas - I'll hopefully have time over the coming weekend to play with this a little - I'll post up any interesting results.
Dell ·
No worries Mate.
I am happy to offer some of my bizarre ideas on designs I've created in Synthmaker. 😀
Cheers!
tor ·
Hey boys!
Thanks for the good tips. The bandpass idea was good. I did some testing and experimenting and found that only with the use of a HP and BP filter the job is done. The BP filter is tuned below the frequency readout. That will make the readout and filter chase down to the fundamental tone. This is quite fast, accourate and also works on complexe waveforms like guitars and other stuff. Im not really going to use this for anyting but i love a challenge and this thread got me started.
Please tell me what you think and come with more ideas of improvement if have any you would like to share. Maybe I will peak into the other stuff in here posted by you guys.
Thanks again!
tor ·
This was a double post... dont really know what happend 😕
trogluddite ·
tor wrote: Please tell me what you think
You've really hit on soemthing there I think; thanks 🙂
I'm getting some good results from it in terms of the accuracy with complex waveforms - typically around +/- 0.1Hz with everything I've thrown at it so far (I'm using samples of my guitar so that the input freq is predictable - I shall try later with some samples that have lots of deliberate fret buzz and amplifier hum, to see how far it can be pushed)
I will definitely experiment with this idea in my guitar synth schematic. The difficulty there is that the frequency must be measured constantly (i.e. no restart button), and 'scanning' through the frequencies would sound odd - but I think your idea of looking below the detected frequency should still apply in principle, and it is much simpler than using parallel compression to bias the frequency response.
Good idea with the HP filter too - I had completely forgotten to remove DC offsets in my design - that should also help to reduce the impact of any remaining harmonics on the zeroX detection.
tor ·
Thank you for the great feedback. The Restart trigger is only necessary if the signal has been zero for a period of time. Then it needs a kickstart. Otherwise it is scaning contigous. Noise from the guitar or any input will prevent it from stopping.
Dell ·
If anyone gets lost on how this design is supposed to sound, Brainworx released their Dynamic Equaliser beta, which performs exactly as I was trying to describe in my previous posts.
I am testing it right now.
Their version is a variable two-band. I would recommend anyone who is looking create what I suggested in Synthmaker to download the Brainworx demonstration and use it as reference.
If you're code is zero-crossing based why does it need a buffer?
I've always just kept a counter from on zero-cross to the next and fed that too a lowpass to get the 'average' wavelength.
tor ·
He he good question, and you answer it your self. Averaging 😉
That said... I thought maybe I got more accuracy this way but I have not measured against a LH filter as you suggest and I just did not think of it. Was it you or luddite that also suggested a method of calculating a more exact position of the zero points? Any how I will check it out also.
Thanks!
Tor
Wrote something here? To have a post removed or your name hidden, write to [email protected].