ITBO20130068A1 - Metodo e sistema per la sintesi digitale di una forma d'onda - Google Patents

Metodo e sistema per la sintesi digitale di una forma d'onda

Info

Publication number
ITBO20130068A1
ITBO20130068A1 IT000068A ITBO20130068A ITBO20130068A1 IT BO20130068 A1 ITBO20130068 A1 IT BO20130068A1 IT 000068 A IT000068 A IT 000068A IT BO20130068 A ITBO20130068 A IT BO20130068A IT BO20130068 A1 ITBO20130068 A1 IT BO20130068A1
Authority
IT
Italy
Prior art keywords
time
segment
samples
segments
memory
Prior art date
Application number
IT000068A
Other languages
English (en)
Inventor
Paolo Pellati
Original Assignee
Active Technologies S R L
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Active Technologies S R L filed Critical Active Technologies S R L
Priority to IT000068A priority Critical patent/ITBO20130068A1/it
Priority to US14/183,453 priority patent/US20140297705A1/en
Priority to EP14155665.4A priority patent/EP2767881A1/en
Publication of ITBO20130068A1 publication Critical patent/ITBO20130068A1/it

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/02Digital function generators
    • G06F1/03Digital function generators working, at least partly, by table look-up
    • G06F1/0321Waveform generators, i.e. devices for generating periodical functions of time, e.g. direct digital synthesizers
    • G06F1/0328Waveform generators, i.e. devices for generating periodical functions of time, e.g. direct digital synthesizers in which the phase increment is adjustable, e.g. by using an adder-accumulator
    • G06F1/0335Waveform generators, i.e. devices for generating periodical functions of time, e.g. direct digital synthesizers in which the phase increment is adjustable, e.g. by using an adder-accumulator the phase increment itself being a composed function of two or more variables, e.g. frequency and phase
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/02Digital function generators
    • G06F1/03Digital function generators working, at least partly, by table look-up
    • G06F1/0321Waveform generators, i.e. devices for generating periodical functions of time, e.g. direct digital synthesizers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/02Digital function generators
    • G06F1/03Digital function generators working, at least partly, by table look-up
    • G06F1/035Reduction of table size

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Analogue/Digital Conversion (AREA)
  • Other Liquid Machine Or Engine Such As Wave Power Use (AREA)
  • Crystals, And After-Treatments Of Crystals (AREA)
  • Chemical Vapour Deposition (AREA)

Description

DESCRIZIONE
“METODO E SISTEMA PER LA SINTESI DIGITALE DI UNA FORMA D'ONDAâ€
La presente invenzione à ̈ relativa ad un metodo per la sintesi digitale di una forma d’onda e ad un corrispondente sistema di sintesi digitale.
La presente invenzione trova vantaggiosa, ma non esclusiva, applicazione nei generatori di funzione, cui la descrizione che segue farà esplicito riferimento senza per questo perdere in generalità.
La tecnica tradizionalmente utilizzata nei generatori di funzioni à ̈ la cosiddetta sintesi digitale diretta (“Direct Digital Synthesis†) (DDS). Un sistema per la sintesi digitale diretta di segnali comprende una memoria digitale per memorizzare, in forma di una tabella di associazione di dati (“look-up table†), una pluralità di campioni di segnale codificati in digitale individuati da rispettivi indirizzi di memoria, un convertitore digitale analogico (D/A) per convertire i campioni letti dalla memoria in corrispondenti valori analogici costituiti, per esempio, da livelli di tensione, e un accumulatore di fase per aggiornare l’indirizzo di memoria in modo tale da leggere una sequenza dei campioni dalla memoria. L’accumulatore di fase e il convertitore D/A operano alla frequenza di un segnale di clock generato da un oscillatore interno o esterno al sistema di sintesi digitale stesso.
La sequenza dei valori analogici forniti dal convertitore D/A definisce la forma d’onda generata dal sistema DDS. I campioni memorizzati nella memoria sono campioni consecutivi di una forma d’onda di riferimento individuati da rispettivi indirizzi di memoria consecutivi tra loro. In altre parole, i campioni memorizzati nella memoria rappresentano quella forma d’onda (la forma d’onda di riferimento appunto) che viene generata dal convertitore D/A scandendo in sequenza tutti gli indirizzi di memoria, uno ad ogni “colpo†del segnale di clock.
Il sistema DDS comprende, inoltre, una unità di controllo programmata per definire la frequenza con cui l’accumulatore di fase aggiorna gli indirizzi della memoria. La frequenza di aggiornamento degli indirizzi può essere variata in modo proporzionale alla frequenza del segnale di clock allo scopo di variare la frequenza della forma d’onda generata. Per esempio, se la frequenza di aggiornamento à ̈ pari alla metà della frequenza del segnale di clock, allora ciascun campione digitale viene letto due volte e quindi la frequenza della forma d’onda generata si dimezza rispetto a quella della forma d’onda di riferimento. Diversamente, se la frequenza di aggiornamento à ̈ pari al doppio della frequenza del segnale di clock, allora un campione digitale su due non viene letto e quindi la frequenza della forma d’onda generata raddoppia rispetto a quella della forma d’onda di riferimento.
La variazione della frequenza di aggiornamento degli indirizzi produce uno stiramento o compressione della forma d’onda. Tale vincolo può produrre un effetto indesiderato su forme d’onda non sinusoidali che consiste in una alterazione significativa del contenuto armonico della forma d’onda generata rispetto alla forma d’onda di riferimento. Ciò accade, per esempio, se la forma d’onda di riferimento à ̈ un’onda quadra. Per lo stesso motivo non à ̈ possibile emulare un rumore di fase (jitter) su segnali periodici non sinusoidali, oppure implementare una modulazione di larghezza di impulso (PWM).
Altri effetti indesiderati della tecnica di sintesi digitale diretta sono la perdita di alcuni dettagli della forma d’onda di riferimento, la generazione di grossi errori di quantizzazione in corrispondenza di variazioni rapide della forma d’onda di riferimento e la violazione del teorema di Shannon quando la frequenza di aggiornamento degli indirizzi viene aumentata.
Scopo della presente invenzione à ̈ di fornire un metodo per la sintesi digitale di una forma d’onda arbitraria, il quale metodo sia esente dagli inconvenienti sopra descritti e, nello stesso tempo, sia di facile ed economica realizzazione.
In accordo con la presente invenzione vengono forniti un metodo ed un sistema per la sintesi digitale di una forma d’onda, secondo quanto definito nelle rivendicazioni allegate.
La presente invenzione verrà ora descritta con riferimento ai disegni annessi, che ne illustrano un esempio di attuazione non limitativo, in cui:
- la figura 1 illustra uno schema a blocchi generale del sistema di sintesi digitale di forme d’onda della presente invenzione;
- la figura 2 illustra un esempio di forma d’onda di riferimento i cui campioni sono memorizzati nella memoria del sistema della figura 1;
- la figura 3 illustra uno schema a blocchi della unità di controllo del sistema della figura 1;
- la figura 4 illustra un diagramma di flusso del funzionamento di una parte della unità di controllo della figura 3.
Nella figura 1, con 1 à ̈ genericamente indicato, nel suo complesso, un sistema per la sintesi digitale di forme d’onda. Il sistema 1 comprende una memoria digitale 2 per memorizzare campioni di una forma d’onda di riferimento, una unità di controllo 3 per aggiornare l’indirizzamento della memoria 2 alla frequenza di un segnale di clock CK in modo da leggere un campione ad ogni ciclo del segnale di clock CK, ed un convertitore D/A 4 per convertire, in modo sincrono con il segnale di clock CK, i campioni letti dalla memoria 2 in corrispondenti valori analogici costituiti, per esempio, da livelli di tensione. La sequenza dei valori analogici forniti dal convertitore D/A definisce la forma d’onda generata SA dal sistema 1. Nell’esempio della figura 1, il segnale di clock CK à ̈ un segnale a frequenza Fc costante generato da un oscillatore al quarzo che à ̈ esterno al sistema 1, e per questo non illustrato. Secondo una forma di attuazione alternativa, l’oscillatore appartiene al sistema 1.
I campioni sono memorizzati nella memoria 2 in maniera consecutiva, cioà ̈ sono campioni consecutivi della forma d’onda di riferimento individuati da rispettivi indirizzi di memoria consecutivi tra loro. In altre parole, i campioni sono memorizzati nella memoria 2 in forma di una tabella di associazioni di dati (“look-up table†), in cui ad ogni campione memorizzato SD à ̈ associato un rispettivo indirizzo di memoria AD della memoria 2. In generale, gli indirizzi di memoria sono codificati con un numero k di bit ed i corrispondenti campioni digitali sono codificati con un numero n bit generalmente diverso da k.
Il sistema 1 à ̈ configurato per implementare il metodo per la sintesi digitale di una forma d’onda della presente invenzione, nel modo seguente.
Diversamente dalla tecnica DDS, che prevede un periodo di campionamento costante, cioà ̈ uguale per l’intera forma d’onda, la forma d’onda di riferimento à ̈ suddivisa in una pluralità di segmenti temporali contigui tra loro, a ciascuno dei quali à ̈ associata una rispettiva pluralità di campioni consecutivi acquisiti secondo un rispettivo periodo di campionamento. La suddivisione in segmenti contigui permette di descrivere la forma d’onda di riferimento con un periodo di campionamento che dipende dalla variabilità temporale della forma d’onda di riferimento nei vari segmenti. In altre parole, a ciascun segmento temporale à ̈ associato un numero di campioni ed un periodo di campionamento che dipende dall’entità della variabilità temporale del segmento stesso. La variabilità temporale di un segmento à ̈ misurabile, per esempio, con la derivata prima media della forma d’onda in tale segmento. In particolare, il periodo di campionamento di un segmento à ̈ proporzionale all’entità della variabilità temporale della forma d’onda di riferimento del segmento. Quindi, un segmento che à ̈ caratterizzato da una elevata variabilità temporale à ̈ convenientemente rappresentato da una elevata densità di campioni, cioà ̈ campioni molto ravvicinati nel tempo, e viceversa. Al limite à ̈ possibile descrivere un segmento caratterizzato da una derivata nulla con un solo campione. All’interno di ciascun segmento, il periodo di campionamento à ̈ costante.
Nel testo qui di seguito e nelle figure, con SG à ̈ indicato il numero di segmenti temporali della forma d’onda di riferimento memorizzata nella memoria 2, in modo tale che il generico segmento sia individuato da un indice s di valore intero compreso tra 1 ed SG, con N(s) à ̈ indicato il numero di campioni dell’s-esimo segmento e con Tsg(s) à ̈ indicata la durata originaria dell’s-esimo segmento. I campioni dell’s-esimo segmento sono individuati da un indice c di valore compreso tra 0 e la differenza N(s)-1. Il numero di segmenti SG ed il numero di campioni N(s) di ciascun segmento sono costanti e memorizzati nella memoria 2 assieme ai campioni della forma d’onda di riferimento. Le durate Tsg sono anch’esse memorizzate nella memoria 2.
Alternativamente, il periodo di campionamento Tsmp di ciascun segmento temporale, ossia l’s-esimo segmento, à ̈ memorizzato nella memoria 2 e la rispettiva durata Tsg(s) à ̈ calcolata in funzione del rispettivo periodo di campionamento Tsmp(s) e del rispettivo numero di campioni N(s).
I numeri di campioni N, le durate originarie Tsg ed i passi di campionamento Tsmp sono memorizzati nella memoria 2 come vettori aventi, ciascuno, un numero di elementi pari al numero di segmenti SG.
La figura 2 illustra un esempio di forma d’onda di riferimento suddivisa in otto segmenti contigui, cioà ̈ SG à ̈ pari a 8, con le relative durate da Tsg(1) a Tsg(8). Nella figura 2 sono anche indicati gli istanti finali del secondo segmento (s=2), indicati rispettivamente con Ti(2) e Tf(2). I segmenti con indice s pari a 1, 4 e 7 hanno una variabilità temporale inferiore ai segmenti con indice s pari a 2, 3, 5, 6 e 8.
Il sistema 1 comprende una interfaccia uomo-macchina 5 per acquisire in tempo reale dei parametri, indicati nel loro complesso con MOD, che permettono di impostare o modulare le durate dei segmenti temporali, in maniera indipendente l’una dall’altra, con rispettivi valori desiderati. In altre parole, a ciascun segmento temporale viene associata una rispettiva durata desiderata, cioà ̈ la durata che si desidera abbia il segmento temporale all’atto della sua riproduzione, che può essere uguale o diversa dalla durata originaria del segmento temporale della forma d’onda di riferimento. In questo modo, il sistema 1 à ̈ in grado di generare diverse forme d’onda SA che sono basate sulla forma d’onda di riferimento e che si differenziano da quest’ultima per almeno una delle durate dei segmenti temporali. Per esempio, i parametri MOD comprendono coefficienti moltiplicativi da moltiplicare alle durate originarie per ottenere le durate desiderate. In alternativa, i parametri MOD sono essi stessi i valori desiderati per le durate.
Inoltre, l’interfaccia uomo-macchina 5 permette di impostare una variabile logica RP che abilita/disabilita la ripetizione automatica della generazione della forma d’onda SA. L’interfaccia uomo-macchina 5 comprende, per esempio, un pannello di controllo provvisto di manopole e/o pulsanti per acquisire i parametri MOD e impostare la variabile RP.
Con particolare riferimento alla figura 3, l’unità di controllo 3 comprende quattro blocchi funzionali a catena aperta, indicati rispettivamente con 10, 20, 40, 50 e 60, ed un blocco funzionale retroazionato, indicato con 30.
Il blocco 10 à ̈ un blocco di modulazione delle durate temporali dei segmenti, configurato per leggere le durate originarie Tsg dalla memoria 2 e per fornire durate desiderate Tsd ottenute modulando le durate originarie Tsg in funzione dei parametri di modulazione MOD. Qualora detti parametri di modulazione MOD definiscano l’assenza di modulazione delle durate, allora le durate desiderate Tsd saranno pari alle durate originarie Tsg. Il blocco di modulazione 10 comprende, per esempio, una serie di registri di uscita che fissano i valori delle durate desiderate Tsd e che vengono letti direttamente dal blocco 20 a valle.
Il blocco 20 à ̈ configurato per calcolare la durata totale Ttot dei segmenti temporali modulati, ossia per calcolare la somma delle durate desiderate Tsd e per determinare l’istante iniziale Ti(s) e l’istante finale Tf(s) di ciascun segmento in funzione delle durate desiderate Tsd(s) dei segmenti precedenti. Le durate desiderate Tsd, gli istanti iniziali Ti e gli istanti finali Tf vengono preferibilmente gestiti come tre rispettivi vettori, ciascuno dei quali ha un numero di elementi pari al numero di segmenti SG.
Il blocco 30 à ̈ configurato per elaborare lo scorrere di un tempo assoluto Tabs, cioà ̈ il tempo trascorso dall’istante iniziale del primo segmento temporale, in funzione del segnale di clock CK, della variabile logica RP e della durata totale Ttot.
Con particolare riferimento alla figura 4, in cui à ̈ illustrato il diagramma di flusso del funzionamento del blocco di elaborazione 30, quando l’unità di controllo 3 viene attivata per generare una particolare forma d’onda, il tempo assoluto Tabs viene azzerato (fase 100) e poi viene consentito l’aggiornamento delle durate desiderate Tsd (fase 110). L’aggiornamento delle durate desiderate Tsd viene consentito controllando un segnale di aggiornamento UPD (figura 3) che va a comandare il blocco di modulazione 10 per l’aggiornamento delle durate Tsd.
Il segnale UPD à ̈ costituito, per esempio, da un segnale normalmente basso che presenta un impulso alto di breve durata generato in corrispondenza dell’istante in cui si vuole consentire l’aggiornamento. L’impulso del segnale UPD va ad aggiornare i registri di uscita del blocco di modulazione 10 con i nuovi valori delle durate desiderate Tsd calcolati in funzione dei valori correnti dei parametri di modulazione MOD. Questi ultimi possono, in genere, essere variati in tempo reale dall’utente.
Ad ogni ciclo del segnale di clock CK, il blocco di elaborazione 30 incrementa il tempo assoluto Tabs di una quantità pari al periodo Tc del segnale di clock CK (fase 130). Immediatamente prima di incrementare il tempo assoluto Tabs, quest’ultimo viene trasmesso ai blocchi di calcolo 40 e 50 (fase 120). A tale scopo, il blocco di elaborazione 30 comprende, per esempio, un proprio registro di uscita che fissa il valore del tempo assoluto Tabs che viene letto direttamente dai blocchi di calcolo 40 e 50. L’azione di trasmettere il tempo assoluto Tabs ai blocchi di calcolo 40 e 50 consiste, quindi, nell’aggiornare il valore del registro di uscita con l’ultimo valore di tempo assoluto Tabs calcolato.
Se il tempo assoluto Tabs à ̈ inferiore alla durata totale Ttot (uscita NO della fase 140), allora si ripete la sequenza di passi di trasmettere e incrementare il tempo assoluto Tabs (passi 120 e 130); altrimenti (uscita SI della fase 140) viene verificato se occorre ripetere la forma d’onda SA (fase 150). Tale verifica consiste essenzialmente nel verificare lo stato vero/falso della variabile logica RP. Se la forma d’onda SA va ripetuta (uscita SI della fase 150), cioà ̈ se il valore della variabile RP à ̈ “vero†, allora al tempo assoluto Tabs viene sottratta la durata totale Ttot (fase 160) e poi viene consentito l’aggiornamento delle durate desiderate Tsd (fase 110) e si ripete il ciclo di incremento del tempo assoluto Tabs (passi 120-140).
Con riferimento di nuovo alla figura 3, il blocco 40 individua, in funzione di un confronto tra il tempo assoluto Tabs ed i valori dei vettori di istanti iniziali Ti e finali Tf, il segmento in cui vanno letti i campioni. Più in dettaglio, il blocco di calcolo 40 individua quel segmento il cui intervallo temporale, definito dai rispettivi istanti iniziale e finale, comprende il valore corrente del tempo assoluto Tabs, ossia individua l’indice s che soddisfa la seguente relazione:
Ti(s) ≤ Tabs < Tf(s).
L’indice s individuato viene trasmesso al successivo blocco 50. Dunque, il blocco di calcolo 40 effettua di fatto una scansione ordinata dei segmenti temporali.
Secondo una particolare forma di attuazione, il blocco di calcolo 40 verifica, segmento per segmento a partire dal primo (s=1), se la suddetta relazione à ̈ verificata e si ferma quando individua l’indice s che la soddisfa. Per tale motivo il blocco di calcolo 40 deve conoscere il numero di segmenti SG.
Il blocco 50 calcola la sequenza degli indici c che individuano, nel segmento individuato dal blocco di calcolo 40, quei campioni associati al segmento che vanno letti in sequenza dalla memoria 2. In particolare, il blocco di calcolo 50 à ̈ configurato per calcolare l’indice c come parte intera inferiore del prodotto tra un tempo relativo trascorso dall’inizio del segmento individuato dall’indice s, il tempo relativo essendo pari alla differenza tra il tempo assoluto Tabs ed il tempo iniziale Ti(s) del segmento, ed il rapporto tra il numero di campioni N(s) e la durata desiderata Tsd(s) del segmento individuato dall’indice s. L’indice c cercato à ̈ quindi calcolato con la seguente formula:
c<=>(Tabs<−>Ti(s) )<N(s )>
<â‹…>.
Tsd(s )
Siccome il blocco 60 à ̈ un blocco di traduzione che determina l’indirizzo di memoria AD da fornire alla memoria 2 per leggere il relativo campione SD in funzione di una combinazione dei valori correnti dei due indici s e c.
Si fa notare che l’indice c fornito dal blocco di calcolo 50 non necessariamente cambia di valore ad ogni colpo del segnale di clock CK all’interno di un semento, in quanto il valore dell’indice dipende appunto dal numero di campioni N(s) del segmento in rapporto alla durata Tsd(s) del segmento stesso. Per esempio, se un certo segmento à ̈ relativo ad un tratto di forma d’onda costante di durata relativamente elevata (rispetto al periodo Tc del segnale di clock CK), allora quel segmento può comprendere un solo campione che viene letto più volte di seguito fino a quando non si passa al segmento successivo.
Dunque, se il valore della variabile RP à ̈ “vero†, la scansione dei segmenti temporali, e quindi la conseguente generazione della forma d’onda SA, viene ripetuta ogni volta che il tempo assoluto Tabs supera la durata totale Ttot corrente.
L’utente può variare i parametri MOD in tempo reale per modulare una o più delle durate desiderate Tsd(s) in modo indipendente l’una dall’altra per realizzare diversi tipi di modulazione della forma d’onda di riferimento. Tuttavia, siccome l’aggiornamento delle durate desiderate Tsd viene consentito soltanto al termine della scansione di tutti i segmenti (figura 4), nessuna delle durate desiderate Tsd viene modificata durante la lettura del relativo segmento. Se non ci fosse questo controllo sull’aggiornamento delle durate Tsd, la variazione dei parametri MOD avrebbe un effetto immediato sull’entità delle durate desiderate Tsd lette ed utilizzate dai blocchi di calcolo 20-50, con la conseguenza che la forma d’onda generata SA subirebbe una variazione indesiderata del proprio contenuto spettrale.
A titolo di esempio, si supponga che il periodo Tc sia pari a 2.3 ns (nanosecondi) e che la forma d’onda di riferimento sia suddivisa in due segmenti temporali (SG=2), aventi i seguenti numeri di campioni:
N(1) = 5;
N(2) = 7.
Si supponga, inoltre, di impostare i parametri di modulazione MOD in modo tale che le durate desiderate dei due segmenti vengano impostate ai seguenti valori:
Tsd(1) = 10 ns;
Tsd(2) = 8 ns.
Il blocco di calcolo 20 produrrà i seguenti valori: Ttot = 18 ns;
Ti(1) = 0 ns; Ti(2) = 10 ns;
Tf(1) = 10 ns; Tf(2) = 18 ns;
A partire dai suddetti valori di Ttot, Ti e Tf, il blocco di elaborazione 30 ed i blocchi di calcolo 40 e 50 forniranno le seguenti sequenze di indici c:
s = 1; c = {0, 1, 2, 3, 4};
s = 2; c = {1, 3, 5}.
Se viene richiesta una ripetizione della forma d’onda (RP = “vero†), allora la nuova sequenza di indici s, c à ̈ generata partendo da un tempo assoluto Tabs pari 0.4 ns, indipendentemente dai nuovi valori delle durate desiderate Tsd imposte con la ripetizione.
Si supponga ora, invece, di lasciare invariata la durata Tsd(1) e di aumentare Tsd(2) fino a 15 ns. Il blocco di calcolo 20 fornisce:
Ttot = 25 ns;
Ti(1) = 0 ns; Ti(2) = 10 ns;
Tf(1) = 10 ns; Tf(2) = 25 ns;
e le sequenze di indici c diventano:
s = 1; c = {0, 1, 2, 3, 4};
s = 2; c = {0, 1, 2, 3, 4, 5, 6}.
Se viene richiesta una ripetizione della forma d’onda (RP = “vero†), allora la nuova sequenza di indici s, c à ̈ generata partendo da un tempo assoluto Tabs pari 0.3 ns, indipendentemente dai nuovi valori delle durate desiderate Tsd imposte con la ripetizione.
I blocchi 10-60 sono realizzati interamente mediante una rete logica programmabile, per esempio uno o più moduli FPGA opportunamente programmati. In altre parole, il metodo per la sintesi digitale di una forma d’onda della presente invenzione à ̈ preferibilmente implementato in hardware. L’implementazione hardware garantisce una velocità di elaborazione più elevata e quindi à ̈ più adatta ad un generatore di funzione, che deve generare funzioni anche a frequenze elevatissime. Tuttavia, il metodo della presente invenzione può essere implementato anche mediante un software. Infatti, le singole funzioni dei blocchi 10-60 sono chiaramente implementabili mediante rispettive porzioni di software.
Dunque, la nuova tecnica di sintesi digitale di forme d’onda sopra descritta può essere definita come una tecnica di sintesi digitale in tempo effettivo (“Actual Time Digital Synthesis†) (ATDS).
I principali vantaggi del metodo per la sintesi digitale di forme d’onda e del corrispondente sistema di sintesi digitale sopra descritti sono i seguenti.
Innanzitutto, il metodo permette di mantenere sostanzialmente costante l’errore di quantizzazione tra i vari segmenti della forma d’onda di riferimento, indipendentemente dalle caratteristiche temporali e spettrali dei segmenti, grazie alla possibilità di pesare diversamente ciascun segmento, ossia di descrivere i segmenti ad elevata variabilità temporale con un numero elevato di campioni ed i segmenti a bassa variabilità temporale con un numero basso di campioni.
Inoltre, il metodo permette di controllare la durata desiderata Tsd di ciascuno dei segmenti della forma d’onda SA in modo tale che, in fase di generazione della forma d’onda SA, ciascun segmento preso singolarmente rispetti il teorema di Shannon. Per esempio, il metodo permette di modulare la frequenza di un’onda a dente di sega o un’onda quadra senza variare la durata dei fronti di salita e discesa rapidi.
Il metodo permette anche di realizzare modulazioni di segnali non possibili con la tecnica della sintesi digitale diretta, per esempio la modulazione PWM e l’emulazione del rumore di fase (jitter), grazie alla possibilità di modulare la durata solamente di alcuni segmenti ad ogni ripetizione della forma d’onda generata SA. Per esempio, per emulare il rumore di fase su di una onda quadra, à ̈ sufficiente ridurre e aumentare della stessa entità le durate dei segmenti relativi al livello alto e basso dell’onda quadra senza modificare la durata dei segmenti che rappresentano i transitori tra i due livelli.
Infine, il metodo permette di non perdere dettagli significativi della forma d’onda di riferimento in corrispondenza di rapide variazioni della stessa.

Claims (9)

  1. RIVENDICAZIONI 1. Metodo per la sintesi digitale di una forma d’onda, il metodo comprendendo: - memorizzare, in una memoria digitale (2), campioni di una forma d’onda di riferimento suddivisa in una pluralità di segmenti temporali contigui, a ciascuno dei quali à ̈ associato una rispettiva pluralità di detti campioni che sono consecutivi tra loro; - impostare la durata di ciascun segmento temporale con un rispettivo valore desiderato (Tsd); - scandire ordinatamente detti segmenti temporali in funzione di un segnale di clock (CK) in modo da selezionare un segmento temporale alla volta; - per il segmento temporale selezionato, calcolare un tempo relativo trascorso dall’inizio del segmento temporale in funzione del segnale di clock (CK) ed indirizzare la memoria (2) in funzione di detto tempo relativo e di un rapporto tra il numero dei campioni (N) e la durata desiderata (Tsd) del segmento temporale per leggere almeno parte dei campioni (SD) del segmento temporale; e - effettuare una conversione digitale analogica dei campioni (SD) letti dalla memoria (2).
  2. 2. Metodo secondo la rivendicazione 1, in cui i campioni di ciascun segmento vengono precedentemente acquisiti con un rispettivo periodo di campionamento costante all’interno del segmento temporale.
  3. 3. Metodo secondo la rivendicazione 1 o 2, in cui ciascun campione di ciascun segmento temporale à ̈ individuato da un indice di campione (c) di valore compreso tra 0 e il numero di campioni (N) del segmento temporale meno 1; indirizzare la memoria (2) comprendendo: - calcolare il valore dell’indice di campione (c) come parte intera del prodotto tra detto tempo trascorso e detto rapporto; e - determinare l’indirizzo da fornire alla memoria (2) in funzione del valore dell’indice di campione (c).
  4. 4. Metodo secondo una delle rivendicazioni da 1 a 3, in cui ciascun segmento temporale à ̈ individuato da un indice di segmento (s) di valore compreso tra 0 e il numero di segmenti (SG) di detta forma d’onda di riferimento (SG); il metodo comprendendo: - calcolare gli istanti iniziale (Ti) e finale (TF) di ciascun segmento temporale in funzione delle durate (Tsd) dei segmenti temporali precedenti; la fase di scandire ordinatamente detti segmenti temporali comprendendo: - calcolare, in funzione del segnale di clock (CK), un tempo assoluto (Tabs) trascorso dall’istante iniziale del primo di detti segmenti temporali; e - calcolare il valore dell’indice di segmento (s) con cui selezionare il segmento temporale, in funzione di un confronto tra il valore del tempo assoluto (Tabs) e gli istanti iniziali e finali (Ti, Tf) dei segmenti temporali.
  5. 5. Metodo secondo la rivendicazione 4, in cui detto tempo relativo di ciascun segmento temporale à ̈ calcolato come differenza tra detto tempo assoluto (Tabs) ed il rispettivo istante iniziale (Ti).
  6. 6. Metodo secondo le rivendicazioni 3 e 4, in cui l’indirizzo da fornire alla memoria (2) à ̈ determinato in funzione di una combinazione dei valori correnti di detti indice di campione (c) e indice di segmento (s).
  7. 7. Metodo secondo una rivendicazione da 4 a 6, e comprendente: - calcolare una durata totale (Ttot) come somma delle durate (Tsd) di tutti i segmenti temporali; la fase di scandire ordinatamente detti segmenti temporali comprendendo: - quando il tempo assoluto (Tabs) diventa maggiore della durata totale (Ttot), allora sottrarre la durata totale (Ttot) dal tempo assoluto (Tabs) per consentire la ripetizione della scansione dei segmenti temporali.
  8. 8. Metodo secondo la rivendicazione 7, in cui impostare la durata di ciascun segmento temporale (s) ad un rispettivo valore desiderato (Tsd) comprende; - acquisire in tempo reale un nuovo valore desiderato (Tsd) per la durata di almeno uno di detti segmenti temporali mediante mezzi di interfaccia uomo-macchina (5); - aggiornare le durate dei segmenti temporali con i valori desiderati dopo che la durata totale (Ttot) Ã ̈ stata sottratta al tempo assoluto (Tabs).
  9. 9. Sistema per la sintesi digitale di una forma d’onda, il sistema (1) comprendendo: una memoria digitale (2) per memorizzare campioni di una forma d’onda di riferimento suddivisa in una pluralità di segmenti temporali contigui, a ciascuno dei quali à ̈ associata una rispettiva pluralità di detti campioni consecutivi tra loro; mezzi di controllo (3) per aggiornare l’indirizzamento della memoria (2) in modo da leggere un campione ad ogni ciclo del segnale di clock (CK); mezzi di conversione analogico digitale (4) per convertire, in modo sincrono con detto segnale di clock (CK), i campioni letti dalla memoria (2); e mezzi di interfaccia uomomacchina (5) per impostare la durata di ciascun segmento temporale con un rispettivo valore desiderato (Tsd); detti mezzi di controllo (3) essendo configurati per scandire ordinatamente i segmenti temporali in funzione del segnale di clock (CK) in modo da selezionare un segmento temporale alla volta e, per il segmento temporale selezionato, calcolare un tempo relativo trascorso dall’inizio del segmento temporale in funzione del segnale di clock (CK) ed indirizzare la memoria (2) in funzione di detto tempo relativo e di un rapporto tra il numero dei campioni (N) e la durata desiderata (Tsd) del segmento temporale.
IT000068A 2013-02-18 2013-02-18 Metodo e sistema per la sintesi digitale di una forma d'onda ITBO20130068A1 (it)

Priority Applications (3)

Application Number Priority Date Filing Date Title
IT000068A ITBO20130068A1 (it) 2013-02-18 2013-02-18 Metodo e sistema per la sintesi digitale di una forma d'onda
US14/183,453 US20140297705A1 (en) 2013-02-18 2014-02-18 Method and system for the digital synthesis of a waveform
EP14155665.4A EP2767881A1 (en) 2013-02-18 2014-02-18 Method and system for digital synthesis of a waveform

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
IT000068A ITBO20130068A1 (it) 2013-02-18 2013-02-18 Metodo e sistema per la sintesi digitale di una forma d'onda

Publications (1)

Publication Number Publication Date
ITBO20130068A1 true ITBO20130068A1 (it) 2014-08-19

Family

ID=48048134

Family Applications (1)

Application Number Title Priority Date Filing Date
IT000068A ITBO20130068A1 (it) 2013-02-18 2013-02-18 Metodo e sistema per la sintesi digitale di una forma d'onda

Country Status (3)

Country Link
US (1) US20140297705A1 (it)
EP (1) EP2767881A1 (it)
IT (1) ITBO20130068A1 (it)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10288575B2 (en) 2016-05-31 2019-05-14 Ams Sensors Uk Limited Environment sensor system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4956798A (en) * 1989-08-03 1990-09-11 Tektronix, Inc. Arbitrary waveform generator with adjustable spacing
US20030105609A1 (en) * 2001-11-30 2003-06-05 Conway Craig M. System and method for generating waveforms using waveform segment queues
US20120161996A1 (en) * 2010-12-23 2012-06-28 Marshall Jr Jerry A Low-Memory-Usage Arbitrary Waveform Representation or Generation

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7249154B2 (en) * 2003-10-14 2007-07-24 Agilent Technologies, Inc. Method and apparatus for producing an exponential signal

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4956798A (en) * 1989-08-03 1990-09-11 Tektronix, Inc. Arbitrary waveform generator with adjustable spacing
US20030105609A1 (en) * 2001-11-30 2003-06-05 Conway Craig M. System and method for generating waveforms using waveform segment queues
US20120161996A1 (en) * 2010-12-23 2012-06-28 Marshall Jr Jerry A Low-Memory-Usage Arbitrary Waveform Representation or Generation

Also Published As

Publication number Publication date
US20140297705A1 (en) 2014-10-02
EP2767881A1 (en) 2014-08-20

Similar Documents

Publication Publication Date Title
CN104639119B (zh) 一种交流量子电压波形合成方法
JP2010506188A (ja) 拡散周期クロック発生器
KR20020029934A (ko) 확산 스펙트럼 클록 생성기를 자동으로 보상하기 위한방법 및 장치
US10161978B2 (en) Impedance analyzer using square wave stimuli
CN102401857A (zh) 频率测量装置和电子设备
JP2006105984A5 (it)
ITBO20130068A1 (it) Metodo e sistema per la sintesi digitale di una forma d&#39;onda
JP2003338737A (ja) 高周波数パルス幅変調電圧制御方法及び装置
JP2004125574A (ja) 試験装置、及び試験方法
US9366709B2 (en) Circuit and method for delay difference measurement
JP5243401B2 (ja) 電気波形発生器および光送信器
JP5475484B2 (ja) 波形観測装置及び方法
JP5823482B2 (ja) 低電力広帯域送信機のための位相補間器に基づく出力波形合成装置
CN103095297A (zh) 直接数字频率合成器产生精准频率的方法
CN109074121B (zh) 用于确定扩展时钟信号的实际持续时间的方法和装置
JP5294718B2 (ja) 周波数変換器
RU2600563C1 (ru) Способ формирования широтно-импульсной последовательности заданной скважности и частоты с высокой точностью при изменении частоты повторения импульсов в широких пределах
CN104935258A (zh) 一种可以产生多个频标的扫频信号发生器
CN108549329A (zh) 一种基于fpga实现脉冲均匀输出的方法及装置
RU2722410C1 (ru) Способ измерения временного интервала и устройство для его осуществления
CN116381657B (zh) 发射通道故障监测方法、装置、声呐发射机及存储介质
RU2638972C2 (ru) Способ измерения частоты
US8572143B2 (en) Waveform generator with a register that shifts and provides groups of successive data values from an input data stream
SU898600A1 (ru) Устройство дл умножени частоты следовани импульсов
SU826286A1 (ru) Устройство для автоматических контроля параметров систем управления 1