Lab-Report Digital Signal Processing. FIR-Filters. Model of a fixed and floating point convolver

Size: px
Start display at page:

Download "Lab-Report Digital Signal Processing. FIR-Filters. Model of a fixed and floating point convolver"

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 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 information

Digital Signal Processing Lecture Notes 22 November 2010

Digital 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 information

19. FIR filtering The theory of FIR filtering. X buffer. Y buffer

19. 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 information

D. 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 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 information

Fatima Michael College of Engineering & Technology

Fatima 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 information

Implementing FIR Filters

Implementing 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 information

D. 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 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 information

ECE4703 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 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 information

ISSN (Online), Volume 1, Special Issue 2(ICITET 15), March 2015 International Journal of Innovative Trends and Emerging Technologies

ISSN (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 information

Fourier Transforms and Signal Analysis

Fourier 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 information

Digital Signal Processing Introduction to Finite-Precision Numerical Effects

Digital 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 information

Digital Signal Processing Laboratory 7: IIR Notch Filters Using the TMS320C6711

Digital 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 information

EECS 452 Midterm Closed book part Fall 2010

EECS 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 information

FAST FIR FILTERS FOR SIMD PROCESSORS WITH LIMITED MEMORY BANDWIDTH

FAST 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 information

4.1 QUANTIZATION NOISE

4.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 information

Implementing 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 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 information

L-Point Interpolator

L-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 information

LABORATORIO DI ARCHITETTURE E PROGRAMMAZIONE DEI SISTEMI ELETTRONICI INDUSTRIALI

LABORATORIO 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 information

EECS 452 Midterm Closed book part Fall 2010

EECS 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 information

3. Lifting Scheme of Wavelet Transform

3. 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 information

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

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 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 information

Lossy Coding 2 JPEG. Perceptual Image Coding. Discrete Cosine Transform JPEG. CS559 Lecture 9 JPEG, Raster Algorithms

Lossy 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 information

The Fast Fourier Transform

The 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 information

Filterbanks and transforms

Filterbanks 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 information

Vertical-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 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<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 information

DCSP-10: Applications

DCSP-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 information

FPGA Polyphase Filter Bank Study & Implementation

FPGA 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 information

Digital Filters in Radiation Detection and Spectroscopy

Digital 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 information

EQUALIZER 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. 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 information

Parallel FIR Filters. Chapter 5

Parallel 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 information

Recall our recursive multiply algorithm:

Recall 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 information

Lecture 12: Algorithmic Strength 2 Reduction in Filters and Transforms Saeid Nooshabadi

Lecture 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 information

REAL TIME DIGITAL SIGNAL PROCESSING

REAL 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 information

NAG Library Function Document nag_dwt (c09cac)

NAG 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 information

BGI Graphics Engine Tutorial

BGI 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 information

Math 1113 Notes - Functions Revisited

Math 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 information

2.3 Circular Functions of Real Numbers

2.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 information

Section M6: Filter blocks

Section 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 information

Basic Operations and Equivalent Expressions - Step-by-Step Lesson

Basic 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 information

Optimised corrections for finite-difference modelling in two dimensions

Optimised 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 information

15 Wyner Statistics Fall 2013

15 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 information

Students received individual feedback throughout year on assignments.

Students 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 information

The pictorial representation and manipulation of data by a compute. The creation, display, and storage of pictures, with a computer

The 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 information

Scan Converting Lines

Scan 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.)

(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 information

Two High Performance Adaptive Filter Implementation Schemes Using Distributed Arithmetic

Two 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 information

Lecture Image Enhancement and Spatial Filtering

Lecture 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 information

FPGA Implementation of Multiplierless 2D DWT Architecture for Image Compression

FPGA 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 information

2. MACHINE REPRESENTATION OF TYPICAL ARITHMETIC DATA FORMATS (NATURAL AND INTEGER NUMBERS).

2. 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 information

Design a DSP Operations using Vedic Mathematics

Design 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 information

Lecture 5 C Programming Language

Lecture 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 information

Use Parametric notation. Interpret the effect that T has on the graph as motion.

Use 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 information

Simple 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 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 information

Computer 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 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 information

WARM UP DESCRIBE THE TRANSFORMATION FROM F(X) TO G(X)

WARM 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 information

Report 4. Implementation of FIR filter

Report 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 information

MASSACHUSETTS INSTITUTE OF TECHNOLOGY Department of Electrical Engineering and Computer Sciences

MASSACHUSETTS 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 information

NUMERICAL SYSTEM FOR MEASUREMENT FLUID DEBIT. TIRIAN Gelu Ovidiu UNIVERSITY POLITEHNICA TIMISOARA FACULTY OF ENGINEERING HUNEDOARA

NUMERICAL 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 information

Engineering 12 - Spring, 1999

Engineering 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 information

GC2011A 3.3V DIGITAL FILTER CHIP DATASHEET. March 21, 2000

GC2011A 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 information

EEE 512 ADVANCED DIGITAL SIGNAL AND IMAGE PROCESSING

EEE 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 information

M4.1-R3: PROGRAMMING AND PROBLEM SOLVING THROUGH C LANGUAGE

M4.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 information

A Microprocessor Systems Fall 2009

A 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 information

Image Processing Tricks in OpenGL. Simon Green NVIDIA Corporation

Image 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 information

REAL TIME DIGITAL SIGNAL PROCESSING

REAL 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 information

Output Primitives Lecture: 3. Lecture 3. Output Primitives. Assuming we have a raster display, a picture is completely specified by:

Output 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 information

Filter Bank Design and Sub-Band Coding

Filter 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 information

Chapter 5 C Functions

Chapter 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 information

Exam Duration: 2hrs and 30min Software Design

Exam 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 information

Honors Precalculus: Solving equations and inequalities graphically and algebraically. Page 1

Honors 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 information

INTEGER SEQUENCE WINDOW BASED RECONFIGURABLE FIR FILTERS.

INTEGER 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 information

EECS 452 Lab 2 Basic DSP Using the C5515 ezdsp Stick

EECS 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 information

Digital Signal Processing. Soma Biswas

Digital 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 information

When addressing VLSI design most books start from a welldefined

When 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 information

An 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 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 information

Review 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 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 information

Math 125 Little Book Homework Chapters 7, 10, 11, and 12

Math 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 information

Two-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. 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 information

Introduction 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 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 information

ECS Baruch Lab 5 Spring 2019 Name NetID (login, like , not your SUID)

ECS 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 information

21. PID control The theory of PID control

21. 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 information

2D Image Processing INFORMATIK. Kaiserlautern University. DFKI Deutsches Forschungszentrum für Künstliche Intelligenz

2D 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 information

Math 414 Lecture 2 Everyone have a laptop?

Math 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 information

OpenGL Graphics System. 2D Graphics Primitives. Drawing 2D Graphics Primitives. 2D Graphics Primitives. Mathematical 2D Primitives.

OpenGL 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 information

Fast 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 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 information

12V. 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

12V. 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 information

CPSC 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 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 information

LAB 8: DATA HANDLING - BUFFERING

LAB 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 information

Laboratory Exercise 5

Laboratory 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 information

Chapter 7. Iteration. 7.1 Multiple assignment

Chapter 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 information

Learning from Math Library Testng for C Marcel Beemster Solid Sands

Learning 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 information

Innite 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 information

Graph Theory Questions from Past Papers

Graph 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 information

Chapter 1. Numeric Artifacts. 1.1 Introduction

Chapter 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 information

Working with the Compute Block

Working 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 information

C Programming Language. Microcomputer Architecture and Interfacing Colorado School of Mines Professor William Hoff

C 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 information

2015 Paper E2.1: Digital Electronics II

2015 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 information

C 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. 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 information

Configurable Multiprocessing: An FIR

Configurable 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