Riconoscere frequenze, quale approccio?

Ho necessità di misurare la frequenza (500-7000Hz) di un segnale sinusoidale che puo' variare notevolmente la propria ampiezza da un massimo di 5V fino a

10mV presentandosi anche in condizioni di rapporto S/N particolarmente sfavorevoli. Inizialmente avevo pensato ad un amplificatore-filtro passabanda in modo sa isolare la sola banda di frequenze di interesse seguito da uno squadratore finale e misurare poi la frequenza mandando l'onda quadra in un PIC che gestirà anche la visualizzazione della misura e altro ancora. Mi chiedevo se esistono soluzioni piu' efficaci e avevo ventilato le seguenti ipotesi: 1) Anello ad aggancio di fase 2) Filtraggio digitale. Nel secondo caso e' piu' efficace filtrare nel senso stretto del termine o usare qualche algoritmo che faccia una sorta di analisi in frequenza? Devo ricorrere ad un DSP o esistono soluzioni embedded a problemi di questo tipo, cioè un integrato (ASIC ?!?) che faccia da filtro per esempio? Con un PIC 16F876 è possibile campionare il segnale e implementare un algoritmo del genere oppure le risorse sono troppo limitate e quindi servirà almeno un DSC PIC ? Grazie anche solo per qualche dritta. Saluti, Zio!
Reply to
Zio!
Loading thread data ...

idale

o a

.=2E...........

Da analogista suggerirei questa, 10 mV non sono cos=EC pochi per un PLL. Tutt'al pi=F9 in condizioni di S/N sfavorevole ti aumenter=E0 un po' il rumore di fase, ma con un taglio basso dopo il comparatore di fase (o magari proprio un integratore a opamp) ovvero rallentando la correzione dovresti minimizzarlo.

Di soluzioni digitali non ho pratica.

Ciao

Tullio

-- Ubi solitudinem faciunt, ibi pacem appellant.

Reply to
Tullio Mariani

Dimenticavo: che risoluzione di misura ti serve? Se ti basta il percento, potrebbe diventare molto pi=F9 semplice ;-)

soidale

ino a

Reply to
Tullio Mariani
10mV presentandosi anche in condizioni di rapporto S/N particolarmente sfavorevoli.

Analizzatore di spettro software? Con il marker ti sposti sul picco e leggi la frequenza.

Ciao Gianluca

--
Non temer mai di dire cose insensate. Ma ascoltale bene, quando le dici.
(L. Wittgenstein)
Wovon man nicht sprechen kann, darüber muss man schweigen
(L. Wittgenstein)  [Grazie, Franco!]
- Vi prego, quotate con parsimonia! Grazie! -
Reply to
LAB

"Tullio Mariani"

Si il percento è sufficiente. Zio!

Reply to
Zio!

"LAB" ha scritto nel messaggio news:et6eda$se7$ snipped-for-privacy@serv1.iunet.it...

Diciamo che il sistema deve riconoscere da solo il picco ovunque esso sia all'interno della banda specificata e deve determinarne la frequenza: la presenza di un operatore che intervenga manualmente non è contemplata. Zio!

Reply to
Zio!

A spanne: usi un convertirore frequenza -> tensione molto lineare come VCO nel PLL (non ricordo la sigla National, forse LM331, oppure te lo fai con un opamp+comparatore). La tensione che lo pilota (uscita del comparatore di fase filtrata) =E8 lineare con la frequenza di aggancio. Misuri la tensione e...

Con un pochino di cura il % si dovrebbe fare, soprattutto su una banda cos=EC ridotta. Se provi sarei curioso di conoscere i risultati.

Ciao

Tullio

-- Ubi solitudinem faciunt, ibi pacem appellant.

Reply to
Tullio Mariani

Si potrebbe funzionare: con il PIC posso campionare la tensione di ingresso del VCO oppure potrei leggere direttamente la tensione di uscita opportunamente squadrata, non so quale soluzione sia la migliore. Sicuramente la prima è affetta da eventuali variazioni di parametri. Zio!

Reply to
Zio!

Ciao, premettendo che la soluzione analogica, come suggerisce Tullio, è sempre la più affascinante, ti dico come la farei in digitale. Credo dovresti farcela con un PIC...Almeno con uno che sappia moltiplicare in hardware. La soluzione più banale è usare una FFT (Fast Fourier Transform) e prendere il picco più alto in modulo. Probabilmente puoi ottimizzare ulteriormente calcolando solo le frequenze della tua banda di interesse. Tutto dipende dalla precisione che ti occorre.. Ad esempio, se fai una trasformata a 256 punti (meglio avere potenze di 2) con frequenza di campionamento di 8kHz hai una risoluzione di 8000/256=32Hz. Probabilmente sul sito della Microchip c'è già scritta una routine per fare la FFT...Prova a dare un occhiata.

Se il rumore è ragionevolmente sotto l'ampiezza del segnale puoi tentare di squadrarlo con una soglia variabile (a seconda dell'ampiezza) o magari addirittura con isteresi (2 soglie, es. una a 1/3 e l'altra a 2/3 dell'ampiezza del segnale).

Ok, era solo qualche idea buttata là...È un po' difficile senza sapere l'applicazione specifica.

Pasu.

Reply to
Pasu

Zio! ha scritto:

Squadrerei il tutto e andrei di digitale.

Reply to
[ Frank ]

pre

endere

te

Si puo' fare un po' meglio:

- Algorithms for a Precise Determination of the Betatron Tune, R. Bartolini, M. Giovannozzi, W. Scandale, A. Bazzani, E. Todesco, CERN Geneve 1996, article available on Internet

- Tune Evaluation Using Hanning Filters, H.L. Owen, CLRC Daresbury Laboratory, article available on Internet.

Con queste tecniche, riuscivo a misurare gli errori di qualche ppm fra due generatori di alta frequenza (uno era usato per controllare il campionamento e l'altro come segnale di test campionato), con una FFT su 64 punti su un intervallo di 1MHz (era su un ricevitore software che allora era da competizione).

.=2E. ma trovo anch'io pi=F9 divertente lavorare in analogico ...

Reply to
Darwin

Un bel giorno Zio! digitò:

Sembra l'applicazione ideale per un analizzatore di spettro: campioni con un AD veloce (e con buona risoluzione, visto l'ampia dinamica che ti serve), fai una FFT e trovi il picco nello spettro delle ampiezze. L'ho fatto in passato, funziona bene anche in ambienti molto rumorosi e poi c'è parecchia bibliografia su metodi/algoritmi per migliorare ulteriormente le prestazioni. Per realizzare una cosa del genere ti servono dispositivi che di per sè sono economici (con 10-20 euro te la cavi, sia usando un DSP che usando una FPGA); il problema è tutto quello che si portano dietro in termini di tool di sviluppo e/o know how. In altre parole, se li sai già usare sono senza dubbio la soluzione ottimale; se no, bisogna fare dei conti. Se si tratta di un progetto sostanzioso, probabilmente ti conviene comunque imparare a usarli, anche considerando che si tratta di dispositivi che con ogni probabilità ti torneranno utili in parecchie situazioni.

Dubito.

In questo documento:

formatting link

Si parla di un tempo di esecuzione per una FFT a 256 punti di 19000 cicli:

635 us a 30 MIPS, cioè 1500 Hz. Anche con 64 punti non superi i 5 kHz, mentre a te ne servono almeno 14 (e probabilmente più punti). Con un TMS320F28xx, che costa poco di più, la situazione migliora di un ordine di grandezza, e forse ce la puoi già fare. Con una FPGA invece puoi andare molto, molto oltre. *Molto*. :)
--
emboliaschizoide.splinder.com
Reply to
dalai lamah

Un bel giorno dalai lamah digitò:

Scusa, in questo punto ho fatto un po' di confusione (stavo pensando ai filtri FIR, non alla FFT :)). Ovviamente se campioni a 15 kHz e fai una FFT a 256 punti, avrai un risultato ogni 17 ms (ogni 256 campioni, appunto). Quindi un dsPIC è più che sufficiente.

--
emboliaschizoide.splinder.com
Reply to
dalai lamah

Grazie! Gli darò un'occhiata senz'altro.

Dovremmo lanciare una campagna per la salvaguardia e il rilancio dell'analogico :-)

Alla prossima!

Pasu

Reply to
Pasu

Ah, guarda, davvero. Ormai si consiglia di usare un microcontrollore anche per compiti per cui in effetti non =E8 necessario ma poi non si sa calcolare la resistenza da mettere in serie ad un LED. Purtroppo, l'elettronica analogica fa paura a tanti! E sempre di pi=F9...

Reply to
Darwin

Imparare ad usarli mi piacerebbe tantissimo ma credo che nell'ambito di questo progetto i tempi di sviluppo che ne conseguirebbero non siano giustificabili: questo progetto divrà essere completato a livello di prototipo in un paio di settimane al massimo e 3 - 4 giorni sono già passati. Per questo pensavo ad una soluzione semplice ma efficace: dalle prove empiriche fatte filtro + squadratore è una soluzione troppo spiccia con numerosi problemi in caso di rapporto segnale rumore scarso. Mi serve qualcosa di meglio soprattutto perchè il rumore che ho all'interno della banda di lavoro il filtro non me lo toglie e quando vado a squadrare ho delle transizioni 0-1-0 piuttosto aleatorie: soltanto quando il segnale è veramente forte vedo l'onda bella squadrata con periodo stabile. Credo invece che con un PLL una volta che ottengo l'aggancio in fase l'uscita del VCO sia ben definita e armonicamente pulita, se invece non ho l'aggancio posso informare il PIC di ignorare completamente il segnale invece di fargli misurare delle frequenze casuali cosa che ora col semplice filtro + squadratore non posso fare. Cosa ne pensi? Ciao, Zio!

Reply to
Zio!

Un bel giorno Zio! digitò:

Ah, io sono un digitalista e quindi guardo in cagnesco le soluzioni analogiche. ;-)

Scherzi a parte, la scelta fra le due soluzioni dipende da due cose: il tuo livello di confidenza con un microcontrollore adeguato (come ho detto il dsPIC dovrebbe bastare, quindi se lo sai già usare sei a posto), e le prestazioni che ti servono. Ho qualche dubbio che una soluzione analogica con un PLL possa raggiungere le stesse prestazioni che puoi ottenere con la FFT, ma per quanto ho detto più sopra il mio parere è decisamente biased. :)

--
emboliaschizoide.splinder.com
Reply to
dalai lamah

"dalai lamah"

Già, il mio livello di confidenza è molto basso, anche se sono convinto che applicandomi ci salto fuori, il problema è che serve tempo.

Si sono convinto che lavorando in digitale con gli algoritmi opportuni si possano ottenere maggiori prestazioni, il problema pero' è, come si diceva, quello di rispettare un opportuno rapporto costi / prestazioni anche in relazione al particolare progetto. Se fosse un progetto piu' consistente e con un seguito commerciale certo si potrebbe anche pensare di investire di piu' nello sviluppo per ottenere maggiori prestazioni, ma come stanno le cose non è possibile. Il PIC c'e' già e ha già una parte di software a bordo sviluppata prima che arrivassi io, quindi se è possibile bisognerebbe continuare ad usare quello con tutti i limiti che ne conseguono. In ogni caso grazie mille anche a te per le indicazioni. Ciao, Zio!

Reply to
Zio!

Volevo aggiungere che sarebbe molto utile un lock detector. Il 74HC7046 ne integra uno, altrimenti esistono soluzioni semplici per realizzarne uno? Ciao, Zio!

Reply to
Zio!

Non conosco lo IC di cui parli. Mi daresti il link del pdf?

Per rivelare l'aggancio potresti giocare sul fatto che l'uscita ficomp avr=E0 solo componente alternata in assenza di aggancio. Non so dirti di pi=F9 perch=E9 non ho mai avuto il problema.

Ciao

Tullio

-- Ubi solitudinem faciunt, ibi pacem appellant.

Reply to
Tullio Mariani

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.