On A Roll

• Chris Liscio

Today, I'm on a roll… </p> <p> For the past few weeks, I've been spending a lot of time looking into methods for extracting the 1/n octave analysis of a measured signal as best as possible. When I was deep into my research, there were a few methods I was toying around with using. </p> <p> First of all, I was considering the discrete wavelet transform as a solution to my problem. Each subsequent book and paper that I read just annoyed me further, and the implementation of these methods were not trivial given my current software design. During this research, I learned that Amazon's “search inside this book” was quite valuable for weeding books out. </p> <p> Another potential solution was a filter bank. This would have made a lot more sense if I was working with a realtime analysis (so I could potentially work in the time domain), but it was too irritating to wrap my head around integrating into FuzzMeasure. Also, I was not overly convinced by its accuracy for what I'm looking to do. </p> <p> One method that I have moved both towards and away from during my research was the constant Q spectral transform. This method is essentially a modification of the traditional DFT that converts the equally spaced bins to logarithmically spaced bins. This is a particularly interesting method, since it allows for recognizing musical notes very well. For my purposes, it allows for 1/n octave spacing, and I already remembered the DFT theory from school. </p> <p> The results put out by my code are great so far. I'm really happy with the numbers produced by my analysis, but now there's another problem. When plotting my results, a “flat” response now goes diagonal, and I will have to pink-filter my MLS results. For those not in-the-know, pink noise has equal power at every octave, and it shows up flat in a 1/n octave display. The reason you get the diagonal line when displaying white noise is that you have more frequencies per bin in the upper end than the lower end. </p> <p> So now, I just have to move the code from my test application over to my bleeding-edge FuzzMeasure project. Fun, fun. :) </p>`