#N canvas 38 24 1304 705 10;
#N canvas 122 91 603 581 Z-Plane-biquad 0;
#X obj 101 101 cnv 15 450 450 empty empty empty 20 12 1 14 -191407
-66577 0;
#X obj 176 176 bng 300 1000 1000 0 \$0-bng \$0-bng-set empty 17 7 0
10 -191407 -245500 -1;
#N canvas 0 22 450 300 (subpatch) 0;
#X coords 0 1 100 -1 75 75 1;
#X restore 101 101 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X coords 0 1 100 -1 75 75 1;
#X restore 176 101 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X coords 0 1 100 -1 75 75 1;
#X restore 251 101 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X coords 0 1 100 -1 75 75 1;
#X restore 326 101 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X coords 0 1 100 -1 75 75 1;
#X restore 401 101 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X coords 0 1 100 -1 75 75 1;
#X restore 476 101 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X coords 0 1 100 -1 75 75 1;
#X restore 101 176 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X coords 0 1 100 -1 75 75 1;
#X restore 176 176 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X coords 0 1 100 -1 75 75 1;
#X restore 251 176 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X coords 0 1 100 -1 75 75 1;
#X restore 326 176 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X coords 0 1 100 -1 75 75 1;
#X restore 401 176 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X coords 0 1 100 -1 75 75 1;
#X restore 476 176 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X coords 0 1 100 -1 75 75 1;
#X restore 101 251 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X coords 0 1 100 -1 75 75 1;
#X restore 176 251 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X coords 0 1 100 -1 75 75 1;
#X restore 251 251 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X coords 0 1 100 -1 75 75 1;
#X restore 326 251 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X coords 0 1 100 -1 75 75 1;
#X restore 401 251 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X coords 0 1 100 -1 75 75 1;
#X restore 476 251 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X coords 0 1 100 -1 75 75 1;
#X restore 101 326 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X coords 0 1 100 -1 75 75 1;
#X restore 176 326 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X coords 0 1 100 -1 75 75 1;
#X restore 251 326 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X coords 0 1 100 -1 75 75 1;
#X restore 326 326 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X coords 0 1 100 -1 75 75 1;
#X restore 401 326 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X coords 0 1 100 -1 75 75 1;
#X restore 476 326 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X coords 0 1 100 -1 75 75 1;
#X restore 101 401 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X coords 0 1 100 -1 75 75 1;
#X restore 176 401 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X coords 0 1 100 -1 75 75 1;
#X restore 251 401 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X coords 0 1 100 -1 75 75 1;
#X restore 326 401 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X coords 0 1 100 -1 75 75 1;
#X restore 401 401 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X coords 0 1 100 -1 75 75 1;
#X restore 476 401 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X coords 0 1 100 -1 75 75 1;
#X restore 101 476 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X coords 0 1 100 -1 75 75 1;
#X restore 176 476 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X coords 0 1 100 -1 75 75 1;
#X restore 251 476 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X coords 0 1 100 -1 75 75 1;
#X restore 326 476 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X coords 0 1 100 -1 75 75 1;
#X restore 401 476 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X coords 0 1 100 -1 75 75 1;
#X restore 476 476 graph;
#X obj 325 101 cnv 1 2 450 empty empty empty 20 12 0 14 -258113 -66577
0;
#X obj 100 325 cnv 1 450 2 empty empty empty 20 12 0 14 -258113 -66577
0;
#X obj 177 177 cnv 15 15 15 empty \$0-pole1 X 114 24 0 14 -191407 -66577
0;
#X obj 177 177 cnv 15 15 15 empty \$0-zero1 empty 145 150 0 14 -191407
-66577 0;
#X obj 177 177 cnv 15 15 15 empty \$0-pole2 X 114 275 0 14 -191407
-66577 0;
#X obj 177 177 cnv 15 15 15 empty \$0-zero2 empty 145 150 0 14 -191407
-66577 0;
#N canvas 576 25 310 167 z-plane 0;
#X obj 36 34 r \$0-coeficientes;
#N canvas 502 195 417 257 find_poles 0;
#X obj 36 182 outlet;
#X obj 48 155 outlet;
#X obj 106 186 outlet;
#X obj 109 161 outlet;
#X obj 36 10 inlet;
#N canvas 256 22 607 380 Poles 0;
#X obj 62 21 inlet;
#X text 67 324 polo 1;
#X text 106 20 a1 a2 b0 b1 b2;
#X text 177 324 polo 2;
#X obj 416 133 v kIm_\$0;
#X obj 197 135 v kRe_\$0;
#X obj 70 280 outlet;
#X obj 62 304 outlet;
#X obj 180 280 outlet;
#X obj 172 304 outlet;
#X obj 197 91 expr if($f1 >= 0 \, sqrt(abs($f1)) \, 0) \; if($f1 <
0 \, sqrt(abs($f1)) \, 0);
#X obj 62 203 expr ($f1 + kRe_\$0) / 2 \; kIm_\$0 / 2 \; ($f1 - kRe_\$0)
/ 2 \; 0 - kIm_\$0 / 2;
#X obj 62 50 expr $f1 \; pow($f1 \, 2) + (4 * $f2);
#X connect 0 0 12 0;
#X connect 10 0 5 0;
#X connect 10 1 4 0;
#X connect 11 0 7 0;
#X connect 11 1 6 0;
#X connect 11 2 9 0;
#X connect 11 3 8 0;
#X connect 12 0 11 0;
#X connect 12 1 10 0;
#X restore 36 63 pd Poles;
#X connect 4 0 5 0;
#X connect 5 0 0 0;
#X connect 5 1 1 0;
#X connect 5 2 2 0;
#X connect 5 3 3 0;
#X restore 36 70 pd find_poles;
#N canvas 349 405 466 198 plot 0;
#X obj 37 44 inlet;
#X obj 88 44 inlet;
#X obj 138 44 inlet;
#X obj 189 43 inlet;
#N canvas 149 34 1099 643 Poles 0;
#X obj 183 305 s \$0-pole1;
#X obj 183 251 pack;
#X msg 183 277 label_pos \$1 \$2;
#X obj 183 165 * 150;
#X obj 180 197 + 150;
#X obj 238 214 + 150;
#X obj 177 224 - 5;
#X obj 190 58 inlet;
#X obj 265 57 inlet;
#X obj 311 88 r \$0-P1-im;
#X obj 61 104 r \$0-P1-re;
#X obj 231 169 * -150;
#X msg 387 364 set \$1;
#X obj 387 388 s \$0-p1-sl-set;
#X obj 805 256 pack;
#X msg 805 282 label_pos \$1 \$2;
#X obj 805 170 * 150;
#X obj 802 202 + 150;
#X obj 860 219 + 150;
#X obj 799 229 - 5;
#X obj 812 63 inlet;
#X obj 887 62 inlet;
#X obj 853 174 * -150;
#X obj 805 310 s \$0-pole2;
#X obj 683 109 r \$0-P2-re;
#X obj 933 93 r \$0-P2-im;
#X msg 671 364 set \$1;
#X obj 651 392 s \$0-p2-sl-set;
#X obj 520 193 ==;
#X obj 338 293 expr if ($f1 == $f3 \, sqrt($f1*$f1 + $f2*$f2) \, ($f1
/ 2) + 0.5) \; if ($f1 == $f3 \, atan2($f2 \, $f1) / pi_\$0 \, ($f3
/ 2) + 0.5) \;;
#X obj 520 215 s \$0-pair_p-set;
#X obj 854 384 expr $f1 == 0 && $f2 == 0;
#X obj 846 414 sel 1 0;
#X msg 817 445 label;
#X msg 871 445 label X;
#X obj 885 498 s \$0-pole2;
#X connect 1 0 2 0;
#X connect 2 0 0 0;
#X connect 3 0 4 0;
#X connect 4 0 6 0;
#X connect 5 0 1 1;
#X connect 6 0 1 0;
#X connect 7 0 3 0;
#X connect 7 0 28 0;
#X connect 7 0 29 0;
#X connect 8 0 11 0;
#X connect 8 0 29 1;
#X connect 9 0 11 0;
#X connect 10 0 3 0;
#X connect 11 0 5 0;
#X connect 12 0 13 0;
#X connect 14 0 15 0;
#X connect 15 0 23 0;
#X connect 16 0 17 0;
#X connect 17 0 19 0;
#X connect 18 0 14 1;
#X connect 19 0 14 0;
#X connect 20 0 16 0;
#X connect 20 0 28 1;
#X connect 20 0 29 2;
#X connect 20 0 31 0;
#X connect 21 0 22 0;
#X connect 21 0 31 1;
#X connect 22 0 18 0;
#X connect 24 0 16 0;
#X connect 25 0 22 0;
#X connect 26 0 27 0;
#X connect 28 0 30 0;
#X connect 29 0 12 0;
#X connect 29 1 26 0;
#X connect 31 0 32 0;
#X connect 32 0 33 0;
#X connect 32 1 34 0;
#X connect 33 0 35 0;
#X connect 34 0 35 0;
#X restore 93 98 pd Poles;
#N canvas 14 68 1299 625 GUI 0;
#X obj 117 211 s \$0-P1-im;
#X obj 6 211 s \$0-P1-re;
#X obj 228 211 s \$0-P2-re;
#X obj 339 211 s \$0-P2-im;
#X obj 924 205 s \$0-Z2-im;
#X obj 813 205 s \$0-Z2-re;
#X obj 702 205 s \$0-Z1-im;
#X obj 591 205 s \$0-Z1-re;
#X obj 591 122 expr if (z_pair_\$0 == 1 \, cos($f2 * pi_\$0) * $f1
\, $f1 *2 -1) \; if (z_pair_\$0 == 1 \, sin($f2 * pi_\$0) * $f1 \,
0) \; if (z_pair_\$0 == 1 \, cos($f2 * pi_\$0) * $f1 \, $f2 * 2 -1)
\; if (z_pair_\$0 == 1 \, sin($f2 * pi_\$0) * -$f1 \, 0);
#X obj 6 131 expr if (p_pair_\$0 == 1 \, cos($f2 * pi_\$0) * $f1 \,
$f1 *2 -1) \; if (p_pair_\$0 == 1 \, sin($f2 * pi_\$0) * $f1 \, 0)
\; if (p_pair_\$0 == 1 \, cos($f2 * pi_\$0) * $f1 \, $f2 * 2 -1) \;
if (p_pair_\$0 == 1 \, sin($f2 * pi_\$0) * -$f1 \, 0);
#X obj 486 205 s \$0-coef;
#X obj 234 73 trigger bang float;
#X obj 234 45 r \$0-p2-sl;
#X obj 6 104 r \$0-p1-sl;
#X obj 234 101 s \$0-p1-sl-set;
#X obj 1073 156 s \$0-bng-set;
#X obj 1073 106 tgl 15 0 empty empty empty 17 7 0 10 -1 -262144 -1
1 1;
#X obj 1073 130 metro 1000;
#X obj 1073 81 loadbang;
#X obj 486 67 r \$0-z1-sl;
#X obj 819 65 trigger bang float;
#X obj 819 37 r \$0-z2-sl;
#X obj 819 93 s \$0-z1-sl-set;
#X obj 486 92 trigger bang float;
#X obj 363 62 r \$0-p2-sl-set;
#X obj 363 85 route set;
#X obj 952 73 route set;
#X obj 952 50 r \$0-z2-sl-set;
#X obj 1004 314 v z_pair_\$0;
#X obj 898 309 v p_pair_\$0;
#X obj 895 274 r \$0-pair_p;
#X obj 1013 271 r \$0-pair_z;
#X obj 629 319 unpack;
#X obj 671 366 s \$0-z2-sl-set;
#X msg 671 344 set \$1;
#X obj 631 449 s \$0-z1-sl-set;
#X msg 629 292 1 \$1;
#X obj 627 365 t f f;
#X obj 678 406 s \$0-pair_z-set;
#X msg 517 397 -1 1 0;
#X obj 517 433 unpack f f f;
#X obj 547 496 s \$0-z2-sl-set;
#X msg 547 474 set \$1;
#X obj 523 542 s \$0-z1-sl-set;
#X obj 465 264 r \$0-type;
#X obj 381 303 sel 3 2;
#X msg 424 378 1;
#X obj 400 527 s \$0-z1-sl-set;
#X obj 418 488 s \$0-pair_z-set;
#X obj 259 428 spigot;
#X msg 350 374 0;
#X obj 354 405 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 284 458 f;
#X obj 385 430 t f b f;
#X obj 286 533 s \$0-z2-sl-set;
#X msg 305 502 set \$1;
#X floatatom 492 324 5 0 0 0 - - -;
#X obj 795 459 s \$0-p1-sl-set;
#X msg 828 429 label amp;
#X msg 815 403 label amp_1;
#X msg 953 435 label angle;
#X msg 915 412 label amp_2;
#X obj 920 465 s \$0-p2-sl-set;
#X obj 868 336 sel 0 1;
#X msg 1067 440 label amp;
#X msg 1054 414 label amp_1;
#X msg 1192 446 label angle;
#X msg 1154 423 label amp_2;
#X obj 1107 347 sel 0 1;
#X obj 1034 470 s \$0-z1-sl-set;
#X obj 1159 476 s \$0-z2-sl-set;
#X obj 1166 114 expr atan(1) * 4;
#X obj 1166 145 v pi_\$0;
#X obj 447 327 sel 4;
#X obj 506 364 s \$0-reset;
#X obj 683 490 r \$0-reset;
#X msg 683 513 0.5;
#X obj 688 536 t f f;
#X msg 735 527 0;
#X obj 686 564 t f f;
#X obj 782 543 s \$0-pair_p-set;
#X msg 730 312 set \$1;
#X obj 730 334 s \$0-p2-sl-set;
#X obj 683 590 s \$0-p1-sl-set;
#X connect 8 0 7 0;
#X connect 8 1 6 0;
#X connect 8 2 5 0;
#X connect 8 3 4 0;
#X connect 9 0 1 0;
#X connect 9 1 0 0;
#X connect 9 2 2 0;
#X connect 9 3 3 0;
#X connect 11 0 14 0;
#X connect 11 1 9 1;
#X connect 11 1 49 0;
#X connect 11 1 52 1;
#X connect 12 0 11 0;
#X connect 13 0 9 0;
#X connect 16 0 17 0;
#X connect 17 0 15 0;
#X connect 18 0 16 0;
#X connect 18 0 71 0;
#X connect 19 0 23 0;
#X connect 20 0 22 0;
#X connect 20 1 8 1;
#X connect 21 0 20 0;
#X connect 23 0 10 0;
#X connect 23 1 8 0;
#X connect 24 0 25 0;
#X connect 25 0 9 1;
#X connect 26 0 8 1;
#X connect 27 0 26 0;
#X connect 30 0 29 0;
#X connect 30 0 63 0;
#X connect 31 0 28 0;
#X connect 31 0 68 0;
#X connect 32 0 37 0;
#X connect 32 1 34 0;
#X connect 34 0 33 0;
#X connect 36 0 32 0;
#X connect 37 0 35 0;
#X connect 37 1 38 0;
#X connect 39 0 40 0;
#X connect 40 0 43 0;
#X connect 40 1 42 0;
#X connect 40 2 38 0;
#X connect 42 0 41 0;
#X connect 44 0 45 0;
#X connect 44 0 56 0;
#X connect 45 0 46 0;
#X connect 45 1 39 0;
#X connect 45 1 50 0;
#X connect 45 2 36 0;
#X connect 45 2 50 0;
#X connect 45 2 73 0;
#X connect 46 0 53 0;
#X connect 46 0 51 0;
#X connect 49 0 54 0;
#X connect 50 0 51 0;
#X connect 51 0 49 1;
#X connect 52 0 55 0;
#X connect 53 0 47 0;
#X connect 53 1 52 0;
#X connect 53 2 48 0;
#X connect 55 0 54 0;
#X connect 58 0 57 0;
#X connect 59 0 57 0;
#X connect 60 0 62 0;
#X connect 61 0 62 0;
#X connect 63 0 59 0;
#X connect 63 0 61 0;
#X connect 63 1 58 0;
#X connect 63 1 60 0;
#X connect 64 0 69 0;
#X connect 65 0 69 0;
#X connect 66 0 70 0;
#X connect 67 0 70 0;
#X connect 68 0 65 0;
#X connect 68 0 67 0;
#X connect 68 1 64 0;
#X connect 68 1 66 0;
#X connect 71 0 72 0;
#X connect 73 0 74 0;
#X connect 75 0 76 0;
#X connect 76 0 77 0;
#X connect 77 0 79 0;
#X connect 77 1 34 0;
#X connect 77 1 78 0;
#X connect 77 1 81 0;
#X connect 78 0 38 0;
#X connect 78 0 80 0;
#X connect 79 0 83 0;
#X connect 79 1 35 0;
#X connect 81 0 82 0;
#X restore 248 86 pd GUI;
#X connect 0 0 4 0;
#X connect 1 0 4 1;
#X connect 2 0 4 2;
#X connect 3 0 4 3;
#X restore 36 100 pd plot;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 1 1 2 1;
#X connect 1 2 2 2;
#X connect 1 3 2 3;
#X restore 191 67 pd z-plane;
#X coords 0 -1 1 1 452 452 2 100 100;
#X restore 835 234 pd Z-Plane-biquad;
#X obj 130 188 knob 40 40 20 15000 1 0 \$0-freq \$0-freq-set Center-Freq
-18 -10 193 15 -262144 -1 -1 3900 1;
#N canvas 576 374 400 394 coeficientes 0;
#X obj 116 48 inlet;
#X obj 50 48 inlet;
#X obj 192 248 v r;
#X obj 320 248 v omega;
#X obj 239 248 v oneminusr;
#N canvas 523 118 458 266 init 0;
#X msg 115 80 0;
#X obj 115 34 loadbang;
#X msg 209 128 \; pd dsp 1;
#X obj 53 183 s \$0-freq-set;
#X msg 53 159 500;
#X obj 115 137 s \$0-sl-1;
#X obj 290 104 samplerate~;
#X obj 371 135 v pi;
#X obj 291 131 v sr;
#X obj 371 109 pi;
#X obj 158 172 s \$0-q_set;
#X msg 150 107 1;
#X connect 0 0 5 0;
#X connect 1 0 0 0;
#X connect 1 0 2 0;
#X connect 1 0 4 0;
#X connect 1 0 6 0;
#X connect 1 0 11 0;
#X connect 4 0 3 0;
#X connect 6 0 8 0;
#X connect 9 0 7 0;
#X connect 11 0 10 0;
#X restore 199 89 pd init;
#X obj 50 313 s \$0-coeficientes;
#X obj 116 87 t b f;
#X obj 50 130 pack float float;
#X obj 50 282 pack float float float;
#X obj 50 159 expr omega \; - r * r \; 2 * oneminusr * (oneminusr +
r * omega) \; 1 - oneminusr \; min(omega / $f2 \, 1) \; $f1 * 2*pi
/ sr;
#N canvas 526 56 548 260 a1 0;
#X obj 62 -35 inlet;
#X obj 59 114 outlet;
#X obj 365 47 v g;
#X obj 59 5 expr (((g*g*g * (-1/720) + g*g*(1/24)) - g*0.5) + 1) \;
$f1 * $f1;
#X obj 59 67 expr max(2 * $f1 * r \, -1);
#X connect 0 0 3 0;
#X connect 3 0 4 0;
#X connect 3 1 2 0;
#X connect 4 0 1 0;
#X restore 50 254 pd a1;
#X connect 0 0 7 0;
#X connect 1 0 8 0;
#X connect 7 0 8 0;
#X connect 7 1 8 1;
#X connect 8 0 10 0;
#X connect 9 0 6 0;
#X connect 10 0 11 0;
#X connect 10 1 9 1;
#X connect 10 2 9 2;
#X connect 10 3 2 0;
#X connect 10 4 4 0;
#X connect 10 5 3 0;
#X connect 11 0 9 0;
#X restore 131 264 pd coeficientes;
#X obj 529 537 cpole~;
#X obj 551 592 cpole~;
#X obj 529 469 *~;
#X obj 543 622 output~;
#X obj 499 432 noise~;
#X obj 218 218 nbx 5 14 1 100 1 0 \$0-Q \$0-q_set Q 0 -8 0 10 -228856
-1 -1 11.3419 256;
#X obj 119 287 r \$0-coeficientes;
#X obj 119 316 unpack float float float;
#X floatatom 260 342 0 0 0 0 - - -;
#X floatatom 189 342 0 0 0 0 - - -;
#X floatatom 119 342 0 0 0 0 - - -;
#X text 260 391 ganho;
#X text 117 391 coef1;
#X text 188 393 coef2;
#X floatatom 642 565 0 0 0 0 - - -;
#X floatatom 619 539 0 0 0 0 - - -;
#X floatatom 587 511 0 0 0 0 - - -;
#X floatatom 564 489 0 0 0 0 - - -;
#N canvas 256 22 612 452 Polos 0;
#X obj 103 98 inlet;
#X text 108 371 polo 1;
#X text 218 371 polo 2;
#X obj 457 215 v kIm_\$0;
#X obj 238 217 v kRe_\$0;
#X obj 111 327 outlet;
#X obj 103 351 outlet;
#X obj 221 327 outlet;
#X obj 213 351 outlet;
#X obj 238 173 expr if($f1 >= 0 \, sqrt(abs($f1)) \, 0) \; if($f1 <
0 \, sqrt(abs($f1)) \, 0);
#X obj 103 250 expr ($f1 + kRe_\$0) / 2 \; kIm_\$0 / 2 \; ($f1 - kRe_\$0)
/ 2 \; 0 - kIm_\$0 / 2;
#X text 147 97 a1 a2 b0;
#X obj 103 127 expr $f1 \; pow($f1 \, 2) + (4 * $f2);
#X text 61 38 Extrai a raiz dos polos complexos a partir dos coeficientes
;
#X connect 0 0 12 0;
#X connect 9 0 4 0;
#X connect 9 1 3 0;
#X connect 10 0 6 0;
#X connect 10 1 5 0;
#X connect 10 2 8 0;
#X connect 10 3 7 0;
#X connect 12 0 10 0;
#X connect 12 1 9 0;
#X restore 589 419 pd Polos;
#X obj 589 393 r \$0-coeficientes;
#X obj 260 373 v g;
#X msg 544 430 \$3;
#X obj 194 436 noise~;
#X obj 189 500 output~;
#X obj 119 370 v a1;
#X obj 189 370 v a2;
#X obj 60 415 noise~;
#X obj 62 497 output~;
#X obj 131 240 nbx 5 14 -1e+37 1e+37 0 0 \$0-freq-send \$0-freq empty
0 -8 0 10 -228856 -1 -1 11025 256;
#X text 110 238 Hz;
#X obj 110 467 nbx 5 14 1 100 1 0 empty \$0-Q empty 0 -8 0 10 -228856
-1 -1 11.3419 256;
#X obj 84 442 nbx 5 14 -1e+37 1e+37 0 0 empty \$0-freq-send empty 0
-8 0 10 -228856 -1 -1 11025 256;
#X text 434 244 Podemos implementar o [bp~] com objetos de polos. Porém
\, como se trata de um par complexo conjugado \, precisamos usar o
objeto de polo complexo \, o [cpole~]. O [cpole~] tem dois inlets para
entrada de sinal complexo \, mas usaremos apenas a entrada de sinal
real. Os inlets seguintes são do coeficiente complexo. A saída do filtro
é complexa e ligamos na entrada complexa de um segundo [cpole~]. Da
saída \, nos interessa apenas o outlet do sinal real.;
#X text 435 361 Compare o resultado sonoro abaixo com o da esquerda:
;
#X text 68 562 Agora vejamos ao lado a representação dos polos no Plano
Z. Perceba que \, por mais que este seja um filtro de dois polos reais
\, os polos não estão somente no eixo real \, portando cada polo possui
um coeficiente complexo. Mas perceba também que eles possuem o mesmo
valor no eixo real e valores opostos no eixo imaginário. Podemos dizer
assim \, no jargão matemático \, que formam um par conjugado! E é por
esse detalhe não se trata \, na realidade \, de um filtro com dois
polos complexos!;
#X text 432 31 Veremos um filtro com um polo complexo na sequência
(que equivale ao [vcf~]) \, onde a diferença deverá ficar mais clara.
Aliás \, filtros com polos ou zeros complexos de fato são muito raros.
O que veremos \, na grande maioria das vezes \, são casos assim \,
onde os polos e zeros formam pares conjugados \, o que pode gerar a
confusão de que se tratam de polos e zeros complexos \, mas não é verdade!
;
#X text 434 134 O fato de um par conjugado representar um valor real
é que \, na prática \, quando multiplicamos esses valores conjugados
\, a parte imaginária se cancela. Isso pode ser confuso porque ainda
não significa que os dois polos complexos conjugados equivalem a dois
polos reais ou pode ser implementado com dois filtros de polos reais
(o [rpole~]). Todavia \, o mais importante é evitar a confusão de que
seriam de fato dois polos complexos.;
#X obj 77 467 bp~;
#X obj 194 460 fexpr~ g * $x[0] + a1 * $y[-1] + a2 * $y[-2];
#X obj 76 126 cnv 15 280 20 empty empty empty 20 12 0 14 -233017 -66577
0;
#X text 83 126 y[n] = g * x[n] + a1 * y[n-1] + a2 * y[n-2];
#X text 44 29 Vejamos agora um filtro de dois polos reais \, que equivale
ao Passa Banda do [bp~]. Geramos os coeficientes abaixo \, sendo "a1"
e "a2" os coeficientes dos polos e "g" o coeficiente de ganho. Com
esses parâmetros \, implementamos o filtro com a seguinte equação de
diferença \, implementada em um [fexpr~] abaixo. Compare com o [bp~]
abaixo ao lado.;
#X text 882 49 Sobre a representação dos Polos e sua ação nas frequências
\, perceba como o ângulo de fato se relaciona com a frequência que
o filtro acentua (frequência central). O coeficiente de ganho compensa
para que \, novamente \, a amplitude máxima da resposta de frequência
seja 0 dB.;
#X text 885 124 O parâmetro de "Q" do filtro se relaciona com a amplitude
dos Polos. Quanto mais perto do círculo unitário \, mais o filtro dá
ganho na frequência central \, e o resultado prático é um "Q" maior!
;
#X connect 3 0 4 0;
#X connect 3 1 4 1;
#X connect 4 0 6 0;
#X connect 4 0 6 1;
#X connect 5 0 3 0;
#X connect 7 0 5 0;
#X connect 8 0 2 1;
#X connect 9 0 10 0;
#X connect 10 0 13 0;
#X connect 10 1 12 0;
#X connect 10 2 11 0;
#X connect 11 0 23 0;
#X connect 12 0 28 0;
#X connect 13 0 27 0;
#X connect 17 0 4 3;
#X connect 18 0 4 2;
#X connect 19 0 3 3;
#X connect 20 0 3 2;
#X connect 21 0 20 0;
#X connect 21 1 19 0;
#X connect 21 2 18 0;
#X connect 21 3 17 0;
#X connect 22 0 21 0;
#X connect 22 0 24 0;
#X connect 24 0 5 1;
#X connect 25 0 41 0;
#X connect 29 0 40 0;
#X connect 31 0 2 0;
#X connect 33 0 40 2;
#X connect 34 0 40 1;
#X connect 40 0 30 0;
#X connect 40 0 30 1;
#X connect 41 0 26 0;
#X connect 41 0 26 1;
