1 / 28

Computer Science 121

Scientific Computing Winter 2012 Chapter 13 Sounds and Signals. Computer Science 121. Background: Sounds and Signals. Recall transducer view of computer: convert input signal into numbers. Signal: a quantity that changes over time Body temperature Air pressure (sound)

olesia
Télécharger la présentation

Computer Science 121

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Scientific Computing Winter 2012 Chapter 13 Sounds and Signals Computer Science 121

  2. Background: Sounds and Signals • Recall transducer view of computer: convert input signal into numbers. • Signal: a quantity that changes over time • Body temperature • Air pressure (sound) • Electrical potential on skin (electrocardiogram) • Seismological disturbances • We will study audio signals (sounds), but the same issues apply across a broad range of signal types.

  3. 13.1 Basics of Computer Sound >> [x, fs, bits] = wavread(‘FH.wav'); >> size(x) ans = 41777 1 >> [max(x) min(x)] ans = 0.9922 -1.0000 >> fs fs = 11025 >> bits bits = 8 >> sound(x, fs)

  4. 13.1 Basics of Computer Sound

  5. 13.1 Basics of Computer Sound

  6. 13.1 Basics of Computer Sound • x contains the sound waveform (signal) – essentially, voltage levels representing transduced air pressure on microphone. • fsis the sampling frequency – how many time per second (Hertz, Hz), did we measure the voltage? • bits is the number of bits used to represent each sample.

  7. Questions • Why does the sound waveform range from -1 to +1? • These values are essentially arbitrary. One nice feature of a ±x representation is that zero means silence. • What role does the sampling frequency play in the quality of the sound? • The more samples per second, the closer the sound is to a “perfect” recording. • What happens if we double (or halve) the sampling frequency at playback, and why? • What is it about the waveform that determines the sound we're hearing (which vowel), and the speaker's voice?

  8. Questions • What is it about the waveform that determines the sound we're hearing (which vowel), and the speaker's voice? • Most of this information is encoded in the frequencies that make up the waveform – roughly, the differences between locations of successive peaks – and not in the actual waveform values themselves. • We can do some useful processing on the “raw” waveform, however – e.g., count syllables:

  9. Syllable Counting by Smoothing and Peak-Picking

  10. function res = syllables(x, fs) % SYLLABLES(X, FS) counts syllables in speech waveform X by peak-picking % on smoothed rectified signal. FS is sampling rate. % how much higher a peak must be than its neighbors DIFF = .001; % size of moving-average "window" around each point, empirically determined winsize = fix(fs / 20); % rectify signal x = abs(x); % create smoothed signal from rectified y = zeros(1, fix(length(x)/winsize)); for i = winsize:winsize:length(x)-winsize y(fix(i/winsize)) = mean(x(i-winsize+1:i+winsize)); end plot(y) hold on % pick peaks in smoothed peaks = find((y(2:end-1)-y(1:end-2))>DIFF & (y(2:end-1)-y(3:end))>DIFF) + 1; plot(peaks, y(peaks), 'ro') res = length(peaks);

  11. 13.2 Perception and Generation of Sound • Sound is the perception of small, rapid vibrations in air pressure on the ear. • Simplest model of sound is a function P(t) expressing pressure P at time t: P(t) = A sin(2πft + φ) where A = amplitude (roughly, loudness) f = frequency (cycles per second) φ = phase (roughly, starting point) • This is the equation for a pure musical tone (just one pitch)

  12. 13.2 Perception and Generation of Sound • Inverse of frequency is period (distance between peaks):

  13. 13.2 Perception and Generation of Sound • E.g., whistling a musical scale:

  14. 13.2 Perception and Generation of Sound (ignore textbook) • Most real sounds are complicated mixtures of many frequencies (no pure tones in nature). • Still, we can learn some basic concepts by experimenting with pure tones: • >> FS = 10000; % sampling frequency • >> f = 500; % sound frequency • >> A = 1.0; % amplitude • >> t = linspace(0,1,FS); % 1 sec at 10 kHz • >> Pt = A * sin(2*pi*f*t); % ignore phase

  15. 13.2 Perception and Generation of Sound (ignore textbook) • >> Pt = A * sin(2*pi*f*t); • >> plot(t, Pt) • >> xlim([0 .01]) % plot from 0 to .01 sec

  16. Multiplying the frequency by k gives us k times as many cycles in the same amount of time…. • >> Pt = A * sin(2*pi*3*f*t); % k = 3 • >> plot(t, Pt),xlim([0 .01])

  17. Multiplying the amplitude by a number between 0 and 1 adjusts the loudness (volume) of the sound: • >> Pt = 0.5 * A * sin(2*pi*3*f*t); % half the loudness • >> plot(t, Pt), xlim([0 .01]) • >> ylim([-1 1]) % keep Y axis scaling

  18. 13.3 Synthesizing Complex Sounds (ignore textbook) • Any sound can (in principle) be expressed as the sum of a set of pure tones of various frequencies, amplitudes, and phases. • People are (arguably) insensitive to phase distinctions, so we will ignore phase here. • Consider a sound containing a 500 Hz and a 1200 Hz component at half the amplitude...

  19. >> FS = 10000; >> t = linspace(0, 1, FS); >> f = 500; >> A = 1.0; >> Pt = A * sin(2*pi*f*t); >> f2 = 1200; >> A2 = 0.5; >> Pt2 = A2 * sin(2*pi*f2*t); >> Pt3 = Pt + Pt2; >> plot(t, Pt3), xlim([0 .01])

  20. 13.3 Synthesizing Complex Sounds • More generally, we have the formula • n • P(t) = S Ai sin(2 π fi t + φi ) • i=1 • With all φi typically set to zero.

  21. 13.4 Transducing and Recording Sound • Convert sound pressure to voltage, then digitize voltage into N discrete values in interval [xmin, xmax], by sampling at frequency Fs. • This is done by a analog /digital converter. • Another device must pre-amplify sound to match input expectations of a/d converter. • N is typically a power of 2, so we can use bits to express sampling precision (minimum 8 for decent quality). This is called quantization. • For Matlab, xmin, = -1.0, xmax= +1.0 • Various things can go wrong if we don't choose these values wisely....

  22. 13.4 Transducing and Recording Sound Figure 13.5. A segment of the sound “OH” transduced to voltage. Top: The preamplifier has been set appropriately so that the analog voltage signal takes up a large fraction of the A/D voltage range. The digitized signal closely resembles the analog signal even though the A/D conversion is set to 8 bits. Bottom: The preamplifier has been set too low. Consequently, there is effectively only about 3 bits of resolution in the digitized signal; most of the range is unused.

  23. 13.4 Transducing and Recording Sound Figure 13.6. Clipping of a signal (right) when the preamplifier has been set too high, so that the signal is outside of the −5 to 5 V range of the A/D converter.

  24. 13.5 Aliasing and the Sampling Frequency • Someone has an alias when they use more than one name (representation) • In the world of signals, this means having more than one representation of an analog signal, because of inadequate sampling frequency • Familiar visual aliasing from the movies (when 32 frames per second is too slow) • Wagon wheel / propeller going backwards • Scan lines appearing on computer screen • Inadequate Fscan result in aliasing for sounds too....

  25. 13.5 Aliasing and the Sampling Frequency

  26. 13.5 Aliasing and the Sampling Frequency Figure 13.8. Aliasing. A set of samples marked as circles. The three sine waves plotted are of different frequencies, but all pass through the same samples. The aliased frequencies are F +m/∆T, where m is any integer and ∆T is the sampling interval. The sine waves shown are m = 0, m = 1, and m = 2.

  27. 13.5 Aliasing and the Sampling Frequency • Nyquist's Theorem tells us that Fs should be at least twice the maximum frequency Fmax we wish to reproduce. • Intuitively, we need two values to represent a single cycle: one for peak, one for valley:

  28. Aliasing in the Time Domain

More Related