|
Titolo: Pendenza dei filtri Post di: Batti su Febbraio 14, 2008, 08:41:42 Ciao a tutti
Sto cercando di realizzare un patcher per il riconoscimento del gap all’interno di una banda di rumore bianco, la banda passante deve essere di un ERB [(frequenza centrale + 165)/2], il filtro dovrebbe avere banda di transizione infinitamente ripida (80-90 dB/8va), qui si presenta il primo problema, guardando la documentazione, sembra non sia possibile modificare la pendenza dei filtri, ma solo guadagno, il fattore Q e la frequenza di taglio. Come posso fare per realizzare un filtro con questa pendenza? Vi allego quello che ho iniziato a fare max v2; #N vpatcher 91 51 1164 720; #P origin 0 73; #P toggle 70 62 15 0; #P window setfont "Sans Serif" 9.; #P window linecount 1; #P newex 70 82 55 9109513 metro 3000; #P flonum 351 398 35 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0; #N vpatcher 392 224 1171 816; #P origin 171 0; #P outlet 52 285 15 0; #P inlet 415 37 15 0; #P inlet 52 110 15 0; #P window setfont "Sans Serif" 9.; #P window linecount 1; #N vpatcher 312 94 912 494; #P window setfont "Sans Serif" 9.; #P flonum 233 127 33 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0; #P newex 153 162 68 9109513 expr $f1-$f2/2; #P newex 240 162 73 9109513 expr $f1/2 +$f2; #P newex 211 107 91 9109513 expr ($f1+165)*0.11; #P outlet 240 201 15 0; #P outlet 153 201 15 0; #P inlet 211 69 15 0; #P fasten 0 0 5 0 216 95 158 95 158 162; #P connect 5 0 1 0; #P connect 0 0 3 0; #P connect 3 0 5 1; #P connect 3 0 6 0; #P fasten 3 0 4 0 216 147 245 147; #P connect 4 0 2 0; #P fasten 0 0 4 1 216 91 308 91; #P pop 1; #P newobj 415 61 35 9109513 p ERB; #P flonum 495 138 59 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0; #P flonum 282 138 61 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0; #P user filtergraph~ 447 153 108 70 139 9 20. 20000. 0.000977 1.781797 0 1 1 0 0 1 1; #X frgb 170 170 170; #X brgb 209 209 209; #X rgb2 0 0 0; #X rgb3 130 130 130; #X rgb4 0 0 0; #X rgb5 76 108 172; #X rgb6 210 74 54; #X rgb7 255 22 22; #X linmarkers 5512.5 11025. 16537.5; #X logmarkers 10. 100. 1000. 10000.; #X nfilters 1; #X setfilter 0 2 1 0 0 1880.925049 1. 0.947832 0. 0. 0. 1. 0. 0.; #X done; #P user filtergraph~ 236 153 107 67 139 9 20. 20000. 0.000977 1.781797 0 1 1 0 0 1 1; #X frgb 170 170 170; #X brgb 209 209 209; #X rgb2 0 0 0; #X rgb3 130 130 130; #X rgb4 0 0 0; #X rgb5 76 108 172; #X rgb6 210 74 54; #X rgb7 255 22 22; #X linmarkers 5512.5 11025. 16537.5; #X logmarkers 10. 100. 1000. 10000.; #X nfilters 1; #X setfilter 0 1 1 0 0 2119.074951 0.895994 0.920062 0. 0. 0. 1. 0. 0.; #X done; #P newex 125 110 30 9109513 pink~; #P newex 88 110 35 9109513 noise~; #P newex 52 145 83 9109513 selector~ 2; #P newex 52 251 48 9109513 cascade~; #P newex 52 221 48 9109513 cascade~; #P connect 10 0 2 0; #P connect 2 0 0 0; #P connect 0 0 1 0; #P connect 1 0 12 0; #P connect 3 0 2 1; #P connect 5 0 0 1; #P fasten 6 0 1 1 452 245 95 245; #P connect 4 0 2 2; #P fasten 9 1 7 0 445 115 287 115; #P connect 7 0 5 5; #P connect 11 0 9 0; #P fasten 9 0 8 0 420 111 500 111; #P connect 8 0 6 5; #P pop 1; #P newobj 253 414 57 9109513 p noisefilter; #P user umenu 253 373 100 9109543 1 64 389 1; #X add Nessun Segnale; #X add White Noise; #X add Pink Noise; #P newex 151 434 27 9109513 *~; #P flonum 483 33 35 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0; #P newex 498 173 29 9109513 - 127; #P newex 71 169 36 9109513 s bang; #P button 70 108 61 0; #P flonum 528 175 35 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0; #P user gain~ 483 52 24 100 128 0 1.071519 7.94321 10.; #P flonum 307 161 35 9 0. 0 1 139 0 0 0 221 221 221 222 222 222 0 0 0; #P flonum 237 133 35 9 0. 0 1 139 0 0 0 221 221 221 222 222 222 0 0 0; #P flonum 167 111 31 9 0. 0 33 139 0 0 0 221 221 221 222 222 222 0 0 0; #N vpatcher 412 32 1256 457; #P window setfont "Sans Serif" 9.; #P newex 169 203 34 9109513 r bang; #P inlet 582 69 15 0; #P inlet 513 69 15 0; #P inlet 442 69 15 0; #P inlet 371 69 15 0; #P newex 371 113 152 9109513 expr ($f1-40-$f2-($f3*2))/2; #P outlet 232 252 15 0; #P message 232 198 34 9109513 set \$1; #N vpatcher 539 102 666 272; #P outlet 40 122 15 0; #P window setfont "Sans Serif" 9.; #P flonum 40 95 63 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0; #P newex 40 64 31 9109513 dbtoa; #P inlet 40 37 15 0; #P connect 0 0 1 0; #P connect 1 0 2 0; #P connect 2 0 3 0; #P pop; #P newobj 512 198 60 9109513 patcher dbta; #N vpatcher 539 102 666 272; #P outlet 40 122 15 0; #P window setfont "Sans Serif" 9.; #P flonum 40 95 52 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0; #P newex 40 64 31 9109513 dbtoa; #P inlet 40 37 15 0; #P connect 0 0 1 0; #P connect 1 0 2 0; #P connect 2 0 3 0; #P pop; #P newobj 582 198 60 9109513 patcher dbta; #N vpatcher 539 102 666 272; #P outlet 40 122 15 0; #P window setfont "Sans Serif" 9.; #P flonum 40 95 50 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0; #P newex 40 64 31 9109513 dbtoa; #P inlet 40 37 15 0; #P connect 0 0 1 0; #P connect 1 0 2 0; #P connect 2 0 3 0; #P pop; #P newobj 232 175 60 9109513 patcher dbta; #N vpatcher 539 102 666 272; #P outlet 40 122 15 0; #P window setfont "Sans Serif" 9.; #P flonum 40 95 58 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0; #P newex 40 64 31 9109513 dbtoa; #P inlet 40 37 15 0; #P connect 0 0 1 0; #P connect 1 0 2 0; #P connect 2 0 3 0; #P pop; #P newobj 302 198 60 9109513 patcher dbta; #P newex 232 223 475 9109513 pack f 20 f f 0 f 0 f f f f f 0 20; #P comment 454 38 56 9109513 ENVELOPE; #B color 2; #P fasten 12 0 3 0 587 149 237 149; #P connect 3 0 6 0; #P connect 6 0 1 0; #P connect 13 0 1 0; #P connect 1 0 7 0; #P fasten 12 0 2 0 587 150 307 150; #P connect 2 0 1 2; #P fasten 8 0 1 3 376 186 342 186; #P connect 9 0 8 0; #P fasten 11 0 1 5 518 177 412 177; #P connect 10 0 8 1; #P fasten 10 0 1 7 482 84; #P fasten 12 0 5 0 587 163 517 163; #P connect 5 0 1 8; #P connect 11 0 8 2; #P fasten 11 0 1 9 552 84; #P connect 12 0 4 0; #P connect 4 0 1 10; #P fasten 8 0 1 11 376 175 622 175; #P pop; #P newobj 167 193 221 9109513 p gap; #P message 75 445 26 9109513 stop; #P message 19 445 56 9109513 startwindow; #P newex 124 462 36 9109513 dac~; #N vpreset 1; #X append 1 2 10 111 167 flonum float 700. \; 11 133 237 flonum float 6. \; 12 161 307 flonum float 1. \; 13 52 483 gain~ list 127 10. \; 14 175 528 flonum float 127. \; 18 33 483 flonum; #X append 1 2 float 77. \; 20 373 253 umenu int 1 \; 22 398 351 flonum float 2000. \;; #P preset 622 126 47 27; #P newex 167 354 27 9109513 line~; #P comment 206 110 77 9109513 ms totali stimolo; #P comment 277 135 39 9109513 ms gap; #P comment 348 163 100 9109513 ms pendenza gap; #P comment 394 399 27 9109513 FC; #P connect 24 0 23 0; #P connect 23 0 15 0; #P connect 15 0 16 0; #P connect 8 0 6 0; #P connect 7 0 6 0; #P connect 19 0 6 1; #P connect 21 0 19 0; #P connect 10 0 9 0; #P connect 9 0 4 0; #P connect 4 0 19 1; #P connect 11 0 9 1; #P connect 20 0 21 0; #P connect 22 0 21 1; #P connect 12 0 9 2; #P connect 17 0 9 3; #P connect 18 0 13 0; #P connect 13 1 17 0; #P connect 13 1 14 0; #P pop; Ciao Matteo Titolo: Re: Pendenza dei filtri Post di: mauriziogiri su Febbraio 14, 2008, 11:06:55 Ciao, i tipici filtri MSP (quelli realizzati con biquad~ per intenderci) sono di secondo ordine e hanno una pendenza di 12 dB per ottava. Un modo per aumentare la pendenza è mettere più filtri in cascata, tramite l'oggetto cascade~, a cui però vanno mandati tanti gruppi di coefficienti quanti sono i filtri desiderati (vedi l'help). Un altro modo è mettere in cascata più biquad~ con gli stessi coefficienti.
Per una pendenza "verticale" (ma con una risposta in fase tutt'altro che piatta) puoi usare la trasformata di fourier: vedi l'esempio in examples/fft-fun/forbidden-planet2003.pat In questo caso pero' sei limitato nella scelta della frequenza di taglio. m Titolo: Re: Pendenza dei filtri Post di: Batti su Febbraio 14, 2008, 18:18:04 Grazie Maurizio ;D
adesso funziona tutto correttamente, ho risolto mettendo a cascata 8 filtri bisquad~! grazie ancora Matteo Titolo: Re: Pendenza dei filtri Post di: Batti su Febbraio 14, 2008, 18:19:37 :D
biquad~
© Copyright 1996 - 2008 - ConTempoNet Edizioni Musicali ® - P.IVA: 05174251008
Tutti i diritti riservati - Tutti i marchi sono registrati - È vietata la riproduzione, anche parziale, dei testi e delle immagini. Powered by SMF 1.1.5 | SMF © 2006-2008, Simple Machines LLC Traduzione Italiana a cura di SMItalia |