Like searching for a needle in a haystack, suppose that we have a large set of signals (finite sequences of numbers) {s1, s2, s3,...}, and a special signal q that may or may not be in the collection. How can we find signals in the collection that are similar if not identical to q, and how can we do this quickly? A solution to this question is the basis of the Shazam smartphone app, where a listener captures a short excerpt of a recorded song with the smartphone's microphone, and in a matter of moments the app reports the name of the song and the artist [12]. There the "needle" is the excerpt, and the "haystack" is a vast corpus of popular music. The Shazam algorithm is powered by Fourier analysis [15], and the purpose of this paper is to present a simpler, wavelet-based method that captures the basic process used by the app.
展开▼