Viotar/Quantifying the signal: Difference between revisions
Line 127: | Line 127: | ||
====Recognising Helmholtz and quantifying the signal==== | ====Recognising Helmholtz and quantifying the signal==== | ||
Probably, Helmholtz is the only harmonic vibration that you can get from a string when you bow it. With a bow you can never get a normal standing wave as when you would pluck the string. Because of this, it is not necessary to quantify "how much" the measured vibration is the specific Helmholtz waveform. It may suffit to merely quantify how harmonic the measured vibration is. This can be done by detecting the fundamental frequency in the | Probably, Helmholtz is the only harmonic vibration that you can get from a string when you bow it. With a bow you can never get a normal standing wave as when you would pluck the string. Because of this, it is not necessary to quantify "how much" the measured vibration is the specific Helmholtz waveform. It may suffit to merely quantify how harmonic the measured vibration is. This can be done by detecting the fundamental frequency in the Fourier transformation of the signal, and looking how many multiplications of this frequency are still in the signal. The more overtones, the sharper the Helmholtz, and therefore the better the tone. | ||
In order to do this we made amplitude plots in the frequency domain. This gives information about the frequencies at which high peaks appear and what their amplitudes are. We did this for the model as well as for our measurements. When we first analyzed the model, we seemed to be right in the fact that as the tone gets better, more peaks appear in the | In order to do this we made amplitude plots in the frequency domain. This gives information about the frequencies at which high peaks appear and what their amplitudes are. We did this for the model as well as for our measurements. When we first analyzed the model, we seemed to be right in the fact that as the tone gets better, more peaks appear in the power spectrum. These peaks are not randomly spread out, but appear at harmonic frequencies. That is, at n-times the fundamental frequency with n being the number of the peak. This is also made visible in the figures below. These figures show the difference between the frequency that you would expect following this rule and the actual frequency that comes out of the model. For an unidentifiable tone, there are no harmonic tones on the expected frequencies, as the graph runs out of the figure. For a clear Helmholtz vibration however, the rule is satisfied for nine peaks. A second thing that becomes clear by analyzing the results from the model, is that the amplitude of every next peak decreases exponentially. | ||
[[File:Model_unidentifiable.PNG|frame|Border|left|Figure 7: Amplitude ratio and frequency errors for an unidentifiable sound]] [[File:Model_helmholtz.PNG|frame|Border|center|Figure 8: Amplitude ratio and frequency errors for a Helmholtz vibration]] | [[File:Model_unidentifiable.PNG|frame|Border|left|Figure 7: Amplitude ratio and frequency errors for an unidentifiable sound]] [[File:Model_helmholtz.PNG|frame|Border|center|Figure 8: Amplitude ratio and frequency errors for a Helmholtz vibration]] | ||
Line 138: | Line 138: | ||
[[File:Metingen_helmholtz.PNG|frame|Border|center|Figure 9: Amplitude ratio and frequency errors for measured Helmholtz sound]] | [[File:Metingen_helmholtz.PNG|frame|Border|center|Figure 9: Amplitude ratio and frequency errors for measured Helmholtz sound]] | ||
So, we seemed to be right in the fact that a vibration being Helmholtz has something to do with the frequencies at which harmonic peaks appear and the amplitude of that peaks compared to that of the fundamental frequency. There is only one important thing that makes this method of quantifying the signal irrelevant for our prototype control system. The point is that for this method a | So, we seemed to be right in the fact that a vibration being Helmholtz has something to do with the frequencies at which harmonic peaks appear and the amplitude of that peaks compared to that of the fundamental frequency. There is only one important thing that makes this method of quantifying the signal irrelevant for our prototype control system. The point is that for this method a Fourier transformation needs to be done in the control unit in order to detect what the quality of the signal is. The problem is, that a Fourier transformation cannot be done instantaneously but only when enough information about the vibration is gathered. A simple rule tells that the resolution of the transformation equals 1/(sample time). In our case, where quality of the sound depends strongly on the exact frequencies where peaks appear, we should have a resolution in the frequency domain of at least 1 Hz. This means that the sample time for every transformation needs to be about a second, while the vibration needs to be adapted in several milliseconds up to several hundreds of seconds at most. So, this method is simply never going to satisfy our requirements. | ||
However, there is another way to perform this method, being in the time domain. When we take a look at the sawtooth like waveform of a Helmholtz vibration, we can already in the time domain draw some conclusions regarding to the quality of the vibration. The reason for this is that the harmonic peaks in the time domain, with their decreasing amplitudes, and the saw-toothed waveform in the time domain are strongly related to each other. A saw-toothed waveform essentially is a set of harmonic sinuses with decreasing amplitudes, being sharper when more harmonic sinuses are present. Putting this in an equation leads to the following expression for the signal, consisting of n harmonics: | However, there is another way to perform this method, being in the time domain. When we take a look at the sawtooth like waveform of a Helmholtz vibration, we can already in the time domain draw some conclusions regarding to the quality of the vibration. The reason for this is that the harmonic peaks in the time domain, with their decreasing amplitudes, and the saw-toothed waveform in the time domain are strongly related to each other. A saw-toothed waveform essentially is a set of harmonic sinuses with decreasing amplitudes, being sharper when more harmonic sinuses are present. Putting this in an equation leads to the following expression for the signal, consisting of n harmonics: | ||
Line 151: | Line 151: | ||
[[File:Constant_force.PNG|frame|Border|left|Figure 11: Correlation for varying bowing speeds]] [[File:Constant_speed.PNG|frame|Border|center|Figure 12: Correlation for varying bowing forces]] | [[File:Constant_force.PNG|frame|Border|left|Figure 11: Correlation for varying bowing speeds]] [[File:Constant_speed.PNG|frame|Border|center|Figure 12: Correlation for varying bowing forces]] | ||
====Controller concept==== | ====Controller concept==== | ||
The process described above, brought us to a controller design for the prototype. This controller makes use of a look-up table. This look-up table contains all the pre-defined values for bowing speed and force. By determining the fundamental frequency of the signal, the controller "knows" which fret is played and therefor what values for bowing speed and force are required. To make sure that the bowing speed indeed equals the value from the look-up table (also under varying bowing force) the engine speed is measured using an encoder and looped back to the controller. For the bowing force this does not seem to be neccesary, since the bowing force does not depend on the bowing speed. | The process described above, brought us to a controller design for the prototype. This controller makes use of a look-up table. This look-up table contains all the pre-defined values for bowing speed and force. By determining the fundamental frequency of the signal, the controller "knows" which fret is played and therefor what values for bowing speed and force are required. To make sure that the bowing speed indeed equals the value from the look-up table (also under varying bowing force) the engine speed is measured using an encoder and looped back to the controller. For the bowing force this does not seem to be neccesary, since the bowing force does not depend on the bowing speed. |
Revision as of 20:46, 26 January 2011
Software Design (Quantifying the signal we want to see)With software design, we mean the way the controller is structured. There are many possibilities, but it is important to design the controller in such a way that it matches the requirements that are stated. The controller will be tested on a fixed point model of the string, so it is also important to verify that the model is accurate enough to represent the real string. Besides that, also the following questions need to be answered to come to a good software design:
In order to answer these questions, some experiments have been done. These experiments give information about what a bowed string looks like in both time and frequency domain. When we are able to find out how to recognize a pleasant (Helmholtz) sound from time and/or frequency information, this is a first step in designing an appropriate controller.
ExperimentTo measure Helmholtz motion, a measurement will be done for the A-string and the B-string, on the open string and the 1st, 12th and 13th fret. The open string and 1st fret measurements are needed to "shift" the signal in the frequency domain, when necessary. Everything that shifts up according to the fret change is part of the vibration we want to measure, the rest is noise. With this principle we are hoping to be able to cancel the noise from the measurements. The 12th and 13th fret are done so that the same can be done for a much higher position (one octave up), because the waveform may have a different character there. To measure raucous noise and surface sound, only the open A- and B-string will be measured. That is, beacause we only want to know what these signals look like and we do not actually use them. Experiment goalThe goal of this experiment is to find out what a Helmholtz vibration and a noisy (surface or raucous) sound look like in frequency and time domain. We measure the vibration of the string in three ways. Firstly, we measure the transversal motion of the string, using a laser. This will be done because we need to know the vibration of the string at one single point, since the model also describes one point. Also the sound that you hear when the instrument is bowed is measured using a microphone. At last, the vibration at the bridge will be measured, using the existing piëzo’s. This is done because of two reasons. Firstly, we want to know the difference between the vibration of the end of the string and the vibration at a single point somewhere in the middle of it. The second reason is that the piëzo’s seem to be the best way to pick up the signal for the controller because these piëzo’s are also used as pick up element in normal electric guitars. The main goal of these measurements is that we want to know how to recognize a clear Helmholtz vibration in the frequency domain. Also the time domain information will be important, but the results for a clear Helmholtz vibration are pretty obvious here. Experiment setupThe measurement with the laser will be done using a Laboratory Interface. For the measurements with the piëzo’s and the microphone, we will use a SigLab. The experiments will be done for two different strings, the A and B string. The string will be bowed at 4 different fret positions, being the open string, the 1st, 12th and 13th fret. All the measurements will be done twice to reduce errors. ResultsIn figure 1 both the time and frequency domain results are given for what is called a raucous sound, which means that the string is sticking to much. This measurement is done using a piëzo guitar pickup. As can be seen from the power spectrum, there are no harmonic vibrations in this sound. It is all very chaotic and there is only noise. In figure 2 the results are given for what is called a surface sound, which means that the bow force is to low and the bow scratches along the string. In this figure there are some peaks that are clearly higher than others. These are the hormonic frequencies for a Helmholtz vibration as we will see later. Beside those peaks however, there is also a lot of noise in between them. This noise could be a thing that makes a surface sound recognisable later on.
Noise cancellationThe first goal was to cancel the noise from the measurements using the pitch shifting method explained in the experiment plan. This has proved to be not as simple as we have thought. The power spectrum of a measurement may be split up in two components: the 'noise' component, which stays the same when a higher note is played, and the 'harmonic' component, which shifts up when a higher note is played. They may be written as [math]\displaystyle{ p_n }[/math] and [math]\displaystyle{ p_h }[/math], respectively, so that [math]\displaystyle{ p=p_h+p_n }[/math]. The two measurements are called '1' and '2', of which '1' will be pitch-shifted towards the pitch of '2'. The shifted measurement is called 's'. will yield these equations:
These are 4 equations with 6 unknowns, so the system can't be solved. Therefore, the measurements of the 1st and 13th frets are dropped, because they are now only excess measurements. Controller DesignPossible controller architecturesBefore we can decide what type of controller would be best for our system, let's take a look at the possible controller architecture. The first type of controller is open loop (feed forward). This means that the controller only sends a signal to actuators without checking whether the desired requirements are achieved or not. The second architecture is a closed loop (feedback) controller. This controller compares a measured value with a pre-defined value and adapts the system, untill the measured value equals the pre-defined value. At last, there is a combination of both. In this controller, all the known information is used to send a feed forward signal to bring the system as close as possible to the desired state. The small changes are made using the feedback signal. This controller is generally preferred above the feedback only controller because controlling on the feedback signal is mostly rather slow. Reflected on our viotar, this gives the following concepts:
All the values for bow speed and force are pre-defined in a look-up table for every fret. From the obtained signal, the fundamental frequency of the vibration can be determined, which is directly related to the played fret. After that, the controller looks up the right values for bow speed and force and uses it as controlvalues.
The obtained signal is compared with an ideal Helmholtz signal, and a “tone quality” is assigned. Using this rating as a feedback quantity, a closed loop is created with the goal to get an ideal Helmholtz signal from the string.
First, the right bow force and speed are determined using the lookup table, and actuated. Then, the comparison with the ideal Helmholtz signal starts, creating a feedback loop using this “tone quality”. This feedback signal is only used for fine-tuning the bow force and speed. A combination of feed forward and feedback theoretically leads to the best result. That's why we choose to work this concept out first. In theory this means that tone intensity and quality will be controlled in the way shown in figure 6. In order to do that, we need to be able to recognize Helmholtz and quantify the signal. This can be done in both time and frequency domain as we will see later. Recognising Helmholtz and quantifying the signalProbably, Helmholtz is the only harmonic vibration that you can get from a string when you bow it. With a bow you can never get a normal standing wave as when you would pluck the string. Because of this, it is not necessary to quantify "how much" the measured vibration is the specific Helmholtz waveform. It may suffit to merely quantify how harmonic the measured vibration is. This can be done by detecting the fundamental frequency in the Fourier transformation of the signal, and looking how many multiplications of this frequency are still in the signal. The more overtones, the sharper the Helmholtz, and therefore the better the tone. In order to do this we made amplitude plots in the frequency domain. This gives information about the frequencies at which high peaks appear and what their amplitudes are. We did this for the model as well as for our measurements. When we first analyzed the model, we seemed to be right in the fact that as the tone gets better, more peaks appear in the power spectrum. These peaks are not randomly spread out, but appear at harmonic frequencies. That is, at n-times the fundamental frequency with n being the number of the peak. This is also made visible in the figures below. These figures show the difference between the frequency that you would expect following this rule and the actual frequency that comes out of the model. For an unidentifiable tone, there are no harmonic tones on the expected frequencies, as the graph runs out of the figure. For a clear Helmholtz vibration however, the rule is satisfied for nine peaks. A second thing that becomes clear by analyzing the results from the model, is that the amplitude of every next peak decreases exponentially.
So, we seemed to be right in the fact that a vibration being Helmholtz has something to do with the frequencies at which harmonic peaks appear and the amplitude of that peaks compared to that of the fundamental frequency. There is only one important thing that makes this method of quantifying the signal irrelevant for our prototype control system. The point is that for this method a Fourier transformation needs to be done in the control unit in order to detect what the quality of the signal is. The problem is, that a Fourier transformation cannot be done instantaneously but only when enough information about the vibration is gathered. A simple rule tells that the resolution of the transformation equals 1/(sample time). In our case, where quality of the sound depends strongly on the exact frequencies where peaks appear, we should have a resolution in the frequency domain of at least 1 Hz. This means that the sample time for every transformation needs to be about a second, while the vibration needs to be adapted in several milliseconds up to several hundreds of seconds at most. So, this method is simply never going to satisfy our requirements. However, there is another way to perform this method, being in the time domain. When we take a look at the sawtooth like waveform of a Helmholtz vibration, we can already in the time domain draw some conclusions regarding to the quality of the vibration. The reason for this is that the harmonic peaks in the time domain, with their decreasing amplitudes, and the saw-toothed waveform in the time domain are strongly related to each other. A saw-toothed waveform essentially is a set of harmonic sinuses with decreasing amplitudes, being sharper when more harmonic sinuses are present. Putting this in an equation leads to the following expression for the signal, consisting of n harmonics: [math]\displaystyle{ f=\sum_{i=1}^{n}(1/n) sin(nt) }[/math] So the fact that more harmonic peaks appear in the frequency domain, finds is origin in the fact that more harmonic sinuses occur in the time domain. Moreover, when we want to quantify the signal in the time domain on the same properties as we did in the frequency domain, we only have to assess the signal on its sharpness. To proof this theory, figure 10 shows how the shape of the signal changes as the number of harmonic sinuses is increased. This leads to a perfectly sharp saw tooth, when the number of harmonic sinuses goes to infinity.
Controller conceptThe process described above, brought us to a controller design for the prototype. This controller makes use of a look-up table. This look-up table contains all the pre-defined values for bowing speed and force. By determining the fundamental frequency of the signal, the controller "knows" which fret is played and therefor what values for bowing speed and force are required. To make sure that the bowing speed indeed equals the value from the look-up table (also under varying bowing force) the engine speed is measured using an encoder and looped back to the controller. For the bowing force this does not seem to be neccesary, since the bowing force does not depend on the bowing speed. |