HomeVideos

Discrete control #6: z-plane warping and the bilinear transform

Now Playing

Discrete control #6: z-plane warping and the bilinear transform

Transcript

630 segments

0:00

hey everyone welcome back to control

0:02

system lectures we're continuing our

0:04

journey through discrete control and in

0:06

this video we're going to expand our

0:08

understanding of the bilinear transform

0:10

and in doing so we'll learn about how

0:12

this transform warps the Z plane what

0:14

that means for us and what we can do

0:16

about it now this is going to be a

0:18

meandering journey but I think the

0:20

topics we'll cover will be necessary in

0:22

order to set up the proper context

0:23

around Z plane warping and this is like

0:26

a 25 minute video which is a long time I

0:29

know but to entice you to watch the

0:30

whole thing at the end there's going to

0:32

be this pretty sweet animation so

0:34

hopefully you stick around find out what

0:35

it is if you've missed any of the

0:37

previous videos on discrete control you

0:39

can find their links in the description

0:41

below let's get to it

0:42

there may come a time in your career

0:44

where you are asked to design a filter

0:46

that will be implemented on a digital

0:48

computer how do I go about doing this

0:51

you might ask a helpful friend and they

0:53

say it's easy just design a continuous

0:56

filter with the properties that you want

0:57

convert it to a discreet filter with the

1:00

bilinear transform and then tada you can

1:03

implement it on a digital computer which

1:06

you promptly try and find that the

1:08

performance is not what you were

1:10

expecting the frequency is all wrong why

1:13

is that well to answer this question we

1:16

first need to talk briefly about filters

1:18

you can think of a filter like a sieve

1:21

or a strainer that you'd use in cooking

1:23

its main purpose is to take a set of

1:25

items and remove specific unwanted items

1:29

from that set for example after you

1:31

finished boiling pasta you have a pot of

1:33

pasta and water you then passed the

1:35

combined pasta and water through a

1:37

strainer or a filter which will allow

1:40

the water to pass through and be

1:41

discarded so that you're left with only

1:43

the pasta

1:44

similarly filters can also be used on

1:47

signals like the voltage coming from a

1:49

sensor over time the voltage from the

1:52

sensor is changing and you can see the

1:54

frequencies that make up that time

1:55

domain signal by viewing it in the

1:57

frequency domain now you may not want to

2:00

keep the raw unfiltered signal because

2:03

it could be a mix of frequencies that

2:04

you want the pasta and frequencies that

2:07

you don't the water

2:09

so we can design a filter that removes

2:11

or stops the high-frequency signals from

2:14

getting through so that our system only

2:16

sees the low frequency sensor

2:18

information basically our system is only

2:21

getting the pasta in an ideal sense a

2:24

signal filter could be specified by

2:26

stating exactly which frequencies you

2:28

want to keep or pass through the filter

2:30

and which frequencies you want to stop

2:32

or reject with the filter these ideal

2:35

filters have names like low pass and

2:37

high pass and band reject or sometimes

2:40

called the notch filter and band pass

2:43

low pass filters keep frequencies below

2:46

the critical frequency and reject or

2:48

attenuate frequencies higher than it

2:50

high pass filters are the opposite they

2:53

keep the frequencies above the critical

2:55

frequency and reject those below it the

2:58

difference between these two filters in

3:00

our cooking example is whether you kept

3:01

or threw out the water for pasta you'd

3:04

keep the large low frequency noodles and

3:07

discard the higher frequency water but

3:10

for tea you would keep the water and a

3:12

few of the smaller high frequency tea

3:13

particles a notch filter is a low pass

3:17

and a high pass filter that don't

3:18

overlap such that there is a band of

3:20

frequencies in between the two that are

3:22

rejected and everything above and below

3:25

that band are kept you might set up a

3:28

notch filter if you're trying to remove

3:30

the humming noise and an audio system at

3:32

50 Hertz or 60 Hertz the one that's

3:34

generated by the powerline a bandpass is

3:37

the opposite of a notch filter such that

3:39

you only pass through a narrow band of

3:42

frequencies and everything above and

3:44

below is rejected for example our eye is

3:47

a bandpass filter for visible

3:49

frequencies in the e/m spectrum we can

3:52

only see those specific frequencies and

3:54

further still colored objects are

3:57

bandpass filters for that specific color

3:59

frequency if you shine broad spectrum

4:02

light onto a red apple only the red

4:04

frequency is reflected in the band that

4:06

our eyes can see and sometimes we only

4:09

want the metaphorical red frequencies to

4:11

get through our control system and in

4:13

that case we would design a bandpass

4:15

filter but these are ideal

4:18

representations of filters and we can't

4:20

expect to build a filter that perfectly

4:22

rejects or keeps fair

4:23

specific frequencies in our pasta

4:26

example sometimes a few noodles snake

4:27

their way past the strainer and there is

4:29

always some water leftover clinging to

4:31

the noodles in the pan so not a perfect

4:34

separation of the two in reality we're a

4:36

filter transitions from passing to

4:38

stopping is not a single point but

4:40

occurs over a band of frequencies

4:43

likewise you don't get perfect unaltered

4:46

frequencies in the passband region nor

4:48

do you always get perfect attenuation in

4:50

the stop band region how you design your

4:53

filter is based on the requirements for

4:54

the filtering that you are doing and

4:56

there are many variations of these types

4:58

of filters and their given names like

4:59

Butterworth and chebyshev and Bessel and

5:01

more and there's tons of them and

5:03

they'll probably be even more in the

5:05

future but the point I want you to take

5:07

away from this section is that almost

5:09

every filter will have these key

5:10

features in common and those features

5:12

are tied to specific frequencies so it's

5:15

important that our final digital filter

5:18

design maintains these critical

5:19

frequencies right where we want them it

5:21

does us no good to design a low-pass

5:23

analog filter only to have the

5:25

transition band move on us when we

5:27

convert it to a digital filter so with

5:30

that being said let's get back to our

5:32

original goal of designing a filter for

5:34

a digital computer like our helpful

5:36

friend suggested a popular way of

5:38

approaching this problem is to design an

5:40

analogue filter first get it just right

5:42

and then use the bilinear transform to

5:44

map it to the Z domain and hopefully

5:47

create a digital filter whose critical

5:48

frequencies have not been moved the

5:51

reason we would approach the design with

5:52

an analogue filter rather than directly

5:54

designing a digital filter is that we

5:56

have a large amount of continuous analog

5:59

Theory available to us that will give us

6:00

more tools to use during our design

6:02

let's see how this works in practice by

6:05

trying it out on a standard notch filter

6:06

at this point you've understood the

6:09

requirements your filter must meet and

6:10

you've toiled over the math and

6:12

simulations and you're happy with the

6:14

following analog filter design where

6:16

Omega naught is the critical frequency

6:17

that you want to attenuate which in our

6:20

case is 0.1 radians per second and Q is

6:23

the quality factor of the filter or a

6:25

value that corresponds to the steepness

6:28

and depth of the notch in this case

6:30

we're choosing Q equals 1

6:32

this will generate a magnitude response

6:34

curve that looks something like this

6:36

redlined now this isn't a video about

6:38

how to design an analogue filter that

6:40

would require its own standalone series

6:42

so I'm not going to go into detail about

6:43

how we chose this particular notch

6:45

filter for now just know that this is

6:47

one possible form of a notch filter that

6:49

we could have created to meet our

6:51

requirements and I'll show you in a bit

6:53

in MATLAB that this pink transfer

6:55

function does truly create a magnitude

6:57

plot that meets our requirements okay so

7:00

at this point we have a perfectly fine

7:02

analog filter but the catch as you know

7:04

is that we want to implement it on a

7:06

digital computer and say one running

7:08

with a sample time of two seconds which

7:11

means we need to map it to the Z domain

7:12

using the bilinear transform we did the

7:15

calculations by hand in the previous

7:17

video so in this one let's just go

7:18

straight to MATLAB first things first

7:21

let's define our Laplace variable s and

7:24

then set our sample time to two seconds

7:27

the critical frequency to 0.1 radians

7:29

per second and the quality factor to one

7:32

with our variables defined we can create

7:34

our S domain transfer function using the

7:37

equation for a standard notch filter and

7:39

no surprise we got the same result that

7:41

we did by hand now let's see the bode

7:44

plot to you check out the magnitude of

7:46

this filter across the frequency

7:47

spectrum and that's a good-looking notch

7:51

and if we zoom in a bit we can see that

7:53

the notch is located precisely at 0.1

7:56

radians per second just like we wanted

7:58

and we step one out of the way let's use

8:01

the bilinear transform or the Tustin

8:03

method to convert to the Z domain and we

8:06

get a discrete transfer function with a

8:08

sample time of two seconds so far so

8:11

good we can now plot the bode plots for

8:14

both the analog and digital filters on

8:16

top of each other and see how we did

8:18

that's that's pretty good the red

8:21

digital filter lies pretty much on top

8:23

of the blue analog filter we did some

8:26

fine work here

8:27

and all that's left to do is write some

8:29

code for this filter and put it on our

8:31

digital computer oh wait a second I I'm

8:36

just realizing that I got our original

8:37

requirement wrong it looked like Omega

8:40

naught was written as 0.1 radians per

8:42

second but really it was supposed to

8:44

read 0.7 Radian

8:46

per second okay that's no problem we'll

8:49

just update the omega-not variable 20.7

8:52

rerun our analog transfer function and

8:54

discrete-time transfer function now this

8:57

is probably still okay but let's just

8:59

check the bode plot once again to be

9:01

absolutely sure and they're different

9:04

and if we zoom in we can see that the

9:07

analog notch is at 0.7 like we want but

9:10

the digital notch is much lower at 0.6

9:13

one radians per second what happened all

9:15

we did was increase the critical

9:17

frequency

9:19

well this shift in frequency comes down

9:22

to how the Z plane is warped by the

9:24

bilinear transform differently than e to

9:27

the St which is the true definition of Z

9:30

so it should be clear that you can't

9:32

just blindly apply the bilinear

9:33

transform to any function with any

9:36

sample time and get a good match in the

9:38

Z domain so what's going on here to

9:41

answer this we must first talk about how

9:42

Z equals e to the St maps from the S

9:46

plane to the Z plane I'll just set up a

9:49

blank s plane and blank Z plane and

9:51

let's try to convert a few points for a

9:53

sample time of two seconds we'll start

9:56

with the origin s equals zero plus zero

9:59

J this gives us Z equals e to the 0 or 1

10:03

so the origin in the S plane maps to the

10:05

point 1 0 in the Z plane let's try s

10:09

equals minus 1 plus 0 J and this maps to

10:13

zero point 1 3 5 3 in the Z plane this

10:17

is inside the unit circle and fairly

10:19

close to the origin if we head up the

10:22

imaginary access to s equals 0 plus J we

10:25

see that this maps to negative zero

10:27

point four two plus zero point 9 1 j

10:30

which lies on the unit circle in the z

10:33

plane and finally let's try a point at s

10:36

equals minus 100 which is practically

10:40

negative infinity for this system and it

10:43

maps to one point three eight times ten

10:46

to the minus 87 basically zero so points

10:51

near negative real infinity mapped to

10:53

the origin in the Z plane

10:56

doing math is fine you know it's fine

10:59

but I think it helps to be able to

11:01

visualize the mapping here's what it's

11:03

doing we start with the Cartesian grid

11:06

in the s plane the e to the real part of

11:09

s scrunches the left half plane inward

11:11

to where the entire left half plane

11:13

exists between the real values 0 and 1

11:16

and the right half plane extend out past

11:19

1 to infinity the e to the imaginary

11:23

part rotates this scrunched grid around

11:26

the origin and it just keeps rotating it

11:28

more and more as Omega increases towards

11:31

infinity in this way the J Omega line in

11:34

the S plane maps to the unit circle in

11:36

the Z plane now to help with this

11:39

visualization let's look at something

11:41

much more precise than my drawings I

11:44

wrote a little program that maps a

11:46

location in the S plane on the left to

11:49

the Z plane on the right using the

11:51

transformation Z equals e to the st and

11:53

in this case T is set to 2 seconds

11:56

you'll note that the left half plane is

11:59

gray and this maps entirely into the

12:02

grey unit circle in the Z plane the

12:05

right half plane the white part is

12:06

outside of the unit circle the origin of

12:10

the S plane the red dot is mapped to the

12:12

point 1 0 the black dot now if I move

12:16

that red dot to about minus 1 0 you can

12:20

see the black dot moves inward towards

12:23

the origin and if we keep going more

12:25

negative in the S plane it pretty much

12:28

Maps right onto the origin of the z

12:30

plane and if we start heading up the J

12:33

Omega axis the black dot follows the

12:35

perimeter of the unit circle that's

12:38

because the J Omega axis maps to the

12:40

unit circle in the Z plane now here's

12:43

the interesting part if we start at a

12:45

fairly negative J Omega value and just

12:47

start increasing it you'll notice the

12:49

black dot rotates around the origin

12:51

again and again this is the effect the

12:54

imaginary part has on the mapping it

12:56

just rotates the mapping around the

12:58

origin while the real part dictates how

13:01

far you are from the origin now keep

13:04

that in mind as we contrast this

13:05

behavior with the bilinear transform

13:08

we'll start by drawing out a blank s

13:10

plane and Z plane again and then convert

13:13

the same four points that we did with e

13:15

to the S T but this time using the

13:17

bilinear transform we'll start with the

13:19

origin in the S plane which maps to the

13:22

point plus 1 in the Z plane the same as

13:25

we got before but this time the point s

13:29

equals minus 1 maps exactly to the

13:32

origin in the Z plane and the point s

13:35

equals 0 plus J maps to J in the Z plane

13:39

now that's still on the unit circle I

13:42

mean the J Omega lines still maps to the

13:44

unit circle using the bilinear transform

13:46

but the resulting location around the

13:49

circle has changed finally our point at

13:52

basically negative infinity maps to

13:55

about minus 1 in the Z plane the math is

14:00

the math but just like we did before

14:02

let's attempt to visualize this mapping

14:04

and see if we can use that visualization

14:06

to understand how these two transforms

14:09

project the S plane onto the Z plane

14:11

differently again we start with the

14:13

Cartesian grid in the S plane but

14:15

instead of scrunching it in from the

14:17

negative real line we're going to pinch

14:19

it in at three different locations we're

14:22

gonna bend the J Omega axis down from

14:24

the top and up from the bottom so that

14:27

the tips of the line at positive and

14:28

negative infinity meet at the point

14:31

minus one similarly we're going to pinch

14:34

the negative real line so that it's

14:36

infinity also meets at minus 1 with this

14:39

mapping there are no rotations just a

14:41

pinching of the positive and negative

14:43

imaginary infinities and negative real

14:46

infinity so that they all meet at minus

14:48

1 again the pinching is done such that

14:51

the J Omega line wraps around of the

14:53

unit circle now let's see what this

14:56

looks like with a bit more precision

14:58

this is the same idea as before but now

15:02

we're going to map from the S plane to

15:04

the Z plane with the bilinear transform

15:06

still with a sample time of 2 seconds

15:10

just like with E to the s T the bilinear

15:13

transform maps the entire left

15:15

half-plane to inside of the unit circle

15:18

but now look at the way that this grid

15:20

in the Z plane is shaped compared to the

15:23

one that we saw with E to the s T the

15:25

grid gets more dense towards -1 rather

15:28

than the origin and if you follow the

15:32

real or imaginary lines in the S plane

15:34

they all curve towards this minus 1

15:37

point in the Z plane the origin in the S

15:40

plane mapped to the point 1 0 as we

15:42

expect and as we move along the negative

15:45

real line we can watch the black dot

15:47

also move along the negative real line

15:49

closer and closer to minus 1 but never

15:52

quite reaching it and if we move up and

15:55

down the J Omega line you can see the

15:57

black dot travel along the unit circle

15:59

towards minus 1 as well so all

16:02

infinities in this left hemisphere in

16:05

the S plane mapped to minus 1 in the Z

16:08

plane a bit different than e to the St

16:11

for sure ok what does this difference in

16:15

warping have to do with the frequency

16:16

well let's take the bilinear transform

16:19

and recognize that s is defined as Sigma

16:22

plus J Omega Sigma is the exponential

16:26

term which doesn't impact frequency so

16:28

we can just look at J Omega for

16:30

frequency information we can plug J

16:33

Omega into the bilinear transform for s

16:36

and we get this equation here I wrote

16:39

Omega sub a for analog frequency because

16:43

this was the true s domain location

16:45

which defined the analog frequency that

16:47

we wanted this was our starting point

16:49

however to find out what this new

16:52

frequency is that we just created we can

16:55

convert back to the S plane using the

16:58

definition of Z or e to the S T for this

17:01

s I'll replace it with Omega sub D for

17:04

the discrete frequency that resulted

17:06

from the bilinear transform now we can

17:09

just solve for Omega D as a function of

17:11

Omega a and you can tell from this

17:13

equation that Omega D does not equal

17:15

Omega a we've moved the frequency by

17:19

using the bilinear transform we can

17:22

simplify this equation but for now let's

17:25

try a few points with this unsimplified

17:27

equation and see how the frequencies

17:29

move but before we do that let's

17:32

recognize that for a sample time of 2

17:34

seconds or a sample frequency of 1/2

17:37

Hertz the Nyquist frequency is 1/4 Hertz

17:40

or half the sample frequency this puts

17:42

the Nyquist frequency at PI over 2

17:45

radians per second and we're going to

17:47

use this shortly for our first point

17:50

let's look at an analog frequency of 0.1

17:53

radians per second this is about 6% of

17:56

the Nyquist frequency which is

17:57

relatively slow let's plug this into our

18:00

equation and rather than solve it by

18:02

hand let's just quickly solve it in

18:04

MATLAB first I'll define the Omega a

18:08

variable type out the equation for Omega

18:11

D and we get a discrete frequency of

18:14

zero point zero nine nine seven radians

18:16

per second you'll notice that this is

18:18

very close to our starting analog

18:20

frequency and it's what we saw when we

18:23

plotted the discrete and analog notch

18:25

filters on top of each other when the

18:27

critical frequency was zero point one

18:28

radians per second now let's try an

18:32

analogue frequency of zero point seven

18:34

radians per second this is a relatively

18:37

fast frequency or about 45% of the

18:40

Nyquist frequency again we set up our

18:42

equation to solve for Omega D and then

18:44

we go back to MATLAB change our Omega a

18:47

variable and solve for Omega D the

18:50

discrete frequency is not zero point

18:53

seven radians per second but about zero

18:54

point six one which again if you recall

18:57

was the difference we saw between our

18:59

two notch filters when the critical

19:01

frequency was 0.7 radians per second

19:04

interesting so at this point you might

19:07

be asking what happens if we design a

19:09

filter above the Nyquist frequency well

19:12

let's try it with an analog frequency of

19:14

2.5 radians per second well zip through

19:17

the math real quick you can double-check

19:19

this on your own but we find that it's

19:21

about one point one nine radians per

19:23

second which is really different than

19:25

our goal

19:27

it was mapped to just below the Nyquist

19:29

frequency in fact it doesn't matter how

19:31

high the analog frequency is when you

19:34

map that system using the bilinear

19:35

transform it always maps it to just less

19:39

than the Nyquist frequency that's the

19:41

result of the mapping not rotating

19:43

around the origin but rather pinching it

19:44

down to minus 1 that minus 1 point is

19:47

the Nyquist frequency in the Z plane ok

19:51

enough of that the question is what can

19:53

we do about this

19:54

well remember I said that this equation

19:56

can be simplified the math is pretty

19:59

straight forward to do the

20:00

simplification but it's a bit much to

20:03

write out here instead I direct you to

20:05

follow along with the Wikipedia page

20:06

where they do a pretty good job of

20:08

deriving the simplified equation and

20:10

it's this equation here where Omega D is

20:14

this arctan function of Omega a alright

20:17

we are in the homestretch now I'll

20:19

rewrite the frequency warping equation

20:22

here and if we plot this equation we

20:24

find something very telling as we

20:26

increase Omega a Omega D continues to

20:29

increase as well but asymptotically to

20:31

PI over T which is the Nyquist frequency

20:34

in our case it's PI over 2 since our

20:36

sample time is 2 seconds and what you'll

20:39

notice is that this equation has nearly

20:41

a one-to-one linear relationship with

20:42

Omega a and Omega D at low frequencies

20:45

compared to the Nyquist frequency and as

20:48

we increase Omega a Omega D differs from

20:51

it more and more just like we saw with

20:53

our design so ask the question again

20:56

what can we do about this well we can

20:59

pre-warp Omega a essentially this means

21:02

that we are artificially moving our

21:04

design frequency before mapping it with

21:06

the bilinear transform so that after the

21:09

mapping the critical frequency is in the

21:11

correct spot to do this we apply the

21:13

tangent equation to Omega a first

21:16

luckily there is a way to do this pre

21:18

warping at the exact same time that we

21:20

do the bilinear transform with a

21:21

modified version of the transform

21:23

instead of having a multiplier of 2 over

21:26

T we multiply Z minus 1 over Z plus 1

21:29

with Omega naught divided by the tangent

21:32

of Omega naught times T over 2

21:34

and you know we could do this mapping by

21:37

hand but again we could just do it in

21:39

MATLAB as well once again we'll set up

21:42

our variables and define our S domain

21:44

notch filter at zero point seven radians

21:46

per second

21:47

then we can convert it to the Z domain

21:49

with the bilinear transform but this

21:51

time we'll apply a pre warping at zero

21:53

point seven radians per second during

21:55

the conversion remember when we did this

21:58

without the pre warping our discrete

21:59

knotch filter came back at zero point

22:01

six one radians per second so let's see

22:04

how this one does and it's perfect look

22:08

at this if we zoom in we can see that

22:10

with the pre warping we were able to

22:12

create a notch filter with the desired

22:14

critical frequency okay that's pretty

22:18

much what I wanted to cover in this

22:19

video just that we can use the bilinear

22:21

transform to convert analog filters into

22:24

discrete filters but we have to

22:26

understand how frequencies are warped

22:27

during this process and account for them

22:29

during the conversion so thanks for

22:31

watching and following along with this

22:33

extremely long video but before I leave

22:36

you I promised that we would end with a

22:38

pretty sweet animation well I think it's

22:41

sweet anyway once again I present the Z

22:44

plane and it's unit circle I'm going to

22:47

use this to show you exactly what is

22:48

happening when we apply a pre-warp at a

22:51

specific frequency I'm plotting four

22:53

poles here the two on the far right are

22:56

the two notch filter poles for the

22:58

critical frequency of 0.1 radians per

23:01

second and the two on the left are the

23:03

notch filter poles for the critical

23:05

frequency of 0.7 radians per second

23:08

these are the true locations of the

23:10

poles when converted using Z equals e to

23:12

the St the grid pattern you might

23:15

recognize as the mapping that occurs

23:16

when using e to the S T now I'll add on

23:20

top of this the exact same for poles but

23:23

this time mapped using the bilinear

23:24

transform notice the two on the right

23:27

overlay nicely this agrees with what we

23:30

saw before which was that relatively low

23:33

frequencies compared to the Nyquist

23:34

frequency don't get shifted by very much

23:36

however look at the two poles for the

23:39

zero point seven radians per second

23:41

critical frequency not close and also

23:44

exactly what we saw before now watch as

23:47

I apply a

23:48

pre-warp at a larger and larger critical

23:50

frequency the whole red grid starts to

23:53

move and stretch and moving the poles

23:55

along with it and if I stop exactly at

23:58

zero point seven radians per second you

24:00

can see that all four poles for the zero

24:03

point seven Radian per second notch

24:04

filter line up with each other

24:06

now in doing so the four zero point one

24:08

Radian per second poles no longer line

24:10

up but that's the penalty we have to pay

24:12

with the bilinear transform we have to

24:15

choose the frequencies that matter most

24:17

to us but all in all the bilinear

24:19

transform is pretty awesome okay that is

24:23

the end of this video

24:25

finally a huge thank you to my patreon

24:28

supporters for making this video

24:29

possible if you would like to support me

24:31

in my efforts on youtube you can from

24:33

the patreon link in the description

24:35

below for any amount of support you can

24:37

download a digital copy of my book and

24:39

progress on control theory now I'm still

24:42

actively writing the book so it's not

24:43

complete but if you would like a copy of

24:45

what I have so far but are unable to

24:47

support through patreon for any reason

24:49

just email me at control system lectures

24:51

at gmail.com and I will send you a copy

24:54

for free

24:55

that way we can spread the knowledge and

24:57

help everyone on their quest to becoming

24:59

better control system engineers thanks

25:02

everyone

Interactive Summary

Este vídeo explora o funcionamento da Transformada Bilinear na conversão de filtros analógicos para filtros digitais. O autor demonstra que essa transformação causa um fenômeno conhecido como "empenamento" (warping) das frequências, onde as frequências críticas do filtro original não correspondem exatamente às do filtro digital resultante. Após explicar a diferença entre o mapeamento do plano-S para o plano-Z usando a função exponencial e a transformada bilinear, o vídeo apresenta a técnica de "pré-empenamento" (pre-warping) como uma solução para alinhar corretamente as frequências críticas desejadas.

Suggested questions

2 ready-made prompts