Newsgroup: it.hobby.elettronica.digitale
Titolo: Filtri digitali e FPGA

A chi interessa, mi piacerebbe implementare un piccolo filtro digitale in
una FPGA (XILINX Spartan)
che sia in grado di lavorare in banda audio. Il filtro potrebbe essere di
tipo passa-banda.
Devo iniziare lo studio da zero, come uniche nozioni potrei sintetizzare un
filtro digitale sfruttando la trasformata Z
partendo da un filtro sintetizzato nel continuo, quindi con trasformata di
Laplace. In sostanza sfrutto la mappatura
che si fa nel caso dei controlli automatici per trasformare i filtri dal
dominio tempo continuo ad una implementazione
adatta ad un uP, quindi per un controllo di tipo digitale. Non so ancora se
questa tecnica sia adatta per la sintesi
che voglio affrontare, infatti la letteratura propone modelli differenti
denominati IIR e FIR. Abbiate pazienza sono
all'inizio, se qualcuno mi sa dare maggiori delucidazioni evito di perdere
tempo a girare sul web alla ricerca di
application notes e tutorial non consoni a quello che vorrei fare.
Per il progetto del filtro non ci sono problemi, si possono usare le
trasformazioni in frequenza.
Mi intressava sapere se qualcuno era interessato a fare questa esperienza da
zero, magari disposto ad ospitare
il frutto del lavoro sul proprio sito web.
A chi interessa?
Spero in qualche risposta ........
Saluti
Powermos
--
----------------------------------------------------
Ama il tuo mestiere con passione
E' il significato della tua vita
Auguste Rodin (1840-1917)

 trasformazioni in frequenza.
I filtri digitali lavorano sempre nel dominio del tempo! Farli in quello
della frequenza complicherebbe soltanto le cose.
-- 
Lorenzo


i filtri digitali lavorano sempre nel dominio del tempo, ma  visto che fra
frequenza e tempo esistono delle trasformazioni lineari la stessa cosa la
puoi vedere in un dominio oppure nell'altro, il concetto č che la sostanza
non cambia. Quello che invece cambia č il modo con cui si arriva alla
definizione della funzione di trasmissione del filtro, in altre parole si
potrebbe fare un'equivalenza fra equazioni differenziali e trasformata di
Laplace, descrivono la stessa cosa, ma in domini differenti.
La tecnica che ho proposto consiste nel determinare la f.d.t. del fltro
partendo dalla corrispondente f.d.t. definita nel tenpo continuo. Questi
concetti sono molto usati in teoria dei controlli automatici ed alla fine
portano alla scrittura di una equazione alle differenze che altro non č che
una relazione di tipo tempo discreto come quelle da te prima citate. Mi
sembra comunque di capire che questo tipo di sintesi non viene utilizzata,
ma si ricorre direttamente alla sintesi IIR oppure FIR che partono dalla
definizione di equazione ricorsiva (IIR) di ordine m oppure non ricorsiva
per il FIR.
Mi piacerebbe molto poter approfondire questa parte di studi che, per il mio
percorso formativo č stato solo di tipo generale visto che ho fatto un
percorso piů orientato ai controlli automatici. Se ti va potresti aiutarmi a
definire bene
il filtro ed io procederei con l'implementazione nella FPGA, in piů si
potrebbe con un PIC ed un PC fare una modifica on-linbe dei coefficienti del
filtro per verificare diverse risposte in frequenza.
Per ora mi butto nello studio della parte teorica .... grazie di tutto e se
ti va a presto.
Ciao
Powermos


 web. A chi interessa?
A me interessa!
Ho fatto diverse cose con gli FPGA ma non li ho mai usati nel campo
dell'elaborazioni dei segnali, e mi piacerebbe fare un pò di esperienza in
questa direzione, visto che è un mondo a se rispetto ad altri tipi di
applicazioni...
Mi ero ripromesso di cimentarmi anche nella realizzazione di un core per
calcolare la FFT, anzi, rilancio: se c'è qualcuno interessato anche a questa
cosa si faccia avanti! :-)
Riguardo al sito eventualmente non ci sono problemi.
Ciao
Dr. Jones

 ti va a presto.
Qualche indicazione di tipo generale. Tanto per cominciare si deve avere 
un moltiplicatore e un sommatore (meglio forse avere un moltiplicatore e 
accumulatore). Poi bisogna decidere con quanti bit lavorare. Se si usa 
l'aritmetica a virgola intera ci vogliono parecchi bit (direi >12-16) 
per i coefficienti, perche' i poli, per avere filtri selettivi, devono 
essere vincini al cerchio unitario nel dominio della traformata z, e se 
i coefficienti sono sbagliati i poli vanno fuori dal cerchio unitario e 
il filtro diventa instabile (pero` puo` essere utile per fare 
oscillatori numerici).
Un paio di considerazioni per fare i filtri numerici.
Premessa: sono delle cose diverse da quelli tempo continuo, e anche se 
si mappa un tempo continuo (TC) in un numerico, quello che si ottiene 
non ha lo stesso comportamento del TC. I numerici fatti bene hanno i 
loro metodi di progetto specifici.
  Partiamo con i filtri IIR.
Si puo` partire da un TC e fare una traduzione di s in z, secondo una 
opportuna regola di traduzione.
La piu` semplice e` quella di definire s=(1-z^-1)/T in pratica si dice 
che la derivata (s) e` uguale alla differenza finita. Funziona bene se 
si sovracampiona da bestia. Il mio primo filtro funzionava cosi` :-)
Se non si sovracampiona, si ottiene che la ftd ha una deformazione 
legata al fatto che si proietta l'asse jw su una circonferenza con un 
mapping che essenzialmente e` una tangente. E quindi si puo` fare una 
trasformazione con una arcotangente, che rende il risultato piu` simile 
al filtro TC (se ben ricordo bisogna prima fare una predistorsione 
sull'asse delle frequenza del TC).
Per i filtri FIR invece c'e` un sistema semplice: si mettono come 
coefficienti la risposta all'impulso del filtro TC che si vuole emulare 
in numerico. Viene una cosa bruttina, ma funziona. Ovviamente cosi` non 
si sfruttano tutte le prerogative del filtro FIR, detto anche filtro 
trasversale o a soli zeri. Una sua caratteristica e` che se i 
coefficienti sono simmetrici rispetto al coefficiente centrale, la fase 
del filtro e` lineare.
E con cio` vado a dormire :-)
-- 
Franco
Wovon man nicht sprechen kann, darüber muß man schweigen.
(L. Wittgenstein)

 > il filtro ed io procederei con l'implementazione nella FPGA, in piů si


 ha scritto nel messaggio
news:X7Isa.86942$DT4.2...@twister1.libero.it...


 filtro per verificare diverse risposte in frequenza.
Quello che so te lo dico senz'altro! Premetto pero` che mi occupo
abbastanza indirettamente di queste cose, e la mia preparazione in
argomento e` alquanto scarsa. Da un po' di tempo (mio malgrado) devo
fare piu` l'"hardware guy". ;-)
-- 
Lorenzo

 casa!!! ;-) )
C'e` ISE WebPack che e` gratis, e ti permette di programmare FPGA da
centinaia di migliaia di gates! Sono esclusi giusto i modelli di punta,
roba da cinquecento euro al pezzo... :)
-- 
Lorenzo

 > XILINX perchè dispongo del


 ad installare Win2000 oppure XP.
Non so niente di FPGA ma ti posso dire che puoi ringraziare
tranquillamente il signore per il fatto che ancora riesci ad usare Win Me
per le cose più stupide!!!
Buttalo che fa schifo!
un tecnico informatico come tanti...
coals
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 per le cose piů stupide!!!


 da mettere sul sito
Si, è una buona idea.
In fondo il brutto di progetti già realizzati (tipo quelli su Opencores) stà
proprio nell'assoluta mancanza di documentazione e di commenti nel codice!
E' difficilissimo riuscire a imparare qualcosa cercando di studiare
quelli...
Ciao
Dr. Jones

 ha scritto nel messaggio
news:Pf1ta.88654$iy5.2...@twister2.libero.it...


Purtroppo le ultime versioni richiedono Win2000 o XP... :-(
Per cortesia mi sapreste dire qual'e' l'ultima versione funzionante su win98 e
se si riescie ancora a scaricare?
Grazie,
Lorenzo

Io per ora ti posso dire che fino a Foundation3.3i gira tutto su Win98,Me e
2000.
Per il WebPack adesso non ti posso aiutare, la prossima settimana installo
XP.
Ciao
Pow
--
----------------------------------------------------
Ama il tuo mestiere con passione
E' il significato della tua vita
Auguste Rodin (1840-1917)
"Lorenzo Dal Bello" <DalB...@Libero.it> ha scritto nel messaggio
news:8ddabv0d2gbjmprpd...@4ax.com...



Non ho ben capito che tipo di filtro volete realizzare, ma
siste sicuri di non riinventare la ruota?
Per i normali filtri passa basso, passa alto, bassa banda, ecc.
ci sono dei moduli LPM che fanno tutto da soli,  basta specificare
frequenze, sfasamento, ripple, attenuazione e cosí via e il il filtro
viene creato nella FPGA senza diversi preoccupare di niente
altro.
E poi ci sono tanti altri software piú o meno generici che creano
filtri FIR e IIR, in rete ne ho visto anche uno free che generava
il listato HDL.

 ha scritto nel messaggio
news:w%eta.91422$DT4.2...@twister1.libero.it...


 se si riescie ancora a scaricare?
Le ultime versioni funzionanti con Win98 sono il WebPack 4.1 e l'ISE 4.2
(versione "student" del 4.1). Se non erro si possono ancora scaricare dal
sito della Xilinx.
Purtroppo entrambi hanno qualche problema con i dispositivi pių nuovi! Per
esempio non riesco a sintetizzare correttamente le BlockRAM per la
Spartan2E300, ne tantomeno a programmare i
dispositivi con l'Impact...
Con la versione 5.1 questi problemi sono spariti, ma purtroppo richiede XP o
Win2K... :-(
Ciao.
Dr. Jones

 siste sicuri di non riinventare la ruota?
La cosa interessante non è tanto il filtro in sè!
Il mio obiettivo è quello di approfondire in prima persona le tecniche
di implementazione di algoritmi di DSP su FPGA, sia per curiosità sia perchè
so che prima o poi mi capiterà di doverle applicare a problemi ben più
complessi ed "esotici"... E da qualcosa bisogna pur cominciare no? :-)
I filtri FIR sono dei buoni candidati: sono molto semplici concettualmente,
ma permettono di spaziare parecchio in quanto a soluzioni architetturali e
di implementazione (che poi possono essere applicate ad algoritmi più
complessi...).
Dr. Jones

 e delicato della progettazione stessa.
Si, è vero.
Però non è un grosso problema perchè dando per scontato che il progetto del
filtro dal punto di vista numerico sia corretto [i metodi di progetto sono
sistematici], rimane solo da verificare il corretto funzionemento delle
architetture che lo implementano. E questo può essere fatto tranquillamente
in simulazione... In questo modo si possono anche ricavare dei dati circa
gli errori introdotti dalla rappresentazione nuemrica fixed-point.
Dr. Jones

"Lorenzo Lutti" <lorenz...@DOHtiscalinet.it> ha scritto nel messaggio
news:7YNsa.87160$iy5.2...@twister2.libero.it...

Visto che ancora ad oggi non ho installato XP, avresti l'ultima versione di
ISE Webpack che gira anche
sotto 98/ME?
Continuo con lo studio, ho trovato in rete diversi articoli interessanti a
questa URL... se ti interessa ....
i file dei paperi sono scaricabili in diversi formati fra cui PDF.
http://citeseer.nj.nec.com/520892.html
Ciao



Bene ... fammi sapere se hai news ... a presto
Ciao
Pow


 
http://citeseer.nj.nec.com/520892.html
Hai ragione, e` un link davvero interessante! Grazie.
-- 
Lorenzo

Powermos wrote:
Sono incappato in questo libro sul trattamento numerico dei segnali 
audio, che pero` ha un paio di capitoli su filtri numerici, architetture 
HW per realizzarli ecc. ecc.
http://profs.sci.univr.it/~rocchess/htmls/corsi/SoundProcessing/SoundProcessingBook/
Mi sembra bello, ma non essendo il mio campo, potrei sempre aver preso 
una vacca per le palle (vecchio proverbio dei pionieri americani)


 una vacca per le palle (vecchio proverbio dei pionieri americani)
HA HA HAAAAA..... buona questa .... ;-)
Saluti
Pow
PS. Altri circuitini strappacervello? ;-)


 Bene ... fammi sapere se hai news ... a presto
Ho letto un pò di documenti che avevo e penso che si potrebbe cominciare a
buttare giù l'architettura del filtro. In particolare bisogna fare delle
scelte riguardo a:
1) Quanti bit usare per i campioni
2) Quanti bit usare per i coefficienti
3) Quale rappresentazione dei numeri usare
4) Numero di "tap"
5) Architettura seriale, parallela, o mista
6) Massimo numero di CLB da usare
7) Minima frequenza di funzionamento
(le ultime due in realtà si dovrebbero considerare per prime e dovrebbero
guidare nella scelta delle altre...)
Ci sentiamo...
Dr. Jones