Pagina 1 di 4

realizzazione coefficienti fir matlab

MessaggioInviato: 4 feb 2015, 3:01
da davide99cs
Salve

Avrei bisogno di una mano. Ho una frequenza di campionamento impostata a 4Ghz e un segnale sinusoidale del quale mi voglio misurare la fase nel tono principale in frequenza. Per fare questo, prima però, devo eliminare del rumore. Quindi volevo realizzare una funzione (non giù impostata con matlab) chemi realizzasse un fir a fase lineare che mi permettesse di filtrare il tono principale ( un bassabanda) in maniera parametrica. Ovvero la mia funzione dov 250mhz se la mia sin è di 250mhz, 500mhz se è di 500mhz ecc ecc.

potete aiutarmi?? grazie

Re: realizzazione coefficienti fir matlab

MessaggioInviato: 4 feb 2015, 9:05
da g.schgor
Vedi qui
(i colcoli sono in Mathcad anziché in Matlab)

Re: realizzazione coefficienti fir matlab

MessaggioInviato: 4 feb 2015, 20:37
da davide99cs
Mi servirebbe proprio la funzione da implementare in matlab. Cioè proprio come ricavarmi i coefficienti del filtro e tipo di filtro (passa-basso, passa-alto, passa-banda) in base alla frequenza del mio segnale che gli passo come parametro!

Re: realizzazione coefficienti fir matlab

MessaggioInviato: 5 feb 2015, 8:14
da g.schgor
Non uso matlab, quindi non poso darti il dettaglio della procedura,
ma concettualmente dall'esempio dato dovrebbe essere chiaro che
i coefficienti del filtro sono dati dall'antitrasformazione di Fourier
del filtro stesso (rappresentato in un diagramma di Bode).
La prima cosa da fare è scegliere il numero di coefficienti che vuoi
(che stabilisce l'accuratezza del filtro rispetto a quello ideale).
Puoi provare?
Comunque esempi di procedure in matlab le trovi su Google
(vedi esempio)

Re: realizzazione coefficienti fir matlab

MessaggioInviato: 5 feb 2015, 9:19
da IsidoroKZ
Che sistema hardware hai a disposizione per campionare a 4 Gsample/s con quanti bit? Per realizzare il filtro fir quale hardware hai a disposizione? A quelle velocita` di campionamento il throughput dello hardware di elaborazione e` un dato molto importante.

Re: realizzazione coefficienti fir matlab

MessaggioInviato: 5 feb 2015, 9:41
da PietroBaima
davide99cs ha scritto:Mi servirebbe proprio la funzione da implementare in matlab.


Questa frase non la capisco.

Se devi fare un'analisi su dei dati campionati e quindi, sostanzialmente, hai un file devi semplicemente prendere l'algoritmo descritto da Foto Utenteg.schgor e implementarlo in matlab.
Quindi devi studiare quella funzione e dovresti essere a posto, quindi non dovresti avere problemi, anche se un studio sui FIR in generale sarebbe apprezzabile.

Se non sei capace a tradurre l'algoritmo da solo in matlab non hai bisogno di una funzione sui filtri ma hai bisogno di studiarti matlab. Avere il programma pronto senza capirlo non ti permetterà di fare niente.

Se invece vuoi realizzare un campionatore a quelle frequenze (auguri, tanti) avere un PC con sopra matlab è utile quanto avere una automobile per andare sulla luna.
Serve una FPGA molto potente e con dei blocchi FIR ottimizzati molto bene.
Inoltre vuoi fare una misura di fase, quindi devi fare una attenzione maniacale ai ritardi e skew interni alla FPGA. Ci sono degli strumenti appositi (lo skew analyzer che sono migliori del fitter, per queste cose).
Il PCB della scheda deve essere molto curato per evitare di introdurre errori di fase poco gestibili.
Non fare mai passare il segnale attraverso dei vias a meno che tu non sia in grado di progettarli molto bene e fai attenzione alla lunghezza delle piste.
Potresti fare il sistema e misurare l'errore in modo da avere un riferimento sistematico.
Il PCB va realizzato in TEFLON e il circuito rinchiuso in una scatola di metallo.
Le alimentazioni vanno filtrate.

Ciao,
Pietro.

Re: realizzazione coefficienti fir matlab

MessaggioInviato: 7 feb 2015, 18:31
da davide99cs
g.schgor ha scritto:Non uso matlab, ...
Comunque esempi di procedure in matlab le trovi su Google
(vedi esempio)

Esatto, quelle procedure in matlab le conosco per generare i filtri, ma non le posso usare.
Cioè devo lavorare in matlab, ma è come se mi dovessi realizzare tali funzioni da capo. Il mio lavoro infatti è di creare una sorta di tool che poi verrà implementato a basso livello. Mi è stato chiaramente detto che non posso usare quelle funzioni perché " poi chi implementa non ha matlab che gira sotto".
So come creare un filtro di butterworth in matlab e poi finestrarlo con magari una hamming (usando le varie funzioni buttord, butter ecc.., avevo pensato a questo metodo di filtraggio). Il problema è che non posso usarle e devo implementarle da capo. Quindi o devo vedere gli script di quelle funzioni per "copiarle" ma non saprei come aprirle, oppure devo implementare tutto a mano, oppure devo creare per l'appunto una funzione per crearmi questi coefficienti fir in base alla frequenza che passo come parametro, ma in questo caso non saprei proprio come fare. Vi chiedevo aiuto per entrambe le cose, perché probabilmente mi sarà chiesto di studiarlo in entrambi i modi

grazie

Re: realizzazione coefficienti fir matlab

MessaggioInviato: 7 feb 2015, 20:40
da g.schgor
Bene. riesci ad ottenere in matlab
la distribuzione di frequenze che
caratterizza il filtro che vuoi realizzare?
E poi puoi farne l'annitrasformaziome (IFFT)?

Re: realizzazione coefficienti fir matlab

MessaggioInviato: 7 feb 2015, 21:03
da davide99cs
Per le frequenze si. Ho una cosinusoide in ingresso e voglio filtrare il segnale in base alla frequenza della sinusoide. Calcolando che ho campionamento a 4ghz, in base alla frequenza della sinusoide posso decidere di realizzare un passa-basso, passa-banda o passa-alto (ovviamente deve essere tutto parametrico, in base alla frequenza che ho la funzione mi farà uno di questi filtri). Poi, si posso usare le funzioni più elementari come fft, ifft e molte altre elementari. Non posso usare quelle che ho detto prima per la facilitazione della generazione dei filtri (tipo butter, butteord ecc se voglio usare windowing ad esempio). Quelle non posso usarle. Quelle di base sì

Re: realizzazione coefficienti fir matlab

MessaggioInviato: 8 feb 2015, 7:17
da g.schgor
Allora comincerei a fissare le idee scegliendo un filtro
fissandone i parametri (con numero di frequenze e intervallo).
Se mi dici i dati, posso fare lo stesso calcolo in Mathcad. così
confrontiamo i risultati.