Filtri a frequenza estremamente bassa


13

Ho una scheda di acquisizione dati (A / D + Digital Signal Processor) e voglio verificare se un filtro passa-alto digitale (implementato in DSP) con una frequenza di taglio estremamente bassa (0,05Hz) funziona davvero.

Se questa fosse una frequenza che potrei generare con un generatore di segnale sarebbe facile da controllare, ma 0,05Hz è troppo basso e non posso generarlo. In che modo gli ingegneri controllano questo tipo di filtri?


3
La mia mente è sconvolta da questa domanda e dalle sue risposte! Non ho mai considerato di filtrare una frequenza così bassa :)
bitsmack

6
@bitsmack Ho visto un passa alto da 50 milliHz in uno strumento di elettrogastrografia (EGG).
Nick Alexeev

Alcuni generatori di segnali hanno sia il pulsante MHz che il pulsante mHz.
Andreja Ko

Puoi inviare un segnale di prova in forma digitale nel DSP? È facile generare qualsiasi frequenza in forma digitale. --- Lo svantaggio è che non testerai la parte analogica e A / D della scheda.
pabouk,

1
@bitsmack Significa che dovresti aspettare molto tempo prima che le cose si sistemino e che "spazzare" debba essere molto lento (ore e ore) ma è bene testare le prestazioni in tempo reale reale almeno una volta prima di fidarti che funzionerà rallentato (dopo averlo testato accelerato). Cose come l'aliasing possono allevare la testa.
Spehro Pefhany,

Risposte:


18

Immagino che dipenda da diversi fattori, tra cui l'ordine del filtro, ma hai alcune possibilità:

  1. Trova un generatore di segnale che ci arrivi. Questi sono piuttosto economici al giorno d'oggi.
  2. Fidati della matematica. Questo è un filtro digitale e pertanto scala con la frequenza di campionamento. Se puoi aumentare la frequenza di campionamento di due ordini di grandezza, avresti un filtro con un taglio di 5Hz, molto più facile da misurare. Allo stesso modo, se il fattore limitante diventa l'ADC, è possibile isolarlo dal filtro e inserire alcuni dati digitali artificiali.
  3. Utilizzare una risposta a gradino (farebbero molti segnali a banda larga). Calcola la risposta del passaggio del filtro desiderato e confronta con il risultato. Oppure, in alternativa, calcolare la risposta in frequenza mediante la FFT della risposta a gradino.

Usiamo una variante dell'alternativa 3 in alcune delle nostre configurazioni di test, non perché non siamo in grado di generare le forme d'onda lente richieste, ma perché il cutoff <0,01Hz dei nostri filtri analogici richiederebbe troppo tempo per caratterizzarsi se provassimo anche uno sweep di frequenza approssimativo . Ciò ha ridotto i tempi di test da più di un'ora a semplici minuti.


10

Vorrei usare il mio generatore di funzioni Agilent, che scende a 1μμ

Sfortunatamente, non è possibile ottenere così bassi con i moduli DDS economici (ad es. AD9850) perché la parola di sintonizzazione è solo 32 bit e l'orologio è in genere 125 MHz, quindi è una risoluzione di 0,03 Hz. Suppongo che ti darebbe alcuni punti dati (0,0291 / 0,0582 / 0,0873 Hz)

Puoi anche dargli un passaggio e guardare la risposta nel dominio del tempo.


2
Se il tuo modulo DDS è in grado di ricevere un segnale di clock esterno, è sufficiente sbloccarlo! Un DDS è davvero un fantastico divario per N a cuore ....
ThreePhaseEel

1
@ThreePhaseEel Puoi farlo ma in generale non sarà un risultato molto bello a meno che non ridisegni il filtro passa basso di output, che in genere è qualcosa come un filtro ellittico LC a 5 poli. Nel caso di OP, poiché la frequenza massima è così bassa, probabilmente potrebbe semplicemente aggiungere un filtro RC passa basso da 1Hz all'uscita e ottenere un bel segnale.
Spehro Pefhany,

Concordato sul fatto che avresti bisogno di un postfiltro - gli AD9850 hanno un clock minimo di 1MHz btw, il che è un po 'limitante, ma ancora abbastanza per ottenere i risultati che l'OP vuole
ThreePhaseEel

@ThreePhaseEel Certo, anche 8 o 10 MHz produrrebbe una risoluzione di 0,002 o 0,0024Hz.
Spehro Pefhany,

6

Opzione 1: test sul PC.

Se il codice DSP è scritto in C, è possibile impostare un cablaggio di prova in GCC o Visual Studio. Conosci la frequenza di campionamento per il tuo codice DSP, quindi usa Excel per generare un file CSV di input di test e fai in modo che il tuo cablaggio di test scarichi un output di file CSV che puoi controllare.

Opzione 2: test sul DSP con un'interfaccia PC.

Se il codice DSP deve essere eseguito sul DSP, è comunque possibile utilizzare il PC per testarlo. Impostare un cablaggio di prova sul DSP che riceve un valore dal PC, esegue un passaggio del filtro DSP e quindi riporta l'output del filtro per quel passaggio al PC (tramite USB, RS-232 o TCP / IP a seconda del come ti stai connettendo al DSP). Avrai anche bisogno di un cablaggio di prova lato PC per inviare e ricevere quei valori. Ancora una volta, è possibile impostare un file CSV di input di test sul PC, passare campioni successivi al codice filtro e scaricare un output di file CSV che è possibile verificare.

Per entrambi...

Se stai filtrando a 0,05Hz, è probabile che anche la frequenza di campionamento sia abbastanza lenta. L'uso di un cablaggio di prova ti consentirà di eseguire questi test più velocemente del tempo reale, il che renderà il tuo processo di test più efficiente.


5

Se si dispone anche di un convertitore D / A nel proprio sistema DSP, è possibile generare questo segnale di frequenza estremamente bassa nel software e restituirlo all'ingresso A / D. In alternativa, è possibile utilizzare una scheda D / A o un adattatore USB per generare il segnale. Un esempio di tali dispositivi sarebbe LabJack ma ce ne sono molti altri con prezzi / capacità variabili. Un'altra possibilità sarebbe quella di utilizzare un micro controller + DAC economico come Raspberry Pi o Arduino


2

Se questa fosse una frequenza che potrei generare con un generatore di segnale sarebbe facile da controllare, ma 0,05Hz è troppo basso e non posso generarlo. In che modo gli ingegneri controllano questo tipo di filtri?

Esistono tre buoni modi per verificare la risposta del filtro, uno è una funzione delta di dirac (una funzione di impulso o un impulso breve), l'altro è un input di passo e l'ultimo è uno sweep di frequenza.

Con gli strumenti che uso gli esperimenti possono durare da settimane a mesi, alcuni dei nostri sistemi fisici hanno una risposta nell'intervallo di giorni. Il modo migliore per controllare questi sistemi \ filtri è utilizzare un input passo, quindi misurare la costante di tempo. Se si ricorda che la costante di tempo per un ingresso di tensione è:

V(t)=V0(1-e-t/τ)

τ=RC

inserisci qui la descrizione dell'immagine
Fonte: http://mit6002.blogspot.com/2011/05/1011-parallel-rc-circuit-step-input.html

(l'immagine ha una sorgente di corrente con un resistore parallelo che equivale a una sorgente di tensione con un resistore serie)


0

Probabilmente potresti generare un segnale a 50 mHz tollerabilmente liscio a mano usando un potenziometro e un orologio da polso.

In alternativa, calcola la risposta al gradino prevista del filtro. Dai un contributo al tuo hardware premendo un interruttore. Traccia l'output per circa un minuto (se la base dei tempi dell'oscilloscopio non va così lentamente, registra un multimetro e trascrivi le letture ogni secondo). Confronta la risposta del passo misurata con ciò che hai previsto. Se corrispondono (abbastanza da vicino, tenendo conto delle imprecisioni ADC / DAC / timing), il filtro funziona come previsto.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.