After using LabView to collect the output after the buffer stage
of the signal conditioning circuit, we converted it to a series of amplitudes
with magnitudes between 1 and -1. After importing it into Matlab, we ran
several filtering and processing functions on it as noted. The relevant plots
of the raw data can be found to the right (click on any image to enlarge it).
The raw data shows a definite differentiation between the frequency
characteristics of the three woods. The difference is somewhat difficult to
observe, however, so we filtered the data exaggerate the difference. These
comparison plots are also to the right.
The raw data itself can be viewed by clicking on the links below. Note, however,
that they are text files containing arrays 40,000 elements long.
Somewhat surprisingly, the frequency responses observered essentially confirmed
the "traditional wisdom" of guitar material selection. Ash is known for being a
good all-around guitar hardwood. It doesn't overly color the sound and offered
fairly good response at several harmonics. Maple had a quirkier response curve, and
attenuated several of the lower harmonics while emphasizing the upper ranges. Koa --
exotic, exciting koa -- had strong bass response and an interesting ringing effect.
Explaination of the "Exaggeration" Filtering
While the original recorded sounds were mathematically very different (especially in frequency
content), we decided to exaggerate these effects so that those with an untrained ear can very easily
discern the different wood's tonality. To do this, we decided to invoke the evil spirit of a
non-linear transform The problem was that any linear scaling of the frequency content would have
been cancelled out by the normalization that would precede the writing of the sound files; the
linear scaling would have only made the amplitudes greater (and the output sound louder, at least
before the normalization). Therefore, we decided to extract the magnitude data from each
frequency-domain data set and square it (.^2 in Matlab) and then reincorporate the phase data and
create the sound as we would normally.
This non-linear transform exaggerated the difference between the sounds. Say for example we had two
numbers, 2 and 4 the difference between them is the value of the first number. A simple scalar
multiplication, say by 2 would result in 4 and 8. The problem with that is that the relative
differnce between the two numbers is still the value of the first. Therefore, when we renormalize
the data, the transformation disappears. Now consider the squaring; 2 and 4 become 4 and 16, and
the difference between the two is exaggerated. In this way the frequency content differences are
also exaggerated.
Explaination of the Averager
To make the rectangular approximation (the last graph to the right), we used a simple m-file (squareproduce.m) that runs through a
vector, looking for peaks beyond a specified threshold. When it finds one of these peaks, it
calculates the mean of the peak and then produces an output vector segment whose width is the width
of the peak and whose height is the mean value of the peak. Therefore, the rectangular
approximation has approximately the same energy at small range of frequency around the peak as the
original version. This makes it easier to see the relative strengths and weaknesses of the transfer
functions of the three woods.
|