Digital Signal Processing ETI

Similar documents
Digital Signal Processing ETI

Laboration Exercises in Digital Signal Processing

Electrical & Computer Engineering Technology

DSP First. Laboratory Exercise #7. Everyday Sinusoidal Signals

Lab S-9: Interference Removal from Electro-Cardiogram (ECG) Signals

ECE438 - Laboratory 7a: Digital Filter Design (Week 1) By Prof. Charles Bouman and Prof. Mireille Boutin Fall 2015

1 PeZ: Introduction. 1.1 Controls for PeZ using pezdemo. Lab 15b: FIR Filter Design and PeZ: The z, n, and O! Domains

DFT: Discrete Fourier Transform & Linear Signal Processing

ijdsp Workshop: Exercise 2012 DSP Exercise Objectives

GEORGIA INSTITUTE OF TECHNOLOGY. SCHOOL of ELECTRICAL and COMPUTER ENGINEERING. ECE 2026 Summer 2018 Lab #8: Filter Design of FIR Filters

Filters. Phani Chavali

ESE531 Spring University of Pennsylvania Department of Electrical and System Engineering Digital Signal Processing

Project 2 - Speech Detection with FIR Filters

ELEC3104: Digital Signal Processing Session 1, 2013 LABORATORY 3: IMPULSE RESPONSE, FREQUENCY RESPONSE AND POLES/ZEROS OF SYSTEMS

EE 422G - Signals and Systems Laboratory

Lecture 3, Multirate Signal Processing

Lab 6: Sampling, Convolution, and FIR Filtering

Sound synthesis with Pure Data

Signal Processing. Introduction

Discrete-Time Signal Processing (DTSP) v14

THE HONG KONG POLYTECHNIC UNIVERSITY Department of Electronic and Information Engineering. EIE2106 Signal and System Analysis Lab 2 Fourier series

Fourier Series and Gibbs Phenomenon

L A B 3 : G E N E R A T I N G S I N U S O I D S

EEL 4350 Principles of Communication Project 2 Due Tuesday, February 10 at the Beginning of Class

Adaptive Filters Application of Linear Prediction

EEO 401 Digital Signal Processing Prof. Mark Fowler

George Mason University Signals and Systems I Spring 2016

Signal Processing for Speech Applications - Part 2-1. Signal Processing For Speech Applications - Part 2

SMS045 - DSP Systems in Practice. Lab 1 - Filter Design and Evaluation in MATLAB Due date: Thursday Nov 13, 2003

EGR 111 Audio Processing

EE 464 Short-Time Fourier Transform Fall and Spectrogram. Many signals of importance have spectral content that

STANFORD UNIVERSITY. DEPARTMENT of ELECTRICAL ENGINEERING. EE 102B Spring 2013 Lab #05: Generating DTMF Signals

Lab P-4: AM and FM Sinusoidal Signals. We have spent a lot of time learning about the properties of sinusoidal waveforms of the form: ) X

LABORATORY - FREQUENCY ANALYSIS OF DISCRETE-TIME SIGNALS

Outline. J-DSP Overview. Objectives and Motivation. by Andreas Spanias Arizona State University

Filter Banks I. Prof. Dr. Gerald Schuller. Fraunhofer IDMT & Ilmenau University of Technology Ilmenau, Germany. Fraunhofer IDMT

C.8 Comb filters 462 APPENDIX C. LABORATORY EXERCISES

Electrical and Telecommunication Engineering Technology NEW YORK CITY COLLEGE OF TECHNOLOGY THE CITY UNIVERSITY OF NEW YORK

EXPERIMENT 4 INTRODUCTION TO AMPLITUDE MODULATION SUBMITTED BY

The University of Texas at Austin Dept. of Electrical and Computer Engineering Midterm #1

Introduction to Simulink

Lab S-4: Convolution & FIR Filters. Please read through the information below prior to attending your lab.

ece 429/529 digital signal processing robin n. strickland ece dept, university of arizona ECE 429/529 RNS

Subtractive Synthesis. Describing a Filter. Filters. CMPT 468: Subtractive Synthesis

Signal Processing Toolbox

Biomedical Signals. Signals and Images in Medicine Dr Nabeel Anwar

Lab 4 Fourier Series and the Gibbs Phenomenon

Project 0: Part 2 A second hands-on lab on Speech Processing Frequency-domain processing

Adaptive Systems Homework Assignment 3

Memorial University of Newfoundland Faculty of Engineering and Applied Science. Lab Manual

Lab 8. Signal Analysis Using Matlab Simulink

Contents. Introduction 1 1 Suggested Reading 2 2 Equipment and Software Tools 2 3 Experiment 2

Laboratory Assignment 2 Signal Sampling, Manipulation, and Playback

EE 470 Signals and Systems

ELT COMMUNICATION THEORY

Armstrong Atlantic State University Engineering Studies MATLAB Marina Sound Processing Primer

DSP Laboratory (EELE 4110) Lab#10 Finite Impulse Response (FIR) Filters

ELEC3104: Digital Signal Processing Session 1, 2013

Brief Introduction to Signals & Systems. Phani Chavali

1. In the command window, type "help conv" and press [enter]. Read the information displayed.

Lab 6 - MCU CODEC IIR Filter ReadMeFirst

Creating Digital Music

EE 5410 Signal Processing

DSP First Lab 03: AM and FM Sinusoidal Signals. We have spent a lot of time learning about the properties of sinusoidal waveforms of the form: k=1

2.161 Signal Processing: Continuous and Discrete Fall 2008

Figure 1: Block diagram of Digital signal processing

Multirate Signal Processing Lecture 7, Sampling Gerald Schuller, TU Ilmenau

ADSP ADSP ADSP ADSP. Advanced Digital Signal Processing (18-792) Spring Fall Semester, Department of Electrical and Computer Engineering

Lab 4 An FPGA Based Digital System Design ReadMeFirst

ECE 5650/4650 Exam II November 20, 2018 Name:

AC : INTERACTIVE LEARNING DISCRETE TIME SIGNALS AND SYSTEMS WITH MATLAB AND TI DSK6713 DSP KIT

ECE 5655/4655 Laboratory Problems

Limitations of Sum-of-Sinusoid Signals

Project 2. Project 2: audio equalizer. Fig. 1: Kinter MA-170 stereo amplifier with bass and treble controls.

EE477 Digital Signal Processing Laboratory Exercise #13

Islamic University of Gaza. Faculty of Engineering Electrical Engineering Department Spring-2011

ECE 5650/4650 Computer Project #3 Adaptive Filter Simulation

Concordia University. Discrete-Time Signal Processing. Lab Manual (ELEC442) Dr. Wei-Ping Zhu

B.Tech III Year II Semester (R13) Regular & Supplementary Examinations May/June 2017 DIGITAL SIGNAL PROCESSING (Common to ECE and EIE)

The University of Queensland School of Information Technology and Electrical Engineering. ELEC3004/7312: Signals, Systems and Controls

Lab 15c: Cochlear Implant Simulation with a Filter Bank

ECE 5650/4650 MATLAB Project 1

8A. ANALYSIS OF COMPLEX SOUNDS. Amplitude, loudness, and decibels

ECEn 487 Digital Signal Processing Laboratory. Lab 3 FFT-based Spectrum Analyzer

ELEC-C5230 Digitaalisen signaalinkäsittelyn perusteet

Signal processing preliminaries

Basic Signals and Systems

University of Bahrain

1. page xviii, line 23:... conventional. Part of the reason for this...

EE 3054: Signals, Systems, and Transforms Lab Manual

George Mason University ECE 201: Introduction to Signal Analysis Spring 2017

NAME STUDENT # ELEC 484 Audio Signal Processing. Midterm Exam July Listening test

EECS 452 Midterm Exam Winter 2012

Lab 3 FFT based Spectrum Analyzer

Jawaharlal Nehru Engineering College

Digital Video and Audio Processing. Winter term 2002/ 2003 Computer-based exercises

Massachusetts Institute of Technology Dept. of Electrical Engineering and Computer Science Spring Semester, Introduction to EECS 2

George Mason University ECE 201: Introduction to Signal Analysis

Discrete Fourier Transform (DFT)

Spring 2018 EE 445S Real-Time Digital Signal Processing Laboratory Prof. Evans. Homework #1 Sinusoids, Transforms and Transfer Functions

Transcription:

2011

Digital Signal Processing ETI265 2011 Introduction In the course we have 2 laboratory works for 2011. Each laboratory work is a 3 hours lesson. We will use MATLAB for illustrate some features in digital signal processing. Equipment: PC with Matlab and input/output of sound. Matlab: Matlab toolboxes: Signal Processing toolbox Data acquisition toolbox Lab 1: Lab 2: Real time spectral analysis using Fourier transform and estimation of impulse responses using correlation function Design of IIR-filters

Laboratory work 1: Real time spectral analysis using the Fourier transform In this laboratory work we will use MATLAB for illustrate some features in digital signal processing. Start Matlab and update the Matlab path. Connect the microphone to PC mic in connector. You can use the speakers in the PC or connect external headphones. Task 1. Real time spectral analysis using Fourier transform Start Matlab. At the Matlab prompt, type sigfftio_lin (or sigfftio_log or demoai_fft ) Now a spectrum analyzing window will be opened, see below Item 1: Say the word smile slowly and look at the spectra of the vowels i and e. Fill in the diagram below and estimate the pitch. My pitch is...(some mean value). Item 2: Try to generate a sound with as flat spectrum as possible. ( oral white noise )

Task 2. Real time spectrogram A spectrogram is a time-frequency plot of the signal. A sliding window is applied to the signal and the short time Fourier transform are determined for each time-window. The plot has time on the x-axis and frequency on the y-axis. See help spectrogram for more information Type N=20000; Fmax=4000; record_spectra_china % N=no of samples (Fs=10 khz), %Fmax = max freq in the plot (<5000 Hz) Now 2 seconds of mic in will be recorded and then the spectrogram will be shown. (Increase N if you want to have longer sequences) Item 1: Pronounce the Chinese words below and see if you have the correct pitch (tone). Let the Chinese students show the correct pitch. Use also some Swedish words with Chinese tone.

Item 2: In Swedish we have two tones (accent). Try the Swedish words A: anden, the duck (bird) B: anden, the ghost, The Swedish students have to learn the Chinese students the correct pitch. Task 3. Estimation of impulses responses using correlation Correlation functions are often used in estimation of unknown systems. This is described in the textbook pages 99-101 and in the slides from the second lecture.. Input Output Relations using correlation functions (from the slides) x(n) h(n) y(n) = h(n) * x(n) Autocorrelation function for the output r yy ( l) = r ( l) r ( l) if r ( l) = h( l) h( l) Cross correlation function for input output signal r yx hh xx ( l) = h( l) r ( l) xx If the autocorrelation for the input is a delta function, r xx ( l) = δ ( l), we direct have the impulse response h( l) = ryx( l). If the autocorrelation for the input is not a delta function, we have to estimate the impulse response from the expression for the cross correlation. This is not included in this course. But still, we can find a lot of information even in this case. We will here use pre-generated signals. In files on the computer there are pairs of input and output signals from various unknown filters. Try to estimate these impulse responses. Matlab script for computing the correlation function used below. % lab_sigcorr.m Compute and plot correlation -N0<0<N0 % [rxy,n]=lab_sigcorr(x,y,n0); function [rxy,n]=lab_sigcorr(x,y,n0) Nx=length(x); Ny=length(y); if Nx==Ny N=Nx; else N=min(Nx,Ny); end rxy=xcorr(x(1:n),y(1:n)); rxy=rxy(n-n0:n+n0); n=-n0:n0; hh

Item 1: Music noise through an echo filter. First we listen to music through an echo filter (reverberation). We can hear the effect of the echoes but it will be difficult to estimate the time delays. The input and output signals are stored in files with input in the left channel and output in the right channel. Listen to the signals and then try to estimate the delay using correlation functions. Type the command below Load the signals and plot and listen to them. load sig_music; x=sig_music(:,1); y=sig_music(:,2); % load input and output signals soundsc(x,10000); pause(10), soundsc(y,10000); Use also the plot command to plot parts of the signals. subplot(211), plot(x), subplot(212), plot(y) % Plot input and output Now, use correlation functions to estimate the delays (the impulse response). Write type lab_sigcorr to show the Matlab code. N0=2000;[rxx,n]=lab_sigcorr(x,x,N0);plot(n,rxx);grid on % input auto correlation N0=2000;[ryx,n]=lab_sigcorr(y,x,N0);plot(n,ryx);grid on % cross correlation N0=2000;[ryy,n]=lab_sigcorr(y,y,N0);plot(n,ryy);grid on % autocorrelation Estimate the delay in the impulse response. The delays are...ms (my guess). Item 2: Use white noise as the input to the echo filter. We use white noise as the input and repeat the instructions from item 1. White noise has the correlation equal to a delta spike, i.e. the autocorrelation function for white noise is rxx(l)=δ(l). Type the command below load sig_noise; x=sig_noise(:,1);y=sig_noise(:,2); % Load input and output data Note: Decrease the pause to 4 s. soundsc(x,10000);pause(4),soundsc(y,10000); % Listen to input and output Use also the plot command to plot parts of the signals. subplot(211), plot(x), subplot(212), plot(y) % Plot input and output Now, use correlation functions to estimate the delas (impulse response). N0=2000;[rxx,n]=lab_sigcorr(x,x,N0);plot(n,rxx);grid on % input auto correlation N0=2000;[ryx,n]=lab_sigcorr(y,x,N0);plot(n,ryx);grid on % in-out cross correlation N0=2000;[ryy,n]=lab_sigcorr(y,y,N0);plot(n,ryy);grid on % output autocorrelation With white noise as input it will be easier to estimate the impulse response. The estimate the delays in the impulse response are......ms.

Item 3: White noise through a band pass filter. We have now estimated the impulse response of an echo filter. Next step is to estimate a band pass filter impulse response. Load the input-output signals and listen to them. Then estimate the impulse response using correlation functions. Type the command below load sig_bandpass_noise; x=sig_bandpass_noise(:,1);y=sig_bandpass_noise(:,2); soundsc(x,10000);pause(4),soundsc(y,10000); N0=2000;[rxx,n]=lab_sigcorr(x,x,N0);plot(n,rxx);grid on % input auto correlation N0=2000;[ryx,n]=lab_sigcorr(y,x,N0);plot(n,ryx);grid on % cross correlation N0=2000;[ryy,n]=lab_sigcorr(y,y,N0);plot(n,ryy);grid on % autocorrelation You can hear that the output signal is a narrow band signal. Check the spectrum by taking the Fourier transform of ryx(n) by typing sigfftp(ryx,10000,10000,1000); % plot spectra up to 1 khz, Fs=10 khz Item 4: Speech through a GSM phone We know that the signal passing through a GSM system are delayed. How much? A signal before and after passing the GSM phone is stored in a file (sample rate 10 khz). Type the command below load sig_gsm; x=sig_gsm(:,1);y=sig_gsm(:,2); soundsc(x,10000);pause(3),soundsc(y,10000); Determine the delay using the correlation functions N0=2000;[ryx,n]=lab_sigcorr(y,x,N0);plot(n,ryx);grid on % cross correlation N0=2000;[ryy,n]=lab_sigcorr(y,y,N0);plot(n,ryy);grid on % autocorrelation The delay is..ms.

Task 4 Speech scrambler A system shown below is often referred to as a speech scrambler. You shall test this system in Matlab. x(n) y(n) cos(2π 0.5 n)=( 1) n Test the system with sound as input. Follow the instructions below. load sig_music; x=sig_music(:,1); %load sound signal x=sig_music(:,1); N=length(x); n=[1:n]'; speech_scrambler_lab_a % speech scrambler Matlab scrip for speech scrambler %speech_scrambler_lab_a.m demo of speech scrambler bm 2011 % Use: N=20000;n=1:N;x=sin(2*pi*0.1*n); speech_scrambler_lab_a y=(-1).^n.*x; sound(0.5*x,10000);pause(10);sound(0.5*y,10000) subplot(211),sigfftp(x,1,n,1); subplot(212),sigfftp(y,1,n,1); To further analyze the system we use sinusoids as the input, x( n) = cos(2π 0.1n). Test the speech scrambler with this signal. N=4000; n=[1:n]'; x=sin(2*pi*0.1*n); speech_scrambler_lab_a Draw the spectra for x(n) and y(n) from the screen. Try to explain the results. Hint: Use the well-known formula Spectrum X(f) and Y(f). 2 sum difference cos( a ) cos( b ) = cos( a{ + b ) + cos( a{ b )

Task 5: SSB-modulator I all communication systems, frequency translation are used. We move information signals from low frequencies up to higher frequencies before transmission and at the receiver side we received the signal and then translate the signals back to low frequencies. This procedure is called modulation-demodulation and the equipment is called modem. We illustrate this with an SSB-modulation-demodulation system often used in communication systems. A time-discrete system is given below (SSB modulator). A x(n) B C D E Hlowpass(f) Hlowpass(f) y(n) cos(2π 0.25 n) cos(2π 0.(25 +deltaf) n) Hlow pass (f) Test this using the Matlab script below. 0.25 0.5 0.75 1 f %ssb_lab_2011.m demo of SSB-mod/demoulation bm 2011 % Use: N=20000;x=sin(2*pi*0.1*n);deltaf=0.025;,ssb % Use: N=20000;n=[1:N]'; x=sin(2*pi*0.1*n); deltaf=0;, ssb_lab_2011 % x=sig_music(:,1);n=length(x);deltaf=0.025;,ssb_lab_2011, soundsc(xe,10000); fc=.25; n=[1:n]'; hlp=fir1(500,2*.25); xa=x; xb=xa.*sin(2*pi*fc*n); xc=filter(hlp,1,xb); xd=xc.*cos(2*pi*(fc+deltaf)*n); xe=filter(hlp,1,xd); subplot(511),sigfftp(xa,1,n); subplot(512),sigfftp(xb,1,n); subplot(513),sigfftp(xc,1,n); subplot(514),sigfftp(xd,1,n); subplot(515),sigfftp(xe,1,n);

First, test with music deltaf=0 and deltaf=0.025 load sig_music; x=sig_music(:,1); soundsc(x,10000); x=sig_music(:,1);n=length(x);deltaf=0.000; ssb_lab_2011, soundsc(xe,10000); To analyze the SSB system, we now use a sinusoids as input signal. Test first with deltaf=0 in Matlab. N=20000;n=[1:N]'; x=sin(2*pi*0.1*n); deltaf=0;, ssb_lab_2011 Whats happen if deltaf is not zero. Try to draw the spectra for in the points A, B, C, D and E for delta f=0.025 in the figure below. Then check the result in Matlab using N=20000;n=[1:N]'; x=sin(2*pi*0.1*n); deltaf=0.025;, ssb_lab_2011 Explain what's happen in the SSB system for various values of deltaf.

Laboratory work 2: Design of IIR filters Introduction In this laboratory work we will design FIR and IIR filters. First, we will show the relation between pole-zero plots and the magnitude spectra and impulse responses for digital filters. The we will design notch filters which will be tested in both Matlab Preparation exercise 1 Combine the pole-zero plot and the magnitude spectra H(f) below. Show the pair of pole-zero plot and magnitude spectra corresponding to the same system. Pole-zero plot Magnitude spectra H(f)

Preparation exercise 2 Sketch the magnitude spectra H(f) for the given the pole-zero plots. Pole-zero plot Magnitude spectra H(f)

Laboratory tasks IIR filter The program MKIIR is used for interactive IIR filter design. You can place poles and zeros in the pole-zero plane and then show the impulse response, magnitude spectra and phase function for the digital system. The program can also design filters from specification of requirements of magnitude spectra. A set of standard filters are also included in the program. Task 1 Type MKIIR to start the program at the Matlab prompt. Place a pole or a pair of complex poles in the z plane and check the result. Press first Replace last. Move the pole inside the unit circle and check the result. Specially, look at the relation of the magnitude and angle of the poles and the magnitude spectra and the impulse response. Release Replace last.

Task 2 Choose poles and zeros for fulfilling the demands below based on your experience from task 1. Press Import Workspace and open the file irspec1.mat to load the specifications into MKIIR. Now, choose poles and zeros to fulfill the requirements. You can ave your filter with Export Workspace and choose a file name (i.e.filter1.mat. Then press Import filter to reload the filter. Optional task Compare with standard filter solutions. Stop the program MKIIR, press Exit. Task 3 Now, you will examine notch filters. The system function for both the FIR filter and the IIR filter are given below with ω 0 the frequency which shall be cancelled. Plot the magnitude spectra for the filters with varying position of the poles and zeros using the program MKIIR. Alternatively, you can use Matlab direct and typing your system function above (FIR). f0=0.2; r=0.95; w0=2*pi*0.2; f=0:.01:1; z=exp(j*2*pi*f); Hfir=1-2*cos(w0)*z.^(-1)+z.^(-2);subplot(211), plot(f,abs(hfir)); Hiir=Hfir./(1-2*r*cos(w0)*z.^(-1)+r^2*z.^(-2)); subplot(212),plot(f,abs(hiir));

Task 4 In this task, you shall cancel sinusoids added to music files. Sampling rate Fs=8000 Hz, stereo. Call global S, jukebox, song=s; and choose a song from the list. You must choose one of the first 5 for testing in the DSP. The variable S will contents 100000 samples from the song and it is stored in the variable 'song' for future use. Listen to the song (small part) soundsc(song,8000); Use Windows "Sound recorder" to listen to the whole song. Avoid long files in Matlab due to difficulties to stop the sound outputs in Matlab. Now, use MKSPA to determine the frequencies of the sinusoids. Press PEAK and use the mouse to point at peaks in the spectrum. The frequencies are multiples of 10 Hz. Write down the frequencies for the peaks of your song. Press Exit to stop MKSPA. Now, you shall determine a notch filter which cancel the sinusoids. Try both FIR and IIR filters. Type your choice of poles and zeros in Matlab and put them into vectors. Then, determine the A and B polynomials. Example: Fs=8000; F1= ; F2= ; F3= ; z1=exp(-j*2*pi*f1/fs); z2=conj(z1); z3=exp(-j*2*pi*f2/fs); z4=conj(z3); z5=exp(-j*2*pi*f3/fs); z6=conj(z5); Z=[z1,z2,z3,z4,z5,z6]; P=0.9*Z; B=poly(Z) A=poly(P) zplane(b,a) % check pole-zero plot plot also the magnitude spectrum for your filter (see help freqz) f=0:.01:1; w=2*pi*f; H=freqz(B,1,w); plot(f,abs(h)); %FIR f=0:.01:1; w=2*pi*f; H=freqz(B,A,w); plot(f,abs(h)); %IIR Notice: You must use j for the imagine part. Test the filter using MKIIR.

Test the filter in Matlab You have already a small part of the song in the global variable 'song'. If not, reloaded using: song=wavread('ssilence',[1 100000]); % load 100 000 value Listen to the disturbed song (no filtering) soundsc(song, 8000); % listen Fs=8 khz Filter the song with your filters, both the FIR and the IIR filter and listen. y0=filter(b,1,song); soundsc(y0, 8000); y1=filter(b,a,song); soundsc(y1, 8000); Did your filters fulfill the requirements?

Appendix: Program descriptions IIR filter design, MKIIR MKIIR can be used for interactive filter design from poles and zeros. Function Import Workspace: Export Workspace: Set filter specs: Filter coeffs: Help: About: Reset: Read filter specifications from file. Save filter specifications on file. Input filter specifications. Input filter coefficients. Not implemented yet. Program version. Resets poles and zeros but not filter specifications. Exit: Exits and save workspace to the file current.mat. Add pole: Place pole, press left mouse button, ends with right mouse button. Delete pole: Add zero: Delete zero: Place cursor over pole, press left mouse button to delete, ends with right mouse button. Set Add pole See delete pole

Move: Import filter: Magnitude: Phase: Impulse: Replace last: Reciproc Zeros: HighPass: Zoom: Unwrap; Focus: Radius Adjust Gain: See add pole Import of standard filters from Matlab Signal Processing Toolbox. Magnitude function. Phase function. Impulse response. Replace last High pass filter H(f) _{ f=0.5}=1, Low pass filter H(f) _{ f=0}=1. Zoom. Phase Unwrap Phase. Adjust Gain in db.

Spectral analysis, MKSPA MKSPA is used to analyze the spectra in the sound files. Functions Window: FFT length: Overlap: Fs(Hz): Zoom: Analyze: Exit Window functions. FFT length. Number of overlapping segments Sampling frequency. Activate/deactivate Matlab zoom Analyze End the program.