47
EE513 Audio Signals and Systems Digital Signal Processing (Analysis) Kevin D. Donohue Electrical and Computer Engineering University of Kentucky

EE513 Audio Signals and Systems Digital Signal Processing (Analysis) Kevin D. Donohue Electrical and Computer Engineering University of Kentucky

Embed Size (px)

Citation preview

Page 1: EE513 Audio Signals and Systems Digital Signal Processing (Analysis) Kevin D. Donohue Electrical and Computer Engineering University of Kentucky

EE513Audio Signals and Systems

Digital Signal Processing (Analysis)

Kevin D. DonohueElectrical and Computer Engineering

University of Kentucky

Page 2: EE513 Audio Signals and Systems Digital Signal Processing (Analysis) Kevin D. Donohue Electrical and Computer Engineering University of Kentucky

SpectraThe spectrum of the impulse response indicates the following filter/system properties: resonance and frequency sensitivities through the magnitude

spectrum delay and dispersive properties through the phase spectrum.

The discrete Fourier transform (DFT) computes complex samples of the spectrum. For deterministic signals both the phase and magnitude are important

for characterizing the signal or response. For stationary noise processes the square of the DFT magnitudes can

be averaged from independent segments to create a power spectral density.

Page 3: EE513 Audio Signals and Systems Digital Signal Processing (Analysis) Kevin D. Donohue Electrical and Computer Engineering University of Kentucky

Discrete Fourier TransformIn order to take a DFT of a signal, a finite window (time interval) must be extracted from the original sampled time signal:

The process can be repeated with overlapping windows covering entire signal. If the signal is deterministic and changes over time, the DFTs for small consecutive intervals

must be displayed to show the changes in spectrum over time (Spectrogram). If the signal is random with statistics that do not change over time, the DFT magnitudes can

be averaged (Power Spectral Density (PSD)).

3.2 3.4 3.6 3.8 4 4.2 4.4 4.6 4.8 5 5.2

x 104

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

Samples

4.34 4.345 4.35 4.355 4.36 4.365 4.37 4.375 4.38 4.385 4.39

x 104

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

Samples

-0.5 -0.4 -0.3 -0.2 -0.1 0 0.1 0.2 0.3 0.4 0.50

200

400

600

800

1000

Hz (Normalized Fs = 1)

DF

T M

agni

tude

Squ

ared

-0.5 -0.4 -0.3 -0.2 -0.1 0 0.1 0.2 0.3 0.4 0.5-4

-3

-2

-1

0

1

2

3

4

Hz (Normalized Fs = 1)

DF

T P

hase

in R

adia

ns

DFT Magnitu

de

Squared

DFT Phase

Page 4: EE513 Audio Signals and Systems Digital Signal Processing (Analysis) Kevin D. Donohue Electrical and Computer Engineering University of Kentucky

DFT and Inverse DFT DFT points are evaluated at discrete frequency samples (frequency sampling). The DFT for an N point sequence is defined as:

This inverse DFT is a similar computation to the DFT except the complex conjugate of the kernel is used:

NnN

njkkX

Nnx

N

k

0for 2

exp)(ˆ1 1

0

NkN

kjnnxkX

N

n

0for 2

exp)(ˆ1

0

Page 5: EE513 Audio Signals and Systems Digital Signal Processing (Analysis) Kevin D. Donohue Electrical and Computer Engineering University of Kentucky

DFT with W notationLet WN equal the complex sinusoid with the lowest nonzero frequency (k = 1):

NkWnxkXN

n

kn

N

0for )(ˆ1

0

NjWN

2exp

WN is effectively a fundamental frequency in a harmonic expansion, since the frequency domain is sampled in equal increments. DFT and its inverse can now be written as:

NnWkXN

nxN

k

nk

N

0for )(ˆ1 1

0

Page 6: EE513 Audio Signals and Systems Digital Signal Processing (Analysis) Kevin D. Donohue Electrical and Computer Engineering University of Kentucky

Computation ExamplesCompute the DFT for the 4 point and 8 point signals given below:

0 , 1,1 ,03 ,2 ,1 ,0 )()()()( xxxx

0 0, 0, ,0 0, , 1,1 ,07 ,1 ,0 )()()( xxx

What was the effect of extra zeros padded on the end of the signal in the second example?

Page 7: EE513 Audio Signals and Systems Digital Signal Processing (Analysis) Kevin D. Donohue Electrical and Computer Engineering University of Kentucky

Computation ExamplesCompute the DFT for the 4 point 0 , 1,1 ,0

40for )(ˆ3

04

kWnxkXn

kn

20110 )(ˆ,0 04

04

04

04

3

0

04

WWWWWnxkXkn

135210110 )(ˆ,1 34

24

14

04

3

0

14

jWWWWWnxkXkn

n

00110 )(ˆ,2 24

04

24

04

3

0

24

WWWWWnxkXkn

n

135210110 )(ˆ,3 14

24

34

04

3

0

34

jWWWWWnxkXkn

n

30

210

60

240

90

270

120

300

150

330

1800

W34 = j

W24 = -1

W04= 1

W24= -j

RE

IM

Page 8: EE513 Audio Signals and Systems Digital Signal Processing (Analysis) Kevin D. Donohue Electrical and Computer Engineering University of Kentucky

Computation ExamplesCompute the DFT for the 8 point 0 0, 0, 0, 0, , 1,1 ,0

80for )(ˆ7

04

kWnxkXn

kn

200110 )(ˆ,0 08

08

08

08

7

0

08

WWWWWnxkXkn

5.6785.171.171.00110 )(ˆ,1 38

28

18

08

7

0

18

jWWWWWnxkXkn

n

000110 )(ˆ,4 48

08

48

08

7

0

48

WWWWWnxkXkn

n

13521.00110 )(ˆ,2 68

48

28

08

7

0

28

jWWWWWnxkXkn

n

5.15776.029.071.00110 )(ˆ,3 18

68

38

08

7

0

38

jWWWWWnxkXkn

n

5.15776.029.071.00110 )(ˆ,5 78

28

58

08

7

0

58

jWWWWWnxkXkn

n

1352100110 )(ˆ,6 28

48

68

08

7

0

68

jWWWWWnxkXkn

n

5.6785.171.171.00110 )(ˆ,7 58

68

78

08

7

0

78

jWWWWWnxkXkn

n

30

210

60

240

90

270

120

300

150

330

180 0

W08= 1

W78=

W48 = -1

W38 = W1

8 =

W28= -j

W68 = j

W58 =

j 12

2

j12

2 j 12

2

j 12

2

Page 9: EE513 Audio Signals and Systems Digital Signal Processing (Analysis) Kevin D. Donohue Electrical and Computer Engineering University of Kentucky

Computation Examples What symmetries exist in the WN factor in the DFT

computation that suggest a more efficient computation than a direct multiply and summation? The implementation that takes advantage of these symmetries is called a Fast Fourier Transform (FFT).

If the sequence is a power of 2, the FFT is most efficient. A direct implementation of the DFT requires N2 complex multiplications. An FFT requires Nlog2N complex multiplications.

Compute the ratio between complex multiplications for the FFT and DFT for a 128 point sequence. Compute the same ratio for a 2048 point sequence.

See http://www.cmlab.csie.ntu.edu.tw/cml/dsp/training/coding/transform/fft.html

For more details on the FFT derivation

Page 10: EE513 Audio Signals and Systems Digital Signal Processing (Analysis) Kevin D. Donohue Electrical and Computer Engineering University of Kentucky

Homework(1)Derive each of the symmetry relationships below for the WN factor:

1 and ,any for *)( NknWW knN

N

nk

N

even and ,1for 2 NNWWk

N

N

k

N

even and 1 ,,any for 2

2

NNknWW nk

N

nk

N

1 ,any for 1

0

*

NkNWWN

n

nk

N

nk

N

1for NWW kN

N

k

N

Page 11: EE513 Audio Signals and Systems Digital Signal Processing (Analysis) Kevin D. Donohue Electrical and Computer Engineering University of Kentucky

Frequency Sampling, FS to DFT

Time sample the following FS equations to show it equivalence to the DFT.

Sample time axis with Ts where NTs = Tok

o fTTtxtxtkfjkXtx

1),()(for )2exp(][ˆ)(

T

o dttkfjtxT

kX )2exp()(1

][ˆ

Page 12: EE513 Audio Signals and Systems Digital Signal Processing (Analysis) Kevin D. Donohue Electrical and Computer Engineering University of Kentucky

DFT Harmonics (N=4)

0 1 2 3 40

0.2

0.4

0.6

0.8

1

Samples

x(n) with kernel for k= 0

0 1 2 3 4-1

-0.5

0

0.5

1

Samples

x(n) with kernel for k= 1

0 1 2 3 4-1

-0.5

0

0.5

1

Samples

x(n) with kernel for k= 2

0 1 2 3 4-1

-0.5

0

0.5

1

Samples

x(n) with kernel for k= 3

Page 13: EE513 Audio Signals and Systems Digital Signal Processing (Analysis) Kevin D. Donohue Electrical and Computer Engineering University of Kentucky

DFT Harmonics (N=8)

0 2 4 6 80

0.2

0.4

0.6

0.8

1

Samples

x(n) with kernel for k= 0

0 2 4 6 8-1

-0.5

0

0.5

1

Samples

x(n) with kernel for k= 1

0 2 4 6 8-1

-0.5

0

0.5

1

Samples

x(n) with kernel for k= 2

0 2 4 6 8-1

-0.5

0

0.5

1

Samples

x(n) with kernel for k= 3

0 2 4 6 8-1

-0.5

0

0.5

1

Samples

x(n) with kernel for k= 4

0 2 4 6 8-1

-0.5

0

0.5

1

Samples

x(n) with kernel for k= 5

0 2 4 6 8-1

-0.5

0

0.5

1

Samples

x(n) with kernel for k= 6

0 2 4 6 8-1

-0.5

0

0.5

1

Samples

x(n) with kernel for k= 7

Page 14: EE513 Audio Signals and Systems Digital Signal Processing (Analysis) Kevin D. Donohue Electrical and Computer Engineering University of Kentucky

FFT Spectral Estimates

Distortion and error result from the truncated and frequency sampled signal because:

Lost energy from truncated time portion will distribute error over the signal.

Truncating signal at the endpoints can introduce a sharp transition that may not be part of the signal.

Sampling signal in frequency produces periodicity in time, which results in circular time-domain convolution from multiplying spectra in frequency domain.

Page 15: EE513 Audio Signals and Systems Digital Signal Processing (Analysis) Kevin D. Donohue Electrical and Computer Engineering University of Kentucky

Frequency Sampling EffectThe DFT can be applied to a finite duration signal. If signal support is infinite, part of it must be truncated. The DFT definition is applied to the finite number of points to obtain a frequency sampled spectrum, which results in a periodic extension of the signal in the time window.

0 5 10 15 20 25 30 35 40 45 50-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1Sampled signal for DFT analysis

Time in Seconds

Am

plit

ud

e

Truncate Signal 30 Seconds

0 50 100 150 200 250-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1Sampled signal for DFT analysis

Time in Sample Index

Am

plit

ud

e

Truncate Signal 150 Samples

Page 16: EE513 Audio Signals and Systems Digital Signal Processing (Analysis) Kevin D. Donohue Electrical and Computer Engineering University of Kentucky

Frequency Sampling EffectThe DFT representation implies the time domain signal was periodic (sampling in time produces periodic spectra, likewise sampling in frequency produces periodic time segments) as would be the case for Fourier series.

-150 -100 -50 0 50 100 150 200 250 300-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1Periodic Extension from Frequency Sampling

Time in Sample Index

Am

plit

ud

e

Original150 point signal

Page 17: EE513 Audio Signals and Systems Digital Signal Processing (Analysis) Kevin D. Donohue Electrical and Computer Engineering University of Kentucky

Circular ConvolutionMultiplication in frequency is convolution in time. For discrete signals, this can be performed with the fft command in Matlab on the filter coefficients h(n) and input signal x(n), then the ifft command on their frequency domain product:

0m

mnhmxnhnxny )()()(*)()(

)(ˆ)(ˆ)(ˆ kHkXkY

1

0

)(ˆN

n

knNWnxkX

1

0

)(ˆN

n

knNWnhkH

1

0

)(ˆ1 N

k

nkNWkY

Nny

TimeDomain

FrequencyDomain

TimeDomain

Page 18: EE513 Audio Signals and Systems Digital Signal Processing (Analysis) Kevin D. Donohue Electrical and Computer Engineering University of Kentucky

Linear Convolution ExampleLinear convolution implemented in the time domain. Note the convolved signal length is greater than either of the originals. Why?

20 40 60 80 100 120 140-0.1

0

0.1

0.2

0.3Filter Impulse Response 128 Points

20 40 60 80 100 120 140-4

-2

0

2Signal 128 Points

20 40 60 80 100 120 140-1.5

-1

-0.5

0

0.5Linear Convolution in Time Domain 148 Points

Page 19: EE513 Audio Signals and Systems Digital Signal Processing (Analysis) Kevin D. Donohue Electrical and Computer Engineering University of Kentucky

Circular Convolution ExampleConvolution implemented in the frequency domain. Note the convolved signal length is the same as the originals. Why?Why is there an apparent artifact at the beginning of the signal?

20 40 60 80 100 120 140-0.1

0

0.1

0.2

0.3Filter Impulse Response 128 Points

20 40 60 80 100 120 140-4

-2

0

2Signal 128 Points

20 40 60 80 100 120 140-1.5

-1

-0.5

0

0.5Circular Convolution Implemented in Frequency Domain 128 Points

Page 20: EE513 Audio Signals and Systems Digital Signal Processing (Analysis) Kevin D. Donohue Electrical and Computer Engineering University of Kentucky

Circular Convolution ExampleConvolution implemented in the frequency domain with zero padding. Why is the apparent artifact from the nonzero pad example no longer present?

50 100 150 200 250-0.1

0

0.1

0.2

0.3Filter Impulse Response 256 Points by Zero Padding

50 100 150 200 250-4

-2

0

2Signal 256 Points by Zero Padding

50 100 150 200 250-1.5

-1

-0.5

0

0.5Circular Convolution Implemented in Frequency Domain 256 Points

Page 21: EE513 Audio Signals and Systems Digital Signal Processing (Analysis) Kevin D. Donohue Electrical and Computer Engineering University of Kentucky

Homework(2)Use the FFT to filter a 32 point square pulse s[n]:

(index n starts a 0) where the FIR filter has impulse response h[n]:

a) Use the fft command to take signals into frequency domain without padding with zeros. Take inverse fft to obtain time domain signal. Plot the filtered signals and explain what you observe.

b) Use the fft command and pad with zeros to double the signal lengths and repeat part (a)

elsewhere 0

1629for 1][

n

ns

1232for 0

012for 6.][

n

nnh

n

Page 22: EE513 Audio Signals and Systems Digital Signal Processing (Analysis) Kevin D. Donohue Electrical and Computer Engineering University of Kentucky

FFT for Signal Analysis

The FFT can be applied directly to finite duration energy signals to examine the spectral content of the signal.

For Matlab’s FFT: FFT(X) is the discrete Fourier transform (DFT) of

vector X. For matrices, the FFT operation is applied to each column.

FFT(X,N) is the N-point FFT, padded with zeros if X has less than N points and truncated if it has more.

Page 23: EE513 Audio Signals and Systems Digital Signal Processing (Analysis) Kevin D. Donohue Electrical and Computer Engineering University of Kentucky

FFT of a Rayleigh RingWrite a Matlab script to Generate a tone modulated by a Rayleigh envelope. Plot the signal, its spectra, and play the sound. % Simulate a Rayleigh envelope ring, truncate it, take its FFT and examine

% its spectral content

fr = 250; % Frequency of the ring

sigma = .05; % effective duration TIMES 2 of ring

fs = 8000; % Sampling frequency

dur = .25; % signal duration in seconds

nfft = 4096;

t = [0:round(dur*fs)-1]/fs; % Create time axis

ring = (t/sigma).*exp((-t.^2)/(sigma^2)).*sin(2*pi*t*fr); % Generate Ring signal

figure(1)

plot(t, ring) % Plot ring

title('Rayleigh Envelope Ring Signal')

xlabel('Seconds')

ylabel('Amplitude')

soundsc(ring,fs) % Play sound

Page 24: EE513 Audio Signals and Systems Digital Signal Processing (Analysis) Kevin D. Donohue Electrical and Computer Engineering University of Kentucky

FFT of a Rayleigh Ringspec0 = fft(ring); % No Zero pad

spec1 = fft(ring,nfft); % Zero pad (or truncate) to NFFT points

spec2 = fft(ring,2*nfft); % Zero pad to 2*NFFT

% Create frequency axes for each of the spectrafaxis0 = fs*[0:length(spec0)-1]/length(spec0); faxis1 = fs*[0:length(spec1)-1]/length(spec1);faxis2 = fs*[0:length(spec2)-1]/length(spec2);% Plot spectrum with zero padded version on the same graph and comparefigure(2) % Magnitudeplot(faxis0, abs(spec0),'k',faxis1, abs(spec1),'r--',faxis2, abs(spec2),'g.')legend([int2str(length(t)) ' point FFT'], [int2str(nfft) ' point FFT'], [int2str(2*nfft) ' point FFT']) title('Magnitude ffts with zero padding')xlabel('Hertz')ylabel('Magnitude')

figure(3) % Phaseplot(faxis0, 180*phase(spec0)/pi,'k',faxis1, 180*phase(spec1)/pi,'r--',faxis2, 180*phase(spec2)/pi,'g.')legend([int2str(length(t)) ' point FFT'], [int2str(nfft) ' point FFT'], [int2str(2*nfft) ' point FFT']) title('Phase ffts with zero padding')xlabel('Hertz')ylabel('Degrees')

Page 25: EE513 Audio Signals and Systems Digital Signal Processing (Analysis) Kevin D. Donohue Electrical and Computer Engineering University of Kentucky

FFT of a Rayleigh Ring

210 220 230 240 250 260 270 280 290

0

10

20

30

40

50

60

70

80

90

100

ffts with zero padding

Hertz

Am

plitu

de

2000 point FFT4096 point FFT8192 point FFT

0 0.05 0.1 0.15 0.2 0.25-0.5

-0.4

-0.3

-0.2

-0.1

0

0.1

0.2

0.3

0.4

0.5Rayleigh Envelope Ring Signal

Seconds

Am

plitu

de

200 210 220 230 240 250 260 270 280 290 300

-250

-200

-150

-100

-50

0

50

Phase ffts with zero padding

Hertz

Deg

rees

2000 point FFT4096 point FFT8192 point FFT

(Zero Padding Effects)

Page 26: EE513 Audio Signals and Systems Digital Signal Processing (Analysis) Kevin D. Donohue Electrical and Computer Engineering University of Kentucky

Homework(3)Create a signal consisting of 2 sine waves with amplitude 1 and sampled at 4000 Hz. Set one with frequency 250 Hz and the other with 254 Hz. a) Take the DFT using window length of 0.05, 0.25 and 0.5 seconds. Describe what you see and make generalizations about the impact of signal length on frequency resolution.b) Repeat part (a) using zeros padding so that each signal length is effectively 1 seconds. Describe what you see and make generalization about the impact zero padding on frequency resolution.

Page 27: EE513 Audio Signals and Systems Digital Signal Processing (Analysis) Kevin D. Donohue Electrical and Computer Engineering University of Kentucky

FFT of Extended Non-Stationary Signals

When the signal is long with changing dynamics, as would be the case for a speech or music signal, the FFT must be applied to short segments of these signals.

To reduce truncation effects, a tapering is used to bring the ends of the segment close to zero a the points of truncation.

To ensure that information is not lost in the truncation and tapering, an overlap between signal segments is used.

Page 28: EE513 Audio Signals and Systems Digital Signal Processing (Analysis) Kevin D. Donohue Electrical and Computer Engineering University of Kentucky

Impact of Windowing

The windowed DFT is the product of the original signal and the windowing function:

where x[n] is a signal of infinite extend, n is the sample index, g[n] is a finite widow.

][][];[ mngnxmnxw 0 100 200 300 400 500

-1.5

-1

-0.5

0

0.5

1

1.5

Samples

Am

plit

ud

e

Hamming Window 2Hamming Window 1

0 100 200 300 400 500-3

-2

-1

0

1

2

3

samples

am

plit

ud

e

Page 29: EE513 Audio Signals and Systems Digital Signal Processing (Analysis) Kevin D. Donohue Electrical and Computer Engineering University of Kentucky

Impact of WindowingIn the frequency domain this becomes convolution with the window DFT:

)2exp(][ˆ][ˆ];[ˆ1

0

kmjlkGlXmkXN

lw

0.02 0.04 0.06 0.08 0.10

0.05

0.1

0.15

0.2

0.25

0.3

Hertz

Ma

gn

itud

e

Not windowed (very long segment)

Boxcar window

Hamming window

0 100 200 300 400 500-4

-2

0

2

4

samples

am

plit

ud

e

Hamming window

0 100 200 300 400 500-4

-2

0

2

4

Boxcar window

0 0.1 0.2 0.3 0.4 0.50

0.05

0.1

0.15

0.2

0.25

0.3

0.35

Hertz

Ma

gn

itud

eHamming window

Not windowed (very long segment)

Boxcar window

Page 30: EE513 Audio Signals and Systems Digital Signal Processing (Analysis) Kevin D. Donohue Electrical and Computer Engineering University of Kentucky

Spectrogram for Signal Analysis

For a signal that deterministically changes spectral properties over time, the DFT over local time windows must be computed and indexed. This function is referred to as the spectrogram:

where m is the time index, T is the sample increment to the next window position, which effectively slides the N point analysis window over consecutive (often overlapping) segments of the signal x[n]. The DFTs are plotted along the y-axis, while the x-axis is time (usually corresponding to the short-time window centers. The result is a function that shows how the spectrum changes over time.

The following parameters must be set properly for a usable analysis:

window length N, window type, window increment (overlap between consecutive windows), number of FFT points.

1

0

][][];[ˆN

n

nkNN WngmTnxmkX

Page 31: EE513 Audio Signals and Systems Digital Signal Processing (Analysis) Kevin D. Donohue Electrical and Computer Engineering University of Kentucky

Spectrogram for Signal AnalysisThe Matlab spectrogram command is appropriate for analyzing long deterministic or non-stationary signals.

For Matlab’s SPECTROGRAM:

>> S = SPECTROGRAM(X,WINDOW,NOVERLAP,NFFT,Fs)

calculates the spectrogram for the signal sampled at Fs in vector X. SPECTROGRAM splits the signal into overlapping segments, windows each with the WINDOW vector and forms the columns of S with their zero-padded, length NFFT discrete Fourier transforms. Thus each column of S contains an estimate of the short-term, time-localized frequency content of the signal X (positive frequencies only). Time increases linearly across the columns of S, from left to right.

Page 32: EE513 Audio Signals and Systems Digital Signal Processing (Analysis) Kevin D. Donohue Electrical and Computer Engineering University of Kentucky

Spectrogram for Signal Analysis

If plotting, it is convenient to use the optional output arguments:

[S,F,T] = SPECTROGRAM(A, WINDOW, NOVERLAP, NFFT, Fs) returns a column of frequencies F for each time in T at which the spectrum was computed. F has length equal to the number of rows of S, and T has length equal to the number of columns. If you leave Fs unspecified, SPECTROGRAM assumes a default of 2 Hz. Optional output parameters F and T are the frequency and time axes useful for plotting the spectrum:

>> imagesc(T, F, abs(S))

Page 33: EE513 Audio Signals and Systems Digital Signal Processing (Analysis) Kevin D. Donohue Electrical and Computer Engineering University of Kentucky

Spectrogram of Frequency SweepWrite a Matlab script to Generate a frequency sweep from 20 Hz to 1.9 kHz, where Fs is 4 kHz. Then plot the magnitude of the spectrogram and play the sound.

% Simulate a frequency sweep signal and take its spectrogram and examine

% its spectral content over time

% Signal Parameters

flow = 20; % Starting frequency of sweep in Hertz

fend = 1900; % Ending frequency of sweep in Hertz

dt = 4; % Time duration of sweep in seconds

fs = 4000; % Sampling frequency

% Spectrogram Parameters

wlen = 128; % Length of actual point extracted from signal segment

nfft = 1024; % number of FFT point (zero padding)

olap = floor(wlen/2); % Points of overlap between segments

wn = hamming(wlen); % Create tapering window (also try boxcar - square window)

Page 34: EE513 Audio Signals and Systems Digital Signal Processing (Analysis) Kevin D. Donohue Electrical and Computer Engineering University of Kentucky

Spectrogram of Frequency Sweep% Generate signal

t = [0:round(dt*fs)-1]/fs; % Create time axis

fsw = flow + ((fend-flow)/2)*[0:length(t)-1]/length(t); % Create Frequency ramp - Why divid by 2?

swp = sin(2*pi*t.*fsw); % Generate sweep signal

soundsc(swp,fs) % Play sound

% Create Spectrogram

[b,faxis,taxis] = spectrogram(swp,wn,oplap,nfft,fs);

% Plot over time and frequency

figure(1); imagesc(taxis, faxis, abs(b)) % Plot spectrogram

axis('xy') % Flip y axis to put zero Hz on bottom

colorbar % Include colorbar to determine color coded magnitudes on graph

title(['Frequency Sweep from ' num2str(flow) ' Hz to ' num2str(fend) ' Hz']); xlabel('Seconds'); ylabel('Hz')

% Just plot at a single time instant

figure(2); tindex = find(taxis >= dt/2); %Find index of halfway point over the time axis

tindex = tindex(1);

plot(faxis,abs(b(:,tindex)))

title(['Single column from Spectrogram at ' num2str(taxis(tindex)) ' seconds']); xlabel('Hz'); ylabel('Magnitude')

Page 35: EE513 Audio Signals and Systems Digital Signal Processing (Analysis) Kevin D. Donohue Electrical and Computer Engineering University of Kentucky

Spectrogram of Frequency Sweep

Seconds

Hz

Frequency Sweep from 20 Hz to 1900 Hz

0 0.5 1 1.5 2 2.5 3 3.50

200

400

600

800

1000

1200

1400

1600

1800

2000

5

10

15

20

25

30

35

0 200 400 600 800 1000 1200 1400 1600 1800 20000

5

10

15

20

25

30

35Single column from Spectrogram at 2 seconds

Hz

Mag

nitu

de

Page 36: EE513 Audio Signals and Systems Digital Signal Processing (Analysis) Kevin D. Donohue Electrical and Computer Engineering University of Kentucky

Homework(4)Use the scale program created in a previous homework problem to generate a scale for 2 octaves starting at 256 Hz with tones of amplitude 1 and duration 0.25 seconds. Use a sampling rate of 4kHz.

A) Compute and plot the spectrogram magnitude in dB, labeling all axes correctly. Use the parameters you think best for estimating the spectrogram for this signal. Comment on the frequencies of the tones generated with your program and those identified through the spectrogram.

B) Quadruple the number of FFT points from that used in (A). Compute and plot the spectrogram, and explain difference observe from part (A).

C) Increase the window length by a factor of 4 and set the number of FFT points to twice the amount of the window length. Compute and plot the spectrogram, and explain the observed changes.

Page 37: EE513 Audio Signals and Systems Digital Signal Processing (Analysis) Kevin D. Donohue Electrical and Computer Engineering University of Kentucky

Random Signal Analysis

If a process is changing over time, while the statistics of the process do not change over time, the process is referred to as a stationary process. In this case averaging and moment computations result in useful characterization.

If the signal’s (or process’) probability density function never changes over time, then it is referred to as strict-sense stationary (SSS), if the first and second moments remain constant over time, the process is referred to as wide-sense stationary (WSS).

Page 38: EE513 Audio Signals and Systems Digital Signal Processing (Analysis) Kevin D. Donohue Electrical and Computer Engineering University of Kentucky

Power Spectral Density

The Power Spectral Density (PSD) is the average power in a signal as a function of frequency. This can be estimated by averaging DFT magnitudes squared over segments of signals from the same noise process.

where E[] is the expected value, S(f) is the data spectrum plus noise (i.e. modeled as a random variable) and is the DFT or short-time FT estimated from independent signal segments. is the true or underlying spectrum.

N

ni fS

NfSfP

1

22)(ˆ1

)(E)(

)(ˆ fSi

)( fP

Page 39: EE513 Audio Signals and Systems Digital Signal Processing (Analysis) Kevin D. Donohue Electrical and Computer Engineering University of Kentucky

PSD Example Colored Noise

A popular approach to spectral estimation is to is to window a long segment of data into a sequences of shorter windows (similar to the spectrogram) and average all the FFT magnitudes together. This is referred to as Welch's or the hopping window method. The Matlab command pwelch() implements this method.

Example: Filter white noise through a band-pass filter and compute the PSD. Compare PSD to the transfer function magnitude of the filter. Assume a sampling rate of 8kHz and a 6th order Butterworth filter with passband from 500 to 1500 kHz.

Page 40: EE513 Audio Signals and Systems Digital Signal Processing (Analysis) Kevin D. Donohue Electrical and Computer Engineering University of Kentucky

PSD Example Colored Noisefs = 8000; % Sampling Frequencydur = 20; % Sound duration in secondsord = 6;plen = 32; % PSD segment length% Bandlimit on the filterf1 = [500]; % lower bandlimitf2 = [1500]; % corresponding upper bandlimit% colors for the plotscol = ['g', 'r', 'b', 'k', 'c', 'b'];no = randn(1,round(fs*dur)); % Generate noise signal[b,a] = butter(ord,2*[f1 f2]/fs); % Generate filter% perform filter operation to get colored noisecno = filter(b,a,no);% Compute PSD of noise[p, fax] = pwelch(cno,hamming(plen),fix(plen/2),2*plen, fs); figure(1); lh = plot(fax,abs(fs*p/2),col(1)) % Plot PSDset(lh,'LineWidth',2) % Make line thickerhold on% Find filter transfer function[h,fq] = freqz(b,a,2*plen,fs);plot(fq,abs(h).^2,col(2)) hold off% Label figurexlabel('Hertz', 'Fontsize', 14); ylabel('PSD', 'Fontsize', 14)

0 500 1000 1500 2000 2500 3000 3500 40000

0.2

0.4

0.6

0.8

1

1.2

1.4

Hertz

PS

D

Window Length = 32

Spectral Estimate

Filter Magnitude Response

0 500 1000 1500 2000 2500 3000 3500 40000

0.2

0.4

0.6

0.8

1

1.2

1.4

Hertz

PS

D

Window Length = 128

Spectral Estimate

Filter Magnitude Response

0 500 1000 1500 2000 2500 3000 3500 40000

0.2

0.4

0.6

0.8

1

1.2

1.4

Hertz

PS

D

Window Length 512

Spectral Estimate

Filter Magnitude Response

Page 41: EE513 Audio Signals and Systems Digital Signal Processing (Analysis) Kevin D. Donohue Electrical and Computer Engineering University of Kentucky

Autocorrelation Function

As a measure of how quickly a signal changes on average, or for the detection of periodicities, the autocorrelation can be used. It directly measures the correlation between samples separate in time by a particular interval or lag.

Define the autocorrelation of a sequence as:

1

0

N

n

nxknxkr )()()(

NkN

N-nnx

and

1n and 0for 0)( where

Page 42: EE513 Audio Signals and Systems Digital Signal Processing (Analysis) Kevin D. Donohue Electrical and Computer Engineering University of Kentucky

Autocorrelation ExampleRepeat previous example for signal generation and compute the autocorrelation function. Show autocorrelation for white noise (filter input) and colored noise (filter output).

% Compute auto correlation of input sequencemxlag = fs*.02; % Only compute lags up to .1 seconds[acwno, lagwno] = xcorr(no, mxlag, 'coef');% Plot lags figure(2); plot(1000*lagwno/(fs),acwno)xlabel('milliseconds','Fontsize', 14); ylabel('Correlation coefficient','Fontsize', 14) % Compute auto correlation of output sequencemxlag = fs*.02; % Only compute lags up to .1 seconds[accno, lagcno] = xcorr(cno, mxlag, 'coef');% Plot lags figure(3); plot(1000*lagcno/(fs),accno)xlabel('milliseconds','Fontsize', 14); ylabel('Correlation coefficient','Fontsize', 14)

Page 43: EE513 Audio Signals and Systems Digital Signal Processing (Analysis) Kevin D. Donohue Electrical and Computer Engineering University of Kentucky

Autocorrelation ExampleRepeat previous example for signal generation and compute the autocorrelation function. Show autocorrelation for white noise (filter input) and colored noise (filter output).

White noise AC Colored noise AC

-20 -15 -10 -5 0 5 10 15 20-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

milliseconds

Co

rre

latio

n c

oe

ffici

en

t

-20 -15 -10 -5 0 5 10 15 20-0.2

0

0.2

0.4

0.6

0.8

1

1.2

milliseconds

Co

rre

latio

n c

oe

ffici

en

t

Page 44: EE513 Audio Signals and Systems Digital Signal Processing (Analysis) Kevin D. Donohue Electrical and Computer Engineering University of Kentucky

Autocorrelation and PSDThe AC and PSD are DFT pairs. The DFT of the AC is shown below:

DFT of ACColored noise AC

-20 -15 -10 -5 0 5 10 15 20-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

milliseconds

Co

rre

latio

n c

oe

ffici

en

t

0 500 1000 1500 2000 2500 3000 3500 40000

0.5

1

1.5

2

2.5

3

3.5

4

4.5

Hertz

Mag

nitu

de

Page 45: EE513 Audio Signals and Systems Digital Signal Processing (Analysis) Kevin D. Donohue Electrical and Computer Engineering University of Kentucky

Homework(5)Generate 3 seconds of white noise at a sampling rate of 44.1 kHz. Use the following coefficients in an IIR filter to filter the white noise and generate pink noise (bnum are numerator and aden are denominator coefficients).

bnum = [ 0.04957526213389, -0.06305581334498, 0.01483220320740 ]

aden = [ 1.00000000000000, -1.80116083982126, 0.80257737639225] Coefficients from http://music.columbia.edu/pipermail/music-dsp/2001-November/046099.html

A) Estimate the AC and PSD of the Pink noise and present their plots. Comment on the observed differences from white noise.

B) Add a sinusoid of frequency 220 Hz to the pink noise signal with power equal to that of the pink noise (i.e. p = std(pink noise signal) and sig = sqrt(2)*p*sin()) repeat part (A). Show the plots and explain the differences observed with the plots from part (A). Does this make sense since the sine function is not random?

Page 46: EE513 Audio Signals and Systems Digital Signal Processing (Analysis) Kevin D. Donohue Electrical and Computer Engineering University of Kentucky

Homework (6)a) Create a tone at 450 Hz with sampling rate 8000, amplitude

0.707, and duration 3 seconds. Add white noise (use the randn function) with a signal-to-noise ratio of 12 dB. Use the fir1 command to design a 30 and 120th order band-pass filter from 400 Hz to 506 Hz. Plot the magnitude response of the filters. Use filter to filter the signal and listen to the sound before and after filtering. Plot the signal spectral magnitudes before and after filtering (use the fft function). Describe the differences you hear between the signals for before and after filtering and compare the before and after filtering spectra.

b) Repeat part (a) comparing a 5th order elliptical filter with passband ripple of .5 dB and stopband ripple of 30 dB and a 5th order Butterworth filter.

Page 47: EE513 Audio Signals and Systems Digital Signal Processing (Analysis) Kevin D. Donohue Electrical and Computer Engineering University of Kentucky

Homework(7)Use Sinc function interpolation to upsample by a factor of 50 the band-limited signal is given in terms of its samples below. Assume signal is bandlimited to 0.5 Hz. The sampling rate (B) is 1 Hz.

F = [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]

Note:

a) Matlab has a sinc function (see help sinc)

b) A step edge is not bandlimited so the interpolated bandlimited function will have overshoot and undershoot between the given samples (i.e. it will not look like a sharper step).