I am using audacity to perform FFT on a pump. I am interested in specific frequencies such as 133hz for example. When I perform an spectral analysis (plot spectrum) and therafter export the exported values´, which I import to Excel to perform statistics, the frequencies given in the file is at preset values. Is there possible to change these values to study the exact frequency and its harmonics? for example 133hz, 266hz and so on?
Thanks for your help
FFT always subdivides the entire frequency range, from 0 Hz to half the sample rate, into equal intervals. The frequency bandwidth (0 to half the sample rate), is split in two, then in two again, then in two again … leading to the “Size” options of 128, 256, 512, 1024 …65536. To get frequency figures that match more closely with the frequencies that you are interested in, you need to set a larger FFT “size”, and select from the (larger) list of number those that you are interested in. http://manual.audacityteam.org/o/man/plot_spectrum.html#size
You can also use the resample feature (Tracks menu) to produce exactly those frequency bins you need.
For instance, we want a distance of 133 Hz and we calculate
133 * 512 (FFT size) = 68096 Hz
Just enter this value in the resample dialog.
In the plot spectrum dialog, we enter a value of 2048 to get a bigger resolution, i.e. each forth bin is our target frequency or a harmonic of it:
Frequency Level Name Octave Offset
33.25 -41.3605 C 1 +29 %
66.5 -41.2204 C 2 +29 %
99.75 -40.9838 G 2 +31 %
133 -40.646 C 3 +29 %
166.25 -40.1991 E 3 +15 %
199.5 -39.6305 G 3 +31 %
232.75 -38.9205 A# 3 -2 %
266 -38.0373 C 4 +29 %
299.25 -36.9267 D 4 +33 %
332.5 -35.4878 E 4 +15 %
365.75 -33.502 F# 4 -20 %
399 -30.3425 G 4 +31 %
We cannot use 512 itself since this would gather all frequencies in one bin.
With size * 4, the bin #4 represents frequencies from 116.375 Hz to 149.625 Hz with center at 133 Hz.
Thus, bigger sizes will narrow the desired band width.
It is clear that you have to filter out the unwanted lines in excel per formula.
Let’s assume that the exported values are in table1, then, table2 would have those formulas:
A1, B1 → ‘=table1!’
a2 downwards → '=indirect(“table1!A”&4*(row()-1)+1))
Change the A in quotes to B for the second column.
Change the 4 to the bin you want (e.g. 8 = every 8th bin)
Note that the formula is only translated from my german version, it’s possible that ‘indirect’ and ‘row’ are wrong–they are called ‘Indirect’ and ‘Zeile’ in German.