aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormusil <tmusil@users.sourceforge.net>2011-09-28 15:07:01 +0000
committermusil <tmusil@users.sourceforge.net>2011-09-28 15:07:01 +0000
commit41db574c3759d108393258fbafb8d9787b4ed18a (patch)
tree948f685d68f2c8aa3cabc97ec0bcd74960990cb3
parent76ca68fbbaf8edb38410a555babe6919cf31e5c1 (diff)
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
-rw-r--r--help/NLMSerr_in~-help.pd284
1 files 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: <float> 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: <float> 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: <float> 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: <float> 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: <symbol> table-name of W;
-#X text 516 240 3.arg: <float> 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: <symbol> 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: <float> 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;