When a bike spoke is plucked it makes a sound, vibrating at it's resonant frequency. Because there is a relationship between resonant frequency and a spokes tension, we can use a recording of the pluck, along with measurements of its length and gauge, to calculate the spokes tension.
The governing equation for this relationship is
f = 1 / (2L) * root(T / m)
where f is the resonant frequency, L is the length of the spoke, T is the tension in the spoke, and m is the mass per unit length of the spoke.
To the right is a plot of the sound of a spoke being plucked.
Recording a sound and getting out the resonant frequency is not as easy and straight forward as one might think. Having so many other spokes and pieces of metal nearby means that there are many harmonic signals that are difficult to account for, especially when simultaneously trying to factor in of differing spoke lengths and gauges. To simplify this proof of concept, we originally dedicated this app to the Olin College Community Go-Bikes. This allowed us to keep the spoke length and gauge consistent and helped with our filtering process during our first attempts before expanding to other bikes.
The discrete Fourier transform for the above sound profiles is shown to the left. The most prominent frequency is the zero frequency, as expected. Ignoring that frequency, it is obvious that there are many frequencies that are present in the signal and finding the actual resonant frequency without filtering would be very difficult
To find the resonant frequency within all the above data, we needed to filter the data to only show frequencies that translate to tensions that we could reasonably expect. For example, some of the frequencies translate to tension that are almost 0 N , which is unrealistic, and others translate to 10,000 N, which is also unrealistic.
To rectify this, we used the above equation to solve for the frequencies we expected. For the Go-Bikes, the spoke gauge is 14 gauge and is equal to a 2mm diameter and translates to a 0.024 kg/m. The spoke length is 248 mm. Sources for bike tensiometer, like this one, indicate that for a 14 gauge spoke, reasonable tensions range from about 500 N to about 1600 N. From here we calculated that the frequencies we can expect range from about 250 Hz to about 450 Hz. Knowing this, we filtered our frequencies that fall outside of that band. To the right is an example of a filtered signal in the frequency domain.
To the right again is the filtered signal but with the x-axis limited to the relevant frequency band to show more detail.
Since we know the needed frequency is within this band, we consider the frequency that is most present in the signal to be the resonant frequency. We did this by taking the frequency with the largest magnitude in the DFT and substituting that frequency into the equation.
Once this frequency is substituted into the equation along with length and mass per unit length, we output a tension value in kilogram-force, or kg-F, a standard unit for bike tensiometers. The DFTensiometer app goes through this process to output a value for tension.