Summary: Discovering quirks in MATLAB, finding a simple noise filter, and getting great sound!
As we discovered in Problems with Distortion, when we work with the modified power series, we do not get the expected result. In fact, we only get a lower quality version of our original sound file! However, taking a look at the minimum and maximum of our sound vector, we soon discover the problem: all values of our signal are between 1 and -1! When we take these numbers to the ten power, or even the five power, all we do is make our sound values smaller. Therefore, a quick fix would be to take these numbers to the one-tenth power or the one-fifth power, in effect dividing each power by ten. Upon checking out our signal, we get the wonderful distortion that we needed! As we play around with different coefficients and powers (all less than one), our own discerning ears determine which coefficients and powers are best for the distortion we want. However, in all of this playing around, a particular evil has crept in among our distortion: noise!
Several different methods can be used to take out the noise from our signal. In fact, an entire project was dedicated to noise-elimination in 2002. However, since this project focuses mainly on a MATLAB approach rather than a C approach, we'll leave implimenting that noise filter to a more adventurous group.
The simplest way to get rid of the noise would be to impliment a band pass filter in MATLAB, allowing only for the frequency range of the guitar (about 100Hz to about 4000Hz, perhaps higher depending on the high notes you play). This filter will get rid of most of the noise, except for the noise that lies within those frequencies.
Another easy way to get rid of the noise involves the FFT. After taking the FFT of the signal, you can decrease noise by throwing out the frequencies below a certain threshold.