From 41db574c3759d108393258fbafb8d9787b4ed18a Mon Sep 17 00:00:00 2001 From: musil Date: Wed, 28 Sep 2011 15:07:01 +0000 Subject: now with a 3rd inlet~, we need it because the causal contitions of the 2 reference inputs are different svn path=/trunk/externals/iem/iem_adaptfilt/; revision=15375 --- help/NLMSerr_in~-help.pd | 284 +++++++++++++++++++++++------------------------ 1 file changed, 136 insertions(+), 148 deletions(-) diff --git a/help/NLMSerr_in~-help.pd b/help/NLMSerr_in~-help.pd index 6882aea..da3eb5d 100644 --- a/help/NLMSerr_in~-help.pd +++ b/help/NLMSerr_in~-help.pd @@ -1,78 +1,35 @@ -#N canvas 378 66 925 637 10; +#N canvas 26 22 1132 728 10; #N canvas 0 22 450 300 (subpatch) 0; -#X array W 200 float 0; -#X coords 0 1 199 -1 200 140 1; -#X restore 588 339 graph; -#X msg 25 245 update \$1; -#X msg 102 255 beta \$1; -#X obj 272 24 tgl 15 0 empty empty empty 0 -6 0 8 -225280 -1 -1 1 1 +#X array W 100 float 0; +#X coords 0 1 99 -1 400 140 1; +#X restore 633 441 graph; +#X msg 46 156 update \$1; +#X msg 85 239 beta \$1; +#X obj 299 62 tgl 15 0 empty empty empty 0 -6 0 8 -225280 -1 -1 1 1 ; -#X obj 272 45 dsp; -#X floatatom 272 91 5 0 0 0 - - -; -#X floatatom 285 70 5 0 0 0 - - -; -#X obj 276 563 bng 15 150 20 0 empty empty empty 0 -6 0 8 -262144 -1 --1; -#X text 516 230 2.arg: learn-rate = beta; -#X obj 225 185 noise~; -#X obj 25 58 vradio 15 1 0 8 empty empty empty 0 -6 0 8 -225280 -1 --1 0; -#N canvas 165 115 464 314 (subpatch) 0; -#X obj 76 61 inlet; -#X msg 32 163 0; -#X msg 63 159 1; -#X msg 97 158 2; -#X msg 132 156 4; -#X msg 159 157 8; -#X msg 191 162 16; -#X msg 219 164 32; -#X msg 248 165 64; -#X obj 76 84 sel 0 1 2 3 4 5 6 7; -#X obj 32 217 outlet; -#X connect 0 0 9 0; -#X connect 1 0 10 0; -#X connect 2 0 10 0; -#X connect 3 0 10 0; -#X connect 4 0 10 0; -#X connect 5 0 10 0; -#X connect 6 0 10 0; -#X connect 7 0 10 0; -#X connect 8 0 10 0; -#X connect 9 0 1 0; -#X connect 9 1 2 0; -#X connect 9 2 3 0; -#X connect 9 3 4 0; -#X connect 9 4 5 0; -#X connect 9 5 6 0; -#X connect 9 6 7 0; -#X connect 9 7 8 0; -#X restore 25 205 pd; -#X text 34 37 internal downsampling of update; -#X msg 96 337 gamma \$1; -#X text 75 363 input signal; -#X text 190 362 desired signal; +#X obj 299 83 dsp; +#X floatatom 299 129 5 0 0 0 - - -; +#X floatatom 312 108 5 0 0 0 - - -; +#X text 662 278 2.arg: learn-rate = beta; +#X obj 336 193 noise~; +#X msg 65 319 gamma \$1; +#X text 70 348 input signal; +#X text 344 295 desired signal; #N canvas 0 22 450 300 (subpatch) 0; #X array IR 40 float 0; #X coords 0 1 39 -1 200 140 1; -#X restore 367 11 graph; +#X restore 394 49 graph; #X obj 54 540 unsig~; #X floatatom 54 566 9 0 0 0 - - -; -#X obj 174 539 unsig~; -#X floatatom 174 565 9 0 0 0 - - -; -#X text 26 363 x(n); -#X text 243 377 d(n); -#X text 29 508 y(n) = W * x(n); -#X obj 276 291 FIR~ IR 32; -#X obj 618 73 loadbang; -#X text 566 220 (array-sizes have to be >= then FIR_size); -#X text 516 210 1.arg: number of order of FIR-filter; -#X text 42 71 update every sample; -#X text 42 56 stop \, no update; -#X text 42 86 update every 2nd sample; -#X text 42 101 update every 4th sample; -#X text 42 116 update every 8th sample; -#X text 42 131 update every 16th sample; -#X text 42 146 update every 32nd sample; -#X text 42 161 update every 64th sample; +#X obj 392 544 unsig~; +#X floatatom 392 564 9 0 0 0 - - -; +#X text 21 346 x(n); +#X text 449 295 d(n); +#X text 19 510 y(n) = W * x(n); +#X obj 336 278 FIR~ IR 32; +#X obj 612 103 loadbang; +#X text 712 267 (array-sizes have to be >= then FIR_size); +#X text 662 256 1.arg: number of order of FIR-filter; #N canvas 0 22 474 324 (subpatch) 0; #X obj 48 46 inlet; #X obj 205 47 inlet; @@ -84,23 +41,19 @@ #X connect 0 0 3 0; #X connect 1 0 2 0; #X connect 4 0 3 0; -#X restore 619 48 pd; -#X obj 632 30 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +#X restore 613 78 pd; +#X obj 626 60 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; -#X text 649 27 clear; -#X obj 619 11 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +#X text 643 57 clear; +#X obj 613 41 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; -#X text 636 8 load; -#X text 644 50 IR; +#X text 630 38 load; +#X text 638 80 IR; #X text 4 495 filtered output signal; -#X text 178 495 error signal; -#X text 152 507 e(n) = d(n) - W * x(n); -#X text 293 557 constrain; -#X text 293 567 coefficients; -#X msg 276 522 0; -#X obj 276 542 speedlim 100; +#X text 395 422 error signal; +#X text 369 434 e(n) = d(n) - W * x(n); #X obj 83 512 cnv 8 1 1 empty empty * 0 7 0 14 -262144 -1 0; -#X obj 247 511 cnv 8 1 1 empty empty * 0 7 0 14 -262144 -1 0; +#X obj 482 436 cnv 8 1 1 empty empty * 0 7 0 14 -262144 -1 0; #N canvas 0 22 470 320 (subpatch) 0; #X obj 137 73 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1 ; @@ -118,17 +71,16 @@ #X connect 4 0 1 0; #X connect 5 0 3 0; #X connect 6 0 2 0; -#X restore 618 94 pd; -#X text 643 100 update of W; -#X text 642 89 graphical; -#X text 516 250 4.arg: table-name of W; -#X text 516 240 3.arg: minimum input value gamma; -#X text 132 317 minimum input value; -#X msg 102 218 0.1; -#X msg 96 299 1e-05; -#X text 155 256 beta [0 .. 2]; -#X text 152 336 gamma [0 .. 1]; -#X obj 517 187 cnv 15 68 17 empty empty empty 20 12 0 14 -225280 -66577 +#X restore 612 124 pd; +#X text 637 130 update of W; +#X text 636 119 graphical; +#X text 662 313 4.arg: table-name of W; +#X text 126 301 minimum input value; +#X msg 226 195 0.1; +#X msg 65 281 1e-05; +#X text 138 240 beta [0 .. 2]; +#X text 132 318 gamma [0 .. 1]; +#X obj 663 213 cnv 15 68 17 empty empty empty 20 12 0 14 -225280 -66577 0; #N canvas 0 22 499 295 FORMULAS 0; #X obj 167 52 cnv 15 150 40 empty empty empty 20 12 0 14 -225280 -66577 @@ -157,65 +109,101 @@ #X text 116 55 output:; #X text 26 210 coefficient iteration:; #X text 188 211 W(k+1 \, i) = W(k \, i) + my(n)* e(n)* x(n); -#X restore 518 187 pd FORMULAS; -#X obj 102 238 cnv 14 31 14 empty empty empty 20 12 0 14 -225280 -66577 +#X restore 664 213 pd FORMULAS; +#X obj 91 223 cnv 14 31 14 empty empty empty 20 12 0 14 -225280 -66577 0; -#X floatatom 102 238 5 0 2 0 - - -; -#X text 138 237 learn-rate; -#X obj 96 319 cnv 14 31 14 empty empty empty 20 12 0 14 -225280 -66577 +#X floatatom 85 222 6 0 2 0 - - -; +#X text 134 221 learn-rate; +#X obj 65 301 cnv 14 31 14 empty empty empty 20 12 0 14 -225280 -66577 0; -#X floatatom 96 319 5 0 2 0 - - -; -#X floatatom 25 226 5 0 0 0 - - -; -#X text 518 169 Normalized Least Mean Square (linear adaptive FIR-filter) +#X floatatom 65 301 8 0 2 0 - - -; +#X obj 347 389 -~; +#X text 232 431 err; +#X text 409 343 filt out; +#X msg 635 600 \; W const 0; +#X obj 28 365 delread~ causal_del 1.45126; +#X obj 392 325 delread~ feedback_del 1.45126; +#X msg 185 195 0.01; +#X msg 53 196 0; +#X msg 138 195 0.001; +#X obj 336 214 delwrite~ causal_del 20; +#X obj 67 472 delwrite~ feedback_del 20; +#X floatatom 111 690 9 0 0 0 - - -; +#X text 38 382 ref_filt; +#X text 155 404 ref_adapt; +#X obj 134 389 delread~ causal_del 2.90249; +#X obj 336 255 delread~ causal_del 2.90249; +#X obj 46 137 tgl 15 0 empty empty empty 0 -6 0 8 -225280 -1 -1 1 1 ; -#X text 514 268 (C) 2005 \, m.noisternig & t.musil \, IEM \, Graz \, -Austria; -#X text 542 281 [noisternig \, musil]_AT_iem.at; -#X obj 247 211 delwrite~ causal_del 2; -#X msg 825 34 64 44.1; -#X obj 829 62 /; -#X obj 829 89 print; -#X obj 226 475 delwrite~ feedback_del 2; -#X obj 301 383 -~; -#X text 249 437 err; -#X text 351 376 filt out; -#X msg 578 541 \; W const 0; -#X obj 54 413 delread~ causal_del 1.45126; -#X obj 351 358 delread~ feedback_del 1.45126; -#X obj 301 407 *~ -1; -#X msg 366 424 -1; -#X msg 412 425 1; -#X obj 53 450 NLMSerr_in~ 192 0.01 1e-05 W; -#X connect 1 0 86 0; -#X connect 2 0 86 0; +#X text 41 118 Update ON / OFF; +#X msg 147 629 128; +#X msg 109 629 64; +#X obj 110 667 / 44.1; +#X obj 299 665 samplerate~; +#X obj 299 647 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X floatatom 300 706 5 0 0 0 - - -; +#X obj 300 686 * 0.001; +#X floatatom 189 687 9 0 0 0 - - -; +#X msg 190 627 128; +#X obj 188 664 / 44.1; +#X msg 225 627 192; +#X obj 299 627 loadbang; +#X text 660 364 (C) 2010 \, t.musil & m.guldenschuh \, IEM \, Graz +\, Austria; +#X text 688 377 [musil | guldenschuh]_AT_iem.at; +#X text 662 173 Normalized Least Mean Square with separated error and +adaption reference input (linear adaptive FIR-filter); +#X obj 53 450 NLMSerr_in~ 100 0.003 1e-05 W; +#X msg 114 282 1e-07; +#X msg 85 195 0.0001; +#X text 662 290 3.arg: minimum input value gamma for; +#X text 716 301 energy calculation; +#X text 46 44 NLMSerr_in~; +#X connect 1 0 84 0; +#X connect 2 0 84 0; #X connect 3 0 4 0; #X connect 4 0 5 0; #X connect 4 1 6 0; -#X connect 9 0 72 0; -#X connect 9 0 24 0; -#X connect 10 0 11 0; -#X connect 11 0 68 0; -#X connect 13 0 86 0; -#X connect 17 0 18 0; -#X connect 19 0 20 0; -#X connect 24 0 77 0; -#X connect 25 0 51 0; -#X connect 37 0 36 1; -#X connect 39 0 36 0; -#X connect 47 0 48 0; -#X connect 48 0 7 0; -#X connect 57 0 64 0; -#X connect 58 0 67 0; -#X connect 64 0 2 0; -#X connect 67 0 13 0; -#X connect 68 0 1 0; -#X connect 73 0 74 0; -#X connect 74 0 75 0; -#X connect 77 0 83 0; -#X connect 81 0 86 0; -#X connect 82 0 77 1; -#X connect 83 0 86 1; -#X connect 84 0 83 1; -#X connect 85 0 83 1; -#X connect 86 0 17 0; -#X connect 86 0 76 0; +#X connect 8 0 60 0; +#X connect 9 0 84 0; +#X connect 13 0 14 0; +#X connect 15 0 16 0; +#X connect 20 0 51 0; +#X connect 21 0 35 0; +#X connect 25 0 24 1; +#X connect 27 0 24 0; +#X connect 40 0 47 0; +#X connect 41 0 50 0; +#X connect 47 0 2 0; +#X connect 50 0 9 0; +#X connect 51 0 15 0; +#X connect 51 0 84 2; +#X connect 55 0 84 0; +#X connect 56 0 51 1; +#X connect 57 0 47 0; +#X connect 58 0 47 0; +#X connect 59 0 47 0; +#X connect 62 0 56 0; +#X connect 62 0 55 0; +#X connect 65 0 84 1; +#X connect 66 0 20 0; +#X connect 67 0 1 0; +#X connect 69 0 71 0; +#X connect 70 0 71 0; +#X connect 71 0 62 0; +#X connect 72 0 75 0; +#X connect 73 0 72 0; +#X connect 75 0 74 0; +#X connect 75 0 71 1; +#X connect 75 0 78 1; +#X connect 77 0 78 0; +#X connect 78 0 76 0; +#X connect 78 0 66 0; +#X connect 78 0 65 0; +#X connect 79 0 78 0; +#X connect 80 0 73 0; +#X connect 84 0 13 0; +#X connect 84 0 61 0; +#X connect 85 0 50 0; +#X connect 86 0 47 0; -- cgit v1.2.1