1 00:00:00,040 --> 00:00:02,470 The following content is provided under a Creative 2 00:00:02,470 --> 00:00:03,880 Commons license. 3 00:00:03,880 --> 00:00:06,920 Your support will help MIT OpenCourseWare continue to 4 00:00:06,920 --> 00:00:10,570 offer high quality educational resources for free. 5 00:00:10,570 --> 00:00:13,470 To make a donation or view additional materials from 6 00:00:13,470 --> 00:00:19,290 hundreds of MIT courses, visit MIT OpenCourseWare at 7 00:00:19,290 --> 00:00:20,540 ocw.mit.edu. 8 00:00:55,941 --> 00:00:58,330 ALAN V. OPPENHEIM: Last time, we introduced the notion of 9 00:00:58,330 --> 00:01:01,120 mapping continuous time filters to discrete time 10 00:01:01,120 --> 00:01:06,150 filters, and we developed impulse invariance as one 11 00:01:06,150 --> 00:01:10,470 useful technique for carrying out that type of mapping. 12 00:01:10,470 --> 00:01:15,520 What I'd like to do in this lecture is illustrate impulse 13 00:01:15,520 --> 00:01:19,600 invariance as a design procedure in the context of 14 00:01:19,600 --> 00:01:24,900 one specific class of filters, namely Butterworth filters. 15 00:01:24,900 --> 00:01:29,790 And then following that, we'll proceed on to discuss another 16 00:01:29,790 --> 00:01:33,610 very important and useful mapping or design procedure 17 00:01:33,610 --> 00:01:36,810 referred to as the bilinear transformation. 18 00:01:36,810 --> 00:01:42,020 So to begin, let me just discuss briefly what the class 19 00:01:42,020 --> 00:01:44,580 of Butterworth filters is. 20 00:01:44,580 --> 00:01:49,720 And specifically, the Butterworth filters are 21 00:01:49,720 --> 00:01:52,710 defined through their frequency 22 00:01:52,710 --> 00:01:54,390 response or transfer function. 23 00:01:54,390 --> 00:01:58,530 And I'm using capital B to denote a Butterworth filter. 24 00:01:58,530 --> 00:02:01,080 And by definition, the magnitude squared of the 25 00:02:01,080 --> 00:02:04,020 frequency response of a Butterworth filter is given by 26 00:02:04,020 --> 00:02:05,310 this expression. 27 00:02:05,310 --> 00:02:09,750 And for example, if N were equal to 1, then this would 28 00:02:09,750 --> 00:02:13,350 simply correspond to the magnitude squared of the 29 00:02:13,350 --> 00:02:18,130 frequency response for a first order differential equation. 30 00:02:18,130 --> 00:02:23,790 Now if you look at the frequency response, B of omega 31 00:02:23,790 --> 00:02:25,930 for this class of filters-- 32 00:02:25,930 --> 00:02:28,610 I've illustrated that below-- 33 00:02:28,610 --> 00:02:35,370 and what we see is that the frequency response starts at 34 00:02:35,370 --> 00:02:39,110 unity, because that's the way that it's normalized, and it 35 00:02:39,110 --> 00:02:42,730 has a monotonic characteristic in the pass band 36 00:02:42,730 --> 00:02:44,820 and in the stop band. 37 00:02:44,820 --> 00:02:49,340 At a frequency equal to the parameter omega sub c, up 38 00:02:49,340 --> 00:02:52,800 here, which is referred to as the cutoff frequency, the 39 00:02:52,800 --> 00:02:56,480 Butterworth filter frequency response always goes through 40 00:02:56,480 --> 00:03:00,100 the same point, namely 0.707. 41 00:03:00,100 --> 00:03:04,130 And as the order of the Butterworth filter, capital N, 42 00:03:04,130 --> 00:03:11,220 increases, the transition from the pass band to the stop band 43 00:03:11,220 --> 00:03:12,780 becomes sharper and sharper. 44 00:03:12,780 --> 00:03:16,320 So for higher order filters, then, the frequency response 45 00:03:16,320 --> 00:03:20,810 is flatter in the pass band and drops off more quickly, 46 00:03:20,810 --> 00:03:24,950 and attenuates more in the stop band. 47 00:03:24,950 --> 00:03:29,520 Now in designing Butterworth filters, what we want to look 48 00:03:29,520 --> 00:03:36,060 at is the location of the poles of the system function. 49 00:03:36,060 --> 00:03:40,780 And we can infer those from our definition of what the 50 00:03:40,780 --> 00:03:44,050 frequency response for the Butterworth filter is. 51 00:03:44,050 --> 00:03:48,760 In particular, we have this expression for the magnitude 52 00:03:48,760 --> 00:03:51,190 squared of the frequency response. 53 00:03:51,190 --> 00:03:58,170 And we recognize that, of course, as B of j omega times 54 00:03:58,170 --> 00:04:03,240 B of minus j omega, that's what the magnitude squared 55 00:04:03,240 --> 00:04:04,910 will be equal to. 56 00:04:04,910 --> 00:04:10,110 And in order to convert this to an expression describing 57 00:04:10,110 --> 00:04:13,110 the system function, or in terms of the more general 58 00:04:13,110 --> 00:04:18,000 Laplace transform variable s, what we recognize is that j 59 00:04:18,000 --> 00:04:23,005 omega, in the more general setting, simply corresponds to 60 00:04:23,005 --> 00:04:25,860 the Laplace transform variable s. 61 00:04:25,860 --> 00:04:32,440 So this product, in fact, is the Laplace transform for s 62 00:04:32,440 --> 00:04:34,070 equal to j omega. 63 00:04:34,070 --> 00:04:38,970 More generally, then, this is the result of evaluating B of 64 00:04:38,970 --> 00:04:42,830 s times B of minus s at s equals j omega. 65 00:04:42,830 --> 00:04:48,060 Consequently, comparing this expression with this statement 66 00:04:48,060 --> 00:04:52,490 leads us to the conclusion that the transfer function B 67 00:04:52,490 --> 00:04:57,730 of s of the Butterworth filter, times B of minus s, is 68 00:04:57,730 --> 00:05:01,250 given by the expression that I indicate here, simply 69 00:05:01,250 --> 00:05:05,490 replacing j omega by s. 70 00:05:05,490 --> 00:05:10,540 Now what we want to look at are the poles of B of s. 71 00:05:10,540 --> 00:05:14,200 That's what we'll want to get as we design 72 00:05:14,200 --> 00:05:15,870 a Butterworth filter. 73 00:05:15,870 --> 00:05:21,520 And we can recognize the poles of this product simply by 74 00:05:21,520 --> 00:05:24,470 looking at the roots of the denominative polynomial. 75 00:05:24,470 --> 00:05:26,740 And those roots are-- 76 00:05:26,740 --> 00:05:29,220 just taking account of this factor 2N-- 77 00:05:29,220 --> 00:05:36,000 those roots are at j omega sub c times the 2N 78 00:05:36,000 --> 00:05:39,450 roots of minus 1. 79 00:05:39,450 --> 00:05:43,740 Those roots, in fact, all lie on a circle, and the 80 00:05:43,740 --> 00:05:53,140 consequence of that is that the poles of this expression 81 00:05:53,140 --> 00:05:55,400 are on a circle. 82 00:05:55,400 --> 00:05:59,770 The circle is of radius omega sub c, and the poles are 83 00:05:59,770 --> 00:06:02,550 distributed around the circle. 84 00:06:02,550 --> 00:06:07,130 So here I've illustrated the poles of B of s times B of 85 00:06:07,130 --> 00:06:09,920 minus s, for this specific case where capital 86 00:06:09,920 --> 00:06:11,320 N is equal to 3. 87 00:06:11,320 --> 00:06:15,970 So there are a total of six poles around this circle. 88 00:06:15,970 --> 00:06:20,800 And then for this specific case, the poles are spaced by 89 00:06:20,800 --> 00:06:22,850 60 degrees. 90 00:06:22,850 --> 00:06:26,020 Now we have B of s times B of minus s. 91 00:06:26,020 --> 00:06:29,020 To get the system function for the Butterworth filter, we'd 92 00:06:29,020 --> 00:06:33,320 like to get B of s, and the question now is 93 00:06:33,320 --> 00:06:35,140 how do we get that? 94 00:06:35,140 --> 00:06:40,250 Well, the thing to recognize is that wherever this factor 95 00:06:40,250 --> 00:06:45,590 has a root, this factor has to have a root at 96 00:06:45,590 --> 00:06:47,420 the negative location. 97 00:06:47,420 --> 00:06:51,600 So in fact, when we look at these poles, we compare them 98 00:06:51,600 --> 00:06:55,180 with this, for example, associated with B of s, this 99 00:06:55,180 --> 00:06:57,560 associated with B of minus s. 100 00:06:57,560 --> 00:07:01,200 And likewise, we compare these two together, likewise we 101 00:07:01,200 --> 00:07:03,010 compare these two together. 102 00:07:03,010 --> 00:07:07,190 And so we can extract B of s from this product, simply by 103 00:07:07,190 --> 00:07:11,360 taking one pole out of each of those pairs. 104 00:07:11,360 --> 00:07:15,110 Now a question, of course, is out of each pair, which one do 105 00:07:15,110 --> 00:07:17,860 we associate with B of s, and which do we associate with B 106 00:07:17,860 --> 00:07:19,470 of minus s? 107 00:07:19,470 --> 00:07:24,040 And the answer drops out fairly simply if we recognize 108 00:07:24,040 --> 00:07:30,510 that if we want to design filters that are stable, then 109 00:07:30,510 --> 00:07:33,570 B of s, the transfer function that we're designing, must 110 00:07:33,570 --> 00:07:36,440 have all its poles in the left half of the s plane. 111 00:07:36,440 --> 00:07:41,760 So in fact, out of each of these pairs we would associate 112 00:07:41,760 --> 00:07:47,900 the left half plane pole with B of s, and so the transfer 113 00:07:47,900 --> 00:07:52,170 function for the Butterworth filter for this particular 114 00:07:52,170 --> 00:07:57,020 case, where the this designates the parameter omega 115 00:07:57,020 --> 00:07:59,950 sub c and capital N is 3, namely a third order 116 00:07:59,950 --> 00:08:03,850 Butterworth filter, is this set of pole locations. 117 00:08:03,850 --> 00:08:08,020 Given those, of course, we can figure out, simply through 118 00:08:08,020 --> 00:08:13,360 Algebraic means, what the transfer function B of s is. 119 00:08:13,360 --> 00:08:16,700 All right, so that's what Butterworth filters are. 120 00:08:16,700 --> 00:08:22,430 And now what I'd like to do is talk about the design of a 121 00:08:22,430 --> 00:08:27,460 digital Butterworth filter using the design technique 122 00:08:27,460 --> 00:08:31,680 that we introduced last time, namely impulse invariance. 123 00:08:31,680 --> 00:08:37,360 And the context in which I will phrase the design is the 124 00:08:37,360 --> 00:08:42,809 context of mapping a continuous time signal to a 125 00:08:42,809 --> 00:08:47,390 discrete time signal, carrying out filtering using the 126 00:08:47,390 --> 00:08:50,360 discrete time filter that we're designing, and then 127 00:08:50,360 --> 00:08:51,150 mapping back. 128 00:08:51,150 --> 00:08:56,980 So we're talking about now a discrete time filter that we 129 00:08:56,980 --> 00:09:02,240 want to design through impulse invariance from continuous 130 00:09:02,240 --> 00:09:05,950 time Butterworth filters, and we're going to get our design 131 00:09:05,950 --> 00:09:11,990 specifications in the context of having considered discrete 132 00:09:11,990 --> 00:09:16,660 time processing of continuous time signals, where we will 133 00:09:16,660 --> 00:09:23,020 map from a continuous time signal to a sequence, carry 134 00:09:23,020 --> 00:09:26,580 out the filtering with the discrete time filter that 135 00:09:26,580 --> 00:09:28,440 we're going to design. 136 00:09:28,440 --> 00:09:35,860 And then we will take the resulting filtered output and 137 00:09:35,860 --> 00:09:39,920 map it back to the continuous time signal. 138 00:09:39,920 --> 00:09:44,460 But this discrete time filter is the one that we're talking 139 00:09:44,460 --> 00:09:45,820 about designing. 140 00:09:45,820 --> 00:09:49,780 And for a choice of parameter, there's a sampling frequency, 141 00:09:49,780 --> 00:09:51,910 of course, involved in this process. 142 00:09:51,910 --> 00:09:56,120 And the value that I'll pick for the sampling frequency is 143 00:09:56,120 --> 00:09:58,840 10 kilohertz. 144 00:09:58,840 --> 00:10:02,030 OK, all fairly straightforward so far. 145 00:10:02,030 --> 00:10:08,470 And so since we have a sampling rate of 10 kilohertz, 146 00:10:08,470 --> 00:10:16,140 we want to first look at our specifications on the desired 147 00:10:16,140 --> 00:10:21,400 continuous time filter and then map those to appropriate 148 00:10:21,400 --> 00:10:24,540 specifications on the discrete time filter. 149 00:10:24,540 --> 00:10:29,740 And what I'll pick for the desired specifications on the 150 00:10:29,740 --> 00:10:39,470 continuous time filter is that at 1 kilohertz, I will ask 151 00:10:39,470 --> 00:10:44,070 that the continuous time frequency response be down by 152 00:10:44,070 --> 00:10:50,610 no more than 1 db in comparison with its value at 153 00:10:50,610 --> 00:10:53,130 omega equals 0. 154 00:10:53,130 --> 00:10:57,580 So that, in effect, specifies the behavior in the pass band, 155 00:10:57,580 --> 00:11:00,480 or the specifications on the pass band. 156 00:11:00,480 --> 00:11:06,070 And for the stop band, I'll specify that the filter is 157 00:11:06,070 --> 00:11:12,830 down by 15 db by the time we've gotten to 1.5 kilohertz. 158 00:11:12,830 --> 00:11:16,560 So we have, essentially, the beginning of the transition 159 00:11:16,560 --> 00:11:19,610 band-- the end of the pass band--at 1 kilohertz, and the 160 00:11:19,610 --> 00:11:23,850 beginning of the stop band at 1.5 kilohertz. 161 00:11:23,850 --> 00:11:27,670 And since we're talking about designing a Butterworth 162 00:11:27,670 --> 00:11:31,420 filter, we know that the Butterworth filter is 163 00:11:31,420 --> 00:11:36,190 monotonic in the pass band and stop band, and so we'll have a 164 00:11:36,190 --> 00:11:40,560 filter specification, something as I show here. 165 00:11:40,560 --> 00:11:44,940 This represents the allowable pass band tolerance. 166 00:11:44,940 --> 00:11:48,130 This is the allowable stop band tolerance. 167 00:11:48,130 --> 00:11:53,460 And if I can draw this without getting myself into trouble, 168 00:11:53,460 --> 00:11:57,220 essentially we're looking for a filter, then, that always 169 00:11:57,220 --> 00:12:04,580 stays between the specified boundaries here. 170 00:12:07,580 --> 00:12:10,930 Now what we have to figure out is what the corresponding 171 00:12:10,930 --> 00:12:13,820 specifications are for the digital filter. 172 00:12:13,820 --> 00:12:19,640 And the strategy, let me emphasize, is that we have a 173 00:12:19,640 --> 00:12:23,990 situation where we're doing discrete time processing of 174 00:12:23,990 --> 00:12:29,350 continuous time signals, and we have a set of 175 00:12:29,350 --> 00:12:31,850 specifications associated with that. 176 00:12:31,850 --> 00:12:36,270 That imposes specifications on our discrete time filter, and 177 00:12:36,270 --> 00:12:40,460 then we want to design the discrete time filter using 178 00:12:40,460 --> 00:12:43,940 impulse invariance, and that's the discrete time filter that 179 00:12:43,940 --> 00:12:47,360 we'll use in the overall system. 180 00:12:47,360 --> 00:12:52,240 All right, now we want specifications on the discrete 181 00:12:52,240 --> 00:12:58,430 time filter, and we want the continuous overall equivalent 182 00:12:58,430 --> 00:13:04,560 system to meet certain specifications at certain 183 00:13:04,560 --> 00:13:09,010 frequencies related to continuous time frequencies. 184 00:13:09,010 --> 00:13:14,550 Recall that when we sample a continuous time signal, 185 00:13:14,550 --> 00:13:17,990 there's a very specific mapping from the continuous 186 00:13:17,990 --> 00:13:21,590 time frequency axis to the discrete time frequency axis. 187 00:13:21,590 --> 00:13:29,120 In particular, the sampling frequency gets mapped to 2 pi. 188 00:13:29,120 --> 00:13:32,550 Well, that means that our other critical frequencies get 189 00:13:32,550 --> 00:13:34,500 mapped in proportion to that. 190 00:13:34,500 --> 00:13:39,000 So 1 kilohertz, which is a 1/10 of the sampling 191 00:13:39,000 --> 00:13:42,590 frequency, would then convert to a discrete time 192 00:13:42,590 --> 00:13:45,860 frequency of 0.2 pi. 193 00:13:45,860 --> 00:13:51,030 And 1.5 kilohertz will convert to a discrete time 194 00:13:51,030 --> 00:13:54,620 frequency of 0.3 pi. 195 00:13:54,620 --> 00:14:00,230 So what this says is that for the discrete time filter, we 196 00:14:00,230 --> 00:14:05,860 would like the same behavior, but at frequencies-- 197 00:14:05,860 --> 00:14:10,980 or the same specifications, but at frequencies normalized 198 00:14:10,980 --> 00:14:14,360 to the discrete time frequency axis. 199 00:14:14,360 --> 00:14:20,120 That means that we want the discrete time frequency 200 00:14:20,120 --> 00:14:23,250 response magnitude to be greater than or equal to minus 201 00:14:23,250 --> 00:14:26,770 1 db at 2/10 pi-- 202 00:14:26,770 --> 00:14:30,060 corresponding to the 1 kilohertz in continuous time-- 203 00:14:30,060 --> 00:14:36,340 and for the beginning of the stop band, that would occur at 204 00:14:36,340 --> 00:14:38,970 0.3 pi, at which point we want this less than or 205 00:14:38,970 --> 00:14:42,230 equal to minus 15. 206 00:14:42,230 --> 00:14:45,680 So those are our discrete time specifications. 207 00:14:45,680 --> 00:14:51,960 And we now want to design the discrete time filter using 208 00:14:51,960 --> 00:14:54,260 impulse invariance. 209 00:14:54,260 --> 00:15:02,670 Now in impulse invariance, as you recall, it corresponds to 210 00:15:02,670 --> 00:15:06,920 generating an impulse response which is a sampled version of 211 00:15:06,920 --> 00:15:11,180 the continuous time impulse response, and there is a 212 00:15:11,180 --> 00:15:16,050 temptation naturally to think all of this parameter, capital 213 00:15:16,050 --> 00:15:25,190 T, as necessarily identical to the sampling in the system in 214 00:15:25,190 --> 00:15:27,710 which the filter is going to be used. 215 00:15:27,710 --> 00:15:31,200 Now this is a fairly subtle, complicated, tongue twisting 216 00:15:31,200 --> 00:15:36,800 issue, but the bottom line on it, the essential point, is 217 00:15:36,800 --> 00:15:41,140 that the parameter capital T that we use in impulse 218 00:15:41,140 --> 00:15:46,060 invariant design is a totally different, unrelated, and in 219 00:15:46,060 --> 00:15:50,660 fact, as it turns out, arbitrary parameter, which is 220 00:15:50,660 --> 00:15:56,480 not necessarily pegged to the sampling frequency. 221 00:15:56,480 --> 00:15:58,720 And I think it would be difficult for me to totally 222 00:15:58,720 --> 00:16:03,180 clarify that during the lecture. 223 00:16:03,180 --> 00:16:05,710 It's discussed more in the book, and certainly, you 224 00:16:05,710 --> 00:16:08,850 should take plenty of time to reflect on it. 225 00:16:08,850 --> 00:16:14,510 All right, but let's now look, then, at where we are in our 226 00:16:14,510 --> 00:16:18,570 design procedure, and specifically, what it is that 227 00:16:18,570 --> 00:16:21,720 we need to do in order to design the 228 00:16:21,720 --> 00:16:26,000 digital Butterworth filter. 229 00:16:26,000 --> 00:16:30,900 Now we have a set of specifications that we've 230 00:16:30,900 --> 00:16:35,000 generated relating, essentially, to how we want 231 00:16:35,000 --> 00:16:38,950 the pass band of the digital filter and the stop band of 232 00:16:38,950 --> 00:16:41,050 the digital filter to behave. 233 00:16:41,050 --> 00:16:46,170 Of course, since this isn't an ideal filter, it has some 234 00:16:46,170 --> 00:16:50,510 transition from pass band to stop band, and as we discussed 235 00:16:50,510 --> 00:16:54,430 last time, there is aliasing, which we need to at 236 00:16:54,430 --> 00:16:57,140 least be aware of. 237 00:16:57,140 --> 00:17:01,500 We specified certain frequencies along this axis 238 00:17:01,500 --> 00:17:07,420 which are easily converted by relating to the two axes 239 00:17:07,420 --> 00:17:13,920 through this mapping, are easily related back to the 240 00:17:13,920 --> 00:17:21,040 continuous time frequency axis, as we have here. 241 00:17:21,040 --> 00:17:26,079 And in particular, now if we were to simply pick that 242 00:17:26,079 --> 00:17:29,800 parameter in the impulse invariant design, capital T, 243 00:17:29,800 --> 00:17:34,160 as equal to unity, and I indicated just a minute ago 244 00:17:34,160 --> 00:17:37,850 that we can pick it arbitrarily, if I pick it as 245 00:17:37,850 --> 00:17:43,580 unity, then the procedure would consist of designing the 246 00:17:43,580 --> 00:17:47,800 continuous time Butterworth filter with meeting or 247 00:17:47,800 --> 00:17:50,870 exceeding the appropriate specifications and then going 248 00:17:50,870 --> 00:17:55,090 through the impulse invariant procedure. 249 00:17:55,090 --> 00:17:58,250 All right, so let's do that then. 250 00:18:01,070 --> 00:18:05,290 We want the discrete time impulse response to be the 251 00:18:05,290 --> 00:18:09,750 continuous time impulse response sampled, and for 252 00:18:09,750 --> 00:18:11,700 convenience, I'm going to pick this parameter 253 00:18:11,700 --> 00:18:14,560 capital T equal to 1. 254 00:18:14,560 --> 00:18:20,080 That means that the frequency normalization between the 255 00:18:20,080 --> 00:18:22,730 discrete time frequency axis and the continuous time 256 00:18:22,730 --> 00:18:26,640 frequency axis in fact is-- 257 00:18:26,640 --> 00:18:30,500 those axes are scaled identically, because capital T 258 00:18:30,500 --> 00:18:32,000 is equal to 1. 259 00:18:32,000 --> 00:18:37,590 And so now we want the analog, or continuous time, 260 00:18:37,590 --> 00:18:39,550 specifications. 261 00:18:39,550 --> 00:18:42,690 And so what we need to do then is design 262 00:18:42,690 --> 00:18:44,000 a Butterworth filter. 263 00:18:44,000 --> 00:18:47,370 I'm using capital B here again to denote the frequency 264 00:18:47,370 --> 00:18:49,400 response of the Butterworth filter. 265 00:18:49,400 --> 00:18:53,300 The Butterworth filter to have a magnitude which is greater 266 00:18:53,300 --> 00:18:59,590 than or equal to minus 1 db prior to the frequency 0.2 pi, 267 00:18:59,590 --> 00:19:02,520 and less than or equal to minus 15 at a 268 00:19:02,520 --> 00:19:07,770 frequency beyond 0.3 pi. 269 00:19:07,770 --> 00:19:14,820 And so now what we need to do is determine capital N and 270 00:19:14,820 --> 00:19:17,910 omega sub c in order to meet or exceed those 271 00:19:17,910 --> 00:19:19,160 specifications. 272 00:19:21,210 --> 00:19:24,300 Now if you go through the associated algebra in doing 273 00:19:24,300 --> 00:19:27,360 that, let's say that you decide that you want to pick 274 00:19:27,360 --> 00:19:31,040 capital N and omega sub c to exactly meet those 275 00:19:31,040 --> 00:19:35,860 inequalities at the two frequencies, 0.2 pi and 0.3 276 00:19:35,860 --> 00:19:40,320 pi, what you'll find after going through the algebra is 277 00:19:40,320 --> 00:19:46,170 that they're exactly met if capital N is 5.88 and omega 278 00:19:46,170 --> 00:19:50,320 sub c is 0.7047. 279 00:19:50,320 --> 00:19:55,560 And this obviously isn't satisfactory as parameters for 280 00:19:55,560 --> 00:19:56,820 the Butterworth filter. 281 00:19:56,820 --> 00:19:58,720 Why is that? 282 00:19:58,720 --> 00:20:03,480 The reason is that capital N isn't an integer, and in the 283 00:20:03,480 --> 00:20:06,320 class of Butterworth filters, to generate a rational 284 00:20:06,320 --> 00:20:08,960 transfer function, capital N, this 285 00:20:08,960 --> 00:20:11,420 parameter, must be an integer. 286 00:20:11,420 --> 00:20:18,480 So since it can't be 5.88, the natural thing to do is to move 287 00:20:18,480 --> 00:20:22,510 it up to the next closest integer, namely 6. 288 00:20:22,510 --> 00:20:26,330 And that means that we'll end up with a filter that does 289 00:20:26,330 --> 00:20:30,100 even better than the specifications. 290 00:20:30,100 --> 00:20:33,320 On the other hand, there's something kind of underneath 291 00:20:33,320 --> 00:20:36,950 the surface that is inherent in the impulse invariant 292 00:20:36,950 --> 00:20:41,350 design procedure, namely the fact that there will always be 293 00:20:41,350 --> 00:20:42,960 some aliasing. 294 00:20:42,960 --> 00:20:46,960 So one strategy, and a natural one, often, in impulse 295 00:20:46,960 --> 00:20:53,780 invariant design, is to choose N as the next highest integer 296 00:20:53,780 --> 00:20:59,960 as I've done, and then choose the parameter omega sub c so 297 00:20:59,960 --> 00:21:04,810 that the pass band specifications are exactly 298 00:21:04,810 --> 00:21:07,940 met, and the stop band specifications are then 299 00:21:07,940 --> 00:21:10,390 slightly exceeded, and that will leave 300 00:21:10,390 --> 00:21:13,860 some margin for aliasing. 301 00:21:13,860 --> 00:21:18,660 All right, now continuing this example, then, how would we 302 00:21:18,660 --> 00:21:21,910 complete the design? 303 00:21:21,910 --> 00:21:28,840 Well, we know what our two parameters, capital N and 304 00:21:28,840 --> 00:21:31,680 omega sub c are. 305 00:21:31,680 --> 00:21:34,160 That means that we can determine B of s 306 00:21:34,160 --> 00:21:35,970 times B of minus s. 307 00:21:35,970 --> 00:21:42,190 Those poles are located on a circle in the complex s plane. 308 00:21:42,190 --> 00:21:47,420 And the poles on that circle are paired, some being 309 00:21:47,420 --> 00:21:50,770 associated with B of s and some with B of minus s. 310 00:21:50,770 --> 00:21:55,540 And in particular, to determine B of s, we would 311 00:21:55,540 --> 00:22:00,780 simply take the poles on the portion of the circle that's 312 00:22:00,780 --> 00:22:02,180 in the left half of the s plane. 313 00:22:04,720 --> 00:22:11,280 Now what that gives us is a Butterworth continuous time 314 00:22:11,280 --> 00:22:16,720 filter, which we are then mapping through impulse 315 00:22:16,720 --> 00:22:20,960 invariance with capital T equal to 1 to a 316 00:22:20,960 --> 00:22:22,960 discrete time filter. 317 00:22:22,960 --> 00:22:28,800 That discrete time filter to be used in a system which has 318 00:22:28,800 --> 00:22:29,990 an associated sampling 319 00:22:29,990 --> 00:22:34,620 frequency which is 10 kilohertz. 320 00:22:34,620 --> 00:22:38,220 So to get the discrete time filter, then, we first 321 00:22:38,220 --> 00:22:41,900 determine B of s, as we just did-- 322 00:22:41,900 --> 00:22:45,360 or at least I indicated how to do it. 323 00:22:45,360 --> 00:22:48,940 We would then expand that out in a partial fraction 324 00:22:48,940 --> 00:22:54,580 expansion, and then apply the impulse invariant procedure, 325 00:22:54,580 --> 00:23:00,660 which consists of mapping the poles in the s plane to poles 326 00:23:00,660 --> 00:23:05,230 in the z plane at locations e to the s of k, capital T, 327 00:23:05,230 --> 00:23:07,310 capital T is equal to 1. 328 00:23:07,310 --> 00:23:10,190 And retaining the residue, or the 329 00:23:10,190 --> 00:23:12,860 coefficient, in the expansion. 330 00:23:12,860 --> 00:23:17,050 And this, then, will give us the transfer function for the 331 00:23:17,050 --> 00:23:20,370 discrete time filter. 332 00:23:20,370 --> 00:23:28,130 So if in fact we did that, then the resulting frequency 333 00:23:28,130 --> 00:23:32,050 response that we would get is what I've indicated here. 334 00:23:32,050 --> 00:23:37,310 And I indicated first on a magnitude scale, linear 335 00:23:37,310 --> 00:23:42,580 magnitude scale, and second on a logarithmic scale. 336 00:23:42,580 --> 00:23:47,120 And as we had originally specified, the digital filter 337 00:23:47,120 --> 00:23:52,430 is supposed to be greater than or equal to minus 1 db at 338 00:23:52,430 --> 00:23:55,680 point 2 pi, and less than or equal to minus 339 00:23:55,680 --> 00:23:59,540 15 db at 0.3 pi. 340 00:23:59,540 --> 00:24:03,740 And in fact, this slightly exceeds those specifications 341 00:24:03,740 --> 00:24:08,385 since we had purposely allowed some margin in the stop band. 342 00:24:14,090 --> 00:24:17,540 Now this is an illustration of the impulse invariant 343 00:24:17,540 --> 00:24:22,360 procedure, and it has a number of very nice properties, one 344 00:24:22,360 --> 00:24:26,100 of which is that it takes a continuous time filter 345 00:24:26,100 --> 00:24:31,630 frequency response and it converts it to a discrete time 346 00:24:31,630 --> 00:24:35,270 frequency response, which in the absence of aliasing, looks 347 00:24:35,270 --> 00:24:39,500 identical, except for a linear frequency scale change. 348 00:24:39,500 --> 00:24:41,680 And in fact, if we picked capital T equal to 1, then 349 00:24:41,680 --> 00:24:43,520 there is no scale change. 350 00:24:43,520 --> 00:24:49,950 It has the major disadvantage that there is always aliasing, 351 00:24:49,950 --> 00:24:54,610 and for some problems, for example, if the filter that 352 00:24:54,610 --> 00:24:59,940 we're trying to design is not band limited or low pass, then 353 00:24:59,940 --> 00:25:04,820 the aliasing will naturally become intolerable. 354 00:25:04,820 --> 00:25:07,340 Well, there's another design procedure which I now want to 355 00:25:07,340 --> 00:25:11,300 introduce, which totally avoids the problems of 356 00:25:11,300 --> 00:25:15,040 aliasing, but, obviously, then has its own costs 357 00:25:15,040 --> 00:25:16,460 associated with it. 358 00:25:16,460 --> 00:25:20,640 And that's procedure is referred to as the bilinear 359 00:25:20,640 --> 00:25:21,890 transformation. 360 00:25:24,430 --> 00:25:28,660 The bilinear transformation, which I won't try to derive 361 00:25:28,660 --> 00:25:34,770 here in any detail, is a mapping of continuous time 362 00:25:34,770 --> 00:25:40,910 filters to discrete time filters, corresponding to 363 00:25:40,910 --> 00:25:45,110 taking the Laplace transform variable s in the continuous 364 00:25:45,110 --> 00:25:50,220 time filter and replacing it by what is referred to as a 365 00:25:50,220 --> 00:25:53,560 bilinear function of z. 366 00:25:53,560 --> 00:25:58,530 And so if I substitute this in here, that will give me the 367 00:25:58,530 --> 00:26:02,370 discrete time frequency response. 368 00:26:02,370 --> 00:26:05,670 Again in this procedure, there's a parameter capital T, 369 00:26:05,670 --> 00:26:08,500 which again is totally irrelevant given the approach 370 00:26:08,500 --> 00:26:11,610 that we're taking, and which we will generally tend to 371 00:26:11,610 --> 00:26:13,570 normalize out to unity. 372 00:26:13,570 --> 00:26:19,130 And let me just say quickly and in passing that although 373 00:26:19,130 --> 00:26:23,080 we won't go through this, the notion that the bilinear 374 00:26:23,080 --> 00:26:29,370 transformation can be tied to the concept of taking the 375 00:26:29,370 --> 00:26:32,730 differential equation for the continuous time filter, 376 00:26:32,730 --> 00:26:36,560 converting it to an integral equation by integrating enough 377 00:26:36,560 --> 00:26:42,700 times on both sides, and then converting that to a 378 00:26:42,700 --> 00:26:47,600 difference equation by approximating the integrals 379 00:26:47,600 --> 00:26:50,200 with the trapezoidal rule. 380 00:26:50,200 --> 00:26:54,380 And that, in effect, will correspond to mapping the 381 00:26:54,380 --> 00:26:57,600 continuous time filter to a discrete time filter with the 382 00:26:57,600 --> 00:26:59,930 bilinear transformation. 383 00:26:59,930 --> 00:27:04,400 Well, we'll just focus on the properties of the mapping. 384 00:27:04,400 --> 00:27:09,190 And in particular, if we were to substitute into the 385 00:27:09,190 --> 00:27:14,370 expression z equal to e to the j omega corresponding to the 386 00:27:14,370 --> 00:27:20,020 unit circle, we would find that the unit circle in 387 00:27:20,020 --> 00:27:26,510 discrete time corresponds to mapping the j omega axis in 388 00:27:26,510 --> 00:27:30,970 continuous time, which is exactly what we want. 389 00:27:30,970 --> 00:27:37,290 Now the mapping between the continuous time frequency and 390 00:27:37,290 --> 00:27:43,260 the discrete time frequency is a nonlinear mapping, which is 391 00:27:43,260 --> 00:27:44,940 given by the algebraic expression 392 00:27:44,940 --> 00:27:46,530 that I indicate here. 393 00:27:46,530 --> 00:27:56,170 And if we plot this mapping, what we have is this curve. 394 00:27:56,170 --> 00:28:03,510 And what this corresponds to, then, is a mapping of the j 395 00:28:03,510 --> 00:28:07,410 omega axis, or continuous time frequency, to 396 00:28:07,410 --> 00:28:10,270 discrete time frequency. 397 00:28:10,270 --> 00:28:14,390 And if we think more generally of the mapping represented by 398 00:28:14,390 --> 00:28:18,730 the bilinear transformation in the context of the s-plane and 399 00:28:18,730 --> 00:28:25,100 the z-plane, it corresponds to mapping the j omega axis in 400 00:28:25,100 --> 00:28:31,170 the s-plane to once around the unit circle in the z-plane. 401 00:28:31,170 --> 00:28:35,260 And you could also convince yourself that the left half of 402 00:28:35,260 --> 00:28:39,850 the s-plane maps to the inside of the unit circle. 403 00:28:39,850 --> 00:28:45,250 And so that means that stable continuous time filters will 404 00:28:45,250 --> 00:28:48,690 always map to stable discrete time filters, which is exactly 405 00:28:48,690 --> 00:28:51,310 what we desire. 406 00:28:51,310 --> 00:28:54,990 Now notice in this that there's no issue of aliasing. 407 00:28:54,990 --> 00:28:58,320 What's happened is that we've replaced s by a function of z, 408 00:28:58,320 --> 00:29:01,850 and it corresponds to mapping the s-plane to the z-plane. 409 00:29:01,850 --> 00:29:05,970 In fact, the whole j omega axis has mapped to once around 410 00:29:05,970 --> 00:29:13,150 the unit circle, which obviously requires some type 411 00:29:13,150 --> 00:29:17,280 of nonlinear mapping, because, look, the j omega axis is 412 00:29:17,280 --> 00:29:18,640 infinitely long. 413 00:29:18,640 --> 00:29:21,960 The unit circle has a finite radius. 414 00:29:21,960 --> 00:29:25,720 And so essentially, what has to happen is if you think of 415 00:29:25,720 --> 00:29:29,720 walking along the continuous time frequency axis, and 416 00:29:29,720 --> 00:29:33,840 simultaneously walking around the unit circle, if you walk 417 00:29:33,840 --> 00:29:37,580 at a constant rate around the unit circle and you're 418 00:29:37,580 --> 00:29:41,330 simultaneously walking up the j omega axis, if you want to 419 00:29:41,330 --> 00:29:45,810 get around to pi by the time, here, you've gotten to 420 00:29:45,810 --> 00:29:50,530 infinity along the continuous time frequency axis, you 421 00:29:50,530 --> 00:29:54,760 better start walking faster, and faster, and faster, 422 00:29:54,760 --> 00:29:58,640 because you've got an infinite distance to cover while you 423 00:29:58,640 --> 00:30:01,410 just go over a finite distance here. 424 00:30:01,410 --> 00:30:07,420 Well, what all that says, really, is that that's why, in 425 00:30:07,420 --> 00:30:10,200 fact, we're taking the entire-- 426 00:30:10,200 --> 00:30:14,850 or we're able to take the entire omega axis and just map 427 00:30:14,850 --> 00:30:19,450 it into an interval of length pi. 428 00:30:22,544 --> 00:30:27,640 All right, now that means that there is a nonlinear 429 00:30:27,640 --> 00:30:31,170 distortion of the frequency axis if we were to take a 430 00:30:31,170 --> 00:30:35,320 continuous time filter and convert it to a discrete time 431 00:30:35,320 --> 00:30:37,860 filter with the bilinear transformation. 432 00:30:37,860 --> 00:30:42,120 How do we account for that, or for that matter, when can we 433 00:30:42,120 --> 00:30:44,230 really use it? 434 00:30:44,230 --> 00:30:49,050 And we can see how to both take account of it, and what 435 00:30:49,050 --> 00:30:54,300 its limitations are, by recognizing the following. 436 00:30:54,300 --> 00:31:02,690 Suppose that I want to design a discrete time filter and 437 00:31:02,690 --> 00:31:06,220 what is going to happen is that it will be mapped to a 438 00:31:06,220 --> 00:31:09,340 continuous time filter, or the relationship between the two 439 00:31:09,340 --> 00:31:14,300 frequency axes will be given by this curve. 440 00:31:14,300 --> 00:31:19,190 So let's suppose that the continuous time frequency 441 00:31:19,190 --> 00:31:23,510 response looks as I've shown here, with a pass band cutoff 442 00:31:23,510 --> 00:31:27,900 frequency and a stop band cutoff frequency. 443 00:31:27,900 --> 00:31:34,270 If this were mapped through the bilinear transformation to 444 00:31:34,270 --> 00:31:38,950 a discrete time filter, then this cutoff frequency would 445 00:31:38,950 --> 00:31:44,410 fall over here, which is related through this curve, 446 00:31:44,410 --> 00:31:49,950 and this cutoff frequency, the stop band edge would be here. 447 00:31:49,950 --> 00:31:56,930 Again, it's these frequencies reflected through this curve. 448 00:31:56,930 --> 00:32:02,620 So let's suppose now that what I'd like to do is design a 449 00:32:02,620 --> 00:32:07,810 discrete time filter, where the discrete time filter has 450 00:32:07,810 --> 00:32:11,650 certain frequency specifications, which is what 451 00:32:11,650 --> 00:32:14,320 our previous example has. 452 00:32:14,320 --> 00:32:18,600 It has, let's say, a specified stop band edge and a specified 453 00:32:18,600 --> 00:32:23,070 pass band edge, and a specified stop band edge. 454 00:32:23,070 --> 00:32:29,100 The design procedure would then correspond to mapping 455 00:32:29,100 --> 00:32:34,230 those frequencies to the corresponding continuous time 456 00:32:34,230 --> 00:32:40,790 frequencies, designing the continuous time filter to meet 457 00:32:40,790 --> 00:32:46,480 the specifications based on those critical frequencies, 458 00:32:46,480 --> 00:32:51,300 then taking the continuous time design and mapping it 459 00:32:51,300 --> 00:32:54,820 back to a discrete time filter through the bilinear 460 00:32:54,820 --> 00:32:57,101 transformation. 461 00:32:57,101 --> 00:33:02,780 All right, now what we want to do is again map a Butterworth 462 00:33:02,780 --> 00:33:05,460 filter, continuous time Butterworth filter to a 463 00:33:05,460 --> 00:33:08,510 digital filter in such a way that the digital filter 464 00:33:08,510 --> 00:33:11,050 approximately meets the 465 00:33:11,050 --> 00:33:13,720 specifications that we had before. 466 00:33:13,720 --> 00:33:16,720 And let me just remind you of where we were. 467 00:33:16,720 --> 00:33:24,600 The critical frequencies were at 0.2 pi and 0.3 pi. 468 00:33:24,600 --> 00:33:30,260 And what we had asked for is that the frequency response be 469 00:33:30,260 --> 00:33:37,370 down by no more than 1 db up to 0.2 pi, and down by at 470 00:33:37,370 --> 00:33:41,800 least 15 db at 0.3 pi. 471 00:33:41,800 --> 00:33:47,630 So we want to design the same discrete time filter as we did 472 00:33:47,630 --> 00:33:49,780 before with impulse invariance. 473 00:33:49,780 --> 00:33:52,900 We now want to do it with the bilinear transformation 474 00:33:52,900 --> 00:33:56,160 applied to an appropriate Butterworth design. 475 00:33:59,289 --> 00:34:05,970 OK, well, let's see what kind of specifications we have. 476 00:34:05,970 --> 00:34:09,590 We know that the frequency, the critical frequencies, are 477 00:34:09,590 --> 00:34:13,530 mapped through this curve, or this equation. 478 00:34:13,530 --> 00:34:18,489 And I indicated again that this parameter capital T is 479 00:34:18,489 --> 00:34:21,770 arbitrary in the design procedure. 480 00:34:21,770 --> 00:34:26,120 That may seem confusing, initially, but there's some 481 00:34:26,120 --> 00:34:28,719 further discussion of it in the book, and it's true and 482 00:34:28,719 --> 00:34:31,000 important to sort out. 483 00:34:31,000 --> 00:34:35,070 So we're going to pick capital T equal to unity. 484 00:34:35,070 --> 00:34:40,280 And that means then that the corresponding critical 485 00:34:40,280 --> 00:34:46,650 frequencies of the continuous time filter are at twice the 486 00:34:46,650 --> 00:34:51,690 tangent of 0.2 pi over 2, and twice the tangent 487 00:34:51,690 --> 00:34:54,920 of 0.3 pi over 2. 488 00:34:54,920 --> 00:35:00,340 So that means then that the specifications on our 489 00:35:00,340 --> 00:35:05,790 continuous time filter are given by this, essentially 490 00:35:05,790 --> 00:35:09,380 pass band and stop band edges warped through 491 00:35:09,380 --> 00:35:10,870 that nonlinear curve-- 492 00:35:10,870 --> 00:35:12,620 this nonlinear curve. 493 00:35:12,620 --> 00:35:18,550 And I'm using capital G here to denote the system function 494 00:35:18,550 --> 00:35:24,350 for the resulting continuous time filter. 495 00:35:24,350 --> 00:35:28,760 And so now we could think of designing a Butterworth filter 496 00:35:28,760 --> 00:35:34,430 that, let's say, exactly meets these specifications. 497 00:35:34,430 --> 00:35:38,760 Well, if you do that, what you'll find is that you get 498 00:35:38,760 --> 00:35:49,770 exact equality here if you pick capital N equal to 5.3. 499 00:35:49,770 --> 00:35:55,240 And again, we have the issue that if we want to meet or 500 00:35:55,240 --> 00:35:58,520 exceed the specifications, we can't make the filter order 501 00:35:58,520 --> 00:36:00,440 lower, we have to make it higher. 502 00:36:00,440 --> 00:36:03,740 And so we would make it, instead of 5.3, we would make 503 00:36:03,740 --> 00:36:07,010 the filter order equal to 6. 504 00:36:07,010 --> 00:36:10,260 And now, again, we have several 505 00:36:10,260 --> 00:36:11,430 options and trade offs. 506 00:36:11,430 --> 00:36:15,600 Before, with impulse invariance, we essentially 507 00:36:15,600 --> 00:36:20,930 decided to meet the pass band specifications and exceed the 508 00:36:20,930 --> 00:36:23,530 stop band specifications to provide 509 00:36:23,530 --> 00:36:26,940 some margin for aliasing. 510 00:36:26,940 --> 00:36:31,650 Here, we don't have any aliasing, and we can trade 511 00:36:31,650 --> 00:36:33,470 things off anyway we'd like. 512 00:36:33,470 --> 00:36:40,390 The way that I've chosen to do it is to exactly meet the stop 513 00:36:40,390 --> 00:36:46,910 band cut off, and exceed the pass band specifications. 514 00:36:46,910 --> 00:36:52,490 And the result of doing that is to choose a filter order 515 00:36:52,490 --> 00:36:57,580 capital N equal to 6, and the parameter omega sub c in the 516 00:36:57,580 --> 00:37:04,350 Butterworth filter is given by 0.76622. 517 00:37:04,350 --> 00:37:12,090 All right, so now we have the parameters for the continuous 518 00:37:12,090 --> 00:37:18,920 time Butterworth filter, which when mapped to the discrete 519 00:37:18,920 --> 00:37:23,690 time filter through the bilinear transformation, will 520 00:37:23,690 --> 00:37:27,640 exceed our requirements in the pass band and just meet the 521 00:37:27,640 --> 00:37:29,450 stop band cutoff. 522 00:37:29,450 --> 00:37:32,950 And so now we want to complete the design procedure. 523 00:37:32,950 --> 00:37:41,240 And given the parameters of the Butterworth filter, we can 524 00:37:41,240 --> 00:37:45,330 draw our appropriate circle in the s-plane, which happens to 525 00:37:45,330 --> 00:37:49,580 be the same circle as before, but with a different radius. 526 00:37:49,580 --> 00:37:56,800 And then associate poles on this circle with B of s and B 527 00:37:56,800 --> 00:37:57,950 of minus s. 528 00:37:57,950 --> 00:37:59,760 In particular, take the ones in the 529 00:37:59,760 --> 00:38:02,170 left half of the s-plane-- 530 00:38:02,170 --> 00:38:05,070 same ones we had before except we have a different value for 531 00:38:05,070 --> 00:38:07,380 omega sub c-- 532 00:38:07,380 --> 00:38:11,880 and those, then, represent B of s. 533 00:38:11,880 --> 00:38:16,810 So we can now determine B of s. 534 00:38:16,810 --> 00:38:22,800 And once we have the transfer function B of s, we then map 535 00:38:22,800 --> 00:38:28,060 that to a discrete time filter by mapping through the 536 00:38:28,060 --> 00:38:30,760 bilinear transformation. 537 00:38:30,760 --> 00:38:35,790 And that then is the design procedure which we would 538 00:38:35,790 --> 00:38:37,660 follow this example. 539 00:38:37,660 --> 00:38:41,880 All right, well, let's just see what the result looks like 540 00:38:41,880 --> 00:38:44,260 when we're done. 541 00:38:44,260 --> 00:38:50,940 Here I show, again, on both a linear magnitude scale and on 542 00:38:50,940 --> 00:38:55,010 a logarithmic or DB scale, the frequency response of the 543 00:38:55,010 --> 00:38:57,440 resulting filter. 544 00:38:57,440 --> 00:39:00,310 And recall that the specifications were that at 545 00:39:00,310 --> 00:39:05,730 0.2 pi, we should be down by no more than 1 db, and clearly 546 00:39:05,730 --> 00:39:08,120 we've exceeded that considerably. 547 00:39:08,120 --> 00:39:13,870 And at 0.3 pi, we should be down by at least 15 db, and we 548 00:39:13,870 --> 00:39:17,750 chose the design so that we would exactly meet that edge. 549 00:39:17,750 --> 00:39:21,910 So we've met this point and exceeded this point, and this 550 00:39:21,910 --> 00:39:24,070 is our design. 551 00:39:24,070 --> 00:39:29,220 Now let's just compare this with the impulse invariant 552 00:39:29,220 --> 00:39:31,870 design that we saw a few minutes ago. 553 00:39:35,050 --> 00:39:41,046 The impulse invariant design is what I indicate here. 554 00:39:41,046 --> 00:39:44,930 The bilinear transformation design is now 555 00:39:44,930 --> 00:39:47,860 overlaid on top of it. 556 00:39:47,860 --> 00:39:51,420 It's hard to see much difference on a linear 557 00:39:51,420 --> 00:39:54,820 magnitude scale, but let's look on a logarithmic scale. 558 00:39:54,820 --> 00:39:58,750 And this one that I'm lifting is the bilinear 559 00:39:58,750 --> 00:40:03,870 transformation, and this is impulse invariance. 560 00:40:03,870 --> 00:40:08,410 And notice, in fact, something very interesting, which is 561 00:40:08,410 --> 00:40:16,670 that the filter that we obtained by mapping the 562 00:40:16,670 --> 00:40:19,655 Butterworth filter to a digital filter through the 563 00:40:19,655 --> 00:40:24,740 bilinear transformation in fact falls off in frequency 564 00:40:24,740 --> 00:40:28,900 much more rapidly than the one that we got through impulse 565 00:40:28,900 --> 00:40:31,690 invariance. 566 00:40:31,690 --> 00:40:34,190 The question is why? 567 00:40:34,190 --> 00:40:36,600 Now one thought that might come to mind is, well, impulse 568 00:40:36,600 --> 00:40:39,160 invariance has aliasing, the bilinear transformation 569 00:40:39,160 --> 00:40:41,870 doesn't have aliasing, that must be a 570 00:40:41,870 --> 00:40:44,990 consequence of aliasing. 571 00:40:44,990 --> 00:40:47,850 In fact, that's not the reason. 572 00:40:47,850 --> 00:40:51,370 Aliasing, as it turns out in this particular design, was 573 00:40:51,370 --> 00:40:54,460 relatively minimal in the impulse invariant design. 574 00:40:54,460 --> 00:41:00,070 The reason has to do with this nonlinear mapping in the 575 00:41:00,070 --> 00:41:03,710 bilinear transformation from the continuous time frequency 576 00:41:03,710 --> 00:41:06,920 to the discrete time frequency. 577 00:41:06,920 --> 00:41:12,070 Keep in mind that through that mapping, as you start walking 578 00:41:12,070 --> 00:41:15,900 around the unit circle and moving up to j omega axis, as 579 00:41:15,900 --> 00:41:18,700 you move up the j omega axis, you have to move faster, and 580 00:41:18,700 --> 00:41:21,450 faster, and faster, and faster. 581 00:41:21,450 --> 00:41:28,580 And what's in continuous time frequency at infinity is what 582 00:41:28,580 --> 00:41:31,370 you get to in the discrete time frequency by the time you 583 00:41:31,370 --> 00:41:32,920 get around to pi. 584 00:41:32,920 --> 00:41:38,870 So in fact, what we're looking at as we look out along this 585 00:41:38,870 --> 00:41:45,340 frequency axis is we're seeing higher, and higher, and higher 586 00:41:45,340 --> 00:41:48,520 frequencies in the continuous time filter. 587 00:41:48,520 --> 00:41:53,550 By the time we get to pi, we should in fact be in the 588 00:41:53,550 --> 00:41:57,560 continuous time filter equivalently off to infinity, 589 00:41:57,560 --> 00:42:00,540 which sounds like a pretty uncomfortable place to be. 590 00:42:04,380 --> 00:42:10,920 OK, now this was a fairly rapid trip through a number of 591 00:42:10,920 --> 00:42:14,200 issues, in particular, some of the issues associated with the 592 00:42:14,200 --> 00:42:20,980 bilinear transformation, and also this issue of how you 593 00:42:20,980 --> 00:42:24,330 pick this parameter capital T, and how it might be associated 594 00:42:24,330 --> 00:42:27,190 with a sampling frequency if you're doing discrete time 595 00:42:27,190 --> 00:42:30,130 processing of continuous time signals. 596 00:42:30,130 --> 00:42:35,020 And we don't have time to explore some of those issues 597 00:42:35,020 --> 00:42:37,880 more fully in this lecture. 598 00:42:37,880 --> 00:42:41,220 But I'd like to conclude by making a couple of comments. 599 00:42:41,220 --> 00:42:45,160 One comment is that the two techniques that we've talked 600 00:42:45,160 --> 00:42:49,510 about, impulse invariance and the bilinear transformation, 601 00:42:49,510 --> 00:42:54,610 are the two techniques that are principally used when one 602 00:42:54,610 --> 00:42:58,900 thinks of mapping continuous time filters to discrete time 603 00:42:58,900 --> 00:43:00,830 filters for whatever application. 604 00:43:00,830 --> 00:43:05,890 And I stress again that you may want to do that mapping 605 00:43:05,890 --> 00:43:10,080 whether or not the discrete time filter is eventually 606 00:43:10,080 --> 00:43:11,910 going to be used for processing 607 00:43:11,910 --> 00:43:13,160 continuous time signals. 608 00:43:15,970 --> 00:43:24,020 Now impulse invariance had the very nice characteristic that 609 00:43:24,020 --> 00:43:26,830 it corresponds to a linear mapping between the two 610 00:43:26,830 --> 00:43:32,560 frequency axes, except for the issue of aliasing, and that's 611 00:43:32,560 --> 00:43:36,020 a problem with it, and in particular, limits its 612 00:43:36,020 --> 00:43:41,280 usefulness to filter designs, or for mapping continuous time 613 00:43:41,280 --> 00:43:42,970 filters that are band limited. 614 00:43:46,610 --> 00:43:50,840 On the other hand, we have the bilinear transformation as a 615 00:43:50,840 --> 00:43:55,830 design procedure, which totally avoids aliasing, but 616 00:43:55,830 --> 00:44:00,210 has the disadvantage or difficulty that it represents 617 00:44:00,210 --> 00:44:03,510 a nonlinear mapping from the continuous time filter to the 618 00:44:03,510 --> 00:44:05,420 discrete time filter. 619 00:44:05,420 --> 00:44:10,230 Now this nonlinear distortion is perfectly acceptable if 620 00:44:10,230 --> 00:44:13,210 we're designing or attempting to design filters that have 621 00:44:13,210 --> 00:44:16,400 flat frequency characteristics. 622 00:44:16,400 --> 00:44:19,740 It's not acceptable if, for example, we had a linear 623 00:44:19,740 --> 00:44:23,650 frequency characteristic that we wanted to map to a discrete 624 00:44:23,650 --> 00:44:25,750 time filter and end up with a linear frequency 625 00:44:25,750 --> 00:44:26,800 characteristic. 626 00:44:26,800 --> 00:44:31,480 It won't come out to be linear because of this nonlinear 627 00:44:31,480 --> 00:44:34,320 mapping of the frequency axis. 628 00:44:34,320 --> 00:44:39,890 Now there are also a number of other design procedures, which 629 00:44:39,890 --> 00:44:42,620 we won't go into, for designing discrete time 630 00:44:42,620 --> 00:44:47,560 filters, and among them are a variety of techniques, 631 00:44:47,560 --> 00:44:51,440 including, for example, computer aided design 632 00:44:51,440 --> 00:44:52,700 procedures. 633 00:44:52,700 --> 00:44:56,460 And I invite you, if you're interested and want to dig 634 00:44:56,460 --> 00:45:01,330 into that in more detail and more deeply, to explore that 635 00:45:01,330 --> 00:45:08,060 topic by making reference to various of the books listed in 636 00:45:08,060 --> 00:45:10,390 the bibliography in the text. 637 00:45:10,390 --> 00:45:11,640 Thank you.