Intro Monday, 23 January, 2012 13:55 If questions look at ECE 310 course notes Labs 0-5 then project Labs 0-5: pick a lab partner in section Final project: pick someone with similar interest (not necessarily in section) Will have prelabs and oral quizzes Final project: propose before spring break, usually 2 people/team, can do with 1 or 3 if like Have an exam (quiz on lectures) last week of classes Grading Labs 1-5 50% 1 prelab 4 code works 5 oral quiz with TA's Project 45% 10 proposal/design review 20 demonstration 5 project lab 10 written report Quiz on lectures 5% Grades on compass There is a website: courses.ece.uiuc.edu/ece420 Il y a un schedule allí With weeks and lecture topic (this week: DSP assembly programming) and Lab (Lab 0: HW Intro) and Due (this week none) Labs in room 251 EL Sections on Tuesday, Wednesday, Thursday each 2-3:50 Professor: Andrew Singer, acsinger@illinois.edu, 110 CSL, send email if want to see TA's: Mijail Gomez (gomez19@illinois.edu) and David Cohen (dmcohen2@illinois.edu) Office hours will be listed on the website Notes Page 1 DSP Monday, 23 January, 2012 14:20 What is a DSP chip? - DSP means digital signal processing in a university but in industry mean digital signal processor - A DSP has RAM, CPU, registers and ALU (probably optimized for vector operations) - Could have a homogeneous multicore processor with many identical CPU's, may have local memory and shared memory maybe a hard disk - this would be a multicore DSP - Could also have a heterogeneous system - a smaller number of CPU's and a GPU (with SIMD = single instruction multiple data) and some sort of ALU/Vector DSP and this would be a DSP How would you do an inner product on a DSP? - On a system with one CPU, some registers and some memory DSP optimized to do z[n]=sum(nk=0,N-1,h[k]x[n-k]) 1) Set 2 counters: i=0,j=0,Acc=0 2) Load h[i++] to A, x[n-j++] to B 3) While i<N a) MAC b) Load h[i++] to A and x[n-j++] to B Number representation - Often working in fixed point Good for integer operations like i++ or sorting or searching - Maybe have floating point Good for multiplications Expensive - Maybe have fractional fixed point Good for multiplying Won't get overflow, get underflow instead Use 1's complement Could be with reference to something Notes Page 2 MAC: multiply accumulate Acc+=A*B Background material relevant to lab Monday, 30 January, 2012 13:53 Labs: T 6 people W 14 people R 6 people Office hours: Friday 2-4 (DC, David) (either lab or Beckman 1714A) Friday 1-3 (MG, Mijail) (in lab) Prelab 1 due this week in lab The processing of digital signals Notes Page 3 Notes Page 4 Sampling and multirate Monday, 06 February, 2012 14:00 Multirate DSP system - Refer to systems that have discrete time data that have different sampling times Notes Page 5 Notes Page 6 IIR Filters Monday, 13 February, 2012 14:01 Can access 310 course notes courses.illinois.edu/ece310 IIR filters - Infinite length impulse response filters - (some textbooks omit "length") Coefficient quantization Signal quantization Notes Page 7 Notes Page 8 Power Spectrum Monday, 20 February, 2012 14:02 - Spectral analysis Notes Page 9 Notes Page 10 Final Projects Monday, 27 February, 2012 13:59 - For proposal (Clearly identified as you (put name on it)) Title (what trying to do) Authors/Members of team □ 2-3 people is typical Introduction □ Include background material □ Include references OK to include web pages Include at least 1 published journal article/book/magazine ◊ Search for tutorial/overview/review Methods □ Block diagram, indication of what each block does □ Specify the algorithm for each block Goal □ What is it you're trying to do? □ Why are you doing it? □ Describe it to your mom Markov speech recognition Email submission to Prof/TA - Pdf/word/google docs Pretty much whatever you want If going to use something other than standard platform, let them know Examples - Speech recognition - Speech synthesis - d Face recognition Music related - Synthesizer Digital communication link (modem) Acoustic noise cancellation Notes Page 11 Monday, 05 March, 2012 13:59 Design review: - First week of April (2-6 April) - Presentations 4 weeks later - May 1,2,3 What are lectures now? - Next week ST/ARM people come - Will do special topics and questions about stuff Notes Page 12 ST Micro: ARM based STM32F4 MCU for DSP Applications Monday, 12 March, 2012 13:59 Based of M4 Program in C FPU Keil IDE Also IAR templates Templates on V drive Notes Page 13 Speaker: Speech recognition Monday, 26 March, 2012 13:58 1. 2. 3. 4. Minimum probability error Pronunciation model = HMM Acoustic model = Gaussian Acoustic features = Cepstrum Goal: minimize the probability of error W = [w1,w2,…wN] Words spoken X = acoustic signal Words said from the available w's What = estimate of W Goal: minimize probability that What != W given X Maximum a posteriori Notes Page 14 2. Pronunciation model a. How do we find p(X|W)? b. Suppose W = ["three"] Step 1: Break down words into phonemes Step 2: Break down words to senones (states) Senone is approximately 1/3 of a phoneme This is a universal instantaneous tongue/lip/glottis position Approximately a universal instant spectrum Usually break down w= ["three"] into phoneme sequence Q = [θ1,θ2,θ3,r1,r2,r3,i1,i2,i3] So What=argmax(p(X|W) = argmax(p(X|Q(w)) Getting P(X|Q) is done with a Hidden Markov Model Q = [q1,q2…qN] X = [x 1,x2…x T] Define intermediate probabilities: aij = p(q(t)=qj|q(t-1)=qi) This is a transition probability Now as long as N<= T bj(x t)=p(x(t)=xt|q(t)=qj) This is an observation probability Notes Page 15 1. Why log? a. Avoid floating point underflow. aij<1 i. Generally (aij)T underflows but T.log(aij) might not 1) Generally get negative numbers 2) Generally bj's are given as probability densities so not necessarily negatives 2. Why dynamic programming? a. Naïve optimization from N senomes to T time steps is on the order of O(NT) which is unreasonably large. With the DP algorithm it is O(N2T) which is much better i. N equations with a maximization over N possibilities times T steps 3. Where do you get aij and bj(x) from? a. Estimate using Baum-Welch algorithm b. Can estimate by hand i. Estimate aij's very approximate with very little loss. Can say a ii=0.8 and ai,i+1=0.2 for a reasonable starting point. 3. Acoustic model: bj(x) a. A senome is a universal setting of articulators (lips/tongue/glottis) = repeatable compact set of spectra 4. Acoustic features a. Goal: bj(x t) = p(xt|q(t)=j) is compact i. That is actually a pdf Notes Page 16 Clues: - Humans are insensitive to phase shift - Humans sensitive to loudness is proportional : - log|X[k]| is correlated with log|X[k-1]| Need to remove this correlation Can be done by taking another Fourier transform Cepstrum: Step 1: short time F.T. O(N log(N)) Step 2: inverse Notes Page 17 Communications-inspired ICs Monday, 09 April, 2012 14:01 Naresh Shanbhag Probabilistic Logics and the Synthesis of Reliable Organisms from Unreliable Components Notes Page 18