I have made significant progress now with this project. While it is still not usable in its current state, it does the following:
*Displays FFT of Blackman Windowed audio input in real-time.
*Displays the transfer function, H(f) = Y(f) / X(f), of the measured system (channel one divided by channel two, or output (measured) divided by input (reference)), where X(f), Y(f) is the fourier transform of the output and input respectively.
*GUI now uses the quick excellently documented gtkdatabox library instead of the scantily documented libgoffice. Great Success!
*Averaging function for the H(f) frame, so graph doesn't bounce/jump in time and smoothing of the plot to make the data more readable by humans, ex: H(f) = (H(f-1) + H(f) + H(f+1))/3.
*Output is in dB and Octaves like humans hear, as opposed to Voltage and frequency in Hz, with actual frequency in Hz displayed under mouse cursor.
* Auto delay finding function for reference trace, basically a data correlation guess and test function
* Take four sample snapshots (store a current array), average them together (add and divide each frequency bin), and flip the result (multiply by -1)
These items are actually trivial to implement. As an engineer all the fft/data related processing is easy to me, the hard part has been the programming read tape (fixing Makefiles to include libraries, using the libraries API's). But I have learned some excellent concepts along the way.
Log in to post a comment.