AJF's Project Suggestions 1998-99

(chosen in 98-99; to be taken in 99-00)


AJF/1 - Greek New Testament Browser [ITBML/IP]

Many editions of the Greek New Testament are available on-line. They provide scope for several interesting Information Processing projects. The following is one such idea, but I am particularly keen to discuss other possible projects in this area with interested students.

The construction is proposed of a ``browser'' for Greek NT texts. This would be a tool, perhaps similar to Adobe Acrobat, which would allow the user to navigate the Greek text. The programming task is essentially that of implementing a word processor, except that - unusually for word processors - this one has read-only access to the text. (Changing the NT is frowned upon!)

Some of the groundwork was done by Matthew Calamatta, whose project report [1] explores some of the issues. Matthew chose to use Java, and the present project would also use this language in order to make a browsable Greek NT available over the World-Wide Web.

The following are among the problems which have to be addressed: the efficient storage of text; efficient indexing; portable rendering of Greek fonts; efficient client-server partitioning and protocols.

The program should be extensible to allow the later implementation (not in this project) of tools which might be useful to scholars: automatic concordance generation; analysis of parallel passages in the four Gospels; automatic generation of variant readings; correlation of Old Testament quotations; etc.

A familiarity with the Greek alphabet is required, but beyond this no knowledge of Greek is expected.

Reference:

  1. Calamatta M., Greek New Testament Browser, final year project report (1998)

AJF/2 - A Simple AWT for Java [ITBML/IP]

Java is a well-designed language whose reputation is tarnished by the unwieldy and poorly designed user interface in whose company it is usually seen. There's something wrong with an Abstract Windowing Toolkit which needs 1045 pages to describe it. I propose the design of a simple replacement, better designed and much smaller, which will be powerful in the old-fashioned sense of ``giving a lot out of a little'', rather than in the modern sense of ``having lots of bells and whistles''.

It has been suggested that the Smalltalk user interface components might be a good starting point for your design.

This is a design project. You are not expected to implement the interface you design, although clearly you will discuss implementation issues in your report. Because of this limitation of scope, the design is expected to be very thorough indeed.


AJF/3 - Finite Impulse Response Filter Generation [CS]

Mkfilter is a popular digital filter design package, implemented as a World Wide Web page. The web interface is used about 1700 times each month (excluding local accesses), from all over the world; has been cited in the popular American electronics press [1]; and is referred to in Internet directories [2]. In addition, the underlying design ``engine'' has been very widely distributed in source form. Applications have included radionavigation, teaching, digital sound processing, modem design, electrocardiogram processing, and the design of high-power infrasonic rumble generators for theatres!

Mkfilter designs infinite-impulse-response filters. The user specifies a ``shape'' for the response curve by choosing from a fixed set of alternatives: Butterworth, Bessel or Chebyshev; low-pass, high-pass, band-pass or band-stop.

This project proposes the design of a finite-impulse-response version of the mkfilter web page. The usual approach to designing FIR filters is to specify a response graph of arbitrary shape numerically, together with a set of tolerances. In other words, one says (for example) ``I want the response at 1 kHz to be -3 ±1 dB'', and similarly for a number of other spot frequencies. There are well-known methods for designing an optimum filter which fulfils the specification.

The main distinguishing feature of this project is the input of the response graph. Whereas the existing mkfilter page allows the user to select from a fixed set of alternatives, which suffices for an IIR design, to design an FIR filter it is necessary to allow the user to input the response graph directly. This project proposes the use of Java for this purpose.

The project will interest the student with a mathematical bent, who is at home with complex algebra, and who intends to take the DSP module.

References:

  1. Park M. & McLeod B., Real-Time DSP Modems with a PC and Sound Card, Circuit Cellar INK 76 p.20 (Nov. 1996)

  2. Howard W. Sams Internet Guide to the Electronic Industry (1997)

AJF/4 - Expert System for Designing Phase-Locked Loops [CS]

The phase-locked loop is a well-studied electronic circuit which is used to lock the frequency and phase of an oscillator onto a given signal, to synthesize signals at rational multiples of a given frequency, to filter noisy signals, and for all sorts of other clever applications. The design of a PLL involves the choosing of values for many parameters, including loop order, damping factor, loop bandwidth, Q and resonant frequency. Different applications demand different choices for parameter values and different loop configurations, and the parameter values interact in a complex way. A full account of loop design and of the theory behind the PLL is given by Gardner [1], and there is an extensive body of published research on this topic.

The design of a PLL is seen by some as a ``black art'' whose technicalities make even seasoned engineers turn pale. What they need is an expert system to guide them through the choices. Complete this project successfully, and you will have earned the gratitude of all who have ever wrestled with the standard work on PLLs [1] and its successor [2].

I should like the end result to use a World-Wide-Web form-based interface, similar to that used by my own digital filter design package.

An interest in artificial intelligence and human-computer interfaces would be a disadvantage in completing this project. Mathematical competence is essential, but a deep or broad knowledge of Computer Science is not required.

References:

  1. F.M. Gardner, Phaselock techniques (2nd ed.), Wiley (1979)

  2. Roland E. Best, Phase-locked loops, McGraw-Hill (1993)

AJF/5 - A Tool for Oboe or Bassoon Reed-makers [CS]

An oboe reed is a shaped piece of cane (Arundo donax) which is bound by thread onto a metal tube, 47 or 48 mm long, called a staple. A bassoon reed is similar, except that there is no staple: the cane is held together by thread, and the circular end is a push-fit onto a curved tube, about 9 inches long, called a crook.

The making of oboe and bassoon reeds is a skilled business. Minute quantities of cane are pared from the reed, using a special knife; and the reed is ``crowed'', or blown in a particular way, at frequent intervals to see what effect the scraping has had. The reed-maker uses his or her experience to judge where to scrape: as one bassoon reed-maker said to me recently, ``I blow it, and then I just know where to scrape!''

The aim of this project is the construction of software to help the maker of oboe or bassoon reeds. The software will run on a Silicon Graphics Indy workstation, and will use the audio input facilities of that machine. To use the system, one would ``crow'' the reed into a microphone. The processor would analyse the sound - possibly computing its spectrum - and suggest an appropriate place to scrape. The device would be ``trained'' by recording and analysing the sound at many stages of scraping, so building up a picture of what effect a scrape at a particular place on the reed has on the sound. The device could then suggest where to scrape in order to approach the sound of that mythical object, the ``perfect reed''.

This project would ideally suit a student who plays the oboe or the bassoon.

Bibliography:

  1. Numerous articles on oboe reed-making in Double Reed News and Journal of the International Double Reed Society, in particular:

  2. Prodan J.C., The effect of the intonation of the crow of the reed on the tone quality of the oboe, J. IDRS 5 (1977); online version

  3. Henderson R.E., Measuring Oboe Reeds, To the World's Oboists 1(1) (1972); online version

  4. Whittow M., Oboe: A reed blown in the wind, Puffit Publications (1991)

AJF/6 - A ``Who's Out Of Tune'' Box [CS]

Imagine a group of eight musicians, sitting in a circle, playing wind octets. Seven are playing in tune; one - let us suppose, the second oboe - is slightly out of tune. It is usually more apparent to the seven that the second oboe is out of tune than it is to the second oboe.

What I have in mind is a large box which sits in the middle of the circle of players. On the top of the box is a large pointer (say 2 ft long), like a weather vane, which swings (driven by a motor) to point to the offending player. At the end of the pointer is a display which indicates to the second oboe whether he or she is flat or sharp. An arm, say 3 ft long and perpendicular to the pointer, carries a microphone at each end. When the pointer is pointing at the second oboe, the sound signals from that instrument arrive simultaneously from each microphone. By measuring the Doppler shift of signals from the two microphones while the pointer is swinging, and carrying out some clever digital signal processing, one can isolate the contributions of each instrument, and so tell whether each is in tune.

The software will be written in C and will run on a Silicon Graphics Indy workstation, whose stereo audio input facilities would be used. The ``weather vane'' device will be designed by me and built by the Department's hardware technicians. It will be controlled by the Indy via an RS-232 port.

Alan Wood has pointed out that, from a theoretical point of view, tuning a chord is a fixed-point problem: one takes a chord and makes an adjustment to it; that gives a second slightly different chord, to which one makes a further adjustment; and one hopes to converge eventually to a solution at which (fixed) point ``improvement'' is the identity operation.

Bibliography:

  1. Chamberlin H., Musical applications of microprocessors, Hayden (1980)

AJF/7 - Incremental editing of musical notation [CS/IP]

Alpha [1,2] is a popular* text formatting system which comprises a language in the style of Tex and an integrated interactive editing and formatting program. The program interprets a high-level document description incrementally, re-interpreting only those parts which have been edited, and it is this feature that made Alpha novel at the time of its invention. Since then, processors have become faster, so incremental processing is no longer quite so significant; but it is still a useful feature.

The aim of this project is:

After a review of the literature on incremental text formatting, the project will proceed by modification of the existing Alpha code.

Alpha is written in C++. A working knowledge of C, and a willingness to learn the necessary modicum of C++, will be required.

References:

  1. A.J. Fisher, The Alpha text formatting system, Report YCS 108, Dept of Computer Science, University of York (Nov. 1988)

  2. A.J. Fisher, Incremental algorithms for interactive text formatting, J. Systems & Software 16 3-16 (Sept. 1989)


* with its author

AJF/8 - Loran-C Radionavigation Receiver [CS]

This project is intended for the student who enjoyed the MCP module.

A radionavigation system allows a user to determine his position on (or above) the earth by receiving and comparing radio signals from several transmitters. There are two types of radionavigation system: satellite-based (e.g. GPS) and terrestrial, of which Loran-C is the best known. ``Terrestrial'' here simply means that the transmitters are on the surface of the earth. General information about Loran-C is published in several text-books, e.g. [1], and the paper by Frank [2], as well as giving a useful synopsis of Loran-C, contains a large bibliography.

In January 1995 a new chain of Loran-C transmitters, the Northwest European Loran-C System (NELS), was commissioned. Coverage in the U.K. is excellent, an accuracy of ~50m being readily attainable.

You will construct a Loran-C radionavigation receiver, of conventional design, using an MCP 64180 development board.

Output will be in hyperbolic coordinates, because the conversion in real time from hyperbolic to (e.g.) Ordnance Survey coordinates is probably beyond the capabilities of the 64180. The design will entail a large amount of 64180 assembly language programming, and a certain amount of analogue radio-frequency electronics design. Don't be put off by the latter; you can base your R.F. design on my own circuitry [3]. Culver's paper [4] gives a readable description of the conventional receiver architecture.

If you are successful in completing this project, your receiver will be used as the basis for final-year projects in future years. Because of this, it is important that you document fully all aspects of your design.

References:

  1. L. Tetley & D. Calcutt, ``Electronic aids to navigation'', Arnold (1991)

  2. R.L. Frank, ``Current developments in Loran-C'', Proc. IEEE 71(10) 1127-1139 (Oct. 1983) [Contains 136 references]

  3. A.J. Fisher, ``A test-bed for radionavigation'', Report YCS-301, Dept of Computer Science, University of York (1998)

  4. C. Culver, ``A review of Loran receiver architecture'', Proc. 15th annual technical symposium of the Wild Goose Association 185-191 (1986) [copy available from AJF]

AJF/9 - Osmium: a model of the Iridium satellite-based telephone system [CS or PR4]

This project is intended for the student who enjoyed the MCP module.

The Iridium system is a satellite-based, wireless personal communications network designed to permit any type of telephone transmission - voice, paging, fax or data - to reach its destination anywhere on earth.

To complete this project, you will construct a model of the Iridium system in the hardware laboratory, using infra-red links instead of radio links. The ``satellites'' will be suspended from the ceiling, in ``low laboratory orbit''. They will communicate with one another and with the ``ground stations'', each of which will have an interface to a standard telephone. Standard call progress tones, ringing, etc. will be employed. As far as possible, the protocols and techniques used will be based on those used by the real Iridium system, but some scaling down will be required to match the small scale of the hardware.

To make this project reasonably realistic, I propose the construction of two satellites and two ground stations. You will design and construct all of these, using the MCP 64180 development board as the basis for the hardware for the ground stations, and possibly for the satellites. You will be expected to develop the system to the extent that a user on one ground station can call a user on the other and conduct a conversation.

Osmium is the element just below iridium in the periodic table of the elements.


Tony Fisher / fisher@minster.york.ac.uk