I
iggyboy
Guest
Helo nuovamente.Tempo per un nuovo vino:
Ho bisogno di aiuto per il filtraggio del segnale molto rumoroso.Vedi file allegato.Ho letto un po 'di filtri e ha deciso di attuare una finestra DA filtro.Ho scelto un 32 punto blackmann finestra:
const unsigned int blackmann [] = (
0,
245,
1023,
2448,
4677,
7873,
12151,
17539,
23940,
31119,
38707,
46226,
53142,
58914,
63069,
65251,
65268,
63120,
58993,
53243,
46341,
38827,
31237,
24048,
17632,
12227,
7932,
4720,
2476,
1040,
253,
0
);
che ho scalato la speranza di ottenere il lavoro svolto utilizzando interi.Ecco l'algoritmo
Codice:unsigned int filter_in [33];
unsigned long filter_out [64];
unsigned char indeks_sinc = 0;unsigned char out_index = 0;
unsigned char window_index = 0;
unsigned char in_index = 0;
filter_in [indeks_sinc] = ADCBUF4;
if (indeks_sinc <32) indeks_sinc ;
else (
indeks_sinc = 0;
per (out_index = 0; out_index <63; out_index ) (
filter_out [out_index] = 0;
)asm ( "nop");
asm ( "nop");
asm ( "nop");
asm ( "nop");
asm ( "nop");per (window_index = 0; window_index <31; window_index ) (
per (in_index = 0; in_index <32; in_index ) (
filter_out [in_index window_index] = filter_out [in_index window_index] filter_in [in_index] * blackmann [window_index];
)
)
asm ( "nop");
asm ( "nop");
asm ( "nop");
asm ( "nop");
asm ( "nop");
)
Ho bisogno di aiuto per il filtraggio del segnale molto rumoroso.Vedi file allegato.Ho letto un po 'di filtri e ha deciso di attuare una finestra DA filtro.Ho scelto un 32 punto blackmann finestra:
const unsigned int blackmann [] = (
0,
245,
1023,
2448,
4677,
7873,
12151,
17539,
23940,
31119,
38707,
46226,
53142,
58914,
63069,
65251,
65268,
63120,
58993,
53243,
46341,
38827,
31237,
24048,
17632,
12227,
7932,
4720,
2476,
1040,
253,
0
);
che ho scalato la speranza di ottenere il lavoro svolto utilizzando interi.Ecco l'algoritmo
Codice:unsigned int filter_in [33];
unsigned long filter_out [64];
unsigned char indeks_sinc = 0;unsigned char out_index = 0;
unsigned char window_index = 0;
unsigned char in_index = 0;
filter_in [indeks_sinc] = ADCBUF4;
if (indeks_sinc <32) indeks_sinc ;
else (
indeks_sinc = 0;
per (out_index = 0; out_index <63; out_index ) (
filter_out [out_index] = 0;
)asm ( "nop");
asm ( "nop");
asm ( "nop");
asm ( "nop");
asm ( "nop");per (window_index = 0; window_index <31; window_index ) (
per (in_index = 0; in_index <32; in_index ) (
filter_out [in_index window_index] = filter_out [in_index window_index] filter_in [in_index] * blackmann [window_index];
)
)
asm ( "nop");
asm ( "nop");
asm ( "nop");
asm ( "nop");
asm ( "nop");
)