et 4235 - Digital signal processing Class 8: Matlab examples Rocio Arroyo Valles, Geert Leus, and Alle-Jan van der Veen 01-10-2014 – Faculty of EEMCS, Delft University of Technology Delft University of Technology Challenge the future Outline • Exercise 1- Part A: generation and analysis of random noise signals • Exercise 1- Part B: filtering of random processes • Exercise 2: Design of elementary digital filters. Filtering and analysis of random noise signals • Exercise 3: filter design for interference cancellation in speech Digital signal processing – Class 8 Arroyo Valles, Leus & van der Veen 2 Exercise 1 – Part A Generation and analysis of random noise signals • Background [Hayes, Sec. 3.3.7]: A white noise signal v(n) is characterized by an impulse autocorrelation function (ACF) and a flat power spectral density (PSD) Digital signal processing – Class 8 Arroyo Valles, Leus & van der Veen 3 Exercise 1 – Part A Generation and analysis of random noise signals • MATLAB Exercise: 1. Generate and plot 1000 samples of zero mean unit variance white noise, x(n) 2. Calculate and plot the sample ACF for |lag|<100,rˆx (k ). What three properties do you expect on an autocorrelation sequence and are these satisfied here? 3. Calculate and plot the PSD. Plot the magnitude in dB and the frequency axis in the interval [0, 2π] 4. Are the results as expected, according to the theory seen in class? Digital signal processing – Class 8 Arroyo Valles, Leus & van der Veen 4 Exercise 1 – Part B Filtering of random processes • Background [Hayes, Sec. 3.4]: Filtering a signal x(n) in a filter with impulse response h(n) yields The autocorrelation of the output process y(n) can be computed In the frequency domain, the power spectrum can be calculated as Digital signal processing – Class 8 Arroyo Valles, Leus & van der Veen 5 Exercise 1 – Part B Filtering of random processes • MATLAB Exercise – Section 1: 1. Generate and plot 1000 samples of zero mean unit variance white noise, x(n) 2. Filter x(n) with a FIR filter [1,2,1], so that y(n) is related to x(n) by the convolution sum: y(n)=x(n)*h(n). 3. From y(n), calculate and plot the sample ACF of y(n) for |lag|<100, rˆy (k ). 4. Calculate and plot the PSD. Plot the magnitude in dB and the frequency axis in the interval [0, 2π] Digital signal processing – Class 8 Arroyo Valles, Leus & van der Veen 6 Exercise 1 – Part B Filtering of random processes • MATLAB Exercise – Section 2: 1. 2. 3. 4. 5. Generate and plot 1000 samples of zero mean unit variance white noise, x(n) Compute the sample ACF for |lag|<100,rˆx (k ). Considering the same FIR filter, plot rh(k)=h(k)*h*(-k), the deterministic autocorrelation function of the unit sample response h(n), and its spectrum. Calculate and plot the PSD of y(n) as derived from rˆy (k ) Verify the properties: 1. If h(n) is finite in length and zero outside the interval [0,N-1], then the variance (power) of y(n) may be expressed in terms of the autocorrelation matrix of x(n), Rx, and the vector of coefficients h as: σ2y=hHRxh. 2. The variance of the output process is σ2y=ry(0) Digital signal processing – Class 8 Arroyo Valles, Leus & van der Veen 7 Exercise 1 – Part B Filtering of random processes • MATLAB Exercise – Section 3: 1. Generate and plot 1000 samples of zero mean unit variance white noise, x(n) 2. Compute the PSD of x(n) 3. Compute H(ejω) for the FIR filter 4. Compute and plot the PSD of y(n) as Py(ejω)= Px(ejω)| H(ejω)|2 Are the results obtained from the three sections the same? What happens when the number of samples of x(n) tends to infinity? Digital signal processing – Class 8 Arroyo Valles, Leus & van der Veen 8 Exercise 2 Design and analysis of elementary digital filters • Background [Hayes, Sec. 3.6]: First-and second-order all-zero filters: H(z) = b0 + b1z-1 + b2z-2 BANDSTOP 2 Im b1 <4b0b2 b2≠0 LOWPASS b1/b0>0 Im b2=0 HIGHPASS b1/b0<0 Im b2=0 ω ω ω Re Re |H| |H| ω Digital signal processing – Class 8 Re |H| ω Arroyo Valles, Leus & van der Veen ω 9 Exercise 2 Design and analysis of elementary digital filters • Background [Hayes, Sec. 3.6]: First-and second-order all-pole filters: H(z) = b0 /(1 + a1z-1 + a2z-2) BANDPASS a12<4a2 Im a2≠0 x LOWPASS a1<0 Im a2=0 ω ω x HIGHPASS a1>0 Im a2=0 Re x Re |H| |H| ω Digital signal processing – Class 8 x ω Re |H| ω Arroyo Valles, Leus & van der Veen ω 10 Exercise 2 Design and analysis of elementary digital filters • Background [Hayes, Sec. 3.6]: Biquadratic filters: H(z) = (b0 + b1z-1 + b2z-2)/(1 + a1z-1 + a2z-2) Special case: b0 = 1 b1 = -2rzcos(ωc) b2 = rz2 a1 = -2rpcos(ωc) a2 = rp2 BANDPASS rz<rp Im BANDSTOP rz>rp Im x x ω x Re |H| ω x Re |H| ω Digital signal processing – Class 8 Arroyo Valles, Leus & van der Veen ω 11 Exercise 2 Design of elementary digital filters. Filtering and analysis of random noise signals • MATLAB Exercise: 1. 2. Generate and plot 1000 samples of zero mean unit variance white noise Calculate and plot the PSD 3. 4. Design a highpass filter with one zero at z=0.9 Plot the pole-zero diagram in the complex plane and the frequency magnitude response Filter the white noise signal using the highpass filter Calculate and plot the PSD of the resulting output signal 5. 6. Design a bandpass filter with central frequency ωc=1 rad, rz = 0.1, rp = 0.9 Plot the pole-zero diagram in the complex plane and the frequency magnitude response 9. Filter the white noise signal using the bandpass filter 10. Calculate and plot the PSD of the resulting output signal 7. 8. Digital signal processing – Class 8 Arroyo Valles, Leus & van der Veen 12 Exercise 3 Spectrogram Common representation of the voice signal Horizontal axis represents time, the vertical axis is frequency The amplitude is represented by the intensity or colour Wideband spectrogram (32 samples) Narrowband spectrogram (512 samples) Digital signal processing – Class 8 Arroyo Valles, Leus & van der Veen 13 Exercise 3 Filter design for interference cancellation in speech • MATLAB Exercise: 1. 2. 3. Read the sound file speech_dft.wav (included in Simulink DSP Blockset) into a vector in the MATLAB workspace Filter the sound signal with the filter H(z) = 1/(0.84 + 0.26z-1 - 0.31z-2 + 0.13z-4 + 0.18z-5 - 0.29z-6 + 0.18z-7) This is an unstable filter which causes a sinusoidal oscillation in the speech signal (acoustic feedback) Analyze the speech signal corrupted with acoustic feedback, and design an appropriate bandstop filter that is capable of cancelling the sinusoidal oscillation while affecting the speech signal as little as possible Digital signal processing – Class 8 Arroyo Valles, Leus & van der Veen 14