Lab-Report Digital Signal Processing. FIR-Filters. Model of a fixed and floating point convolver
|
|
- Osborn Ward
- 5 years ago
- Views:
Transcription
1 Lab-Report Digital Signal Processing FIR-Filters Model of a fixed and floating point convolver Name: Dirk Becker Course: BEng 2 Group: A Student No.: Date: 30/10/1998
2 1. Contents 1. CONTENTS INTRODUCTION FINITE IMPULSE RESPONSE (FIR) FILTERS... 3 a) Definition of a FIR Filter... 3 b) Convolution CONVOLVER ALGORITHMS... 5 a) Standard Shifting Floating Point Convolver... 5 b) 8-Bit fixed point convolver... 7 c) Convolver with half multiplications... 8 d) Line by line Convolver... 9 e) Circular - Convolver - Convolver without shifting
3 2. Introduction Digital Signal Processing (DSP) is the processing of digital signals or the digital processing of signals, which means the same. Fast microprocessors, especially designed for number crunching are getting cheaper and cheaper and make DSP a new very important part of engineer s work. A filter is a system, that is designed to remove some component or modify some charecteristics of a signal. With digital systems almost ideal filters can be realised. 3. Finite impulse response (FIR) Filters a) Definition of a FIR Filter FIR Filters are systems for which each output is a weighted average of a finite number of samples of the input sequence. Following equation defines the causal FIR filter. Causal means, that only positive numbers for k are allowed, so the output depends only on the present and previous values of the input. The output doesn t change before the input changes from zero. y(n) = N 1 k= 0 h x(n k) k where n = impulse response duration The transfer function of a FIR filter H(z) is given by: H(z) = N 1 n= 0 h(n)z n The multiplication by z -1 means a delay of 1 in the time domain. The lowpass filter which was to simulate in the Lab can be described by the equation: y(n) = N 1 k= 0 h(k)x(n k) where h(k) are the filter coefficents and x(n - k) the sampled input values The Filter coefficients h[k] were given by h[n]=0.0234, , , 0.0, , , , , 0.6, , , , , 0.0, , ,
4 For simulation of the digital filter as a behavioural model the following function was to filter: x[n]=cos(2π0.04n)+ cos(2π0.35n)+ cos(2π0.4n) figure 1 Figure 1 shows a plot of the function which was to filter. It consists of three cosines with different radian frequencies. b) Convolution Coming from the global definition of the low pass filter we can say: N 1 y(n) = h(k)x(n k) = k= 0 y(n) = h(0)x(n) + h(1)x(n -1) + h(k) * x(n) where * means convolution h(2)x(n - 2) + + h(n -1)n(n - N + 1) The output is just a linear weighted sum of present and past inputs. So the FIR filter is called a Running average filter. The filter function can be described by the following block diagram, where z -1 represents the unit delay: x(n) x(n-1) x(n-2) x(n-n+1) Z -1 Z -1 Z -1 h(0) h(1) h(2) h(n-1) + y(n) figure 2 The input x(n) is multiplied by the coefficient h(n). Then x(n) is delayed by one step and multiplied with the next coefficient h(n+1). After that x(n) is delayed again and multiplied with the next filter coefficient h(n+2). All this single multiplications are added together and one run of an x(n) value trough all the filter coefficients (here 17) results in one output y(n). So it takes at least 16 steps, till the filter is on correct work. It s the time which the 1 st value needs to come to the output of the filter. This filter method is done by means of a convolver, which stores and shifts the x-values and multiplies them by the correct filter coefficients. Figure 2 shows the standard block diagram of a transversal filter. 4
5 4. Convolver Algorithms The convolver function can be done via very different algorithms. The main difference between every algorithm is the way of shifting (delaying) and multiplying the different values. As a result of this the efficiency of the algorithms can be very dissimilar. a) Standard Shifting Floating Point Convolver First convolver to realise was a standard shifting convolver, which exactly works like the block diagram of figure 2. The convolver is realised by means of a C-function. The h(n) filter coefficients are handed over by the main program. The other parameters are only for optical improvements and adjustments like ypos gives the absolute position of the function on the screen, scale is the scale factor in horizontal position (zooming) and colour is the colour of the filtered function. First part of the convolver function is to initialise all the 17 memories (xstore[n]) for the convolver. Next loop is the main counter loop for the simulation function x(n). It counts from 0 to n max (right end of screen). It s only for producing new values of x(n). The main convolver implementation is done in the 2 nd loop which uses k as loop counter. The actual values of the stored x-value and the filter coefficients are multiplied and added to the accumulator y_output. After each calculation the stored x-values are shifted down by one, the oldest one is getting lost (xstore[0]) and at the end of the loop a new value of x is written into the newest memory (xstore[16]). Following figure shows the function of the convolver better than an explanation: & ' " # ) * +, -. +-/ 0, -1 2 ) * +, -. +-/ 0, -1 2 ) * +, -. +-/ 0, -1 2 ) * +, -. +-/ 0, -1 2? % # # % ( ( ( ( " # $ %! ) * +, -. +-/ 0, -1 2 ) * +, -. +-/ 0, -1 2 ) * +, -. +-/ 0, -1 2 ) * +, -. +-/ 0, : ; : < = 6 7 > ( ( ( figure 3 Working model of a convolver The following listing is the code of the above explained standard shifting convolver. 5
6 /* */ /* Shifting Convolver */ void shifting_convolver(int ypos, int scale, int colour, float *h) int n, k; float xstore[20], xvalue, y_output; setcolor(white); outtextxy(0, ypos-30, "Better Algorithm ('17 Memos and shift'):"); for(n=0; n<=16; n++) /* initialising array of x(n) */ xstore[n]=0; for(n=0; n<=(end/scale); n++) /* loop for n */ y_output=0; for(k=0; k<=16; k++) /* convolver loop */ y_output+=xstore[k]*h[k]; /* convolving */ xstore[k]=xstore[k+1]; /* shifting array */ lineto(n*scale,y_output*15+ypos); /* drawing output */ xstore[16]=x(n); /* writing new x(n) value */ figure 4 Figure 4 shows the output of the simulated filter. It can be easily seen, that two of the three cosine oscillations have been removed by means of the FIR Lowpass filtering function.. The higher frequencies are removed. First part of the plot shows the duration till all the convolver stores are filled and the convolver starts it s filtering work. 6
7 b) 8-Bit fixed point convolver Next part of the lab was to simulate an 8 Bit fixed point convolver. The working model of the convolver didn t need any change, but the variables of the stored x-values and the variables for the coefficients had to be converted into 8-Bit integers (in C named signed char ). As accumulator (summation of the multiplied x and h values) an usual 16-bit integer was chosen. For the output this 16-bit integer must be changed into in 8-bit integer, because most Digital to Analogue Converters (DAC) are 8-bit converters. Therefor the 16-bit output of the convolver is divided by 128 by right shifting of 7 Bits (2 7 =128). First part of the program changes the floating point parameters of h(n) into their 8-bit equivalents called h_8bit(n) by multiplying each of them by 127. Same loop initialises the 8- bit variables for storing the different x(n) values. In the main loop the new xstore values are multiplied by (127/3) to get a maximum value of 127 (signed char: max. values). /* */ /* Shifting 8-Bit Convolver */ void convolver_8bit(int ypos, int scale, int colour, float *h) int n, y_output; /* n and accumulator are aigned integers */ signed char xstore[17], k, h_8bit[17], bit=127, y_dac; setcolor(white); /* optics */ outtextxy(0, ypos-30, "8-Bit Convolver:"); for(n=0; n<=16; n++) /* initalising and converting h(n) to 8-Bit int */ xstore[n]=0; h_8bit[n]=h[n]*bit; for(n=0; n<=(end/scale); n++) /* loop for n */ y_output=0; for(k=0; k<=16; k++) /* convolver loop */ y_output+=(xstore[k]*h_8bit[k]); /* convolving into accu */ xstore[k]=xstore[k+1]; /* shifting */ y_dac=y_output>>7; /* converting accu to 8-bit for DAC */ lineto(n*scale,(3*15*y_dac)/(bit) +ypos); /* Drawing & scaling */ xstore[16]=(bit/3)*x(n); /* storing new x(n) value */ /* max value=127 */ 7
8 figure 5 Figure 5 shows the output plot of the 8-Bit convolver. The result is the of course same than the output of the other convolvers. Opportunity of the 8-bit convolver is the short calculation time, and it is the nearest to a real hardware filter, because digital signal processors with more than 8-bit are very expensive and not commonly used. The 8-bit convolver does nearly the same work than the others, but with much less calculation expenditure. c) Convolver with half multiplications In the above convolver algorithms the output sum is done by multiplying every x(n) by the h- coefficient belonging to it. The number of multiplications can be reduced by half. The first multiplication in the convolver loop is h(0) multiplied with x(0), the last multiplication is h(16) with x(16) like shown in the following figure. ^ Y ` R \ ] T g W X Y Z R [ \ h Z \ c R ` ^ Z ] ^ d \ ] ^ _ R A B C D E F G K I A B C D E F G L I A B C D E F G J I A B C D E F G H I i j kl m n kmo p l mq r i j kl m n kmo p l mq r i j kl m n kmo p l mq r i j kl m n kmo p l mq r \ c [ d ] [ Q e ` [ _ R f ] [ ^ Q P P Q R S T U Q V W X Y Z R [ \ \ ] ^ _ R ` [ Q ] ^ T \ ] ^ _ R U a b V figure 6 P P P P P A B C D E F G L O I A B C D E F G L N I A B C D E F G L M I i j kl m n kmo p l mq r i j kl m n kmo p l mq r i j kl m n kmo p l mq r i j kl m n kmo p l mq r s t t u v u w x v w s y y z z v w ~ The h(n) parameters are symmetrical to the middle value h(8). For reducing the number of multiplications the values of x(k) and x(16-k) can be added and multiplied with only one h coefficient. Proof of reducing multiplications: y(n)=x(0)h(0)+x(1)h(1)+x(2)h(2) x(14)h(14)+x(15)h(15)+x(16)h(16) y(n)=x(0)h(0)+x(1)h(1)+x(2)h(2) x(14)h(2) +x(15)h(1) +x(16)h(0) y(n)=h(0)[x(0)+x(16)]+h(1)[x(1)+x(15)]+h(2)[x(2)+x(14)]+...+h(8)[x(8)+x(8)] 8
9 So the 16 multiplications are reduced to 8 multiplications and 8 additions. The middle coefficient h(8) has to be divided by 2 or summed after the convolver loop, in order to calculate this value only once, because the number of coefficients is odd. The shifting (delaying) of the stored x-values is done by means of a separate loop. It can be done in the same loop, but is more complicated because 2 different values have to be stored and tit shouldn t be shown here. The output of the filter is printed in the following plot: figure 7 There is no difference in the output to the other convolvers, but the duration time is shorter, because adding is much faster than multiplying. d) Line by line Convolver Another way to increase the speed of the convolver is to replace the convolver loop by discrete written code. One for each loop run means 34 different statements, 17 for shifting, 17 for convolving. Rest of the function works like the standard shifting convolver. Listing of the discrete written convolver: /* */ /* Spaghetti Convolver */ void spaghetti_convolver(int ypos, int scale, int colour, float *h) int n, k; float xstore[20], xvalue, y_output; setcolor(blue); outtextxy(0, ypos-30, "Fastest Algorithm ('Spaggetti Convolver'):"); for(n=0; n<=16; n++) /* initialising array of x(n) */ xstore[n]=0; for(n=0; n<=(end/scale); n++) y_output=0; /* Spaghetti - convolver repeats 17 times same function */ y_output+=xstore[0]*h[0]; /* convolving */ xstore[0]=xstore[1]; /* shifting array */ y_output+=xstore[1]*h[1]; /* convolving */ xstore[1]=xstore[2]; /* shifting array */ y_output+=xstore[2]*h[2]; /* convolving */ xstore[2]=xstore[3]; /* shifting array */ y_output+=xstore[3]*h[3]; /* convolving */ xstore[3]=xstore[4]; /* shifting array */ 9
10 y_output+=xstore[4]*h[4]; /* convolving */ xstore[4]=xstore[5]; /* shifting array */ y_output+=xstore[5]*h[5]; /* convolving */ xstore[5]=xstore[6]; /* shifting array */ y_output+=xstore[6]*h[6]; /* convolving */ xstore[6]=xstore[7]; /* shifting array */ y_output+=xstore[7]*h[7]; /* convolving */ xstore[7]=xstore[8]; /* shifting array */ y_output+=xstore[8]*h[8]; /* convolving */ xstore[8]=xstore[9]; /* shifting array */ y_output+=xstore[9]*h[9]; /* convolving */ xstore[9]=xstore[10]; /* shifting array */ y_output+=xstore[10]*h[10]; /* convolving */ xstore[10]=xstore[11]; /* shifting array */ y_output+=xstore[11]*h[11]; /* convolving */ xstore[11]=xstore[12]; /* shifting array */ y_output+=xstore[12]*h[12]; /* convolving */ xstore[12]=xstore[13]; /* shifting array */ y_output+=xstore[13]*h[13]; /* convolving */ xstore[13]=xstore[14]; /* shifting array */ y_output+=xstore[14]*h[14]; /* convolving */ xstore[14]=xstore[15]; /* shifting array */ y_output+=xstore[15]*h[15]; /* convolving */ xstore[15]=xstore[16]; /* shifting array */ y_output+=xstore[16]*h[16]; /* convolving */ /* --- END of spaghetti convolver */ lineto(n*scale,y_output*15+ypos); xstore[16]=x(n); /* writing new x(n) value */ The screen output, which means the filtered signal is of course the same again. 10
11 ƒ Œ ƒ ƒ Œ Œ ˆ ˆ Š ˆ ƒ Š Š ƒ ˆ ˆ ˆ e) Circular - Convolver - Convolver without shifting Last way to improve the speed of the convolver is to reduce or avoid the shifting of the array with the stored x(n) values. This can be done by means of a circular convolver. The stores for the x-values are stored in a circular array. Only the start (=end) position of this array is to be known. Now instead of shifting the array, only the starting point of the circular array is increased by one. This results in the same procedure like shifting the linear array by one. Automatically the x-values are multiplied with the NEXT coefficients. «š š ƒ «š š Ž Ž š š œ ž Ž Ÿ Ž Ž š š Ž Ÿ Ž ª ª ª ª figure 8 Figure 8 shows the main function of the circular convolver. The code of the circular convolver is the most complex because the start and end points of the circular array have to be converted into a conventional linear array. So the starting and end point have to be stored in special variables because the end point of the linear array is not the end point of the circular array. Code of the circular convolver function: /* */ /* Circle Convolver */ void circle_convolver(int ypos, int scale, int colour, float *h) int n, k, i=0, j=0; float xstore[20], xvalue, y_output; setcolor(blue); outtextxy(0, ypos-30, "Circle-convolver ('No-shift'):"); for(n=0; n<=16; n++) /* initalising array */ xstore[n]=0; for(n=0; n<=(end/scale); n++) 11
12 y_output=0; /* initialising output */ k=i;j=0; /* convolver start position */ do /* convolver loop */ y_output+=xstore[k]*h[j]; /* convolving */ k++;j++; /* increasing counter */ if (k>=17) k=0;; /* circling (k) */ while(k!=i); lineto(n*scale,y_output*15+ypos); xstore[i]=x(n); i++; /* circle start (i) */ if(i>=17) i=0;; /* and resetting start */ 5. Conclusion The simulation of a FIR filter in C shows the different possibilities of realising the same function. The simulation shows the different ways how to optimise a code. Either in direction of speed, or in direction of small code size. Fastest code in this case would be an 8-bit convolver with half multiplication written in line by line code without loops. The filter which is the closest one to a real hardware realisation is the simulation of the 8-Bit converter. Cheap and fast Analogue to Digital and Digital to Analogue Converters are mostly 8-bit converters. So the input and output of the filter has to be realised by means of 8-bit functions 12
13 f) Complete Listing The different function are put together in one listing. This makes it easier to compare the efficiency of the different codes and the outputs of the various functions can be displayed together. It can be easily obtained, that the output of the 8-bit convolver is only NEARLY the same than the output of the other convolvers. figure 9 Figure 9 shows the output of all the convolver simulations, the listing is printed on the following pages. 13
14 #include <graphics.h> #include <stdio.h> #include <conio.h> #include <math.h> #define pi #define end 640 float x(int n); void std_convolver(int ypos, int scale, int colour, float *); void shifting_convolver(int ypos, int scale, int colour, float *); void convolver_8bit(int ypos, int scale, int colour, float *); void half_convolver(int ypos, int scale, int colour, float *); void circle_convolver(int ypos, int scale, int colour, float *); void spaghetti_convolver(int ypos, int scale, int colour, float *); void signraw(int ypos, int scale, int colour); int main(void) /* request autodetection */ int gdriver = DETECT, gmode, errorcode, scale=3; char key; /* filter coefficients */ float h[17]=0.0234, , , 0.0, , , , , 0.6, , , , , 0.0, , , ; /* initialize graphics and local variables */ initgraph(&gdriver, &gmode, ""); do /* start convolvers */ setbkcolor(white); signraw(40, scale, 19); std_convolver(100, scale, 7, &h[0]); shifting_convolver(160, scale, 6, &h[0]); convolver_8bit(220, scale, LIGHTRED, &h[0]); circle_convolver(280, scale, RED, &h[0]); half_convolver(340, scale, GREEN, &h[0]); spaghetti_convolver(400, scale, BLUE, &h[0]); setcolor(lightblue); moveto(0,447);lineto(639,447); outtextxy(5,450,"+- for scaling and Esc for exit"); key=getch(); if (key=='+') scale++;; if (key=='-') scale--;; if (scale<=0) scale=1;; cleardevice(); while (key!=27); /* closegraph (clean up) */ closegraph(); return 0; /* END OF MAIN FUNCTION */ 14
15 /* */ /* Definition of x(n) */ float x(int n) float x; x=cos(2*pi*0.04*n)+cos(2*pi*0.35*n)+cos(2*pi*0.4*n); return(x); /* */ /* Standart Convolver */ void std_convolver(int ypos, int scale, int colour, float *h) int n, k; float xvalue, y_output; setcolor(blue); outtextxy(0, ypos-30, "Floating Point Convolver (n*k multiplications):"); for(n=0; n<=(end/scale); n++) y_output=0; for(k=0; k<=16; k++) y_output+=h[k]*x(n-k); /* convolving */ lineto(n*scale,y_output*15+ypos); /* */ /* Shifting Convolver */ void shifting_convolver(int ypos, int scale, int colour, float *h) int n, k; float xstore[20], xvalue, y_output; setcolor(blue); outtextxy(0, ypos-30, "Better Algorithm ('17 Memos and shift'):"); for(n=0; n<=16; n++) /* initialising array of x(n) */ xstore[n]=0; for(n=0; n<=(end/scale); n++) /* loop for n */ y_output=0; for(k=0; k<=16; k++) /* convolver loop */ y_output+=xstore[k]*h[k]; /* convolving */ xstore[k]=xstore[k+1]; /* shifting array */ lineto(n*scale,y_output*15+ypos); /* drawing output */ xstore[16]=x(n); /* writing new x(n) value */ 15
16 /* */ /* Convolver with half multiplications */ void half_convolver(int ypos, int scale, int colour, float *h) int n, k; float xstore[20], xvalue, y_output; setcolor(blue); outtextxy(0, ypos-30, "Multiplications reduced by half:"); for(n=0; n<=16; n++) /* initialising array */ xstore[n]=0; h[8]/=2; /* no double multiplication of middle coefficient */ for(n=0; n<=(end/scale); n++) y_output=0; for(k=0; k<=8; k++) y_output+=(h[k]*(xstore[k]+xstore[16-k])); /* convolving */ lineto(n*scale,y_output*15+ypos); for(k=0; k<=15; k++) /* shifting loop */ xstore[k]=xstore[k+1]; xstore[16]=x(n); /* writing new x(n) value */ h[8]*=2; /* Setting old value of middle coefficient again*/ /* */ /* Circle Convolver */ void circle_convolver(int ypos, int scale, int colour, float *h) int n, k, i=0, j=0; float xstore[20], xvalue, y_output; setcolor(blue); outtextxy(0, ypos-30, "Circle-convolver ('No-shift'):"); for(n=0; n<=16; n++) /* initalising array */ xstore[n]=0; for(n=0; n<=(end/scale); n++) y_output=0; /* initialising output */ k=i;j=0; /* convolver start position */ do /* convolver loop */ y_output+=xstore[k]*h[j]; /* convolving */ k++;j++; /* increasing counter */ if (k>=17) k=0;; /* circling (k) */ while(k!=i); lineto(n*scale,y_output*15+ypos); xstore[i]=x(n); i++; /* circle start (i) */ 16
17 if(i>=17) i=0;; /* and resetting start */ /* */ /* Shifting 8-Bit Convolver */ void convolver_8bit(int ypos, int scale, int colour, float *h) int n, y_output; /* n and accumulator are aigned integers */ signed char xstore[17], k, h_8bit[17], bit=127, y_dac; setcolor(blue); /* optics */ outtextxy(0, ypos-30, "8-Bit Convolver:"); for(n=0; n<=16; n++) /* initalising and converting h(n) to 8-Bit int */ xstore[n]=0; h_8bit[n]=h[n]*bit; for(n=0; n<=(end/scale); n++) /* loop for n */ y_output=0; for(k=0; k<=16; k++) /* convolver loop */ y_output+=(xstore[k]*h_8bit[k]); /* convolving into accu */ xstore[k]=xstore[k+1]; /* shifting */ y_dac=y_output>>7; /* converting accu to 8-bit for DAC */ lineto(n*scale,(3*15*y_dac)/(bit) +ypos); /* Drawing & scaling */ xstore[16]=(bit/3)*x(n); /* storing new x(n) value */ /* max value=127 */ /* */ /* Spaghetti Convolver */ void spaghetti_convolver(int ypos, int scale, int colour, float *h) int n, k; float xstore[20], xvalue, y_output; setcolor(blue); outtextxy(0, ypos-30, "Fastest Algorithm ('Spaggetti Convolver'):"); for(n=0; n<=16; n++) /* initialising array of x(n) */ xstore[n]=0; for(n=0; n<=(end/scale); n++) y_output=0; /* Spaghetti - convolver repeats 17 times same function */ y_output+=xstore[0]*h[0]; /* convolving */ xstore[0]=xstore[1]; /* shifting array */ y_output+=xstore[1]*h[1]; /* convolving */ xstore[1]=xstore[2]; /* shifting array */ 17
18 y_output+=xstore[2]*h[2]; /* convolving */ xstore[2]=xstore[3]; /* shifting array */ y_output+=xstore[3]*h[3]; /* convolving */ xstore[3]=xstore[4]; /* shifting array */ y_output+=xstore[4]*h[4]; /* convolving */ xstore[4]=xstore[5]; /* shifting array */ y_output+=xstore[5]*h[5]; /* convolving */ xstore[5]=xstore[6]; /* shifting array */ y_output+=xstore[6]*h[6]; /* convolving */ xstore[6]=xstore[7]; /* shifting array */ y_output+=xstore[7]*h[7]; /* convolving */ xstore[7]=xstore[8]; /* shifting array */ y_output+=xstore[8]*h[8]; /* convolving */ xstore[8]=xstore[9]; /* shifting array */ y_output+=xstore[9]*h[9]; /* convolving */ xstore[9]=xstore[10]; /* shifting array */ y_output+=xstore[10]*h[10]; /* convolving */ xstore[10]=xstore[11]; /* shifting array */ y_output+=xstore[11]*h[11]; /* convolving */ xstore[11]=xstore[12]; /* shifting array */ y_output+=xstore[12]*h[12]; /* convolving */ xstore[12]=xstore[13]; /* shifting array */ y_output+=xstore[13]*h[13]; /* convolving */ xstore[13]=xstore[14]; /* shifting array */ y_output+=xstore[14]*h[14]; /* convolving */ xstore[14]=xstore[15]; /* shifting array */ y_output+=xstore[15]*h[15]; /* convolving */ xstore[15]=xstore[16]; /* shifting array */ y_output+=xstore[16]*h[16]; /* convolving */ /* --- END of spaghetti convolver */ lineto(n*scale,y_output*15+ypos); xstore[16]=x(n); /* writing new x(n) value */ /* */ /* Draw raw function x(n) */ void signraw(int ypos, int scale, int colour) float xvalue; int n; setcolor(blue); outtextxy(0, ypos-30, "Raw Signal:"); for(n=0; n<=(end/scale); n++) xvalue=x(n); /* calculating new value */ lineto(n*scale,xvalue*10+ypos); 18
SIGNALS AND SYSTEMS I Computer Assignment 2
SIGNALS AND SYSTES I Computer Assignment 2 Lumped linear time invariant discrete and digital systems are often implemented using linear constant coefficient difference equations. In ATLAB, difference equations
More informationDigital Signal Processing Lecture Notes 22 November 2010
Digital Signal Processing Lecture otes 22 ovember 2 Topics: Discrete Cosine Transform FFT Linear and Circular Convolution Rate Conversion Includes review of Fourier transforms, properties of Fourier transforms,
More information19. FIR filtering The theory of FIR filtering. X buffer. Y buffer
1 19. FIR filtering Digital filtering of analog signals in real time is easy to implement when one has an ADC, a processor, and a DAC, Fig. 19.1. An example of FIR (Finite impulse Response) filtering will
More informationD. Richard Brown III Professor Worcester Polytechnic Institute Electrical and Computer Engineering Department
D. Richard Brown III Professor Worcester Polytechnic Institute Electrical and Computer Engineering Department drb@ece.wpi.edu Lecture 2 Some Challenges of Real-Time DSP Analog to digital conversion Are
More informationFatima Michael College of Engineering & Technology
DEPARTMENT OF ECE V SEMESTER ECE QUESTION BANK EC6502 PRINCIPLES OF DIGITAL SIGNAL PROCESSING UNIT I DISCRETE FOURIER TRANSFORM PART A 1. Obtain the circular convolution of the following sequences x(n)
More informationImplementing FIR Filters
Implementing FIR Filters in FLEX Devices February 199, ver. 1.01 Application Note 73 FIR Filter Architecture This section describes a conventional FIR filter design and how the design can be optimized
More informationD. Richard Brown III Associate Professor Worcester Polytechnic Institute Electrical and Computer Engineering Department
D. Richard Brown III Associate Professor Worcester Polytechnic Institute Electrical and Computer Engineering Department drb@ece.wpi.edu 3-November-2008 Analog To Digital Conversion analog signal ADC digital
More informationECE4703 B Term Laboratory Assignment 2 Floating Point Filters Using the TMS320C6713 DSK Project Code and Report Due at 3 pm 9-Nov-2017
ECE4703 B Term 2017 -- Laboratory Assignment 2 Floating Point Filters Using the TMS320C6713 DSK Project Code and Report Due at 3 pm 9-Nov-2017 The goals of this laboratory assignment are: to familiarize
More informationISSN (Online), Volume 1, Special Issue 2(ICITET 15), March 2015 International Journal of Innovative Trends and Emerging Technologies
VLSI IMPLEMENTATION OF HIGH PERFORMANCE DISTRIBUTED ARITHMETIC (DA) BASED ADAPTIVE FILTER WITH FAST CONVERGENCE FACTOR G. PARTHIBAN 1, P.SATHIYA 2 PG Student, VLSI Design, Department of ECE, Surya Group
More informationFourier Transforms and Signal Analysis
Fourier Transforms and Signal Analysis The Fourier transform analysis is one of the most useful ever developed in Physical and Analytical chemistry. Everyone knows that FTIR is based on it, but did one
More informationDigital Signal Processing Introduction to Finite-Precision Numerical Effects
Digital Signal Processing Introduction to Finite-Precision Numerical Effects D. Richard Brown III D. Richard Brown III 1 / 9 Floating-Point vs. Fixed-Point DSP chips are generally divided into fixed-point
More informationDigital Signal Processing Laboratory 7: IIR Notch Filters Using the TMS320C6711
Digital Signal Processing Laboratory 7: IIR Notch Filters Using the TMS320C6711 PreLab due Wednesday, 3 November 2010 Objective: To implement a simple filter using a digital signal processing microprocessor
More informationEECS 452 Midterm Closed book part Fall 2010
EECS 452 Midterm Closed book part Fall 2010 Name: unique name: Sign the honor code: I have neither given nor received aid on this exam nor observed anyone else doing so. Scores: # Points Closed book Page
More informationFAST FIR FILTERS FOR SIMD PROCESSORS WITH LIMITED MEMORY BANDWIDTH
Key words: Digital Signal Processing, FIR filters, SIMD processors, AltiVec. Grzegorz KRASZEWSKI Białystok Technical University Department of Electrical Engineering Wiejska
More information4.1 QUANTIZATION NOISE
DIGITAL SIGNAL PROCESSING UNIT IV FINITE WORD LENGTH EFFECTS Contents : 4.1 Quantization Noise 4.2 Fixed Point and Floating Point Number Representation 4.3 Truncation and Rounding 4.4 Quantization Noise
More informationImplementing Biquad IIR filters with the ASN Filter Designer and the ARM CMSIS DSP software framework
Implementing Biquad IIR filters with the ASN Filter Designer and the ARM CMSIS DSP software framework Application note (ASN-AN05) November 07 (Rev 4) SYNOPSIS Infinite impulse response (IIR) filters are
More informationL-Point Interpolator
Multi-Rate Processing and Polyphase Filtering with Plug-In Example Will Pirkle Oversampling theory is covered in detail in many DSP books and the math can be a little much to deal with at first. In Plug-Ins,
More informationLABORATORIO DI ARCHITETTURE E PROGRAMMAZIONE DEI SISTEMI ELETTRONICI INDUSTRIALI
LABORATORIO DI ARCHITETTURE E PROGRAMMAZIONE DEI SISTEMI ELETTRONICI INDUSTRIALI Laboratory Lesson 10: CMSIS DSP Library and Functions Final Assignment Prof. Luca Benini Prof Davide
More informationEECS 452 Midterm Closed book part Fall 2010
EECS 452 Midterm Closed book part Fall 2010 Name: unique name: Sign the honor code: I have neither given nor received aid on this exam nor observed anyone else doing so. Scores: # Points Closed book Page
More information3. Lifting Scheme of Wavelet Transform
3. Lifting Scheme of Wavelet Transform 3. Introduction The Wim Sweldens 76 developed the lifting scheme for the construction of biorthogonal wavelets. The main feature of the lifting scheme is that all
More information2D rendering takes a photo of the 2D scene with a virtual camera that selects an axis aligned rectangle from the scene. The photograph is placed into
2D rendering takes a photo of the 2D scene with a virtual camera that selects an axis aligned rectangle from the scene. The photograph is placed into the viewport of the current application window. A pixel
More informationLossy Coding 2 JPEG. Perceptual Image Coding. Discrete Cosine Transform JPEG. CS559 Lecture 9 JPEG, Raster Algorithms
CS559 Lecture 9 JPEG, Raster Algorithms These are course notes (not used as slides) Written by Mike Gleicher, Sept. 2005 With some slides adapted from the notes of Stephen Chenney Lossy Coding 2 Suppose
More informationThe Fast Fourier Transform
Chapter 7 7.1 INTRODUCTION The Fast Fourier Transform In Chap. 6 we saw that the discrete Fourier transform (DFT) could be used to perform convolutions. In this chapter we look at the computational requirements
More informationFilterbanks and transforms
Filterbanks and transforms Sources: Zölzer, Digital audio signal processing, Wiley & Sons. Saramäki, Multirate signal processing, TUT course. Filterbanks! Introduction! Critical sampling, half-band filter!
More informationVertical-Horizontal Binary Common Sub- Expression Elimination for Reconfigurable Transposed Form FIR Filter
Vertical-Horizontal Binary Common Sub- Expression Elimination for Reconfigurable Transposed Form FIR Filter M. Tirumala 1, Dr. M. Padmaja 2 1 M. Tech in VLSI & ES, Student, 2 Professor, Electronics and
More information//2D TRANSFORMATION TRANSLATION, ROTATING AND SCALING. #include<stdio.h> #include<conio.h> #include<graphics.h> #include<math.h> #include<stdlib.
//2D TRANSFORMATION TRANSLATION, ROTATING AND SCALING #include #include #include #include #include void main() int gd=detect,gm,i,x[10],y[10],a,b,c,d,n,tx,ty,sx,sy,ch;
More informationDCSP-10: Applications
DCSP-10: Applications Jianfeng Feng Department of Computer Science Warwick Univ., UK Jianfeng.feng@warwick.ac.uk http://www.dcs.warwick.ac.uk/~feng/dcsp.html Applications Power spectrum estimate Image
More informationFPGA Polyphase Filter Bank Study & Implementation
FPGA Polyphase Filter Bank Study & Implementation Raghu Rao Matthieu Tisserand Mike Severa Prof. John Villasenor Image Communications/. Electrical Engineering Dept. UCLA 1 Introduction This document describes
More informationDigital Filters in Radiation Detection and Spectroscopy
Digital Filters in Radiation Detection and Spectroscopy Digital Radiation Measurement and Spectroscopy NE/RHP 537 1 Classical and Digital Spectrometers Classical Spectrometer Detector Preamplifier Analog
More informationEQUALIZER DESIGN FOR SHAPING THE FREQUENCY CHARACTERISTICS OF DIGITAL VOICE SIGNALS IN IP TELEPHONY. Manpreet Kaur Gakhal
EQUALIZER DESIGN FOR SHAPING THE FREQUENCY CHARACTERISTICS OF DIGITAL VOICE SIGNALS IN IP TELEPHONY By: Manpreet Kaur Gakhal A THESIS SUBMITTED IN PARTIAL FULFILLMENT OF THE REQUIREMENTS FOR THE DEGREE
More informationParallel FIR Filters. Chapter 5
Chapter 5 Parallel FIR Filters This chapter describes the implementation of high-performance, parallel, full-precision FIR filters using the DSP48 slice in a Virtex-4 device. ecause the Virtex-4 architecture
More informationRecall our recursive multiply algorithm:
Recall our recursive multiply algorithm: PRECONDITION: x and y are both binary bit arrays of length n, n a power of 2. POSTCONDITION: Returns a binary bit array equal to the product of x and y. REC MULTIPLY
More informationLecture 12: Algorithmic Strength 2 Reduction in Filters and Transforms Saeid Nooshabadi
Multimedia Systems Lecture 12: Algorithmic Strength 2 Reduction in Filters and Transforms Saeid Nooshabadi Overview Cascading of Fast FIR Filter Algorithms (FFA) Discrete Cosine Transform and Inverse DCT
More informationREAL TIME DIGITAL SIGNAL PROCESSING
REAL TIME DIGITAL SIGNAL PROCESSING UTN-FRBA 2010 Introduction Why Digital? A brief comparison with analog. Advantages Flexibility. Easily modifiable and upgradeable. Reproducibility. Don t depend on components
More informationNAG Library Function Document nag_dwt (c09cac)
NAG Library Function Document nag_dwt () 1 Purpose nag_dwt () computes the one-dimensional discrete wavelet transform (DWT) at a single level. The initialization function nag_wfilt (c09aac) must be called
More informationBGI Graphics Engine Tutorial
BGI Graphics Engine Tutorial Tutor: Anton Gerdelan Computer game program layout Computer games (and other graphical programs) have a recognisable program structure: #include library files Global variables
More informationMath 1113 Notes - Functions Revisited
Math 1113 Notes - Functions Revisited Philippe B. Laval Kennesaw State University February 14, 2005 Abstract This handout contains more material on functions. It continues the material which was presented
More information2.3 Circular Functions of Real Numbers
www.ck12.org Chapter 2. Graphing Trigonometric Functions 2.3 Circular Functions of Real Numbers Learning Objectives Graph the six trigonometric ratios as functions on the Cartesian plane. Identify the
More informationSection M6: Filter blocks
Section M: Filter blocks These blocks appear at the top of the simulation area Table of blocks Block notation PZ-Placement PZ-Plot FIR Design IIR Design Kaiser Parks-McClellan LMS Freq Samp. Description
More informationBasic Operations and Equivalent Expressions - Step-by-Step Lesson
Name Date Basic Operations and Equivalent Expressions StepbyStep Lesson Lesson 1 Simplify the expressions. 1. 4 (6x 5) 2. 3 (4 3 7x) Explanation: 1. Step 1) First see what is being asked. We have to simplify
More informationOptimised corrections for finite-difference modelling in two dimensions
Optimized corrections for 2D FD modelling Optimised corrections for finite-difference modelling in two dimensions Peter M. Manning and Gary F. Margrave ABSTRACT Finite-difference two-dimensional correction
More information15 Wyner Statistics Fall 2013
15 Wyner Statistics Fall 2013 CHAPTER THREE: CENTRAL TENDENCY AND VARIATION Summary, Terms, and Objectives The two most important aspects of a numerical data set are its central tendencies and its variation.
More informationStudents received individual feedback throughout year on assignments.
ACS108 No exam. Students received individual feedback throughout year on assignments. ACS123 In general, during ACS123 exam session, students have shown satisfactory performance, clear understanding of
More informationThe pictorial representation and manipulation of data by a compute. The creation, display, and storage of pictures, with a computer
Nihar Ranjan Roy The pictorial representation and manipulation of data by a compute The creation, display, and storage of pictures, with a computer Computer graphics is a sub-field of computer science
More informationScan Converting Lines
Scan Conversion 1 Scan Converting Lines Line Drawing Draw a line on a raster screen between two points What s wrong with the statement of the problem? it doesn t say anything about which points are allowed
More information(Type your answer in radians. Round to the nearest hundredth as needed.)
1. Find the exact value of the following expression within the interval (Simplify your answer. Type an exact answer, using as needed. Use integers or fractions for any numbers in the expression. Type N
More informationTwo High Performance Adaptive Filter Implementation Schemes Using Distributed Arithmetic
Two High Performance Adaptive Filter Implementation Schemes Using istributed Arithmetic Rui Guo and Linda S. ebrunner Abstract istributed arithmetic (A) is performed to design bit-level architectures for
More informationLecture Image Enhancement and Spatial Filtering
Lecture Image Enhancement and Spatial Filtering Harvey Rhody Chester F. Carlson Center for Imaging Science Rochester Institute of Technology rhody@cis.rit.edu September 29, 2005 Abstract Applications of
More informationFPGA Implementation of Multiplierless 2D DWT Architecture for Image Compression
FPGA Implementation of Multiplierless 2D DWT Architecture for Image Compression Divakara.S.S, Research Scholar, J.S.S. Research Foundation, Mysore Cyril Prasanna Raj P Dean(R&D), MSEC, Bangalore Thejas
More information2. MACHINE REPRESENTATION OF TYPICAL ARITHMETIC DATA FORMATS (NATURAL AND INTEGER NUMBERS).
2. MACHINE REPRESENTATION OF TYPICAL ARITHMETIC DATA FORMATS (NATURAL AND INTEGER NUMBERS). 2.. Natural Binary Code (NBC). The positional code with base 2 (B=2), introduced in Exercise, is used to encode
More informationDesign a DSP Operations using Vedic Mathematics
International conference on Communication and Signal Processing, April 3-5, 2013, India Design a DSP Operations using Vedic Mathematics Akhalesh K. Itawadiya, Rajesh Mahle, Vivek Patel, Dadan Kumar Abstract
More informationLecture 5 C Programming Language
Lecture 5 C Programming Language Summary of Lecture 5 Pointers Pointers and Arrays Function arguments Dynamic memory allocation Pointers to functions 2D arrays Addresses and Pointers Every object in the
More informationUse Parametric notation. Interpret the effect that T has on the graph as motion.
Learning Objectives Parametric Functions Lesson 3: Go Speed Racer! Level: Algebra 2 Time required: 90 minutes One of the main ideas of the previous lesson is that the control variable t does not appear
More informationSimple Experiments Involving External Control of Algorithm Parameters for an EET Undergraduate DSP Course
Simple Experiments Involving External Control of Algorithm Parameters for an EET Undergraduate DSP Course Anthony J A Oxtoby, Gerard N Foster Purdue University, West Lafayette/Kokomo Session 2649 Abstract
More informationComputer Graphics Prof. Sukhendu Das Dept. of Computer Science and Engineering Indian Institute of Technology, Madras Lecture - 14
Computer Graphics Prof. Sukhendu Das Dept. of Computer Science and Engineering Indian Institute of Technology, Madras Lecture - 14 Scan Converting Lines, Circles and Ellipses Hello everybody, welcome again
More informationWARM UP DESCRIBE THE TRANSFORMATION FROM F(X) TO G(X)
WARM UP DESCRIBE THE TRANSFORMATION FROM F(X) TO G(X) 2 5 5 2 2 2 2 WHAT YOU WILL LEARN HOW TO GRAPH THE PARENT FUNCTIONS OF VARIOUS FUNCTIONS. HOW TO IDENTIFY THE KEY FEATURES OF FUNCTIONS. HOW TO TRANSFORM
More informationReport 4. Implementation of FIR filter
1 Embedded Systems WS 2014/15 Report 4: Implementation of FIR filter Stefan Feilmeier Facultatea de Inginerie Hermann Oberth Master-Program Embedded Systems Advanced Digital Signal Processing Methods Winter
More informationMASSACHUSETTS INSTITUTE OF TECHNOLOGY Department of Electrical Engineering and Computer Sciences
MASSACHUSETTS INSTITUTE OF TECHNOLOGY Department of Electrical Engineering and Computer Sciences Introductory Digital Systems Lab (6.111) uiz - Spring 2004 Prof. Anantha Chandrakasan Student Name: Problem
More informationNUMERICAL SYSTEM FOR MEASUREMENT FLUID DEBIT. TIRIAN Gelu Ovidiu UNIVERSITY POLITEHNICA TIMISOARA FACULTY OF ENGINEERING HUNEDOARA
ANNALS OF THE FACULTY OF ENGINEERING HUNEDOARA 200, Tome IV, Fascicole 3, (ISSN 15 25) FACULTY OF ENGINEERING HUNEDOARA, 5, REVOLUTIEI, 332, HUNEDOARA NUMERICAL SYSTEM FOR MEASUREMENT FLUID DEBIT TIRIAN
More informationEngineering 12 - Spring, 1999
Engineering 12 - Spring, 1999 1. (18 points) A portion of a C program is given below. Fill in the missing code to calculate and display a table of n vs n 3, as shown below: 1 1 2 8 3 27 4 64 5 125 6 216
More informationGC2011A 3.3V DIGITAL FILTER CHIP DATASHEET. March 21, 2000
GC2011A 3.3V DIGITAL FILTER CHIP DATASHEET March 21, 2000 Information provided by Graychip is believed to be accurate and reliable. No responsibility is assumed by Graychip for its use, nor for any infringement
More informationEEE 512 ADVANCED DIGITAL SIGNAL AND IMAGE PROCESSING
UNIVERSITI SAINS MALAYSIA Semester I Examination Academic Session 27/28 October/November 27 EEE 52 ADVANCED DIGITAL SIGNAL AND IMAGE PROCESSING Time : 3 hours INSTRUCTION TO CANDIDATE: Please ensure that
More informationM4.1-R3: PROGRAMMING AND PROBLEM SOLVING THROUGH C LANGUAGE
M4.1-R3: PROGRAMMING AND PROBLEM SOLVING THROUGH C LANGUAGE NOTE: 1. There are TWO PARTS in this Module/Paper. PART ONE contains FOUR questions and PART TWO contains FIVE questions. 2. PART ONE is to be
More informationA Microprocessor Systems Fall 2009
304 426A Microprocessor Systems Fall 2009 Lab 1: Assembly and Embedded C Objective This exercise introduces the Texas Instrument MSP430 assembly language, the concept of the calling convention and different
More informationImage Processing Tricks in OpenGL. Simon Green NVIDIA Corporation
Image Processing Tricks in OpenGL Simon Green NVIDIA Corporation Overview Image Processing in Games Histograms Recursive filters JPEG Discrete Cosine Transform Image Processing in Games Image processing
More informationREAL TIME DIGITAL SIGNAL PROCESSING
REAL TIME DIGITAL SIGNAL PROCESSING UTN - FRBA 2011 www.electron.frba.utn.edu.ar/dplab Introduction Why Digital? A brief comparison with analog. Advantages Flexibility. Easily modifiable and upgradeable.
More informationOutput Primitives Lecture: 3. Lecture 3. Output Primitives. Assuming we have a raster display, a picture is completely specified by:
Lecture 3 Output Primitives Assuming we have a raster display, a picture is completely specified by: - A set of intensities for the pixel positions in the display. - A set of complex objects, such as trees
More informationFilter Bank Design and Sub-Band Coding
Filter Bank Design and Sub-Band Coding Arash Komaee, Afshin Sepehri Department of Electrical and Computer Engineering University of Maryland Email: {akomaee, afshin}@eng.umd.edu. Introduction In this project,
More informationChapter 5 C Functions
Chapter 5 C Functions Objectives of this chapter: To construct programs from small pieces called functions. Common math functions in math.h the C Standard Library. sin( ), cos( ), tan( ), atan( ), sqrt(
More informationExam Duration: 2hrs and 30min Software Design
Exam Duration: 2hrs and 30min. 433-254 Software Design Section A Multiple Choice (This sample paper has less questions than the exam paper The exam paper will have 25 Multiple Choice questions.) 1. Which
More informationHonors Precalculus: Solving equations and inequalities graphically and algebraically. Page 1
Solving equations and inequalities graphically and algebraically 1. Plot points on the Cartesian coordinate plane. P.1 2. Represent data graphically using scatter plots, bar graphs, & line graphs. P.1
More informationINTEGER SEQUENCE WINDOW BASED RECONFIGURABLE FIR FILTERS.
INTEGER SEQUENCE WINDOW BASED RECONFIGURABLE FIR FILTERS Arulalan Rajan 1, H S Jamadagni 1, Ashok Rao 2 1 Centre for Electronics Design and Technology, Indian Institute of Science, India (mrarul,hsjam)@cedt.iisc.ernet.in
More informationEECS 452 Lab 2 Basic DSP Using the C5515 ezdsp Stick
EECS 452 Lab 2 Basic DSP Using the C5515 ezdsp Stick 1. Pre-lab Q1. Print the file you generated (and modified) as described above. Q2. The default structure of the FIR filter is Direct-Form FIR a. How
More informationDigital Signal Processing. Soma Biswas
Digital Signal Processing Soma Biswas 2017 Partial credit for slides: Dr. Manojit Pramanik Outline What is FFT? Types of FFT covered in this lecture Decimation in Time (DIT) Decimation in Frequency (DIF)
More informationWhen addressing VLSI design most books start from a welldefined
Objectives An ASIC application MSDAP Analyze the application requirement System level setting of an application Define operation mode Define signals and pins Top level model Write a specification When
More informationAn Efficient Design of Sum-Modified Booth Recoder for Fused Add-Multiply Operator
An Efficient Design of Sum-Modified Booth Recoder for Fused Add-Multiply Operator M.Chitra Evangelin Christina Associate Professor Department of Electronics and Communication Engineering Francis Xavier
More informationReview Cellular Automata The Game of Life. 2D arrays, 3D arrays. Review Array Problems Challenge
Review Cellular Automata The Game of Life 2D arrays, 3D arrays Review Array Problems Challenge example1.pde Up until now All movement and sizing of graphical objects have been accomplished by modifying
More informationMath 125 Little Book Homework Chapters 7, 10, 11, and 12
Math 125 Little Book Homework Chapters 7, 10, 11, and 12 Do NOT copy the book follow the guidelines given for each section. NO CREDIT will be given if you copy the book! You earn 2 points if you turn in
More informationTwo-Color Counters. Adding Integers, Part II. Key Term. Learning Goals. Essential Ideas. Common Core State Standards for Mathematics
Two-Color Counters Adding Integers, Part II Learning Goals In this lesson, you will: Model the addition of integers using two-color counters. Develop a rule for adding integers. Key Term additive inverses
More informationIntroduction to Computers II Lecture 4. Dr Ali Ziya Alkar Dr Mehmet Demirer
Introduction to Computers II Lecture 4 Dr Ali Ziya Alkar Dr Mehmet Demirer 1 Contents: Utilizing the existing information Top-down design Start with the broadest statement of the problem Works down to
More informationECS Baruch Lab 5 Spring 2019 Name NetID (login, like , not your SUID)
ECS 102 - Baruch Lab 5 Spring 2019 Name NetID (login, like email, not your SUID) Today you will be doing some more experiments in the shell. Create a file Lab5.txt. In this file you will be asked to save
More information21. PID control The theory of PID control
1 21. PID control The PID (Proportional Integral Differential) controller is a basic building block in regulation. It can be implemented in many different ways, this example will show you how to code it
More information2D Image Processing INFORMATIK. Kaiserlautern University. DFKI Deutsches Forschungszentrum für Künstliche Intelligenz
2D Image Processing - Filtering Prof. Didier Stricker Kaiserlautern University http://ags.cs.uni-kl.de/ DFKI Deutsches Forschungszentrum für Künstliche Intelligenz http://av.dfki.de 1 What is image filtering?
More informationMath 414 Lecture 2 Everyone have a laptop?
Math 44 Lecture 2 Everyone have a laptop? THEOREM. Let v,...,v k be k vectors in an n-dimensional space and A = [v ;...; v k ] v,..., v k independent v,..., v k span the space v,..., v k a basis v,...,
More informationOpenGL Graphics System. 2D Graphics Primitives. Drawing 2D Graphics Primitives. 2D Graphics Primitives. Mathematical 2D Primitives.
D Graphics Primitives Eye sees Displays - CRT/LCD Frame buffer - Addressable pixel array (D) Graphics processor s main function is to map application model (D) by projection on to D primitives: points,
More informationFast and Energy-Efficient Digital Filters for Signal Conditioning in Low-Power Microcontrollers
Fast and Energy-Efficient Digital Filters for Signal Conditioning in Low-Power Microcontrollers ABSTRACT Carlos Moreno Electrical and Computer Engineering University of Waterloo Waterloo, Ontario, Canada
More information12V. time V 12. time. V 2 Switch. time. G S V GS > constant turns on MOSFET. EE445M/EE380L Final Exam Spring 2014 Page 1 of 8
EE445M/EE38L Final Exam Spring 214 Page 1 of 8 Jonathan W. Valvano May 13, 214, 9am-12n Closed book part First Name: Last Name: (5) Question 1. Draw the circuit symbol for an NPN MOSFET transistor, like
More informationCPSC 121 Some Sample Questions for the Final Exam Tuesday, April 15, 2014, 8:30AM
CPSC 121 Some Sample Questions for the Final Exam Tuesday, April 15, 2014, 8:30AM Name: Student ID: Signature: Section (circle one): George Steve Your signature acknowledges your understanding of and agreement
More informationLAB 8: DATA HANDLING - BUFFERING
EEM478 DSP HARDWARE 2013 LAB 8: DATA HANDLING - BUFFERING In this experiment, we will use two types of buffers to collect and process data frames. While collecting data in a buffer, we will implement processing
More informationLaboratory Exercise 5
Laboratory Exercise 5 Using ASCII Graphics for Animation The purpose of this exercise is to learn how to perform simple animations under Linux. We will use the ARM A9 processor, in the DE1-SoC Computer.
More informationChapter 7. Iteration. 7.1 Multiple assignment
Chapter 7 Iteration 7.1 Multiple assignment You can make more than one assignment to the same variable; effect is to replace the old value with the new. int bob = 5; System.out.print(bob); bob = 7; System.out.println(bob);
More informationLearning from Math Library Testng for C Marcel Beemster Solid Sands
Learning from Math Library Testng for C Marcel Beemster Solid Sands Introduction In the process of improving SuperTest, I recently dived into its math library testing. Turns out there were some interesting
More informationInnite Impulse Response Filters Lecture by Prof Brian L Evans Slides by Niranjan Damera-Venkata Embedded Signal Processing Laboratory Dept of Electrical and Computer Engineering The University of Texas
More informationGraph Theory Questions from Past Papers
Graph Theory Questions from Past Papers Bilkent University, Laurence Barker, 19 October 2017 Do not forget to justify your answers in terms which could be understood by people who know the background theory
More informationChapter 1. Numeric Artifacts. 1.1 Introduction
Chapter 1 Numeric Artifacts 1.1 Introduction Virtually all solutions to problems in electromagnetics require the use of a computer. Even when an analytic or closed form solution is available which is nominally
More informationWorking with the Compute Block
Tackled today Working with the Compute Block M. R. Smith, ECE University of Calgary Canada Problems with using I-ALU as an integer processor TigerSHARC processor architecture What features are available
More informationC Programming Language. Microcomputer Architecture and Interfacing Colorado School of Mines Professor William Hoff
C Programming Language 1 C C is better to use than assembly for embedded systems programming. You can program at a higher level of logic than in assembly, so programs are shorter and easier to understand.
More information2015 Paper E2.1: Digital Electronics II
s 2015 Paper E2.1: Digital Electronics II Answer ALL questions. There are THREE questions on the paper. Question ONE counts for 40% of the marks, other questions 30% Time allowed: 2 hours (Not to be removed
More informationC Tutorial: Part 1. Dr. Charalampos C. Tsimenidis. Newcastle University School of Electrical and Electronic Engineering.
C Tutorial: Part 1 Dr. Charalampos C. Tsimenidis Newcastle University School of Electrical and Electronic Engineering September 2013 Why C? Small (32 keywords) Stable Existing code base Fast Low-level
More informationConfigurable Multiprocessing: An FIR
Configurable Multiprocessing: An FIR Filter Example Cmpware, Inc. Introduction Multiple processors on a device common Thousands of 32-bit RISC CPUs possible Advantages in: Performance Power consumption
More information