Pagina 1 di 2

FSK VHDL

MessaggioInviato: 17 set 2012, 15:29
da franticEY
Ciao a tutti.
Ho realizzato in VHDL un trasmettitore FSK ad onda quadra, e ora ho un problema.
Come si può garantire la continuità di fase quando il messaggio trasmesso passa da una frequenza ad un'altra?
Le due frequenze sono ad esempio 5Khz per lo 0 logico e 16 kHz per l'1 logico.
Esiste un metodo per rendere questa transizione morbida?

Grazie mille fatemi sapere

Re: FSK VHDL

MessaggioInviato: 17 set 2012, 17:24
da carloc
...un paio di idee:

o si generano dei multipli interi delle frequenze desiderate (e.g. N x 5kHz e N x 16kHz) e poi alla fine si divide tutto per N, così facendo il periodo di transizione dura la media pesata dei due periodi, pesata in funzione di quanto tempo devi trasmettere un simbolo e quanto l'altro. E questa "pesatura" è ovviamente quantizzata su N intervalli.

un qualcosa del genere, dove le linee rosse le devi immaginare "a scalino", rappresentano il conteggio accumulato ad N x fout.

Oppure si sincronizzano i simboli inviati all'FSK con i fronti dell'uscita, così le transizioni di simbolo sono ritardate al massimo un periodo dell'uscita, ma non ci sono momenti con frequenze "strane" o glitch in uscita


dipende anche dalla frequenza con cui vengono inviati i simboli...

Re: FSK VHDL

MessaggioInviato: 17 set 2012, 17:48
da franticEY
Allora lo schema con cui viene generata la FSK è il seguente


il divisore e il selettore sono fatti in vhdl

la bit-rate è variabile (o 300bps o da 1 bit ogni 150ms--3Hz-- fino a 1 bit ogni 20ms--20Hz--)

Re: FSK VHDL

MessaggioInviato: 17 set 2012, 17:59
da carloc
Direi che grosso modo sei già nella prima configurazione che avevo delineato...

solo che ci devi aggiungere la dinamica del PLL... quando cambi divisore si assesterà sulla nuova frequenza con un transitorio.... se il filtro del loop è ben progettato avrai un qualcosa del secondo ordine leggermente sottosmorzato e comunque la transizione non sarà mai brusca.

Comunque il PLL mi sembra una complicazione inutile... io sintetizzerei direttamente le frequenze, magari con un DDS che è una configurazione con cui cambi di frequenza e di fase sono proprio facili facili....

Infine il symbol rate è piuttosto basso rispetto alle frequenze mark e space.... prevedo pochi problemi in qualsiasi modo tu proceda...

Re: FSK VHDL

MessaggioInviato: 17 set 2012, 19:39
da franticEY
Se volessi realizzare un dds come dovrei procedere? Sapresti indicarmi qualche link, o magari qualcosa già fatto in VHDL da cui partire? L'FPGA in questione è un actel 42mx09 pensi si possa fare?
Grazie

Re: FSK VHDL

MessaggioInviato: 17 set 2012, 21:29
da carloc
Questa AN mi pare ben fatta....

per il fit non saprei, dipende da cos'altro deve fare l'FPGA comunque per il DDS ti servono due registri ed un adder, l'ampiezza dipende da varie cose tipo la risoluzione in frequenza rischiesta, la frequenza di clock disponibile e altro... ma credo te la caverai senza grandi costi nel senso di risorse dell'FPGA...

Re: FSK VHDL

MessaggioInviato: 18 set 2012, 1:50
da TardoFreak
Usare il divisore del PLL per modulare è come usare un metro di gomma per misure di precisione.

Re: FSK VHDL

MessaggioInviato: 18 set 2012, 8:51
da franticEY
Purtroppo è una cosa che era già fatta così e che devo modificare al fine di generare un maggior numero di frequenze non è stata una mia idea...
Ci sarebbero due strade da intraprendere una è quella col divisore frazionario + sigma delta mod e una con il dds.
Per il modulatore sigma delta ho già qualcosa di fatto, invece per il dds partirei da zero.
Hai qualche consiglio a riguardo?
Devo generare una fsk non fornendo una portante ma con due frequenze predeterminate diverse una per lo 0 e una per l'1.
Grazie fatemi sapere

Re: FSK VHDL

MessaggioInviato: 18 set 2012, 9:54
da carloc
mmmm il link che ho messo sembra non funzionare, allego una copia...
450968421DDS_Tutorial_rev12-2-99.pdf
(861.31 KiB) Scaricato 154 volte

leggiti almeno la prima parte

Comunque quello che ci vuole per il DDS è grosso modo questo


se poi le due frequenze sono fisse al posto dei loro registri metti delle costanti e vedrai che l'ottimizzatore ridurrà notevolmente il tutto, selettore compreso ;-)

Ma che frequenza di clock hai disponibile?

Re: FSK VHDL

MessaggioInviato: 18 set 2012, 9:59
da franticEY
6 MHz ma non capisco come fare a generare l'onda quadra, inoltre non ho il DAC.
Se per esempio volessi generare la 16301 Hz non dovrei comunque usare dei valori a virgola fissa?