DA Aiuto con filtraggio

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");

)
 
Hmmm.Sicuramente ci deve essere qualcuno che mi può dire quello che sto facendo di sbagliato?

 
Salve!

In primo luogo si moltiplicano con il filtro di ingresso Blackman finestra.Questo non è corretto.In primo luogo si dovrebbe calcolare finestra DA funzione.È shuld moltiplicare DA funzione originale (con lunghezza infinita) con il tuo Blackman finestra.Potrai ottenere FIR passa-basso.Questo FIR dovete conservare in memoria e l'uso di filtraggio.

In secondo luogo si shuld verificare il codice per convoluzione di filtro FIR con ingresso sopra descritto.È già qualcosa di simile uso convoluzione in "media mobile" parte.Ma l'indice di calcolo risultato ( "filter_out [in_index window_index]"), sembra molto strano.Di solito il valore di uscita
della indice ottenuto direttamente dalle indice del ciclo, senza sintesi di loop nidificati indici.

 
Grazie per il vostro commento.Penso che la mia funzione blackmann è già stato moltiplicato per DA (x).Ma fare un tentativo.

 

Welcome to EDABoard.com

Sponsor

Back
Top