1 00:00:00,090 --> 00:00:02,490 The following content is provided under a Creative 2 00:00:02,490 --> 00:00:04,030 Commons license. 3 00:00:04,030 --> 00:00:06,330 Your support will help MIT OpenCourseWare 4 00:00:06,330 --> 00:00:10,720 continue to offer high quality educational resources for free. 5 00:00:10,720 --> 00:00:13,320 To make a donation or view additional materials 6 00:00:13,320 --> 00:00:17,280 from hundreds of MIT courses, visit MIT OpenCourseWare 7 00:00:17,280 --> 00:00:18,450 at ocw.mit.edu. 8 00:00:24,150 --> 00:00:28,025 [MUSIC PLAYING] 9 00:00:51,270 --> 00:00:54,430 The last lecture we consider some basic structures 10 00:00:54,430 --> 00:00:57,760 for infinite impulse response and actually also 11 00:00:57,760 --> 00:01:01,660 for finite impulse response systems. 12 00:01:01,660 --> 00:01:05,170 In this lecture, I would like to focus specifically 13 00:01:05,170 --> 00:01:10,930 on finite impulse response systems and indicate, to show, 14 00:01:10,930 --> 00:01:14,380 that for that class of systems, there 15 00:01:14,380 --> 00:01:17,980 are some structures that specifically 16 00:01:17,980 --> 00:01:21,370 exploit properties of FIR, or finite impulse 17 00:01:21,370 --> 00:01:23,990 response, systems. 18 00:01:23,990 --> 00:01:28,090 First of all, let's consider the general form 19 00:01:28,090 --> 00:01:32,170 of a finite impulse response system. 20 00:01:32,170 --> 00:01:35,720 One of the characteristics of a finite impulse response system, 21 00:01:35,720 --> 00:01:39,520 of course, is the fact that the impulse response has 22 00:01:39,520 --> 00:01:42,850 only a finite number of nonzero samples, 23 00:01:42,850 --> 00:01:48,460 or equivalently the system function involves a sum only 24 00:01:48,460 --> 00:01:49,900 over a finite range. 25 00:01:49,900 --> 00:01:53,290 So the system function in general for a finite impulse 26 00:01:53,290 --> 00:01:56,410 response system is of this form. 27 00:01:56,410 --> 00:01:59,440 And the difference equation for this system 28 00:01:59,440 --> 00:02:03,880 is that the form of a sum from k will 0 to capital N minus 1 29 00:02:03,880 --> 00:02:10,550 of h of k, the unit sample response, x of n minus k. 30 00:02:10,550 --> 00:02:12,190 We've stressed the fact, of course, 31 00:02:12,190 --> 00:02:15,010 in a variety of the earlier lectures, 32 00:02:15,010 --> 00:02:18,490 that the difference equation for a finite impulse response 33 00:02:18,490 --> 00:02:22,150 system, in fact, corresponds to the convolution 34 00:02:22,150 --> 00:02:26,170 sum for finite impulse response systems, 35 00:02:26,170 --> 00:02:29,470 or the coefficients in the difference equation 36 00:02:29,470 --> 00:02:34,690 are, in fact, the values of the unit sample response. 37 00:02:34,690 --> 00:02:37,090 Now, for a finite impulse response system 38 00:02:37,090 --> 00:02:41,260 we can, of course, talk about the same types of structures 39 00:02:41,260 --> 00:02:44,200 that we talked about in a previous lecture. 40 00:02:44,200 --> 00:02:49,090 For example, we can generate a direct form structure 41 00:02:49,090 --> 00:02:52,150 from the difference equation, or equivalently 42 00:02:52,150 --> 00:02:55,300 from the z transform. 43 00:02:55,300 --> 00:02:59,620 And we see that the direct form structure corresponds 44 00:02:59,620 --> 00:03:05,470 to generating a weighted combination of delayed inputs 45 00:03:05,470 --> 00:03:08,860 where the weighting coefficients are the values in the unit 46 00:03:08,860 --> 00:03:11,270 sample response h of n. 47 00:03:11,270 --> 00:03:15,130 So for a general direct form structure, 48 00:03:15,130 --> 00:03:20,980 we have x of n, x of n minus 1 at the output of this delay, x 49 00:03:20,980 --> 00:03:27,130 of n minus 2, et cetera, x of n minus 1 multiplied by h of 1, 50 00:03:27,130 --> 00:03:31,990 x of n multiplied by h of 0, down through the chain. 51 00:03:31,990 --> 00:03:34,660 The results added up at the output 52 00:03:34,660 --> 00:03:38,770 to produce the overall output y of n. 53 00:03:38,770 --> 00:03:42,190 So this is what would correspond to applying 54 00:03:42,190 --> 00:03:44,860 the notion of a direct form structure 55 00:03:44,860 --> 00:03:48,290 to a finite impulse response system. 56 00:03:48,290 --> 00:03:51,490 Likewise, we could talk about a transposed form 57 00:03:51,490 --> 00:03:52,840 of this network. 58 00:03:52,840 --> 00:03:57,040 We could also talk about a cascade form realization 59 00:03:57,040 --> 00:03:59,480 of a finite impulse response filter, 60 00:03:59,480 --> 00:04:02,380 simply by factoring this into a product, 61 00:04:02,380 --> 00:04:05,060 not a poles and zeros, because, of course, 62 00:04:05,060 --> 00:04:08,440 there aren't poles for a finite impulse response system, 63 00:04:08,440 --> 00:04:11,110 but as a cascade of zeros, either 64 00:04:11,110 --> 00:04:15,100 implemented as first or second order sections. 65 00:04:15,100 --> 00:04:17,620 Something to give some thought to incidentally 66 00:04:17,620 --> 00:04:21,610 is whether for a finite impulse response system 67 00:04:21,610 --> 00:04:24,790 you can generate a parallel form structure 68 00:04:24,790 --> 00:04:28,960 like the parallel form structure that we talked about last time. 69 00:04:28,960 --> 00:04:31,540 The answer to that, in fact, is no. 70 00:04:31,540 --> 00:04:33,460 And it's tied to the fact that an FIR 71 00:04:33,460 --> 00:04:35,650 system doesn't have any poles. 72 00:04:35,650 --> 00:04:38,750 Although as we'll see later on in this lecture, 73 00:04:38,750 --> 00:04:44,170 there is a structure that is of the form of a parallel form 74 00:04:44,170 --> 00:04:47,380 for implementing FIR systems. 75 00:04:47,380 --> 00:04:49,810 So the first point then is that we 76 00:04:49,810 --> 00:04:53,650 can apply many of the ideas of the previous lecture 77 00:04:53,650 --> 00:04:56,290 to FIR systems. 78 00:04:56,290 --> 00:05:01,060 But in addition, there are some properties of some FIR systems 79 00:05:01,060 --> 00:05:05,350 that lead to some specific network structures that 80 00:05:05,350 --> 00:05:08,710 in general can't be used for implementing IIR, 81 00:05:08,710 --> 00:05:11,960 or recursive, systems. 82 00:05:11,960 --> 00:05:15,040 The first of these that I'd like to talk about 83 00:05:15,040 --> 00:05:19,960 is directed specifically toward the implementation 84 00:05:19,960 --> 00:05:24,300 of linear phase FIR systems. 85 00:05:24,300 --> 00:05:28,510 Now recall from several lectures ago-- 86 00:05:28,510 --> 00:05:31,795 and we've again raised this point a number of times-- 87 00:05:31,795 --> 00:05:37,450 that one of the differences between IIR and FIR systems 88 00:05:37,450 --> 00:05:42,130 is that because of the fact that the impulse response of an FIR 89 00:05:42,130 --> 00:05:46,830 system is a finite length, those systems 90 00:05:46,830 --> 00:05:50,730 can in fact be designed to have exactly linear phase, 91 00:05:50,730 --> 00:05:53,400 whereas the corresponding statement of course 92 00:05:53,400 --> 00:05:56,850 is not true for the case of infinite impulse response 93 00:05:56,850 --> 00:05:59,510 systems. 94 00:05:59,510 --> 00:06:04,760 In particular, a linear phase finite impulse response system 95 00:06:04,760 --> 00:06:09,480 is one for which the values in the unit sample response 96 00:06:09,480 --> 00:06:13,550 satisfy a certain symmetry condition, namely the symmetry 97 00:06:13,550 --> 00:06:16,490 condition as I've indicated it here, 98 00:06:16,490 --> 00:06:22,250 h of n equal to h of capital N minus 1 minus little n, 99 00:06:22,250 --> 00:06:26,720 where capital N is the length of the finite length impulse 100 00:06:26,720 --> 00:06:28,520 response. 101 00:06:28,520 --> 00:06:34,310 For example, a finite, a linear phase FIR impulse response 102 00:06:34,310 --> 00:06:38,670 as one example might look, as I've indicated here, 103 00:06:38,670 --> 00:06:42,980 where I've drawn it for capital N equal to 9. 104 00:06:42,980 --> 00:06:48,590 And this symmetry property says that h of 0, 105 00:06:48,590 --> 00:06:52,370 if I substitute n equals 0, is equal to h of capital N 106 00:06:52,370 --> 00:06:55,370 minus 1, or h of 8. 107 00:06:55,370 --> 00:06:58,700 And we can see that that's the symmetry that we have. 108 00:06:58,700 --> 00:07:02,390 And then likewise, the linear phase property 109 00:07:02,390 --> 00:07:06,230 says that as I go through the impulse response 110 00:07:06,230 --> 00:07:09,110 from both ends, I see identical values 111 00:07:09,110 --> 00:07:11,570 so that these values are identical. 112 00:07:11,570 --> 00:07:13,080 Then these values are identical. 113 00:07:13,080 --> 00:07:14,900 Then these values are identical. 114 00:07:14,900 --> 00:07:19,700 These, and, of course, this one is identical to itself. 115 00:07:19,700 --> 00:07:26,480 And that then is the general symmetry of a linear phase FIR 116 00:07:26,480 --> 00:07:27,260 impulse response. 117 00:07:30,120 --> 00:07:35,810 Well, in fact, to stress once again that the phase is indeed 118 00:07:35,810 --> 00:07:41,180 linear, we can consider generating a unit sample 119 00:07:41,180 --> 00:07:45,800 response or impulse response h1 of n, which corresponds 120 00:07:45,800 --> 00:07:49,280 to this unit sample response shifted 121 00:07:49,280 --> 00:07:55,740 so that it's centered around the origin, in which case h of n 122 00:07:55,740 --> 00:08:00,570 is equal to h1 of n plus capital N minus 1. 123 00:08:00,570 --> 00:08:09,060 Or in this case, h of n is h1 of n shifted to the right by 4. 124 00:08:09,060 --> 00:08:14,130 And consequently, the frequency response 125 00:08:14,130 --> 00:08:18,330 for this system, or the Fourier transform of the unit sample 126 00:08:18,330 --> 00:08:22,620 response is the Fourier transform of the unit sample 127 00:08:22,620 --> 00:08:27,400 response of this system multiplied by e to the j omega 128 00:08:27,400 --> 00:08:30,270 capital N minus 1 over 2. 129 00:08:30,270 --> 00:08:34,200 That is just due to the fact that these two unit sample 130 00:08:34,200 --> 00:08:38,500 responses are related to each other by a linear shift. 131 00:08:38,500 --> 00:08:41,850 Now, this unit sample response is even. 132 00:08:41,850 --> 00:08:44,670 That is it's even about n equals 0. 133 00:08:44,670 --> 00:08:47,940 And consequently, its Fourier transform 134 00:08:47,940 --> 00:08:51,810 is a real function of omega. 135 00:08:51,810 --> 00:08:54,390 So this is real. 136 00:08:54,390 --> 00:08:57,180 And consequently, the phase associated 137 00:08:57,180 --> 00:09:02,760 with the causal system h of n is just simply this linear phase 138 00:09:02,760 --> 00:09:06,420 term, e to the j omega N minus 1 over 2. 139 00:09:06,420 --> 00:09:10,020 So this is an argument, again, that 140 00:09:10,020 --> 00:09:13,470 stresses the fact that if the unit sample 141 00:09:13,470 --> 00:09:17,580 response has this symmetry, then the phase of the system 142 00:09:17,580 --> 00:09:19,470 is linear. 143 00:09:19,470 --> 00:09:22,440 Now, how can we exploit this in the implementation 144 00:09:22,440 --> 00:09:27,070 of finite impulse response systems? 145 00:09:27,070 --> 00:09:31,950 Well, let's look, first of all, at the general expression 146 00:09:31,950 --> 00:09:34,260 for the z transform of the system, 147 00:09:34,260 --> 00:09:40,280 h of z given by a sum of h of n z to the minus n. 148 00:09:40,280 --> 00:09:44,460 And essentially the idea in exploiting this symmetry 149 00:09:44,460 --> 00:09:49,020 for the implementation of FIR systems 150 00:09:49,020 --> 00:09:54,630 is to take advantage of the fact that because roughly half 151 00:09:54,630 --> 00:09:58,540 of the values in h of n are identical, 152 00:09:58,540 --> 00:10:03,100 we should be able to implement the system with essentially 153 00:10:03,100 --> 00:10:05,350 only half the number of multiplies 154 00:10:05,350 --> 00:10:10,360 that would be required in a more general FIR system. 155 00:10:10,360 --> 00:10:13,270 Well, to show how this works, let's 156 00:10:13,270 --> 00:10:16,030 work through this for the case where 157 00:10:16,030 --> 00:10:18,460 we assume that capital N, the number 158 00:10:18,460 --> 00:10:24,130 of non-zero points in the unit sample response, is even. 159 00:10:24,130 --> 00:10:27,430 In the previous example, we'd considered capital N odd. 160 00:10:27,430 --> 00:10:29,110 Here, in working through this let's 161 00:10:29,110 --> 00:10:30,710 assume that capital N is even. 162 00:10:30,710 --> 00:10:33,100 And a similar derivation would apply 163 00:10:33,100 --> 00:10:37,920 and has gone through in the text for capital N odd. 164 00:10:37,920 --> 00:10:43,400 OK, well, we can express the transfer function h of z 165 00:10:43,400 --> 00:10:48,130 as a sum from n equals 0 to capital N over 2 minus 1 166 00:10:48,130 --> 00:10:51,500 of h of n z to the minus n-- 167 00:10:51,500 --> 00:10:57,050 those are the first half points, the first half of the non-zero 168 00:10:57,050 --> 00:10:58,280 points-- 169 00:10:58,280 --> 00:11:01,010 plus the sum over the second half 170 00:11:01,010 --> 00:11:04,670 of the non-zero points from capital N over 2 to capital 171 00:11:04,670 --> 00:11:06,350 N minus 1. 172 00:11:06,350 --> 00:11:08,750 And basically where we want to get to 173 00:11:08,750 --> 00:11:14,030 is to exploit the fact that these points are numerically 174 00:11:14,030 --> 00:11:17,420 equal to these, except that the index runs 175 00:11:17,420 --> 00:11:19,400 in the other direction. 176 00:11:19,400 --> 00:11:24,620 Well to develop that formally, let's manipulate this sum 177 00:11:24,620 --> 00:11:28,280 by using a substitution of variables. 178 00:11:28,280 --> 00:11:31,790 In particular, let's make the substitution of variables 179 00:11:31,790 --> 00:11:37,190 that r is equal to capital N minus 1 minus little n, 180 00:11:37,190 --> 00:11:45,240 or equivalently that little n is equal to capital N minus 1 181 00:11:45,240 --> 00:11:47,520 minus r. 182 00:11:47,520 --> 00:11:50,820 If we do that, then changing this 183 00:11:50,820 --> 00:11:56,220 to a summation on r, where we have that little n 184 00:11:56,220 --> 00:12:00,300 is equal to capital N over 2, little n equal to capital N 185 00:12:00,300 --> 00:12:05,070 over 2, r is equal to capital N over 2 minus 1, 186 00:12:05,070 --> 00:12:07,840 as I've indicated here. 187 00:12:07,840 --> 00:12:10,380 And when little n is equal to capital N minus 1, 188 00:12:10,380 --> 00:12:14,520 little r is equal to 0. 189 00:12:14,520 --> 00:12:19,000 So this gets converted to a sum from r equals 0 190 00:12:19,000 --> 00:12:21,450 to capital N over 2 minus 1. 191 00:12:21,450 --> 00:12:26,040 h of what was n, which is now capital N minus 1 192 00:12:26,040 --> 00:12:28,770 minus r substituted in here. 193 00:12:28,770 --> 00:12:33,210 And then capital N minus 1 minus r again substituted 194 00:12:33,210 --> 00:12:35,370 for little n. 195 00:12:35,370 --> 00:12:38,120 Basically, what we've done is reduce this 196 00:12:38,120 --> 00:12:41,700 to a sum over the same limits as we have here 197 00:12:41,700 --> 00:12:45,900 and with the indices running in the opposite direction. 198 00:12:45,900 --> 00:12:50,730 And now, we can recognize that because of the symmetry 199 00:12:50,730 --> 00:12:52,770 property, because of the fact that we're 200 00:12:52,770 --> 00:12:56,970 talking about a linear phase system, h of capital 201 00:12:56,970 --> 00:13:05,530 N minus 1 minus r is equal to h of r. 202 00:13:05,530 --> 00:13:08,020 That's the symmetry property that 203 00:13:08,020 --> 00:13:13,100 corresponds to stating that the system is linear phase. 204 00:13:13,100 --> 00:13:16,170 All right, well, so here we have a sum from n 205 00:13:16,170 --> 00:13:18,160 equals 0 to N over 2 minus 1. 206 00:13:18,160 --> 00:13:20,480 Some things involving h of n. 207 00:13:20,480 --> 00:13:24,560 Here we have a sum from r equals 0 to N over 2 minus 1, 208 00:13:24,560 --> 00:13:27,870 some things involving h of r. 209 00:13:27,870 --> 00:13:29,900 This index of summation, of course, 210 00:13:29,900 --> 00:13:31,590 is just a dummy variable. 211 00:13:31,590 --> 00:13:35,570 And we can change it back to n if we want to, which we do. 212 00:13:35,570 --> 00:13:40,340 So rewriting these two sum, in particular rewriting 213 00:13:40,340 --> 00:13:44,540 this one in terms now of a summation on n, 214 00:13:44,540 --> 00:13:47,810 this becomes the sum from n equals 0 215 00:13:47,810 --> 00:13:52,790 to capital N over 2 minus 1, h of n z to the minus capital N 216 00:13:52,790 --> 00:13:55,480 minus 1 minus little n. 217 00:13:55,480 --> 00:13:59,090 This sum, of course, stays the same. 218 00:13:59,090 --> 00:14:02,420 And now, because we have h of n appearing 219 00:14:02,420 --> 00:14:06,320 in both of these sums, we can combine this together 220 00:14:06,320 --> 00:14:13,730 into a single summation, from 0 to N over 2 minus 1 of h of n, 221 00:14:13,730 --> 00:14:17,260 the values in the unit sample response, 222 00:14:17,260 --> 00:14:21,190 times z to the minus n plus z to the minus capital 223 00:14:21,190 --> 00:14:24,880 N minus 1 minus little n. 224 00:14:24,880 --> 00:14:31,140 Notice now that we only have in this summation 225 00:14:31,140 --> 00:14:33,810 half the terms that we had originally. 226 00:14:33,810 --> 00:14:36,190 In other words, there are capital N 227 00:14:36,190 --> 00:14:39,630 over 2 different coefficients that we're 228 00:14:39,630 --> 00:14:44,220 using, whereas in the direct form implementation, 229 00:14:44,220 --> 00:14:46,710 there were capital N coefficients that we 230 00:14:46,710 --> 00:14:47,610 were using. 231 00:14:47,610 --> 00:14:52,530 And here, we're exploiting the symmetry in the coefficients. 232 00:14:52,530 --> 00:14:54,620 Well, let's see what this implies 233 00:14:54,620 --> 00:14:57,610 in terms of a filter structure. 234 00:14:57,610 --> 00:15:00,870 Here, I've simply rewritten, again, 235 00:15:00,870 --> 00:15:05,420 the general form for the transfer function assuming 236 00:15:05,420 --> 00:15:09,230 that the system is linear phase, as we've just previously worked 237 00:15:09,230 --> 00:15:09,860 out. 238 00:15:09,860 --> 00:15:14,720 This is just simply a rewrite of the previous expression. 239 00:15:14,720 --> 00:15:17,030 And let's look at this, for example, 240 00:15:17,030 --> 00:15:21,230 I had assumed that that capital N was even. 241 00:15:21,230 --> 00:15:23,770 So let's choose as an example capital 242 00:15:23,770 --> 00:15:29,600 N equal to 8, in which case this expression becomes a sum from n 243 00:15:29,600 --> 00:15:36,710 equals 0 to 3, h of n, z to the minus n plus z to the minus-- 244 00:15:36,710 --> 00:15:40,160 capital N minus 1 is 7, so minus 7 minus n. 245 00:15:43,050 --> 00:15:47,550 Well, how many delays are involved in implementing 246 00:15:47,550 --> 00:15:50,220 this system function? 247 00:15:50,220 --> 00:15:56,700 Apparently, there are seven delays involved whether or not 248 00:15:56,700 --> 00:15:58,290 the system is linear phase. 249 00:15:58,290 --> 00:16:01,230 And that shouldn't be surprising because the length 250 00:16:01,230 --> 00:16:04,700 of the impulse response is still 8. 251 00:16:04,700 --> 00:16:08,120 So seven delays in general are required, 252 00:16:08,120 --> 00:16:12,770 but only four coefficients are required. 253 00:16:12,770 --> 00:16:15,980 And to see what structure is implied by this, 254 00:16:15,980 --> 00:16:21,140 we recognize that h of z is constructed 255 00:16:21,140 --> 00:16:26,900 by summing a system which corresponds to a delay. 256 00:16:26,900 --> 00:16:31,650 Looking at this expression for n equal 0, no delay. 257 00:16:31,650 --> 00:16:36,440 n equal 0 substituted in gives us a transfer function of 1. 258 00:16:36,440 --> 00:16:41,015 Plus a delay with n equal 0 substituted in of 7. 259 00:16:44,600 --> 00:16:48,110 The output of those two delays added together and multiplied 260 00:16:48,110 --> 00:16:55,310 by h of 0, and consequently, if we consider a chain of delays 261 00:16:55,310 --> 00:16:59,780 as I've drawn here, we have the output 262 00:16:59,780 --> 00:17:04,550 before we go through any delays added 263 00:17:04,550 --> 00:17:09,550 to the output from the seventh delay-- 264 00:17:09,550 --> 00:17:13,339 that's looking at this expression for n equal 0-- 265 00:17:13,339 --> 00:17:23,770 and the result of that summation multiplied by h of 0 266 00:17:23,770 --> 00:17:27,630 to form the first term in this sum. 267 00:17:27,630 --> 00:17:31,180 To form the next term in the sum for n equals 1, 268 00:17:31,180 --> 00:17:36,000 we have the output of one delay plus the output 269 00:17:36,000 --> 00:17:38,640 from the 7th minus 1th delay. 270 00:17:38,640 --> 00:17:40,680 That is the 6th delay. 271 00:17:40,680 --> 00:17:45,970 So we have this output, the output from the first delay, 272 00:17:45,970 --> 00:17:48,870 and this output, the output from the 6th delay. 273 00:17:51,550 --> 00:17:59,620 And now that is multiplied by h of 1 coefficient, which 274 00:17:59,620 --> 00:18:04,810 is h of 1, to form the next term in the sum. 275 00:18:04,810 --> 00:18:09,310 And if we go through the remaining terms in the sum, 276 00:18:09,310 --> 00:18:12,010 we have the output from the 2nd delay and the output 277 00:18:12,010 --> 00:18:16,520 from the 5th delay added together. 278 00:18:16,520 --> 00:18:20,940 That multiplied by h of 2. 279 00:18:20,940 --> 00:18:26,120 The output from the 3rd delay and the output 280 00:18:26,120 --> 00:18:30,990 from the 4th delay added together 281 00:18:30,990 --> 00:18:34,440 and that multiplied by h of 3. 282 00:18:34,440 --> 00:18:37,690 That forms the individual terms in this sum. 283 00:18:37,690 --> 00:18:41,260 And now we want finally to add those together. 284 00:18:41,260 --> 00:18:45,480 So we can simply add those together 285 00:18:45,480 --> 00:18:55,670 at their outputs to form the output y of n. 286 00:18:55,670 --> 00:19:00,070 So here is a structure which implements 287 00:19:00,070 --> 00:19:05,650 a finite impulse response system of order 8, or of length 8. 288 00:19:05,650 --> 00:19:08,080 It involves seven delays, which of course 289 00:19:08,080 --> 00:19:10,270 the direct form also involves. 290 00:19:10,270 --> 00:19:12,520 But the important aspect of it is 291 00:19:12,520 --> 00:19:16,600 that it involves only half the number of multiplies 292 00:19:16,600 --> 00:19:20,500 that the direct form would normally require. 293 00:19:20,500 --> 00:19:23,320 Taking advantage of the fact that it's a linear phase system 294 00:19:23,320 --> 00:19:26,500 then, we're able to implement the system 295 00:19:26,500 --> 00:19:28,160 with half the number of multiplies 296 00:19:28,160 --> 00:19:31,370 than would be required in general. 297 00:19:31,370 --> 00:19:33,550 All right, so this is one structure. 298 00:19:33,550 --> 00:19:37,750 I stress again that it's not the only structure for implementing 299 00:19:37,750 --> 00:19:39,490 a linear phase system. 300 00:19:39,490 --> 00:19:43,570 Clearly, we can generate another structure, linear phase 301 00:19:43,570 --> 00:19:47,380 structure, by simply applying the transposition theorem 302 00:19:47,380 --> 00:19:48,370 to this structure. 303 00:19:48,370 --> 00:19:51,550 And we would end up with a transposed configuration. 304 00:19:51,550 --> 00:19:53,900 And an example of that is shown in the text. 305 00:19:53,900 --> 00:19:55,520 I won't bother going through it. 306 00:19:55,520 --> 00:20:00,490 But the important aspect here is that we were able to exploit-- 307 00:20:00,490 --> 00:20:03,200 in the case a finite impulse response systems 308 00:20:03,200 --> 00:20:07,120 we're able to exploit the linear phase characteristics 309 00:20:07,120 --> 00:20:09,880 of the system, if we're talking about a system that 310 00:20:09,880 --> 00:20:10,630 is linear phase. 311 00:20:13,980 --> 00:20:20,840 The second structure that is peculiar to find an impulse 312 00:20:20,840 --> 00:20:26,660 response systems and in some instances has some advantages 313 00:20:26,660 --> 00:20:31,130 is a structure that is often referred to as a frequency 314 00:20:31,130 --> 00:20:32,870 sampling structure. 315 00:20:32,870 --> 00:20:35,870 The reason for that being that the coefficients 316 00:20:35,870 --> 00:20:40,490 in the structure correspond to samples of the frequency 317 00:20:40,490 --> 00:20:42,140 response of the system. 318 00:20:42,140 --> 00:20:43,580 And I'll indicate in a few minutes 319 00:20:43,580 --> 00:20:46,340 why that might be an advantage. 320 00:20:46,340 --> 00:20:50,000 But first let's look at what the specific structure 321 00:20:50,000 --> 00:20:52,690 is that's involved. 322 00:20:52,690 --> 00:20:55,900 A frequency sampling structure is 323 00:20:55,900 --> 00:21:02,700 derived by essentially implementing the system, 324 00:21:02,700 --> 00:21:05,940 or inquiry as to what the implementation would be, 325 00:21:05,940 --> 00:21:09,870 if we specify the system in terms, rather than of the unit 326 00:21:09,870 --> 00:21:15,510 sample response, of the discrete Fourier transform coefficients. 327 00:21:15,510 --> 00:21:20,910 We recall, and I hope that this is second nature to you by now, 328 00:21:20,910 --> 00:21:24,130 in general we have a unit sample response. 329 00:21:24,130 --> 00:21:26,380 This is a finite impulse response system. 330 00:21:26,380 --> 00:21:28,650 So this is a finite length sequence. 331 00:21:28,650 --> 00:21:32,730 So we can describe it in terms of it's discrete Fourier 332 00:21:32,730 --> 00:21:34,020 transform. 333 00:21:34,020 --> 00:21:36,420 And the discrete Fourier transform coefficients 334 00:21:36,420 --> 00:21:39,390 are referred to as h of k. 335 00:21:39,390 --> 00:21:42,780 Or we can describe it as we can describe 336 00:21:42,780 --> 00:21:46,560 almost all sequences in terms of its z transform, 337 00:21:46,560 --> 00:21:50,890 or a system in terms of its system function. 338 00:21:50,890 --> 00:21:54,030 The z transform is the sum of h of n times 339 00:21:54,030 --> 00:21:56,590 e to the minus, n as it always is. 340 00:21:56,590 --> 00:22:02,530 And the unit sample response can be 341 00:22:02,530 --> 00:22:05,740 expressed in terms of the discrete Fourier 342 00:22:05,740 --> 00:22:10,000 transform coefficients in terms of the sum of H 343 00:22:10,000 --> 00:22:13,510 of k W sub N to the minus n k. 344 00:22:13,510 --> 00:22:16,640 We have the 1/N out in front. 345 00:22:16,640 --> 00:22:21,400 And again, this term R sub capital N then 346 00:22:21,400 --> 00:22:26,170 to just simply truncate h of n after capital N points. 347 00:22:26,170 --> 00:22:30,250 That is to extract one period from the periodic function 348 00:22:30,250 --> 00:22:32,470 that this sum generates. 349 00:22:32,470 --> 00:22:37,770 Now, we can substitute h of n expressed 350 00:22:37,770 --> 00:22:44,850 in terms of its discrete Fourier transform into this expression. 351 00:22:44,850 --> 00:22:48,000 The R sub N of n will disappear because we're only 352 00:22:48,000 --> 00:22:51,730 summing from n equal 0 to capital N minus 1. 353 00:22:51,730 --> 00:22:56,040 And if we substitute this in here 354 00:22:56,040 --> 00:23:00,570 and interchange the order in which we evaluate the sums, 355 00:23:00,570 --> 00:23:02,940 then the resulting expression for the z 356 00:23:02,940 --> 00:23:05,760 transform for the system function 357 00:23:05,760 --> 00:23:12,510 is the sum from K equal 0 to N minus 1 of the DFT values. 358 00:23:12,510 --> 00:23:18,750 And this term and this term are involved in the sum on n. 359 00:23:18,750 --> 00:23:22,950 And they result in the sum from 0 to capital N minus 1 of z 360 00:23:22,950 --> 00:23:27,210 to the minus 1, W capital N to the minus k. 361 00:23:27,210 --> 00:23:29,910 That raised to the n-th power. 362 00:23:29,910 --> 00:23:32,370 Well, this is the kind of summation 363 00:23:32,370 --> 00:23:35,160 that we've been carrying out again and again, particularly 364 00:23:35,160 --> 00:23:38,400 in talking about finite length sequences. 365 00:23:38,400 --> 00:23:42,870 And hopefully, this is another kind of summation 366 00:23:42,870 --> 00:23:46,050 that by now you carry around in your hip pocket. 367 00:23:46,050 --> 00:23:49,035 It's the sum from 0 to capital N minus 1 368 00:23:49,035 --> 00:23:51,150 of something of the form alpha to the n, 369 00:23:51,150 --> 00:23:53,730 where the alpha happens to be that. 370 00:23:53,730 --> 00:24:01,996 And that sums up to 1 minus z to the minus capital N times-- 371 00:24:01,996 --> 00:24:06,320 let's see, 1 minus z to the minus capital N 372 00:24:06,320 --> 00:24:13,490 and actually W sub capital N to the minus k capital N. 373 00:24:13,490 --> 00:24:16,720 That is it sums up to this alpha raised 374 00:24:16,720 --> 00:24:22,190 to the capital N-th power divided by 1 minus W sub N 375 00:24:22,190 --> 00:24:25,980 to the minus k times z to the minus 1. 376 00:24:25,980 --> 00:24:31,340 Well, what does W sub capital N to any integer multiple 377 00:24:31,340 --> 00:24:32,870 of capital N? 378 00:24:32,870 --> 00:24:35,180 That's just simply equal to unity. 379 00:24:35,180 --> 00:24:37,320 So this term disappears. 380 00:24:37,320 --> 00:24:39,030 And we end up simply with 1 minus z 381 00:24:39,030 --> 00:24:42,770 to the minus n divided by this. 382 00:24:42,770 --> 00:24:46,970 All right, so combining this together, 383 00:24:46,970 --> 00:24:54,710 we can then express h of z as 1 minus z to the minus capital N, 384 00:24:54,710 --> 00:24:58,490 we have this 1/N, which we have to account for somehow, 385 00:24:58,490 --> 00:25:02,930 and then finally a sum from 0 to N minus 1 of H of k, 386 00:25:02,930 --> 00:25:05,095 divided by this factor. 387 00:25:07,740 --> 00:25:13,400 And so this is an expression for the z transform of the system, 388 00:25:13,400 --> 00:25:16,010 or the transfer function of the system, where 389 00:25:16,010 --> 00:25:18,530 the coefficients in that expression 390 00:25:18,530 --> 00:25:23,210 are the discrete Fourier transform values H of k. 391 00:25:23,210 --> 00:25:25,140 The discrete Fourier transform values, 392 00:25:25,140 --> 00:25:28,060 as we've stressed several times, in fact 393 00:25:28,060 --> 00:25:34,640 are samples on the unit circle of the z transform. 394 00:25:34,640 --> 00:25:39,110 So these coefficients, the H of k's are 395 00:25:39,110 --> 00:25:42,050 in effect samples of the frequency 396 00:25:42,050 --> 00:25:43,530 response of the system. 397 00:25:43,530 --> 00:25:46,610 In other words, they are frequency samples. 398 00:25:46,610 --> 00:25:49,910 And consequently, the structure that this implies 399 00:25:49,910 --> 00:25:55,330 is usually referred to as a frequency sampling structure. 400 00:25:55,330 --> 00:25:59,950 Well, let's look at what the specific structure is. 401 00:25:59,950 --> 00:26:04,060 We can view this as a cascade of the system that implements 402 00:26:04,060 --> 00:26:08,200 this term in cascade with the system that 403 00:26:08,200 --> 00:26:11,620 implements this summation. 404 00:26:11,620 --> 00:26:15,730 This term is simply implemented by a gain 405 00:26:15,730 --> 00:26:20,660 of unity in the forward direction, 406 00:26:20,660 --> 00:26:25,130 and then a gain of minus z to the minus capital N-- 407 00:26:25,130 --> 00:26:28,035 I happen to have the arrow here in the reverse direction, which 408 00:26:28,035 --> 00:26:28,535 is wrong. 409 00:26:31,140 --> 00:26:34,530 This is as an arrow, again, in the forward direction. 410 00:26:34,530 --> 00:26:37,590 That just simply implements the system, 1 minus z 411 00:26:37,590 --> 00:26:40,876 to the minus capital N. 412 00:26:40,876 --> 00:26:44,430 And that I guess makes enough of a mess out of it, 413 00:26:44,430 --> 00:26:47,940 so that hopefully you can at least see what 414 00:26:47,940 --> 00:26:49,770 direction that arrow goes in. 415 00:26:49,770 --> 00:26:53,070 This then implements that piece. 416 00:26:53,070 --> 00:26:56,220 To implement this sum, well, this sum 417 00:26:56,220 --> 00:27:00,550 implies a parallel combination of systems, 418 00:27:00,550 --> 00:27:03,960 each system implementing one of these pieces. 419 00:27:03,960 --> 00:27:07,320 So if we look at this, say, for k equal 0, 420 00:27:07,320 --> 00:27:12,764 we have a coefficient of 0 as I've indicated here and a pole. 421 00:27:12,764 --> 00:27:13,680 And where is the pole? 422 00:27:13,680 --> 00:27:19,290 Well, the pole for k equal 0 is at W sub N to the minus 0. 423 00:27:19,290 --> 00:27:22,440 For k equal to 1, it's at W sub N to the minus 1 424 00:27:22,440 --> 00:27:24,090 and on through. 425 00:27:24,090 --> 00:27:28,110 So the system that implements this sum is then 426 00:27:28,110 --> 00:27:32,670 a parallel combination of first order poles, 427 00:27:32,670 --> 00:27:35,730 where the coefficient in the feedback path 428 00:27:35,730 --> 00:27:38,800 is W sub N to the minus k. 429 00:27:38,800 --> 00:27:42,390 And the gain in the forward path, 430 00:27:42,390 --> 00:27:45,510 which can be placed either before or after the pole, 431 00:27:45,510 --> 00:27:48,990 are the frequency samples H of 0, H of 1, 432 00:27:48,990 --> 00:27:52,369 down through H of n minus 1. 433 00:27:52,369 --> 00:27:53,910 And then, of course, we have the gain 434 00:27:53,910 --> 00:27:57,150 of 1/N, which has to go someplace. 435 00:27:57,150 --> 00:28:02,090 And for now, let's just leave it at the end. 436 00:28:02,090 --> 00:28:05,090 I stress also that these, of course, 437 00:28:05,090 --> 00:28:11,870 are complex poles, because W sub N to an integer power 438 00:28:11,870 --> 00:28:13,670 is in general complex. 439 00:28:13,670 --> 00:28:15,590 We can, of course, redraw this structure 440 00:28:15,590 --> 00:28:19,550 by combining complex conjugate poles together. 441 00:28:19,550 --> 00:28:24,570 And the structure that results is indicated in the text. 442 00:28:24,570 --> 00:28:26,720 I won't bother to do that here. 443 00:28:26,720 --> 00:28:30,110 But there are a couple of points about this structure that I'd 444 00:28:30,110 --> 00:28:33,960 like to draw your attention to. 445 00:28:33,960 --> 00:28:37,710 First of all, we started with a finite impulse response system. 446 00:28:40,330 --> 00:28:44,140 Obviously, we've ended up with a finite impulse response system. 447 00:28:44,140 --> 00:28:49,150 But the system appears to have some poles in it. 448 00:28:49,150 --> 00:28:51,460 That is its a recursive structure, 449 00:28:51,460 --> 00:28:55,150 and it has in fact capital N poles 450 00:28:55,150 --> 00:28:58,630 involved in the implementation, although presumably 451 00:28:58,630 --> 00:29:03,140 the overall system function has only zeros. 452 00:29:03,140 --> 00:29:06,290 Well, how can that be? 453 00:29:06,290 --> 00:29:11,100 Very simply because if you look at this term, 454 00:29:11,100 --> 00:29:16,330 this term has capital N zeros equally distributed 455 00:29:16,330 --> 00:29:19,870 around the unit circle in angle. 456 00:29:19,870 --> 00:29:23,980 And in fact, a zero is occurring exactly 457 00:29:23,980 --> 00:29:27,310 at the location where each of these poles occur. 458 00:29:27,310 --> 00:29:32,890 So that, in fact, this piece in cascade with this 459 00:29:32,890 --> 00:29:37,870 cancels out this feedback loop, or this pole simply 460 00:29:37,870 --> 00:29:42,130 cancels out one of the zeros from this term. 461 00:29:42,130 --> 00:29:45,220 This one cancels out another zero and on down 462 00:29:45,220 --> 00:29:46,630 through the chain. 463 00:29:46,630 --> 00:29:50,680 So in the overall system function, there are no poles. 464 00:29:50,680 --> 00:29:52,330 There are only zeros. 465 00:29:52,330 --> 00:29:55,930 And what happens in effect is that these poles 466 00:29:55,930 --> 00:29:58,870 are used to cancel out different zeros appearing 467 00:29:58,870 --> 00:30:00,790 in this first path. 468 00:30:00,790 --> 00:30:02,650 That suggests one of the problems, 469 00:30:02,650 --> 00:30:05,440 in fact, with the frequency sampling structure 470 00:30:05,440 --> 00:30:11,500 because it requires poles, as I've drawn it here actually 471 00:30:11,500 --> 00:30:13,570 on the unit circle-- 472 00:30:13,570 --> 00:30:15,860 in an actual implementation obviously 473 00:30:15,860 --> 00:30:18,250 that would be slightly of the unit circle-- 474 00:30:18,250 --> 00:30:21,400 but it involves implementing poles 475 00:30:21,400 --> 00:30:25,530 to cancel out the zeros appearing in this term 1 minus 476 00:30:25,530 --> 00:30:27,400 z to the minus n. 477 00:30:27,400 --> 00:30:32,540 And that has some drawbacks from a number of points of view. 478 00:30:32,540 --> 00:30:34,720 In fact, it has some drawbacks-- 479 00:30:34,720 --> 00:30:36,640 we won't analyze this, but it turns out 480 00:30:36,640 --> 00:30:39,970 to be true that due to finite register 481 00:30:39,970 --> 00:30:42,670 length effects there are some drawbacks. 482 00:30:42,670 --> 00:30:45,400 But there are also some advantages 483 00:30:45,400 --> 00:30:47,870 to this kind of structure. 484 00:30:47,870 --> 00:30:51,370 And the advantages in some situations 485 00:30:51,370 --> 00:30:54,580 outweigh the disadvantage, the main disadvantage, 486 00:30:54,580 --> 00:30:58,870 of canceling out zeros with poles or poles with zeroes. 487 00:30:58,870 --> 00:31:01,660 One of the first advantages is that the coefficients 488 00:31:01,660 --> 00:31:06,770 that are involved involve frequency samples. 489 00:31:06,770 --> 00:31:12,130 Now, in many situations what we would like to implement 490 00:31:12,130 --> 00:31:16,360 is a system in which perhaps a large number of the frequency 491 00:31:16,360 --> 00:31:19,180 samples happen to be zero. 492 00:31:19,180 --> 00:31:21,010 Imagine for example, implementing 493 00:31:21,010 --> 00:31:25,420 a very narrow band, low pass or bandpass, filter 494 00:31:25,420 --> 00:31:28,270 and specifying the filter in such a way 495 00:31:28,270 --> 00:31:32,260 that the frequency samples in-band are non-zero 496 00:31:32,260 --> 00:31:36,340 and the frequency samples out of band are equal to zero. 497 00:31:36,340 --> 00:31:39,280 In that case, most of the coefficients 498 00:31:39,280 --> 00:31:42,280 are coefficients which are zero coefficients. 499 00:31:42,280 --> 00:31:45,580 And consequently, there will be only a few of these paths 500 00:31:45,580 --> 00:31:49,540 that we have to implement, so that in that situation 501 00:31:49,540 --> 00:31:54,130 where perhaps a large number of frequency samples are zero-- 502 00:31:54,130 --> 00:31:57,640 in fact, the number of multiplications involved 503 00:31:57,640 --> 00:32:01,180 in implementing the system, and in fact, the number of delays 504 00:32:01,180 --> 00:32:03,550 involved in implementing the system, 505 00:32:03,550 --> 00:32:07,270 might be significantly reduced. 506 00:32:07,270 --> 00:32:11,290 Another advantage to a frequency sampling structure 507 00:32:11,290 --> 00:32:17,590 is the fact that it is basically a parallel form structure. 508 00:32:17,590 --> 00:32:22,330 And that can be exploited in terms of implementation 509 00:32:22,330 --> 00:32:26,830 of a large number of filters, or in terms of the implementation 510 00:32:26,830 --> 00:32:28,510 of a filter bank. 511 00:32:28,510 --> 00:32:33,410 Let me state more specifically what I mean by that. 512 00:32:33,410 --> 00:32:38,980 In this system function, this piece and this piece, 513 00:32:38,980 --> 00:32:43,150 except for the H of k's, are tied only to the fact 514 00:32:43,150 --> 00:32:45,430 that the unit sample response of the system 515 00:32:45,430 --> 00:32:50,120 is of length capital N. So that if I implement 516 00:32:50,120 --> 00:32:54,960 a large number of systems whose impulse response is of length 517 00:32:54,960 --> 00:33:00,410 capital N, the systems will look identical from the input 518 00:33:00,410 --> 00:33:04,970 up to the point where I do the multiplication by the frequency 519 00:33:04,970 --> 00:33:06,740 samples. 520 00:33:06,740 --> 00:33:09,800 Consequently, if I were to implement a large number of 521 00:33:09,800 --> 00:33:12,230 filters simultaneously. 522 00:33:12,230 --> 00:33:16,640 I can use in common for all of those systems 523 00:33:16,640 --> 00:33:19,550 the part of this structure from the input 524 00:33:19,550 --> 00:33:23,510 to the output of the poles. 525 00:33:23,510 --> 00:33:26,390 And then simply draw off those outputs, 526 00:33:26,390 --> 00:33:30,320 multiply by the required frequency samples, 527 00:33:30,320 --> 00:33:33,860 sum the outputs, and that implements the filter. 528 00:33:33,860 --> 00:33:37,100 Consequently, I'm able to share among all 529 00:33:37,100 --> 00:33:39,770 of the filters in the filter bank 530 00:33:39,770 --> 00:33:45,590 these delays, these delays, and the multiplications by powers 531 00:33:45,590 --> 00:33:49,640 of W. And the only additional coefficients 532 00:33:49,640 --> 00:33:53,000 and the only additional pieces that come in that 533 00:33:53,000 --> 00:33:55,580 differ between the filters and the filter bank 534 00:33:55,580 --> 00:33:59,620 are the coefficients that I multiply these outputs by. 535 00:33:59,620 --> 00:34:01,520 I need to multiply by the coefficients 536 00:34:01,520 --> 00:34:04,070 and then form the linear combination. 537 00:34:04,070 --> 00:34:10,010 So that then are the two primary advantages to frequency 538 00:34:10,010 --> 00:34:11,630 sampling structures. 539 00:34:11,630 --> 00:34:14,000 And in fact, frequency sampling structures 540 00:34:14,000 --> 00:34:18,010 have found application primarily for those two reasons. 541 00:34:21,060 --> 00:34:27,000 Well, there are lots of other structures 542 00:34:27,000 --> 00:34:30,750 that one can talk about, both for a finite impulse 543 00:34:30,750 --> 00:34:34,330 response an infinite impulse response systems. 544 00:34:34,330 --> 00:34:37,380 And as I stressed at the end of the last lecture, 545 00:34:37,380 --> 00:34:40,230 the discussion of structures in general 546 00:34:40,230 --> 00:34:45,989 and the kinds of structures that can be generated is very vast. 547 00:34:45,989 --> 00:34:51,179 In fact, it seems that new structures are generated faster 548 00:34:51,179 --> 00:34:53,610 than they can be evaluated. 549 00:34:53,610 --> 00:34:57,480 And I would like to terminate the discussion 550 00:34:57,480 --> 00:35:01,470 of specific structures with just the ones that I've shown you 551 00:35:01,470 --> 00:35:04,800 in the previous lecture and the ones 552 00:35:04,800 --> 00:35:07,050 that I've shown for finite impulse response systems 553 00:35:07,050 --> 00:35:09,440 in this lecture. 554 00:35:09,440 --> 00:35:13,280 To conclude that discussion of digital networks 555 00:35:13,280 --> 00:35:15,950 and digital filter structures, I'd 556 00:35:15,950 --> 00:35:19,310 like to focus finally on just a few 557 00:35:19,310 --> 00:35:22,490 of the issues, one primarily, involved 558 00:35:22,490 --> 00:35:25,940 in the comparison of filter structures. 559 00:35:25,940 --> 00:35:28,790 Now we've talked about different structures. 560 00:35:28,790 --> 00:35:31,250 One of the things that obviously is true 561 00:35:31,250 --> 00:35:34,400 is that from a strictly mathematical point of view, 562 00:35:34,400 --> 00:35:37,520 all of these structures, different ways of implementing 563 00:35:37,520 --> 00:35:40,340 the same transfer function, obviously 564 00:35:40,340 --> 00:35:42,980 implement the same transfer function. 565 00:35:42,980 --> 00:35:46,670 That is algebraically or theoretically, 566 00:35:46,670 --> 00:35:51,110 all of the structures from an input output point of view 567 00:35:51,110 --> 00:35:52,670 are indistinguishable. 568 00:35:52,670 --> 00:35:56,820 In other words, they generate the same transfer function. 569 00:35:56,820 --> 00:35:58,610 On the other hand, there are a variety 570 00:35:58,610 --> 00:36:02,060 of issues when one considers the practical implementation 571 00:36:02,060 --> 00:36:08,900 of digital filters that have to be considered in choosing 572 00:36:08,900 --> 00:36:11,330 different filter structures. 573 00:36:11,330 --> 00:36:15,620 One of them I suggested last time to be the number of delays 574 00:36:15,620 --> 00:36:16,160 involved. 575 00:36:16,160 --> 00:36:19,970 And we saw the difference between non-canonic and canonic 576 00:36:19,970 --> 00:36:22,460 form structures. 577 00:36:22,460 --> 00:36:23,960 Delays mean registers. 578 00:36:23,960 --> 00:36:26,450 And registers mean hardware. 579 00:36:26,450 --> 00:36:28,400 In talking about linear phase filters, 580 00:36:28,400 --> 00:36:32,420 we saw that if we exploit the linear phase property, then 581 00:36:32,420 --> 00:36:34,670 we can reduce the number of multiplications 582 00:36:34,670 --> 00:36:36,860 involved by half. 583 00:36:36,860 --> 00:36:42,140 And multiplications, again, mean hardware or speed or something 584 00:36:42,140 --> 00:36:45,840 of that sort in terms of the implementation. 585 00:36:45,840 --> 00:36:47,870 Another common characteristic that 586 00:36:47,870 --> 00:36:50,900 can be focused on in comparing structures 587 00:36:50,900 --> 00:36:54,350 is what you could refer to as modularity. 588 00:36:54,350 --> 00:36:57,050 It's particularly important in hardware implementation 589 00:36:57,050 --> 00:36:59,780 of digital filters, where perhaps you 590 00:36:59,780 --> 00:37:04,370 would like your structure to have stages in it that 591 00:37:04,370 --> 00:37:08,570 are identical, so that the implications in terms 592 00:37:08,570 --> 00:37:11,930 of the hardware are that a section or sections can 593 00:37:11,930 --> 00:37:16,910 be multiplexed and therefore used over and over again. 594 00:37:16,910 --> 00:37:20,510 And another issue, which is the one 595 00:37:20,510 --> 00:37:23,450 that I'd like to direct our attention to finally 596 00:37:23,450 --> 00:37:27,140 are the effect of finite register 597 00:37:27,140 --> 00:37:31,640 length on the characteristics of the system. 598 00:37:31,640 --> 00:37:35,110 And these characteristics, or the finite register length 599 00:37:35,110 --> 00:37:39,260 effects, in fact, are very heavily dependent on the filter 600 00:37:39,260 --> 00:37:41,720 structures that are used. 601 00:37:41,720 --> 00:37:44,780 There are two kinds of finite register length effects. 602 00:37:44,780 --> 00:37:47,330 One of them has to do with the fact 603 00:37:47,330 --> 00:37:52,220 that arithmetic in a digital filter, 604 00:37:52,220 --> 00:37:55,610 specifically in a recursive digital filter, 605 00:37:55,610 --> 00:37:58,880 has to be done, of course, with finite register length, 606 00:37:58,880 --> 00:38:00,980 and it has to be truncated. 607 00:38:00,980 --> 00:38:05,540 In other words, multiplications, the result of B bits times B 608 00:38:05,540 --> 00:38:07,730 bits results in 2B bits. 609 00:38:07,730 --> 00:38:11,060 If this goes on indefinitely, obviously the register length 610 00:38:11,060 --> 00:38:12,710 grows indefinitely. 611 00:38:12,710 --> 00:38:18,680 And so the results of arithmetic have 612 00:38:18,680 --> 00:38:20,630 to be truncated or rounded. 613 00:38:20,630 --> 00:38:24,230 And this generates some noise or essentially 614 00:38:24,230 --> 00:38:27,230 noise in the filter output. 615 00:38:27,230 --> 00:38:31,700 And the second thing is the fact that coefficients 616 00:38:31,700 --> 00:38:35,480 have to be represented in finite register length. 617 00:38:35,480 --> 00:38:37,760 That is coefficients or parameters 618 00:38:37,760 --> 00:38:39,410 have to be truncated. 619 00:38:39,410 --> 00:38:42,230 What I would like to do in closing the lecture 620 00:38:42,230 --> 00:38:45,410 is just briefly give you a glimpse 621 00:38:45,410 --> 00:38:49,730 into some of the issues of the coefficient, or parameter, 622 00:38:49,730 --> 00:38:55,640 quantization and not delve any in any more detail 623 00:38:55,640 --> 00:38:59,870 into the relatively complex issue of finite register length 624 00:38:59,870 --> 00:39:01,130 effects. 625 00:39:01,130 --> 00:39:05,540 But let's focus just a little bit, just a little, 626 00:39:05,540 --> 00:39:10,720 on the effects of parameter quantization. 627 00:39:10,720 --> 00:39:14,650 In particular, we have, of course, the general form 628 00:39:14,650 --> 00:39:18,850 for a system function as a ratio of polynomials in z 629 00:39:18,850 --> 00:39:23,500 to the minus 1, where the denominator polynomial, 630 00:39:23,500 --> 00:39:25,630 as we've been writing it, is of the form 631 00:39:25,630 --> 00:39:31,820 1 minus the sum of a sub k times z to the minus k. 632 00:39:31,820 --> 00:39:36,260 Well, let's imagine that what we would like to do 633 00:39:36,260 --> 00:39:42,830 or that it's reasonable to tie the investigation of H of z 634 00:39:42,830 --> 00:39:48,620 in terms of parameter errors to the accuracy, with which 635 00:39:48,620 --> 00:39:52,800 the poles of the transfer function can be placed. 636 00:39:52,800 --> 00:39:57,740 We can express this polynomial, the denominator polynomial, 637 00:39:57,740 --> 00:40:01,260 in factored form, where, of course, each of the factors 638 00:40:01,260 --> 00:40:06,000 involves the poles of the system explicitly. 639 00:40:06,000 --> 00:40:10,210 And now as we talk about implementing this system, 640 00:40:10,210 --> 00:40:14,220 the coefficients in the denominator polynomial, 641 00:40:14,220 --> 00:40:17,370 and in the numerator polynomial also, 642 00:40:17,370 --> 00:40:21,420 have errors due to the fact that they have to be represented 643 00:40:21,420 --> 00:40:23,980 in a finite register length. 644 00:40:23,980 --> 00:40:29,920 So we can represent that as the coefficient that we actually 645 00:40:29,920 --> 00:40:32,800 arrive at is the coefficient that we really 646 00:40:32,800 --> 00:40:35,800 want plus some error. 647 00:40:35,800 --> 00:40:38,800 And consequently, the pole location, 648 00:40:38,800 --> 00:40:41,920 the location of each of the poles, the i-th pole, 649 00:40:41,920 --> 00:40:48,880 for example, is where we want it plus some deviation. 650 00:40:48,880 --> 00:40:51,750 Now, we can examine what this deviation 651 00:40:51,750 --> 00:40:58,080 is by essentially assuming that the variation 652 00:40:58,080 --> 00:41:01,590 in these parameters is small. 653 00:41:01,590 --> 00:41:05,070 And expressing this error in terms 654 00:41:05,070 --> 00:41:10,470 of the partial derivatives of the pole locations expressed 655 00:41:10,470 --> 00:41:13,320 in terms of the coefficients a sub k. 656 00:41:13,320 --> 00:41:17,340 In other words, we can express the movement 657 00:41:17,340 --> 00:41:23,220 of the pole in terms of the movement of the coefficients 658 00:41:23,220 --> 00:41:26,730 as a sum of the partial derivative 659 00:41:26,730 --> 00:41:30,262 of the pole, the i-th pole-- that's 660 00:41:30,262 --> 00:41:32,220 the one we're talking about here-- with respect 661 00:41:32,220 --> 00:41:35,070 to the k-th coefficient times the error 662 00:41:35,070 --> 00:41:37,810 in the k-th coefficient. 663 00:41:37,810 --> 00:41:39,540 Well, this can be tracked through-- 664 00:41:39,540 --> 00:41:40,950 and this is done in the text. 665 00:41:40,950 --> 00:41:42,750 I won't go through the algebra-- 666 00:41:42,750 --> 00:41:47,790 but basically, the result is that this partial derivative 667 00:41:47,790 --> 00:41:51,450 can be expressed in this form where the important thing 668 00:41:51,450 --> 00:41:55,680 to focus on is that what's involved in the denominator 669 00:41:55,680 --> 00:42:01,390 is the product of the difference in the pole locations. 670 00:42:01,390 --> 00:42:04,530 Let's assume, for example, that all of the poles 671 00:42:04,530 --> 00:42:09,450 are clustered inside a circle of radius epsilon. 672 00:42:09,450 --> 00:42:12,600 In other words, the largest distance between the poles 673 00:42:12,600 --> 00:42:14,780 is epsilon. 674 00:42:14,780 --> 00:42:20,010 What that says then is that when we substitute that 675 00:42:20,010 --> 00:42:23,760 in for this expression, the absolute value 676 00:42:23,760 --> 00:42:28,380 of the change in the pole location with respect 677 00:42:28,380 --> 00:42:34,110 to a change in the coefficient has in the denominator epsilon 678 00:42:34,110 --> 00:42:36,220 raised to the n-th power. 679 00:42:36,220 --> 00:42:38,000 Well, what does that mean? 680 00:42:38,000 --> 00:42:43,280 What it means is that if the poles are clustered 681 00:42:43,280 --> 00:42:48,000 within a radius within a circle of radius epsilon, 682 00:42:48,000 --> 00:42:53,260 for any given pole the higher the order of the polynomial 683 00:42:53,260 --> 00:42:55,680 that we use to implement the pole, 684 00:42:55,680 --> 00:42:59,400 the greater the sensitivity of the pole location with respect 685 00:42:59,400 --> 00:43:00,990 to the coefficient. 686 00:43:00,990 --> 00:43:05,790 So this says that if we implement 687 00:43:05,790 --> 00:43:07,980 the poles of the system, or when we implement 688 00:43:07,980 --> 00:43:10,530 the poles of the system, it obviously 689 00:43:10,530 --> 00:43:15,630 is better to implement the poles through a lower order 690 00:43:15,630 --> 00:43:19,591 polynomial rather than through a higher order polynomial. 691 00:43:19,591 --> 00:43:21,340 What does this mean in terms of the filter 692 00:43:21,340 --> 00:43:23,410 structures we've been talking about? 693 00:43:23,410 --> 00:43:26,920 It means basically that the direct form structures are 694 00:43:26,920 --> 00:43:32,500 the most sensitive, that the cascade form structures are 695 00:43:32,500 --> 00:43:36,370 certainly less sensitive than the direct form structure, 696 00:43:36,370 --> 00:43:38,950 and the parallel form structure in terms 697 00:43:38,950 --> 00:43:41,260 of the implementation of the poles 698 00:43:41,260 --> 00:43:43,360 have the same type of hypersensitivity 699 00:43:43,360 --> 00:43:45,850 as the cascade form and likewise are less 700 00:43:45,850 --> 00:43:49,450 sensitive than the direct form. 701 00:43:49,450 --> 00:43:53,180 Even in the cascade form structure, 702 00:43:53,180 --> 00:43:55,300 though, there's some flexibility. 703 00:43:55,300 --> 00:43:59,650 And there are some issues with regard to how 704 00:43:59,650 --> 00:44:01,330 the poles are implemented. 705 00:44:01,330 --> 00:44:05,470 And let me close the lecture by just giving you 706 00:44:05,470 --> 00:44:09,310 some indication of what some of the-- in particular what two 707 00:44:09,310 --> 00:44:11,067 of the possibilities might be. 708 00:44:17,040 --> 00:44:22,380 Based on the discussion that we've just gone through, 709 00:44:22,380 --> 00:44:26,520 the indication is that we would want to implement, 710 00:44:26,520 --> 00:44:29,130 or it might be it advantageous from the point of view 711 00:44:29,130 --> 00:44:35,010 of parameter quantization, to implement a system as a cascade 712 00:44:35,010 --> 00:44:38,940 or parallel combination of first or second order sections. 713 00:44:38,940 --> 00:44:41,760 And let's make them second order sections. 714 00:44:41,760 --> 00:44:45,540 Let's look once again at the implementation 715 00:44:45,540 --> 00:44:49,090 of a simple second order pole pair. 716 00:44:49,090 --> 00:44:52,140 I've neglected the implementation of the zeros. 717 00:44:52,140 --> 00:44:54,630 But clearly the point that I'm about to make 718 00:44:54,630 --> 00:44:57,270 extends also for the implementation 719 00:44:57,270 --> 00:44:59,970 of two poles and two zeros. 720 00:44:59,970 --> 00:45:03,270 Here, I have implemented in what we 721 00:45:03,270 --> 00:45:07,680 had referred to as direct form, a second order section which 722 00:45:07,680 --> 00:45:11,220 we might use in a cascade form or parallel form 723 00:45:11,220 --> 00:45:16,140 realization, which implements the complex pole 724 00:45:16,140 --> 00:45:22,790 pair at radius r, an angle plus, and minus theta. 725 00:45:22,790 --> 00:45:26,980 In the actual implementation of a cascade or parallel form 726 00:45:26,980 --> 00:45:30,730 structure using a second order section of this form, 727 00:45:30,730 --> 00:45:33,730 it is these coefficients that are 728 00:45:33,730 --> 00:45:39,140 quantized to fit within a finite register length. 729 00:45:39,140 --> 00:45:41,060 We see then that the quantization 730 00:45:41,060 --> 00:45:45,080 of the coefficients for this particular network form 731 00:45:45,080 --> 00:45:48,800 corresponds to quantizing the parameter r squared 732 00:45:48,800 --> 00:45:53,850 and quantizing the parameter 2r cosine theta. 733 00:45:53,850 --> 00:46:00,640 What this implies in the z-plane is that for, let's say, 734 00:46:00,640 --> 00:46:03,720 a choice of register length for this particular case 735 00:46:03,720 --> 00:46:09,920 equal to 3, for 3-bit register length, the pole 736 00:46:09,920 --> 00:46:14,140 locations which can be implemented with that system 737 00:46:14,140 --> 00:46:18,700 are restricted to fall at the intersection of the grid points 738 00:46:18,700 --> 00:46:22,000 that I've indicated here due to the fact 739 00:46:22,000 --> 00:46:26,050 that quantization of the parameter r cosine theta 740 00:46:26,050 --> 00:46:31,900 implies that we must lie along lines equally spaced 741 00:46:31,900 --> 00:46:33,980 along the horizontal axis. 742 00:46:33,980 --> 00:46:37,630 Recall that r cosine theta is just the real part of the pole 743 00:46:37,630 --> 00:46:39,190 location. 744 00:46:39,190 --> 00:46:41,100 And quantization of the parameter r 745 00:46:41,100 --> 00:46:45,310 squared corresponds to the requirement 746 00:46:45,310 --> 00:46:48,880 that the poles must lie along circles, 747 00:46:48,880 --> 00:46:53,260 which are spaced according to the quantization of r square. 748 00:46:53,260 --> 00:46:57,760 So the realizable pole positions with a second order section 749 00:46:57,760 --> 00:47:02,890 in the form that I indicated on the previous slide 750 00:47:02,890 --> 00:47:06,880 are given by the constellation, or by the intersection 751 00:47:06,880 --> 00:47:11,150 of the grid points, that we have shown here. 752 00:47:11,150 --> 00:47:17,810 Another possible implementation for a second order pole pair 753 00:47:17,810 --> 00:47:22,040 is the so-called coupled form implementation. 754 00:47:22,040 --> 00:47:25,760 I won't justify here by inspection 755 00:47:25,760 --> 00:47:30,560 that the transfer function is given by the same expression as 756 00:47:30,560 --> 00:47:34,190 for the direct form structure that I showed previously, 757 00:47:34,190 --> 00:47:35,970 but, in fact, it is. 758 00:47:35,970 --> 00:47:38,970 And the poles in this case fall at, 759 00:47:38,970 --> 00:47:42,290 again, are equal to e to the j theta and r 760 00:47:42,290 --> 00:47:44,516 e to the minus j theta. 761 00:47:44,516 --> 00:47:50,720 But now, the coefficients we see are r cosine theta and r sine 762 00:47:50,720 --> 00:47:51,850 theta. 763 00:47:51,850 --> 00:47:57,340 Quantization of r cosine theta implies, as it did previously, 764 00:47:57,340 --> 00:48:00,590 that the poles must lie along lines equally spaced 765 00:48:00,590 --> 00:48:02,390 along the horizontal axis. 766 00:48:02,390 --> 00:48:04,910 Quantization of r sine theta implies 767 00:48:04,910 --> 00:48:08,390 that the poles must line along lines equally spaced 768 00:48:08,390 --> 00:48:11,270 along the vertical, or imaginary, axes. 769 00:48:11,270 --> 00:48:18,080 And so for that case, the choice of realizable pole positions 770 00:48:18,080 --> 00:48:21,920 are governed by the constellation of grid points 771 00:48:21,920 --> 00:48:23,840 that I've indicated here. 772 00:48:23,840 --> 00:48:29,510 So this is just simply, this last issue, 773 00:48:29,510 --> 00:48:32,870 is just simply an introduction to the fact 774 00:48:32,870 --> 00:48:37,310 that even given the notion that the cascade form structure is 775 00:48:37,310 --> 00:48:39,620 better than the direct form structure, 776 00:48:39,620 --> 00:48:43,610 there are additional issues involved in specifically 777 00:48:43,610 --> 00:48:48,590 how to implement a pole pair, or a pole zero combination 778 00:48:48,590 --> 00:48:52,990 in order to account for parameter quantization effects. 779 00:48:52,990 --> 00:48:55,510 There are lots of remaining issues, 780 00:48:55,510 --> 00:48:57,640 as you'll see in the text, related 781 00:48:57,640 --> 00:49:01,300 to both the issues of digital filter structures 782 00:49:01,300 --> 00:49:06,380 and the effects of parameter and arithmetic finite register 783 00:49:06,380 --> 00:49:08,570 length effects, which we won't be going 784 00:49:08,570 --> 00:49:10,740 into in this set of lectures. 785 00:49:10,740 --> 00:49:14,720 But you should at least be aware be aware of their existence. 786 00:49:14,720 --> 00:49:17,840 In the next several lectures, we'll 787 00:49:17,840 --> 00:49:21,350 begin on a new topic, namely a discussion 788 00:49:21,350 --> 00:49:25,610 of some of the issues involved in the design 789 00:49:25,610 --> 00:49:27,090 of digital filters. 790 00:49:27,090 --> 00:49:27,820 Thank you. 791 00:49:27,820 --> 00:49:31,170 [MUSIC PLAYING]