design and implementation of a guitar tuner for a mobile phone

28
MASTER’S THESIS 2002:215 CIV MASTER OF SCIENCE PROGRAMME Department of Computer Science and Electrical Engineering Division of Computer Engineering 2002:215 CIV • ISSN: 1402 - 1617 • ISRN: LTU - EX - - 02/215 - - SE Design and Implementation of a Guitar Tuner for a Mobile Phone HENRIK AHLM MATHIAS JEPPSSON

Upload: others

Post on 13-Jan-2022

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 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

Page 2: Design and implementation of a guitar tuner for a mobile phone

Design and implementation of a guitar tuner for

a mobile phone.

Henrik Ahlm

[email protected]

Mathias Jeppsson

[email protected]

June 5, 2002

Page 3: Design and implementation of a guitar tuner for a mobile phone

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.

Page 4: Design and implementation of a guitar tuner for a mobile phone

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

Page 5: Design and implementation of a guitar tuner for a mobile phone

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

Page 6: Design and implementation of a guitar tuner for a mobile phone

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.

Page 7: Design and implementation of a guitar tuner for a mobile phone

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.

Page 8: Design and implementation of a guitar tuner for a mobile phone

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.

Page 9: Design and implementation of a guitar tuner for a mobile phone

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.

Page 10: Design and implementation of a guitar tuner for a mobile phone

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)

Page 11: Design and implementation of a guitar tuner for a mobile phone

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].

Page 12: Design and implementation of a guitar tuner for a mobile phone

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

Page 13: Design and implementation of a guitar tuner for a mobile phone

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

Page 14: Design and implementation of a guitar tuner for a mobile phone

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

Page 15: Design and implementation of a guitar tuner for a mobile phone

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.

Page 16: Design and implementation of a guitar tuner for a mobile phone

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,

Page 17: Design and implementation of a guitar tuner for a mobile phone

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.

Page 18: Design and implementation of a guitar tuner for a mobile phone

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.

Page 19: Design and implementation of a guitar tuner for a mobile phone

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

Page 20: Design and implementation of a guitar tuner for a mobile phone

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

Page 21: Design and implementation of a guitar tuner for a mobile phone

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.

Page 22: Design and implementation of a guitar tuner for a mobile phone

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

Page 23: Design and implementation of a guitar tuner for a mobile phone

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.

Page 24: Design and implementation of a guitar tuner for a mobile phone

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.

Page 25: Design and implementation of a guitar tuner for a mobile phone

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.

Page 26: Design and implementation of a guitar tuner for a mobile phone

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.

Page 27: Design and implementation of a guitar tuner for a mobile phone

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.

Page 28: Design and implementation of a guitar tuner for a mobile phone

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.