Design and implementation of a guitar tuner for a mobile phone
Transcript of Design and implementation of a guitar tuner for a mobile phone
MASTER’S THESIS
2002:215 CIV
MASTER OF SCIENCE PROGRAMME
Department of Computer Science and Electrical EngineeringDivision of Computer Engineering
2002:215 CIV • ISSN: 1402 - 1617 • ISRN: LTU - EX - - 02/215 - - SE
Design and Implementationof a Guitar Tuner for
a Mobile Phone
HENRIK AHLMMATHIAS JEPPSSON
Design and implementation of a guitar tuner for
a mobile phone.
Henrik Ahlm
Mathias Jeppsson
June 5, 2002
2(27)
Open
REPORT
Prepared (also subject responsible if other) No.
LD/ECS/GUB/DK Henrik Ahlm / Mathias Jeppsson
Approved Checked Date Rev Reference
LD/ECS/GUB/DK (John Sarhede) 2002-06-05 A
Abstract
The intention of this thesis is to investigate the possibility to implement a
guitar tuner, using only an ordinary mobile phone as a platform. Samples are
read from the microphone already located in the mobile, then processed using
available resources and �nally the result is presented on the display.
Although the outcome of the thesis can be seen as a success, there is room
for improvements and alternative solutions.
3(27)
Open
REPORT
Prepared (also subject responsible if other) No.
LD/ECS/GUB/DK Henrik Ahlm / Mathias Jeppsson
Approved Checked Date Rev Reference
LD/ECS/GUB/DK (John Sarhede) 2002-06-05 A
Preface
This thesis is part of the Master of science education we began in the spring of
1997, at Luleå University of Technology (LTU). The thesis has been supervised
by Per Lindgren, at the computer science and electrical engineering department
(EISLAB), and Andreas Göransson, at Sony Ericsson.
Little did we know that we would �nish our education in the far south
of Sweden, more than 1500 km away from our university, but it has been an
interesting journey from the beginning to the end.
Even though there has been a great many people involved, giving us a helping
hand or an encouraging word when needed, there are those that has shouldered
more responsibility than they had to. We especially want to show our gratitude
towards Andreas Göransson, our tutor at Sony Ericsson, and Daniel Linåker,
without whom we would not have enjoyed our time at Sony Ericsson as much
as we did.
Henrik Ahlm & Mathias Jeppsson
Lund, Sweden
February 2002
4(27)
Open
REPORT
Prepared (also subject responsible if other) No.
LD/ECS/GUB/DK Henrik Ahlm / Mathias Jeppsson
Approved Checked Date Rev Reference
LD/ECS/GUB/DK (John Sarhede) 2002-06-05 A
Contents
1 Introduction 5
1.1 Problem description . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2 Problem analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3 System description . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2 Background 7
2.1 Electronic tuners . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2 Musical notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.3 Tones and overtones . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.4 Pulse Code Modulation . . . . . . . . . . . . . . . . . . . . . . . 9
2.5 Floating- vs. �xed-point numerics . . . . . . . . . . . . . . . . . . 9
3 Method 11
3.1 Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.2 Frequency-tracking loops . . . . . . . . . . . . . . . . . . . . . . . 11
3.2.1 Quadricorrelator . . . . . . . . . . . . . . . . . . . . . . . 12
3.2.2 Balanced Quadricorrelator . . . . . . . . . . . . . . . . . . 13
3.3 Sine wave generation . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.4 Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.4.1 Floating-point precision . . . . . . . . . . . . . . . . . . . 16
3.4.2 Fixed-point precision . . . . . . . . . . . . . . . . . . . . . 18
3.5 Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4 Result and discussion 23
5 Conclusions 24
6 Future work 25
A Glossary 26
5(27)
Open
REPORT
Prepared (also subject responsible if other) No.
LD/ECS/GUB/DK Henrik Ahlm / Mathias Jeppsson
Approved Checked Date Rev Reference
LD/ECS/GUB/DK (John Sarhede) 2002-06-05 A
1 Introduction
To make an instrument sing in a fashion that brings pleasure to the ear, not only
demand a person skilled in playing it, but also someone that knows how to tune it
to perfection. Thus, an artist playing an instrument that is not tuned according
to the audience, will never be able to really catch the attention of people that
are listening, and the guitar is no exception from this rule. However, there is
more than one method available when a guitar needs to be tuned.
As mentioned, there are many ways to tune a guitar, by ear alone or by using
some kind of instrument that will help the musician on the way. The instrument
may be something as simple as a tuning-fork, that provide a reference frequency,
or as complicated, from the constructions point of view, as an electronic device.
Even though the �rst method may be preferred by some musicians, the second
one has become increasingly popular with the introduction of low cost guitar
tuners. Besides, trying to tune a guitar with only experience as a helping hand,
is not even an option for everyone, in particular those that recently picked up
an interest in playing the guitar.
1.1 Problem description
The goal of this thesis is to utilise the resources of an ordinary mobile phone to
construct a guitar tuner. The tuner is to keep the user continuously updated
about changes in the tone he or she is playing (i.e. continuously updating the
display). Once the tuner indicate that the plucked string has been tuned, the
tone played has to correspond to the correct tone, plus a reasonable error limit.
The error tolerance is to be decided by the limitations of the human ear. In
other words, as long as the deviation is within the error limits, a person tuning
his guitar should agree that his instrument is tuned.
1.2 Problem analysis
The �rst step is to �nd a suitable algorithm and run simulations to verify as-
sumptions made while selecting this particular algorithm. After a thorough
veri�cation, an implementation in a real mobile phone will follow. The �rst
problem presenting itself, when it comes to implementation, is sampling and
temporary storage of the signal (the sound of the guitar string). Finally, the
algorithm will be implemented to verify whether the mobile phone can cope
with all the calculations necessary to keep the display continuosly updated, or
at least the feeling that it is, with relevant information for the user.
1.3 System description
In general, all electronic tuning devices share the same basics, namely a micro-
phone to pick up the sound of the instrument, a core that can map the sound
to useful information, and some mean of presenting the result to the user.
In a mobile phone you have everything needed to make a guitar tuner. The
microphone to use is the same one that the user usually speaks into, the core
consist of the chipset and software in the mobile, and the display can be used
to present the result to the user.
6(27)
Open
REPORT
Prepared (also subject responsible if other) No.
LD/ECS/GUB/DK Henrik Ahlm / Mathias Jeppsson
Approved Checked Date Rev Reference
LD/ECS/GUB/DK (John Sarhede) 2002-06-05 A
Microphone CORE
DISPLAY
- +
Figure 1: A simpli�ed system overview.
Even though the whole system is fairly complicated, it can be simpli�ed into
three basic elements, as can be seen in �gure 1. While the microphone and the
display is hardware only, the core consists of both hardware and software. This
thesis is concentrated around the software in the core, and more speci�cly the
software needed to solve the problems described in section 1.1.
7(27)
Open
REPORT
Prepared (also subject responsible if other) No.
LD/ECS/GUB/DK Henrik Ahlm / Mathias Jeppsson
Approved Checked Date Rev Reference
LD/ECS/GUB/DK (John Sarhede) 2002-06-05 A
2 Background
This section contains information that will aid in understanding the thesis as a
whole. A short introduction to electronic tuners is �rst presented, followed by
some general theory about music and sound. A few notes on how to make the
implementation more e�cient is also included.
2.1 Electronic tuners
Electronic tuners provide an easy way of tuning an instrument to a desired pitch.
They commonly come in two di�erent shapes, called chromatic and guitar. The
chromatic tuner is a general purpose tuner, able to tune any tone, while the
guitar tuner is only able to tune the basic tones of a guitar or bass.
This thesis is aimed at the latter, even though the methods should be suitable
for both kinds of tuners.
2.2 Musical notes
The modern western musical scale consists of 12 tones, denoted A, A#, B, C,
C#, D, D#, E, F , F#, G and G#. These 12 tones form an octave. The
tones in the succeeding octave have double frequency relative to the tones in
the preceding octave. That is, if A has a frequency of 110 Hz, A in succeeding
octave has a frequency of 220 Hz. The tones are related by,
f = fbase � 2�tones=12 (2.1)
where f is the frequency of interest, fbase is the base frequency, generally 440Hz
and �tones the number of tones relative to base. Hence, if the base is an
A, with frequency 440Hz, D in the same octave, will have the frequency of
440 � 25=12 � 587:3 Hz.The strings on a guitar, going from bottom upwards are E, B, G, D, A and
E. E is referred to as the �rst string, B as the second string and so on.
String Frequency
E (1st) 329.6 Hz
B (2nd) 246.9 Hz
G (3rd) 196.0 Hz
D (4th) 146.8 Hz
A (5th) 110.0 Hz
E (6th) 82.4 Hz
Table 1: Fundamental frequencies for the 6 guitar strings.
Table 1 shows the fundamental frequencies of the 6 guitar strings. It can be
seen that the �rst string has a frequency four times the sixth string, consequently
the �rst string is two octaves higher than the sixth.
Since, frequency changes are less noticeable in higher frequencies and more
noticeable in lower frequencies, hertz is not always a preferable unit to describe
di�erences. Instead the unit cent are used, which better corresponds to the
human ear. The intervals between two adjacent tones are divided into 100
equally sized cents. This means that a cent is equivalent to approximately 0.25
Hz at 440 Hz and 0.5 Hz at 880 Hz.
8(27)
Open
REPORT
Prepared (also subject responsible if other) No.
LD/ECS/GUB/DK Henrik Ahlm / Mathias Jeppsson
Approved Checked Date Rev Reference
LD/ECS/GUB/DK (John Sarhede) 2002-06-05 A
Figure 2: Fundamental frequency.
Figure 3: Second overtone.
2.3 Tones and overtones
A musical instrument does not produce sound waves of a single frequency. A
note from a guitar is a superposition of a fundamental frequency and overtones,
where the overtones are related to the fundamental frequency by integer factor.
The fundamental frequency is the lowest tone and is vibrating between the end
points with only one arc, as shown in �gure 2. The �rst and second overtones
has frequencies twice and three times, compared to the fundamental frequency,
respectively. The second overtone is shown in �gure 3. Thus, a note from a
guitar can be modeled by,
y(t) =
1X
k=1
akcos(2�kf0t) (2.2)
where f0 is the fundamental frequency and ak is the amplitude of the kth har-
monics. Figure 4, shows a Fast Fourier Transform (FFT) of a guitar string,
where the fundamental frequency is found slightly below 200Hz and the over-
tones at regular intervals by integer factor.
0 100 200 300 400 500 600 700 800 900 10000
0.2
0.4
0.6
0.8
1
1.2
1.4
frequency (Hz)
Figure 4: FFT of guitar string.
9(27)
Open
REPORT
Prepared (also subject responsible if other) No.
LD/ECS/GUB/DK Henrik Ahlm / Mathias Jeppsson
Approved Checked Date Rev Reference
LD/ECS/GUB/DK (John Sarhede) 2002-06-05 A
2.4 Pulse Code Modulation
One of the most common methods of encoding an analog audio signal into a
digital form is called pulse-code modulation [4], abbreviated PCM. The signal is
�rst sampled into a discrete form called pulse-amplitude modulation, or PAM,
where each sample represents the amplitude of the signal at the time of sampling.
Each sample is then quantized and encoded into an n-bit digital signal. Figure
5 illustrate the di�erent stages in the processing of a 4-bit code.
time
Am
plitu
de
time
Am
plitu
de
time
Am
plitu
de
0011 0100 0100 0011 0001 0001 0010
a) b) c)
Figure 5: a) An analog signal, b) The signal represented in PAM, c) The result-
ing PCM encoded signal.
2.5 Floating- vs. �xed-point numerics
On a computer, a fractional number is represented using a pair of integers named
mantissa (m) and exponent (e). The mantissa carries the numeric information
of the number, and the exponent contains information about where to place the
decimal point. The fraction can then be found with the following formula:
m � 2�e (2.3)
If the exponent is variable, the number is said to be a �oating-point number.
With this representation, a wide range of numbers can be represented, from
the very small to the very large, with very good precision. If the exponent is
�xed, i.e. known at compile time, it is said to be a �xed-point number. While
�oating-point numbers o�ers a wider range and better precision, it lacks the
computational speed that can be achieved when using �xed-point arithmetics.
Fixed-point numbers are easy to represent, using only an ordinary integer to
store the mantissa while keeping the exponent in mind when making necessary
calculations. Assuming that all numbers used will be represented in the same
format (having the same exponent), the only operations that need any special
attention are those that may change the exponent of the result. Thus, most
operations can be used with either no or slight changes to them.
For instance, performing an addition (or subtraction) does not change the
exponent and therefore the ordinary operation for addition can be used. A
general mathematical example follows:
m1 � 2�e +m2 � 2
�e = (m1 +m2) � 2�e (2.4)
However, when multiplying two �xed-point numbers, the exponent of the
result will di�er from the factors involved in the multiplication.
m1 � 2�e
�m2 � 2�e = (m1 �m2) � 2
�2e (2.5)
10(27)
Open
REPORT
Prepared (also subject responsible if other) No.
LD/ECS/GUB/DK Henrik Ahlm / Mathias Jeppsson
Approved Checked Date Rev Reference
LD/ECS/GUB/DK (John Sarhede) 2002-06-05 A
This pose only a slight problem since the result can be rewritten in the
following manner:
(m1 �m2) � 2�2e = (m1 �m2 � 2
�e) � 2�e (2.6)
Thus, another simple multiplication of the resulting mantissa will make sure
that the exponent of the result remains the same as the factors involved. This
leaves us with a normal multiplication followed by an arithmetic shift, a fairly
simple operation even when the whole is being considered. Division is done in
a similar fashion. The multiplication (shift), done to convert the result to have
the same exponent as the factors, has to be performed before the division of the
mantissas. This is in order to not lose precision.
Over�ow can be the cause of errors if one does not take heed, so it is impor-
tant to choose exponents that are suitable for the application being considered.
To gain more insight on the topic, please refer to [1].
11(27)
Open
REPORT
Prepared (also subject responsible if other) No.
LD/ECS/GUB/DK Henrik Ahlm / Mathias Jeppsson
Approved Checked Date Rev Reference
LD/ECS/GUB/DK (John Sarhede) 2002-06-05 A
3 Method
This section holds a description of the methods used to examine the possibilities
of implementing a guitar tuner in a mobile. To begin with, algorithms suitable
for solving the problem is introduced. At the end, an implementation scheme
for a speci�c mobile phone model is presented.
3.1 Environment
Having a noisy environment naturally a�ects the performance of an algorithm
whose output depends on sound. Even though the in�uence from noise can be
reduced with the use of �lters, the application may still be susceptible to noise
and produce an unwanted output. Thus, avoiding an environment with noise,
especially that which resembles the wanted signal, is encouraged.
3.2 Frequency-tracking loops
Frequency tracking loops are frequently utilised in communication systems, e.g.
in digital data receivers, as frequency acquisition or as carrier frequency control.
A general frequency-tracking loop, shown in �gure 6, is a composition of a
frequency di�erence detector (FDD), loop �lter (LF) and a sinusoidal generator.
The FDD is the fundamental part in the frequency-tracking loop and its appear-
ance varies depending on the application. The FDD compares the input signal
and the signal generated by the sinusoidal generator and outputs the frequency
di�erence. The LF works as a low-pass �lter, averaging out instantaneous phase
errors in the loop. The sinusoidal generator generates a signal of frequency de-
pending on the input from the LF. Thus, after a time of operation the error will
reach zero and the sinusoidal generator will generate a frequency equal to the
input signal.
FDD LFInput Signal Error
Control signalSinegenerator
Figure 6: General frequency tracking loop.
In this thesis the frequency-tracking loop will have a rather di�erent area
of use. The loop will function as a guitar tuner and will have a somewhat
di�erent appearance. The input signal is represented by the reference signal,
with wanted frequency. The sinusoidal generator is represented by the guitar
12(27)
Open
REPORT
Prepared (also subject responsible if other) No.
LD/ECS/GUB/DK Henrik Ahlm / Mathias Jeppsson
Approved Checked Date Rev Reference
LD/ECS/GUB/DK (John Sarhede) 2002-06-05 A
string and the error produced by FDD is displayed for the user. The user apply
this information to the guitar by tightening or loosening the guitar strings.
The following two sections will describe the theory behind two frequencies
di�erence detectors. The Quadricorrelator, section 3.2.1, and the Balanced
Quadricorrelator, section 3.2.2. The former provides an output with two com-
ponents, a useful DC part and an unwanted AC part. The latter provides a
satisfactory result, with only a DC component. The Quadricorrelator was not
used because of its weakness. However, with the Quadracorrelator in mind, the
understanding of the Balanced Quadricorrelator, is straightforward.
3.2.1 Quadricorrelator
The Quadricorrelator is shown in �gure 7. It consists of multipliers, low-pass
�lters and a di�erentiator. The input signal, xin[n], is the sampled signal from
the guitar string. The two sinusoidal, cos(!0n) and sin(!0n), are generated
signals, where !0 is the desired radian frequency. Multiplication will produce
signals with sum and di�erence frequency of the input signal and the generated
signals. The low-pass �lters will suppress the sum frequency and let the di�er-
ence frequency pass. Notice that the low-pass �lters will give an approximation
of the range of operation for the FDD. If the di�erence frequency fall outside the
passband of the low-pass �lters, the di�erence frequency will also be suppressed.
However, de�ning a broader passband will allow more noise and signal of higher
frequencies to pass. The output of one low-pass �lter is di�erentiated to alter
the phase. Further the outputs are �nally multiplied.
x
x LPF
LPF
x
d/dt
)cos( 0nw
)sin( 0nw-
DifferentiatorLow Pass
FilterMultiplicator
xin ][n yout
][n
yI
yQ
][n
][n
Figure 7: Quadricorrelator.
Below calculations for the Quadricorrelator are presented. For simplicity,
gains are omitted in the equations, but are included in [2]. Let the input signal
be:
xin[n] = cos(!inn+ �in) (3.1)
where !in and �in is the radian frequency and an arbitrary phase angle, respec-
tively of the input signal. As stated in section 2.3, tones from guitars are a
composition of several frequencies. However, section 3.4 will show that, if the
13(27)
Open
REPORT
Prepared (also subject responsible if other) No.
LD/ECS/GUB/DK Henrik Ahlm / Mathias Jeppsson
Approved Checked Date Rev Reference
LD/ECS/GUB/DK (John Sarhede) 2002-06-05 A
passband of the low-pass �lters are de�ned correctly, the products generated by
the overtones will be suppressed. Consequently, the �lter outputs are calculated
to be:
yI [n] = cos(�!n+ �in) (3.2)
yQ[n] = sin(�!n+ �in) (3.3)
where �! = !in � !0 and !0 is the radian frequency of the generated signal.
After di�erention and multiplication, the output of the �nal multiplier is:
yout[n] = ��!1
2[1� cos(2�!n+ 2�in)] (3.4)
The product consists of two parts, one DC part proportional to the frequency
di�erence, and one AC part with double frequency compared to the frequency
di�erence. For this thesis, only the DC component is of interest. Thus, an
algorithm with only this output would be desirable.
3.2.2 Balanced Quadricorrelator
In this section the Balanced Quadricorrelator is described, as will be shown,
this frequency di�erence detector output only consists of a DC part.
x
x LPF
LPF d/dt
)cos( 0nw
)sin( 0nw-
DifferentiatorLow Pass
FilterMultiplicator
xin ][n
d/dt
+y
out][n
x
x
+
-
yI 2
][n
yQ2 ][n
yI 1
][n
yQ1 ][n
Figure 8: Balanced Quadricorrelator.
The Balanced Quadricorrelator, is shown in �gure 8. One multiplication,
one di�erention and one subtraction is added to the Quadricorrelator to form
the Balanced Quadricorrelator. With the Quadricorrelator in mind, the analysis
of the Balanced Quadricorrelator is straightforward. The output of the two �nal
multipliers are:
yI2[n] = ��!1
2[1� cos(2�!n+ 2�in)] (3.5)
yQ2[n] = �!1
2[1 + cos(2�!n+ 2�in)] (3.6)
Notice the similarities with the Quadricorrelator, in the previous section.
The output signal of the Quadricorrelator and yI2 are identical. However, the
14(27)
Open
REPORT
Prepared (also subject responsible if other) No.
LD/ECS/GUB/DK Henrik Ahlm / Mathias Jeppsson
Approved Checked Date Rev Reference
LD/ECS/GUB/DK (John Sarhede) 2002-06-05 A
Balanced Quadricorrelator also have the signal, yQ2, with identical AC compo-
nent, but opposite DC sign. Thus, if xin, de�ned in section 3.2.1, is applied to
the Balanced Quadricorrelator the output is:
yout = ��! (3.7)
The AC part has vanished. The AC part of yI2 and yQ2 cancels out each other
and the DC parts adds together. Furthermore, the phase �in does not a�ect the
output.
3.3 Sine wave generation
To rid the application from a possible bottleneck, occurring when producing
the sine and cosine values with the functions provided by standard libraries,
other methods have to be considered. The simplest solution is the use of a
lookup-table, generating all the necessary values and store them in a simple
data structure for easy and fast access. Unfortunately, the resources available
in a mobile phone are quite limited, not only when speed is considered, but also
resources like RAM and Flash Memory 1. When these constraints are taken
into account, the lookup-table is no longer an overall ideal solution, and instead
we will consider the digital sinusoidal oscillator [3]. It is not as fast as the
lookup-table, but require a very limited amount of Flash Memory.
z1-
z1-
][ny
]1[ -ny
]2[ -ny
a- 1
a- 2
+][sin
0nA dw
+
Figure 9: A typical 2nd order IIR �lter that can be used for sine wave generation.
The digital sinusoidal oscillator is implemented using an IIR �lter. Placing
the poles on the unit circle of the Argand diagram will make the output oscillate.
Figure 9 depicts a typical implementation of a 2nd order IIR �lter. This �lter
has the transfer function:
H(z) =b0
1 + a1z�1 + a2z�2(3.8)
Setting a1 = �2r � cos!o, a2 = 1 and b0 = A � sin!o will place the poles on
the unit circle, and the system will have the unit sample response
h(n) = A � sin(n+ 1)!0 � u(n) (3.9)
With this scheme, it is only necessary to calculate the value of sine once with
the provided function. The necessary values will instead be provided through
1A form of nonvolatile memory. Sometimes referred to as Flash RAM.
15(27)
Open
REPORT
Prepared (also subject responsible if other) No.
LD/ECS/GUB/DK Henrik Ahlm / Mathias Jeppsson
Approved Checked Date Rev Reference
LD/ECS/GUB/DK (John Sarhede) 2002-06-05 A
the use of the digital sinusoidal oscillator, using the �xed-point format instead of
the slower �oating-point, thus making this part of the application more e�cient.
3.4 Simulation
This section describes the simulations made to obtain knowledge about the
FDDs. The simulations were made in MATLAB, which provides an easy and
fast way to examine the algorithms. The understanding gained, were applied in
the implementations of the FDD in the mobile phone. The �rst part discusses
the Quadricorrelator and examines the output from this FDD. Next, the Bal-
anced Quadricorrelator are discussed with �oating-point precision. Both ideal
environment and a real environment with noise and overtones are covered. Fi-
nally, the Balanced Quadricorrelator are discussed with �xed-point precision.
Also here, both ideal and real environments are covered.
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5−1
−0.8
−0.6
−0.4
−0.2
0
0.2
0.4
0.6
0.8
1x 10
−3
Time (s)
Am
plitu
de
0 10 20 30 40 50 60 70 80 90 1000
0.5
1
1.5
2
2.5
3
3.5
4
4.5
5x 10
−4
frequency (Hz)
Am
plitu
de
Figure 10: Output from the Quadricorrelator, with 440 Hz as reference fre-
quency and 445 Hz sinusoidal input.
Figure 10, shows the output of the Quadricorrelator, with reference fre-
quency set to 440 Hz and a 445 Hz sinusoidal input. The plots illustrate the
outputs in the time domain (left plot) and the frequency domain (right plot),
respectively. During these simulations no noise or overtones were applied. As
stated in section 3.2.1, the output has a negativ DC level, depending on the
frequency di�erence and an AC signal, with 2�! frequency. The AC part is
undesirable for a guitar tuner. Thus, a FDD without an AC part would be
preferable.
The Balanced Quadricorrelator, described in section 3.2.2, does not contain
an AC signal. The output, shown in �gure 11, should only consist of a DC
signal. However, due to non-ideal operators some ripple appears. The reason
for this is, that the low-pass �lters do not suppress higher frequency su�ciently
and the di�rentiators do not operate perfectly. The conditions for this plot are
ideal, no noise and no overtones are present.
Interesting parts of �gure 11, are the unwanted ripple and the time in which
the system stabilises to a certain level. A low degree of ripple is desirable to
obtain accuracy and a faster system is desirable to acquire faster response time
during tuning. Further, the working area of the FDD is of interest. That is,
which certain level of di�erence the FDD loses the possibility to detect the
di�erence. To obtain an FDD, which have suitable properties in these �elds,
16(27)
Open
REPORT
Prepared (also subject responsible if other) No.
LD/ECS/GUB/DK Henrik Ahlm / Mathias Jeppsson
Approved Checked Date Rev Reference
LD/ECS/GUB/DK (John Sarhede) 2002-06-05 A
0 0.05 0.1 0.15 0.2−1
−0.8
−0.6
−0.4
−0.2
0
0.2
0.4
0.6
0.8
1x 10
−3
Time (s)
Am
plitu
de
Figure 11: Output from the Balanced Quadricorrelator, with 440 Hz as reference
frequency and 445 Hz sinusoidal input.
di�erent low-pass �lters in the Balanced Quadricorrelator are examined. Simu-
lations in both ideal and non-ideal conditions are made. First, in �oating-point
precision, to acquire knowledge about the FDDs behaviour in general. Later,
in �xed-point precision, to acquire knowledge about its behaviour in the mobile
phone, speci�cally.
3.4.1 Floating-point precision
This section only consider the balanced quadricorrelator since the non balanced
version was never part of the implementation.
0 0.05 0.1 0.15 0.2 0.25−10
−9
−8
−7
−6
−5
−4
−3
−2
−1
0
1x 10
−4
Am
plitu
de
Time (s)0 0.05 0.1 0.15 0.2 0.25
−10
−8
−6
−4
−2
0
2
x 10−4
Time (s)
Am
plitu
de
Figure 12: Balanced Quadricorrelator performance in non-noisy and noisy en-
vironments, with the low-pass �lters set to 5 Hz cut-o� frequency. The input
signal frequencies range from 440 Hz to 445 Hz, with 1 Hz incrementation, and
the reference frequency set to 440 Hz. Notice that the di�erent bias levels on the
output corresponds to the frequency di�erences between the input and reference
signals.
17(27)
Open
REPORT
Prepared (also subject responsible if other) No.
LD/ECS/GUB/DK Henrik Ahlm / Mathias Jeppsson
Approved Checked Date Rev Reference
LD/ECS/GUB/DK (John Sarhede) 2002-06-05 A
Figure 12 to 14, show the performance of the Balanced Quadricorrelator in
ideal and non-ideal environments, with di�erent �lter parameter settings. The
�rst plot in each �gure shows the performance in ideal environments. In the
second plot, noise and 10 overtones are added to the insignal to simulate a
realistic input.
In �gure 12, low-pass �lters with cut-o� frequencies at 5 Hz are used. The
low-pass �lters in �gures 13 and 14 utilise 10 Hz and 20 Hz cut-o� frequency,
respectively.
The plots in �gure 12, illustrates the performance of the FDD in non-noisy
and noisy environments, with 5 Hz as cut-o� frequency. The impact from noise
and overtones are obvious. The output is more unstable, than the non-noisy
plot. In addition, more ripple is introduced, in the plot.
0 0.05 0.1 0.15 0.2 0.25
−10
−8
−6
−4
−2
0
x 10−4
Am
plitu
de
Time (s)0 0.05 0.1 0.15 0.2 0.25
−10
−8
−6
−4
−2
0
2
x 10−4
Am
plitu
de
Time (s)
Figure 13: Balanced Quadricorrelator performance in non-noisy and noisy en-
vironments, with the low-pass �lters set to 10 Hz cut-o� frequency. The input
signal frequencies range from 440 Hz to 445 Hz, with 1 Hz incrementation, and
the reference frequency set to 440 Hz. Notice that the di�erent bias levels on the
output corresponds to the frequency di�erences between the input and reference
signals.
The plots in �gure 13, illustrates the performance of the FDD, with 10 Hz
cut-o� frequency. Compare the non-noisy plots in �gures 12 and 13. Notice,
that the time for the FDD to stabilise on a given level is shorter. Thus, a higher
cut-o� frequency gives a faster FDD. However, in noisy environment the FDD,
with 10 Hz cut-o� frequency, is �uctuating more than in non-noisy environment.
The plots in �gure 14, illustrates the performance of the FDD, with 20 Hz
cut-o� frequency. The non-noisy plot stabilises faster to a given level. The noisy
plot, however, is �uctuating even more.
Hence, with a faster FDD, accuracy is lost. This is, with lower cut-o�
frequency in �lters, higher frequency signals and noise are suppressed and the
output varies less. However, the inertia in the low-pass �lters results in inertia
in the FDD. And higher cut-o� frequency in �lters, results in lower inertia,
but also a more �uctuating output, when more noise and higher frequencies are
allowed in the passband.
18(27)
Open
REPORT
Prepared (also subject responsible if other) No.
LD/ECS/GUB/DK Henrik Ahlm / Mathias Jeppsson
Approved Checked Date Rev Reference
LD/ECS/GUB/DK (John Sarhede) 2002-06-05 A
0 0.05 0.1 0.15 0.2 0.25
−10
−8
−6
−4
−2
0
x 10−4
Time (s)
Am
plitu
de
0 0.05 0.1 0.15 0.2 0.25
−10
−8
−6
−4
−2
0
2
x 10−4
Time (s)
Am
plitu
de
Figure 14: Balanced Quadricorrelator performance in non-noisy and noisy en-
vironments, with the low-pass �lters set to 20 Hz cut-o� frequency. The input
signal frequencies range from 440 Hz to 445 Hz, with 1 Hz incrementation, and
the reference frequency set to 440 Hz. Notice that the di�erent bias levels on the
output corresponds to the frequency di�erences between the input and reference
signals.
3.4.2 Fixed-point precision
Generally, �oating-point calculations, are relatively slow. Thus, often �xed-
point calculations are used, when processing large amount of data. Although
precision are lost, �xed-point are preferrable, due to speed gained during calcu-
lations. Fixed-point numerics are described in section 2.5.
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5
−1.4
−1.2
−1
−0.8
−0.6
−0.4
−0.2
0
0.2
Time (s)
Am
plitu
de
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5
−1.4
−1.2
−1
−0.8
−0.6
−0.4
−0.2
0
0.2
Time (s)
Am
plitu
de
Figure 15: Balanced Quadricorrelator performance in non-noisy and noisy en-
vironments, with the low-pass �lters set to 5 Hz cut-o� frequency. The input
signal frequencies range from 440 Hz to 445 Hz, with 1 Hz incrementation, and
the reference frequency set to 440 Hz. Notice that the di�erent bias levels on the
output corresponds to the frequency di�erences between the input and reference
signals.
This section describes simulations with �xed-point, done to acquire knowl-
edge about the algorithms performance in a mobile phone. Figure 15 to 17,
show the performance of the Balanced Quadricorrelator in ideal and non ideal
environments, with di�erent �lter parameter settings. The �rst plot in each
19(27)
Open
REPORT
Prepared (also subject responsible if other) No.
LD/ECS/GUB/DK Henrik Ahlm / Mathias Jeppsson
Approved Checked Date Rev Reference
LD/ECS/GUB/DK (John Sarhede) 2002-06-05 A
�gure shows the performance in ideal environments. In the second plot, noise
and 10 overtones are added to the insignal to simulate a realistic input.
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5
−0.25
−0.2
−0.15
−0.1
−0.05
0
0.05
Time (s)
Am
plitu
de
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5
−0.25
−0.2
−0.15
−0.1
−0.05
0
0.05
Figure 16: Balanced Quadricorrelator performance in non-noisy and noisy en-
vironments, with the low-pass �lters set to 10 Hz cut-o� frequency. The input
signal frequencies range from 440 Hz to 445 Hz, with 1 Hz incrementation, and
the reference frequency set to 440 Hz. Notice that the di�erent bias levels on the
output corresponds to the frequency di�erences between the input and reference
signals.
During �xed-point simulations, intense ripple are introduced caused by the
inferior precision. Hence, an additional low-pass �lter is appended to deal with
this problem. This solution slows down the FDD, but is needed to obtain
acceptable output.
Figure 15, shows the performance of the FDD with 5 Hz cut-o� frequency
in the low-pass �lters. This system is unstable and starts to oscillate in both
environments. No e�orts were made to analyse this.
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5−0.4
−0.35
−0.3
−0.25
−0.2
−0.15
−0.1
−0.05
0
0.05
Time (s)
Am
plitu
de
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5−0.4
−0.35
−0.3
−0.25
−0.2
−0.15
−0.1
−0.05
0
0.05
Figure 17: Balanced Quadricorrelator performance in non-noisy and noisy en-
vironments, with the low-pass �lters set to 20 Hz cut-o� frequency. The input
signal frequencies range from 440 Hz to 445 Hz, with 1 Hz incrementation, and
the reference frequency set to 440 Hz. Notice that the di�erent bias levels on the
output corresponds to the frequency di�erences between the input and reference
signals.
Figure 16, shows the performance of the FDD with 10 Hz cut-o� frequency
20(27)
Open
REPORT
Prepared (also subject responsible if other) No.
LD/ECS/GUB/DK Henrik Ahlm / Mathias Jeppsson
Approved Checked Date Rev Reference
LD/ECS/GUB/DK (John Sarhede) 2002-06-05 A
in low-pass �lters. The plot has angularities, due to �xed-point precision. The
di�erence between the two plots are small, except from the initial phase. The
plot with noise has an incorrect minor peak in the beginning, caused by the
overtones. However, �nally it gets similar behaviour to the non-noise plot.
Figure 17, shows the performance of the FDD with 20 Hz cut-o� frequency in
low-pass �lters. The initial peak in this plot does not have the same magnitude
as the previous plot.
The above simulations show that, di�erences of 1 Hz between reference fre-
quency and input frequency can be detected, theoretically. The �nal low-pass
�lter, added to deal with the ripple, has a negative impact on the performance
of the FDD, by slowing down the operation. Nevertheless, the �lter is needed
to obtain an acceptable output quality with �xed-point calculations.
Further empirical analysis of the algorithm were made in the mobile phone
to obtain knowledge of performance in real-life conditions. These were done, by
basically tuning a guitar with di�erent �lter parameters.
3.5 Implementation
This section describe the implementation derived from the methods discussed in
previous sections. Whereas the methods are general and suitable for any system,
the implementation described here will be aimed at a speci�c platform, namely
Sony Ericsson's T68. The goal has been to utilise as much of the resources
available, to shorten delays between updates of the display, without tampering
with the ordinary functionality of the mobile phone.
The C programming language has consistently been used for the implemen-
tation, even though the possibilities of assembly programming has been consid-
ered.
Figure 18: The user interface of the tuner application.
21(27)
Open
REPORT
Prepared (also subject responsible if other) No.
LD/ECS/GUB/DK Henrik Ahlm / Mathias Jeppsson
Approved Checked Date Rev Reference
LD/ECS/GUB/DK (John Sarhede) 2002-06-05 A
User interface
When the tuner application has been selected, the display will present the graph-
ical user interface (GUI), found in �gure 18, to the user. The joystick is used
for selecting the tone the user wish to tune, and the one currently selected is
displayed at the bottom of the display. When a string is being plucked, the
hand (in the future referred to as tone-hand) will indicate whether the tone is of
higher, lower or the same frequency as the selected tone. Thus, the tone-hand
tells the user if the string needs to be tightened or loosened. Unless the string
needs no adjustment, the procedure is repeated until the tone-hand indicate
that the string has been tuned.
How it works
This particular model of mobile phone has two processors available, one AVR2
that can be seen as the main processor, and one ARM7 3 that in this application
is used as a co-processor. The workload of processing the samples is divided
between the two processors. The AVR-processor deals with sampling, precalcu-
lations of the samples and updating the GUI, while the ARM processor is used
for most of the signal processing. Figure 19 illustrate the implementation in
general, while �gure 20 hold a detailed view of the processes involved.
AVRARMDISPLAY
- +
Microphone
1
24
3
Figure 19: An overview of the implementation scheme.
The sampling process, located in the AVR and driven by interrupts, is re-
sponsible for fetching and storing blocks of samples. The microphone interface
deliver 16-bits PCM-samples, and a shared bu�er is used to forward the data
to the sending process. Data in the bu�er is protected from being prematurely
read or overwritten, i.e. overwritten before it has been read, using a counting
semaphore. When data is available in the bu�er, the sending process is sig-
naled and allowed to read a block of data, normalize the samples, and send it to
the ARM. The tuning process perform all necessary calculations (section 3.2.2)
2AVR is a microprocessor built by Atmel. For more information, please consult their
webpage at http://www.atmel.com3The ARM processors are developed by Advanced Risc Machines. More information about
the processors can be found at http://www.arm.com
22(27)
Open
REPORT
Prepared (also subject responsible if other) No.
LD/ECS/GUB/DK Henrik Ahlm / Mathias Jeppsson
Approved Checked Date Rev Reference
LD/ECS/GUB/DK (John Sarhede) 2002-06-05 A
needed to decide the deviation from the reference frequency, i.e. the frequency
of the tone looked after, and then sends the result back to the AVR. When re-
ceiving a result from the ARM, the MMI process updates the display to notify
the user about possible changes.
SamplingProcess
SendingProcess
Sample Buffer
MMIProcess
Data
TuningProcess
AVR ARM
Figure 20: Schematic view of the processes involved.
Volume threshold
To make the application less susceptible to update the display when noise is the
only sound being received, a volume threshold is set. Hence, unless the sample
volume reach the speci�ed threshold, no samples will be sent to the ARM and
no update of the display is made.
Hardware limitations
One of the hardware limitations is that �lters will suppress all frequencies below
300 Hz and above 3.4 kHz. Since almost all of the strings on a tuned guitar
produce tones with a lower frequency than 300 Hz, this pose a serious limitation
to the application. However, with the use of overtones (section 2.3), it is still
possible to tune all the strings on the guitar.
Another limitation is the processing power. Even though the use of �xed-
point arithmetics (section 2.5) remedy this problem partially, it is still not pos-
sible to process all the incoming samples. Instead, a subset of the samples are
used in order to produce a smooth and continuos updating scheme for the tone-
hand. The bu�er, seen in �gure 20, is used to get as long continuos signal as
possible, something that is desirable when trying to decide the current tone.
23(27)
Open
REPORT
Prepared (also subject responsible if other) No.
LD/ECS/GUB/DK Henrik Ahlm / Mathias Jeppsson
Approved Checked Date Rev Reference
LD/ECS/GUB/DK (John Sarhede) 2002-06-05 A
4 Result and discussion
The accuracy of the tuner is quite di�cult to determine, but with the help of
a PC tuner application4 and a commercial tuning device5, an estimation has
been made. On average, the deviation from the desired tone is less than +�3 cent
(for the de�nition of cent, see section 2.2). This is comparable to the guitar
tuners that emerged early on the market, but a musician with a good ear would
probably be able to notice the deviation.
Currently, the implementation is unable to handle incoming calls. Due to
lack of time, this shortcoming was given low priority and was never really looked
into. However, only minor modi�cations are probably needed to be able to
handle this. Even though the speci�cation for the thesis clearly stated that this
was not a requirement, it would still have been desirable to handle calls.
4AP Guitar Tuner 1.02 by Audio Phonics.5Matrix SR-4000 Auto Chromatic Tuner.
24(27)
Open
REPORT
Prepared (also subject responsible if other) No.
LD/ECS/GUB/DK Henrik Ahlm / Mathias Jeppsson
Approved Checked Date Rev Reference
LD/ECS/GUB/DK (John Sarhede) 2002-06-05 A
5 Conclusions
The hardware suppresses frequencies outside 300 Hz and 3.4 kHz, so frequencies
below 300 Hz can not be used. It would be preferable with hardware that does
not suppress lower frequencies though a majority of the fundamental frequencies
on a guitar are below 300 Hz. However, it is possible to use the overtones of the
strings.
The implementation is not as robust and easy to use as is desired. So ad-
ditional work is needed for the tuner to become a commercial product. This is
discussed further in section 6.
More processing power are needed. If the application where implemented
in the T68, the DSP would be a preferable place to implement the algorithm.
However, future phones will have better processors and better processing power.
Thus, an ordinary processor might be su�cient in the future.
25(27)
Open
REPORT
Prepared (also subject responsible if other) No.
LD/ECS/GUB/DK Henrik Ahlm / Mathias Jeppsson
Approved Checked Date Rev Reference
LD/ECS/GUB/DK (John Sarhede) 2002-06-05 A
6 Future work
Although, a guitar can be tuned with existing implementation, it needs some
further studies to become a commercial product.
The tuner must be more robust. Current implementation gives a rather
uncertain impression. Further analysis of the FDD should be made to improve
this. Other algorithms, should also be considered, for example, phase-locked
loops.
Additional, performance when the string is out of range needs improvements.
As previously described, the tuner does not give an accurate answer if the devi-
ation is too large. A commercial product is required to have better out of range
performance, as the user always should be informed if the string should to be
loosened or tightened. The tuner should also be able to identify an arbitrary
frequency. That is, the users does not have to select tone. The tuner identi�es
the frequency and associates it, with the closest tone. Both these features, could
probably be solved with FFT.
In this thesis, no e�orts where made to examine the DSP, existing in the
mobile phone. The DSP is however of high interest for implementing the algo-
rithms. If further e�orts are made, resources should be allocated to study the
DSP.
Currently, the tuner is only able to tune guitars. Tuning others instruments,
like violins and wind instrument is a possible continuation.
26(27)
Open
REPORT
Prepared (also subject responsible if other) No.
LD/ECS/GUB/DK Henrik Ahlm / Mathias Jeppsson
Approved Checked Date Rev Reference
LD/ECS/GUB/DK (John Sarhede) 2002-06-05 A
A Glossary
AC Alternating Current.
DC Direct Current.
DSP Digital Signal Processor.
FDD Frequency Di�erence Detector.
FFT Fast Fourier Transform.
GUI Graphical User Interface.
IIR In�nite Impulse Response.
LF Loop Filter.
LPF Low Pass Filter.
MMI Man Machine Interface
PAM Pulse Amplitude Modulation.
PCM Pulse Code Modulation.
RAM Random Access Memory.
27(27)
Open
REPORT
Prepared (also subject responsible if other) No.
LD/ECS/GUB/DK Henrik Ahlm / Mathias Jeppsson
Approved Checked Date Rev Reference
LD/ECS/GUB/DK (John Sarhede) 2002-06-05 A
References
[1] Advanced RISC Machines Limited, www.arm.com. Application Note 33,
Fixed Point Arithmetic on the ARM, September 1996.
[2] Gardner Floyd M. Characteristics of frequency-tracking loops. In Chak
M. Chie William C. Lindsey, editor, Phase-Locked Loops. IEEE Press, 1985.
[3] Dimitris G. Manolakis John G. Proakis. DIGITAL SIGNAL PROCESS-
ING : Principles, Algorithms and Applications, chapter 4, pages 352�354.
Prentice-Hall, 3rd edition, 1996.
[4] Ken C. Pohlmann. Principles of Digital Audio, chapter 3, pages 49�52.
McGraw-Hill, 4th edition, 2000.