#N canvas 256 262 1103 745 12; #X obj 19 -243 adc~ 1; #N canvas 0 0 450 300 graph1 0; #X array . 220 float 0; #X coords 0 1.02 219 -1.02 400 200 1; #X restore 134 -236 graph; #N canvas 438 191 1052 809 main 0; #X obj 364 30 inlet~; #X obj 813 25 loadbang; #X obj 813 63 metro 5; #X obj 369 99 envrms~; #X floatatom 431 355 15 0 0 0 - - -; #X obj 372 490 /; #X floatatom 331 636 15 0 0 0 - - SNR; #X msg 361 407 bang; #X obj 336 598 expr 10*log10($f1); #X floatatom 745 318 15 0 0 0 - - DC; #X obj 581 129 tavg~; #X obj 611 251 * 100; #X obj 723 63 metro 1000; #X msg 259 365 0.630957; #N canvas 612 537 1032 538 fft-analysis 0; #X obj 241 228 + 1; #X msg 313 322 0; #X obj 127 190 *~; #X obj 38 69 *~; #X obj 37 38 *~; #X obj 72 436 *~; #X obj 37 -36 inlet~; #X obj 37 436 *~; #X obj 76 38 tabreceive~ hanning; #X obj 38 116 rfft~; #X obj 37 461 rifft~; #X obj 37 517 outlet~; #X text 88 21 Hanning window; #X text 31 94 forward real FFT; #X text 52 479 inverse real FFT; #X obj 72 69 sig~ 0.03125; #N canvas 0 0 450 300 graph1 0; #X array mask 1024 float 0; #X coords 0 1 1024 0 400 200 1; #X restore 476 354 graph; #X obj 94 190 *~; #X obj 94 214 +~; #X floatatom 241 253 0 0 0 0 - - -; #X msg 247 105 0; #X obj 175 184 float; #X obj 226 184 + 1; #X obj 175 123 bang~; #X obj 175 148 spigot; #X floatatom 301 98 0 0 0 0 - - -; #X obj 101 314 tabreceive~ mask; #X obj 241 277 t b b f; #X obj 266 322 /; #X msg 266 298 1; #X obj 78 344 -~; #X obj 266 358 sig~; #X obj 313 298 sel 0; #X obj 247 388 *~; #X obj 212 419 +~; #X obj 227 446 tabsend~ mask; #X floatatom 313 358 0 0 0 0 - - -; #X obj 175 209 t f f; #X text 100 231 power is square; #X text 100 245 modulus of FFT; #X obj 303 36 loadbang; #X obj 298 181 <; #X msg 253 36 bang; #X text 237 11 click to make an average; #X obj 91 408 sig~ 0.03125; #X text 338 70 Set the number; #X text 340 85 of frames to; #X text 342 101 average; #X text 593 573 average power spectrum; #X text 272 253 current frame; #X text 284 378 weight of new; #X text 275 391 frame in moving; #X text 304 404 average; #X obj 40 555 block~ 1024 2; #X msg 303 61 40; #X obj 543 57 dbtorms; #X obj 543 17 + 99; #X obj 74 -3 *~ 1; #X floatatom 540 -25 5 0 0 0 - gain -; #X obj 94 271 tabsend~ *; #X connect 0 0 19 0; #X connect 1 0 31 0; #X connect 1 0 36 0; #X connect 2 0 18 1; #X connect 3 0 9 0; #X connect 4 0 3 0; #X connect 5 0 10 1; #X connect 6 0 57 0; #X connect 7 0 10 0; #X connect 8 0 4 1; #X connect 9 0 7 0; #X connect 9 0 17 0; #X connect 9 0 17 1; #X connect 9 1 5 0; #X connect 9 1 2 0; #X connect 9 1 2 1; #X connect 10 0 11 0; #X connect 15 0 3 1; #X connect 17 0 18 0; #X connect 18 0 30 0; #X connect 18 0 59 0; #X connect 19 0 27 0; #X connect 20 0 21 1; #X connect 20 0 41 0; #X connect 21 0 37 0; #X connect 21 0 22 0; #X connect 22 0 21 1; #X connect 23 0 24 0; #X connect 24 0 21 0; #X connect 25 0 41 1; #X connect 26 0 30 1; #X connect 26 0 34 1; #X connect 27 1 29 0; #X connect 27 2 28 1; #X connect 28 0 31 0; #X connect 28 0 36 0; #X connect 29 0 28 0; #X connect 30 0 33 0; #X connect 31 0 33 1; #X connect 32 0 1 0; #X connect 33 0 34 0; #X connect 34 0 35 0; #X connect 37 0 41 0; #X connect 37 1 0 0; #X connect 40 0 54 0; #X connect 41 0 24 1; #X connect 41 0 32 0; #X connect 42 0 20 0; #X connect 44 0 7 1; #X connect 44 0 5 1; #X connect 54 0 25 0; #X connect 55 0 57 1; #X connect 56 0 55 0; #X connect 57 0 4 0; #X connect 58 0 56 0; #X restore 235 218 pd fft-analysis; #N canvas 84 23 827 640 hanning-window 0; #X obj 92 198 phasor~; #X obj 92 234 cos~; #X obj 23 328 tabwrite~ hanning; #X obj 30 252 -~; #X obj 28 218 sig~ 1; #X msg 37 171 0; #X text 48 59 CALCULATE HANNING; #X text 45 71 WINDOW TABLE; #N canvas 0 0 450 300 graph1 0; #X array hanning 1024 float 0; #X coords 0 1 1023 -1 400 300 1; #X restore 290 209 graph; #X msg 290 521 \; hanning resize 1024; #X obj 114 145 / 1024; #X obj 114 168 sig~; #X text 175 148 sample rate / window size; #X msg 23 94 bang; #X obj 66 269 sig~ 0.5; #X obj 49 300 *~; #X obj 22 38 loadbang; #X obj 113 117 samplerate~; #X connect 0 0 1 0; #X connect 1 0 3 1; #X connect 3 0 15 0; #X connect 4 0 3 0; #X connect 5 0 0 1; #X connect 10 0 11 0; #X connect 11 0 0 0; #X connect 13 0 2 0; #X connect 13 0 5 0; #X connect 13 0 17 0; #X connect 14 0 15 1; #X connect 15 0 2 0; #X connect 16 0 13 0; #X connect 17 0 10 0; #X restore 564 488 pd hanning-window; #X obj 844 154 tabwrite~ .; #X connect 0 0 3 0; #X connect 0 0 10 0; #X connect 0 0 14 0; #X connect 0 0 16 0; #X connect 1 0 2 0; #X connect 1 0 12 0; #X connect 1 0 13 0; #X connect 2 0 16 0; #X connect 3 0 4 0; #X connect 4 0 5 1; #X connect 4 0 7 0; #X connect 5 0 8 0; #X connect 7 0 5 0; #X connect 8 0 6 0; #X connect 10 0 11 0; #X connect 11 0 9 0; #X connect 12 0 10 0; #X connect 13 0 5 0; #X restore 20 72 pd main; #X floatatom 215 248 8 0 0 0 - SNR -; #X text 298 246 Signal-to-Noise Ratio (dB); #X floatatom 215 274 8 0 0 0 - DC -; #X text 299 272 DC Offset (%); #X text 213 219 _______________________________________; #N canvas 0 0 450 300 graph1 0; #X array * 64 float 0; #X coords 0 1 63 0 400 200 1; #X restore 134 -20 graph; #X floatatom 216 205 8 0 0 0 - - gain; #X text 301 207 FFT gain (dB); #X connect 0 0 2 0;