Domanda:
trasferimento dati AM a base alta senza modem possibile?
Orbit
2011-05-17 22:20:30 UTC
view on stackexchange narkive permalink

non un EE molto esperto, ma stavo pensando a un sistema per il trasferimento dati ad alta velocità, ed è abbastanza semplice concettualmente, quindi immagino che ci debbano essere gravi difetti con il metodo, perché per quanto ne so non è implementato , o almeno non molto diffuso. Chiedo scusa in anticipo per la mia ignoranza sull'argomento (sto appena iniziando il mio apprendimento).

Per come la vedo io, i segnali binari racchiusi in un'onda portante vengono modulati / demodulati tramite un modem. capire perché questo è stato fatto in passato: i processori non erano così hardcore e l'hardware può solo capire binario. Immagino di non capire perché sia ​​ancora fatto in questo modo.

Se moduliamo l'ampiezza di un'onda (penso fornendo all'oscillatore diversi livelli di corrente), non possiamo campionare quest'onda con una sorta di convertitore analogico-digitale ed elaborarlo sulla CPU?

Se questo è possibile, perché attenersi alla base 2? Se possiamo avere un valore univoco per ogni ampiezza misurabile, le velocità di trasferimento dei dati aumenterebbero alle stelle. Immagina di trasferire dati con base 1024 o anche superiore. Se potessimo campionare accuratamente l'onda (ogni oscillazione), non vedo perché la velocità di trasferimento potrebbe essere uguale alla frequenza della base dei tempi d'onda divisa per 2 bit al secondo (questo probabilmente non è un calcolo corretto).

Se abbiamo un processore in esecuzione in gigahertz e un segnale in basso megahertz, sembra fattibile che il processore sia in grado di campionare e tradurre i dati in base 2 (possibilmente inviandoli a un altro core per la traduzione ). In questo modo, la velocità dei dati sarebbe limitata dal processore (processori più veloci porterebbero all'utilizzo di frequenze più alte per il trasferimento).

I fattori limitanti a cui posso pensare sono la velocità con cui può essere la corrente all'oscillatore modificato (per TX), la velocità con cui può essere eseguita la conversione da analogico a digitale (leggi che un campionamento accurato è possibile in centinaia di megahertz) e la gamma di ampiezze misurabili.

Sono consapevole che questa domanda probabilmente contiene una quantità insolita di stupidità, ma voglio costruire questo sistema e mi chiedo perché non dovrei. Deve esserci qualcosa di importante che mi manca qui. Cosa potrebbe essere? Grazie.

@orbit, spero di avere il tempo di parlarne più tardi, ma tutti i dati che un processore sta interpretando sono in forma binaria. un ADC trasforma un punto analogico in un valore digitale (che è una stringa di 1 e 0. Ci sono solo modi più complessi per farlo, quindi una grandezza.
@Kortuk - grazie per la risposta qui. La mia idea è di utilizzare il processore per questo invece di inviare il binario via cavo, in modo che più dati possano essere trasmessi in un singolo "bit". Vedo che a un certo punto deve accadere, ma non sono sicuro del motivo per cui dobbiamo modulare con binario.
@orbit, Sto solo sottolineando il punto se stai modulando a 256 livelli diversi, stai ancora modulando con binario. Quando si parla di quale schema di comunicazione funzionerà meglio, si tratta di bit error rate per la stessa potenza di uscita.
@Orbit, C'è un passaggio importante che sono contento che ti stia connettendo. Stai pensando al motivo per cui facciamo qualcosa oltre a sentirci dire che è come viene fatto. È importante pensare al motivo per cui viene scelto un determinato metodo per capire come funzionano le cose.
@Kortuk 256 livelli non è una modulazione binaria. Non confondere la natura dei dati che alimentano il modulatore per la modulazione.
@Chris, Non lo sono, sto cercando di sottolineare che è ancora solo un metodo per inviare 1 e 0.
@Kortuk - solo se scegli di limitarti a quello. Potrebbe essere facilmente un metodo per inviare 0, 1 e 2 o {1-10} o qualsiasi altra cosa. Siamo i migliori nel costruire computer binari, quindi traduciamo abitualmente in quello, ma non c'è tale preferenza nella matematica della modulazione.
@ChrisStratton, lo capisco. Sto dicendo che qualsiasi valore inviato e poi decodificato sarà binario, questa è la natura dei processori attuali. Non si tratta di quale sia la segnalazione sulla linea, si tratta di ciò che è il datarate per uno specifico SNR. Penso che tu mi stia prendendo troppo alla lettera. Potrei rappresentarlo anche in esadecimale, ciò non ha effetto sui limiti di esso. Usiamo la codifica di fase a causa del BER molto basso a parità di potenza.
Cinque risposte:
AngryEE
2011-05-18 00:15:43 UTC
view on stackexchange narkive permalink

Hai appena descritto due tecnologie separate e del tutto valide utilizzate nella teoria della comunicazione oggi: radio definita dal software e (per mancanza di un buon termine generale che possa ricordare) comunicazione multi-simbolo / livello.

Se moduliamo l'ampiezza di un'onda (penso fornendo all'oscillatore diversi livelli di corrente), non possiamo campionare quest'onda con una sorta di convertitore analogico-digitale ed elaborarla sulla CPU?

Sì, fino a un certo punto. Hai appena descritto la radio definita dal software. L'idea di base è ciò che hai detto: rinuncia alla maggior parte delle apparecchiature a radiofrequenza e crea l'onda sinusoidale modulata direttamente dall'uscita di un convertitore D / A e per il percorso di ritorno usa un A / D altrettanto veloce e un sacco di elaborazione DSP per entrambi i lati. Il problema attuale è che sebbene le velocità del processore siano misurate in gigahertz al giorno d'oggi, l'interfaccia con il mondo analogico non ha ancora raggiunto quelle velocità. Ciò significa che la creazione di forme d'onda diretta è limitata alle basse frequenze (che, per le comunicazioni, sono ancora spaventosamente alte rispetto alle frequenze di cui si preoccupano i progettisti analogici "normali"). Tuttavia, se leggo correttamente i miei articoli, ciò consente comunque la rimozione di alcuni componenti hardware a frequenza intermedia presenti nella maggior parte delle radio. In futuro potrebbe essere possibile fare a meno di più hardware.

Se questo è possibile, perché attenersi alla base 2? Se possiamo avere un valore univoco per ogni ampiezza misurabile, le velocità di trasferimento dei dati aumenterebbero alle stelle. Immagina di trasferire dati con base 1024 o anche superiore. Se potessimo campionare accuratamente l'onda (ogni oscillazione), non vedo perché la velocità di trasferimento potrebbe essere uguale alla frequenza della base dei tempi d'onda divisa per 2 bit al secondo (questo probabilmente non è un calcolo corretto).

Hai ragione che non è perfetto ma hai decisamente l'idea di base in basso. Per fare un esempio, ci atterremo alla modulazione di ampiezza. Quando provi a trasmettere 0 o 1 utilizzando AM, si chiama On-Off-Keying (il link rimanda a un sito con belle immagini e una descrizione). Funziona modulando un segnale digitale puro: 5v è "1", 0v è "0". Hai ragione sul fatto che se hai più livelli di tensione puoi inviare più dati contemporaneamente - questo è chiamato Ampiezza Shift Keying (un'altra bella descrizione con immagine). Come puoi vedere, ci sono più livelli di tensione per varie combinazioni di bit: 2 bit fornisce quattro diversi livelli di tensione, 3 dà 8, ecc.

Il problema con questo e altri schemi simili non è teorico ma pratico - in un canale di comunicazione con rumore è molto probabile che avrai difficoltà a capire cosa è stato inviato esattamente. È proprio come con i segnali analogici: se i miei unici livelli di tensione validi sono 0 e 5V, se ottengo 4,3V in uscita posso essere ragionevolmente sicuro che dovrebbe essere 5V. Se ho 1024 livelli di tensione validi, diventa molto più difficile determinarlo.

Nota inoltre che non sei limitato alla modulazione di ampiezza: le stesse tecniche possono essere applicate ai segnali a modulazione di fase (simile a FM) oppure puoi entrare nel regno del Frequency Shift Keying dove frequenze distinte rappresentano bit (cioè, se vuoi trasmettere '3' in binario ciò potrebbe significare l'invio di un'onda sinusoidale da 3KHz e un'onda sinusoidale da 6KHz, quindi separandole all'estremità ricevente dove l'invio di "1" potrebbe essere solo l'onda sinusoidale a 3 KHz).

E queste tecniche sono già ampiamente utilizzate: i telefoni cellulari GSM utilizzano una forma di Frequency Shift Keying chiamata Gaussian Minimum Shift Keying. Anche se voglio correggere un'idea sbagliata che potresti avere: la modulazione è ancora utilizzata in tutti questi schemi. L'opposto di un segnale modulato è un segnale in banda base (come un flusso di bit da una porta seriale). Per comunicare a qualsiasi distanza via etere è necessaria la modulazione, punto. Non se ne andrà, ma cambierà il modo in cui generiamo la forma d'onda modulata.

Ti suggerisco di seguire un corso di Teoria della comunicazione, se puoi - sembra che tu abbia l'abilità per farlo.

Grazie per la risposta esauriente. Particolarmente utile è stata la parte riguardante la limitazione pratica (la difficoltà nel saper distinguere il segnale preciso, considerando gli errori, ecc.). Tuttavia, non mi scoraggia completamente, devo solo determinare un livello in cui il tasso di errore è basso ma la base è alta (a qualunque livello possibile). Grazie ancora per la risposta.
Tieni presente che ci sono molte cose che non hai nemmeno toccato: tecniche di codifica per uno. I codici Reed-Solomon sono un esempio: vengono utilizzati nei CD. L'idea di base è che un gruppo di n bit sia codificato in n + m bit. I codici vengono utilizzati principalmente per la correzione degli errori, ma possono avere altre proprietà benefiche. Sono una specie dell'altra metà della teoria della comunicazione, quindi entrambe le metà sarebbero forme d'onda e codici.
stevenvh
2011-05-17 22:35:37 UTC
view on stackexchange narkive permalink

Se si invia 1 bit contemporaneamente, sono necessari due livelli diversi (per la modulazione di ampiezza). Se si desidera inviare 8 bit contemporaneamente, sono necessari 256 livelli, il che comporterà molti errori di lettura; un livello può cambiare a causa del rumore.
Tuttavia, ci sono modi per inviare più di un bit contemporaneamente, come QAM (Quadrature Amplitude Modulation). Parte delle informazioni è nell'ampiezza del segnale, come in ASK (Amplitude Shift Keying), e parte è nella fase del segnale, come in PSK (Phase Shift Keying).

Grazie per la risposta. Penso che quello che dici sui livelli sia simile a quello che dice AngryEE sul numero di livelli di voltaggio validi. Sono curioso di sapere diversi modi per aiutare a mantenere l'integrità del sistema: qualsiasi modo ragionevole per aiutare a filtrare il rumore e garantire che la corrente del trasmettitore sia precisa e senza fluttuazioni indebite?
user3624
2011-05-17 23:25:41 UTC
view on stackexchange narkive permalink

Quello che chiedi è stato fatto, in un modo o nell'altro, e per diversi mezzi di trasmissione. Ho iniziato a scrivere una breve cosa su diversi schemi di modulazione, ma poi mi sono imbattuto in una pagina Wikipedia che li copre abbastanza bene. Basta scorrere verso il basso fino alla sezione "Elenco delle comuni tecniche di modulazione digitale".

Molti sistemi moderni funzionano con la modulazione di ampiezza in quadratura (QAM). Ethernet utilizza Pulse Amplitude Modulation (PAM), che non si trova in quella pagina. E molte trasmissioni via radio utilizzano una qualche forma di codifica Trellis. Quindi, esaminarli ti darà una buona idea di quali siano le cose comuni. Guardando il vecchio AM, PSK, ecc. Ti darà un'idea della nostra provenienza.

La conclusione è questa ... Quasi ogni forma di comunicazione tra computer che va più di 3 metri circa richiede un certo livello di codifica e modulazione. È fondamentalmente ciò di cui stavi parlando nella tua domanda, ma portato agli estremi. Molto è molto teorico e ad alta intensità di matematica. Le persone usano questo genere di cose per il loro dottorato di ricerca. tesi.

David - Non c'è bisogno di chiudere l'argomento anche se è molto teorico e ad alta intensità di matematica. "Le persone usano questo genere di cose per la loro tesi di dottorato" si legge come "È difficile, non dovresti provarlo", il che è immeritato.
@reemrevnivek Non lo stavo ignorando, l'hai semplicemente interpretato in modo sbagliato. Se avessi pensato che qualcuno non dovesse nemmeno provarlo, lo avrei detto in anticipo e non mi sarei preoccupato di collegarmi a Wikipedia o ovunque. Al contrario, ritengo che argomenti come questo siano almeno utili per familiarizzare anche se non implementiamo mai effettivamente uno di questi schemi di modulazione. Ma vale la pena sapere che ci sono pochi soggetti elettrici con una curva di apprendimento così ripida. Non è qualcosa che puoi padroneggiare dopo aver letto un libro o un paio di pagine web.
Grazie per i link alla lettura. Dovrò rivedere questi diversi metodi in modo da poterli confrontare in modo più intelligente e confrontarli con lo schema a cui sto pensando.
Ben Voigt
2011-05-18 06:48:42 UTC
view on stackexchange narkive permalink

Probabilmente intendi questo?

Avere più di 2 livelli di segnale è una tecnica molto nota, lo svantaggio è il rapporto segnale-rumore più basso. Ma un buon schema di correzione degli errori può utilizzare i bit extra per rimuovere più errori di quelli aggiunti dal rapporto segnale / rumore ridotto, quindi questo sicuramente può aumentare le prestazioni.

Non hai idea del perché dici che i modem non lo fanno, sicuramente lo fanno. V.90 ha una costellazione ENORME.

supercat
2011-05-17 22:35:12 UTC
view on stackexchange narkive permalink

Il campionamento discreto del tempo e l'elaborazione del segnale digitale come descrivi vengono utilizzati nei modem della linea telefonica, ma su una linea telefonica è consentito emettere forme d'onda quasi arbitrarie in una larghezza di banda che è piuttosto ampia rispetto alla frequenza centrale (intervallo tipico circa 300-3.300 Hz). Al contrario, le trasmissioni radio devono rientrare in un inviluppo abbastanza piccolo attorno a una frequenza centrale. Se possedessi l'unico dispositivo di trasmissione radio al mondo, potresti effettivamente produrre un bel po 'di dati su una portante da 1 MHz modulando ogni onda, ma la tua trasmissione altererebbe qualsiasi trasmissione che qualcun altro potrebbe tentare su molte altre frequenze. Se il trasmettitore si limita a emettere energia nell'intervallo 995.000-1.005.000 Hz, campionare il segnale alcuni milioni di volte al secondo ed elaborare tutto digitalmente potrebbe consentire una ricezione migliore rispetto all'utilizzo di un sintonizzatore analogico, ma ci sarà un limite piuttosto stretto su come molti dati possono essere utilmente trasmessi.

Addendum La modulazione di ampiezza di una portante sinusoidale con un altro segnale sinusoidale genererà segnali con frequenza uguale alla somma e alla differenza della portante e segnali modulanti. Modulare in ampiezza una portante sinusoidale con un segnale che è la somma di due onde sinusoidali equivale a modulare in ampiezza le due onde sinusoidali separatamente sulla stessa portante e combinare il risultato. Il risultato della modulazione di ampiezza di una portante sinusoidale con una forma d'onda complessa può essere determinato separando tutte le diverse componenti di frequenza di quella forma d'onda e calcolando l'effetto della modulazione di ampiezza ciascuna.

Se si modula in ampiezza una varietà di frequenze vocali nella gamma 0-5 KHz su una portante da 1 MHz, il risultato sarà un mix di frequenze nella gamma 995.000-1.005.000 Hz. Per sintonizzare una trasmissione radio AM sul canale 1000 (cioè 1.000 Khz o 1.00 MHz), è necessario fare in modo che il sintonizzatore accetti tutte le frequenze nell'intervallo sopra indicato e rifiuti quelle al di fuori di esso. Se si desidera sintonizzarsi sul canale 990, è necessario acquisire le frequenze 985.000-995.000. Tieni presente che se l'emittente sul canale 1.000 non filtra tutte le frequenze audio superiori a 5 KHz prima della trasmissione, queste si riverserebbero sul canale sottostante (oltre che sul canale sopra).

@supercat - Grazie per l'utile risposta. Sono curioso dell'interferenza di cui parli: la modulazione di ampiezza influenzerà più della frequenza su cui sto trasmettendo?
@Orbit Qualsiasi modulazione diffonderà il tuo segnale. Solo un'onda sinusoidale pura non modulata è una singola frequenza (e buona fortuna per costruire un oscillatore senza alcun rumore di fase). Anche solo toccando il codice morse si diffonde il vettore, soprattutto se si desidera che l'inizio e la fine dei punti siano chiari: in realtà c'è un'arte per ottenere l'inviluppo di accensione / spegnimento di un trasmettitore con chiave corretta, in modo che i simboli siano distinti ma non così incisivi da interferire con altre comunicazioni a poche centinaia di hertz di distanza
@Chris Stratton: In effetti. Il mio punto era che modulando un segnale su ogni onda, anche se uno avesse i mezzi tecnici per farlo, genererebbe un segnale che schizzerebbe una quantità enorme della larghezza di banda circostante. Hai ragione sul fatto che la manipolazione on-off può essere sgradevole se le transizioni di accensione / spegnimento sono troppo nette; nei primi giorni della radiotelegrafia, non credo che le persone si preoccupassero della fuoriuscita di keying sui canali adiacenti poiché le esplosioni di rumore risultanti sarebbero state piccole e abbastanza rare da non precludere l'ascolto del segnale principale di interesse.
@Chris Stratton: Certo, si cerca di far passare la radio dall'essere qualcosa che si può ascoltare e decodificare ad essere qualcosa che è piacevole da ascoltare, tutti i piccoli scoppi di rumore causati dai canali adiacenti diventerebbero inaccettabili, soprattutto perché il numero di operatori radiotelegrafici è aumentato. A proposito, mi chiedo se ci sono ricevitori di dati RF progettati per l'uso con trasmettitori OOK, ma forniscono uscite analogiche? Sembrerebbe che l'acquisizione di un segnale analogico consenta a un processore di migliorare la ricezione utilizzando la regolazione della soglia retroattiva.
Se si desidera eseguire un'ulteriore elaborazione su un segnale OOK, è possibile mixarlo in modo che la frequenza centrale sia un tono audio (come il codice era tradizionalmente demodulato dall'orecchio) e quindi eseguire il DSP alle frequenze audio. In realtà questo ti dà sia il segnale desiderato che la sua immagine, il che può essere fastidioso, quindi una tecnica comune oggi è quella di mescolare con due fasi dell'oscillatore locale, producendo segnali di frequenza audio I e Q - esaminando la fase lì puoi dire il positivo e frequenze negative a parte. Per una fortunata coincidenza, molti ADC economici e ampiamente installati hanno già due canali ...
@Chris Stratton: Stavo pensando a qualcosa che darebbe semplicemente un livello DC in relazione alla potenza del segnale a una data frequenza, con l'intenzione che il livello sarebbe stato utilizzato in modo simile all'uscita on / off di un tipico ricevitore OOK, ma con un migliore controllo su soglie di rilevamento. Tra le altre cose, se si stesse tentando di ricevere dati codificati utilizzando un metodo 3-of-13 (tre impulsi ogni tredici intervalli di tempo per codificare 8 bit di dati) si potrebbero esaminare i livelli del segnale in tredici intervalli di tempo e selezionare i primi tre. Ciò migliorerebbe il rifiuto di alcuni tipi di rumore.
@supercat Un normale demodulatore AM ti darà un livello analogico che puoi digitalizzare, ma hai bisogno di un filtro per limitare la larghezza di banda. La ristrettezza del filtro limita la velocità con cui il segnale si accende e si spegne. A frequenze intermedie adatte per velocità di dati a banda stretta, è molto, molto più economico creare un filtro stretto preciso (per ottenere il punto su questo compromesso che desideri) computazionalmente rispetto a cristalli o risonatori meccanici. Inoltre, se sei troppo stretto, incorrerai in problemi se la frequenza del trasmettitore è leggermente fuori dal ricevitore.
@Chris Stratton: Penso di aver capito cosa stai ottenendo. La maggior parte dei ricevitori sono hetrodynes piuttosto che homodynes, quindi dopo che il ricevitore ha eseguito il suo primo bit di elaborazione, il segnale sarà sotto forma di un'onda IF modulata. Ricordo di aver letto alcuni anni fa di alcune aziende che utilizzavano un ricevitore omodino, ma non so cosa ne sia stato. Per quanto riguarda l'efficienza del filtraggio computazionale dell'IF, si potrebbe certamente fare, ma non so quanto sarebbe efficiente dal punto di vista energetico? Uno dei miei potenziali progetti futuri ...
@Chris Stratton: ... potrebbe essere una rete store-and-forward di unità di acquisizione dati alimentate a batteria. Sarebbe possibile demodulare un'onda IF a 100KHz usando un ARM, ma mi aspetterei che la corrente richiesta per far funzionare un processore che potrebbe farlo supererebbe la corrente richiesta per un ricevitore analogico decente.
@supercat Penso che oggi troverai la maggior parte dei ricevitori a basso consumo energetico DSP piuttosto che analogici, anche se probabilmente DSP cablato dedicato piuttosto che un processore generico. Uno dei motivi è che puoi giocare a giochi come riattivare il ricevitore in modo intermittente solo se sei disposto a mettere un preambolo al messaggio iniziale. È probabile che un ricevitore analogico abbia una corrente di polarizzazione che scorre tutto il tempo. Il materiale analogico di precisione è anche molto più costoso da produrre.
@Chris Stratton: Mi sarei aspettato che ci fossero vari giochi con cose come circuiti a condensatore commutato. Ad esempio, se si è filtrato un input per occuparsi di tutto ciò che è superiore a 1,5 volte la frequenza target, mi aspetterei che si possano utilizzare quattro integratori pass-gate (a, b, c, d), ciascuno pilotato alla frequenza target, ma sfasato di 90 gradi, per alimentare quattro filtri. La forza del segnale rilevato, al quadrato, sarebbe (a-c) ^ 2 + (b-d) ^ 2. Penso che eseguire un integratore pass-gate ad alta frequenza sarebbe più economico che eseguire un ADC a quella velocità.
@supercat - hai appena reinventato il mixer a commutazione, spesso implementato con interruttori di bus piuttosto che con parti "rf". È una tecnica ben nota: un oscillatore pulito, un divisore digitale per ottenere le fasi, un interruttore del bus, filtri passa-basso I e Q dell'amplificatore operazionale ciascuno che prende input differenziale da integratori opposti, e quindi in un ADC di velocità audio a doppio canale, possibilmente una scheda audio .
@Chris Stratton: Il mio punto era che pensavo che l'approccio semi-analogico sarebbe più efficiente rispetto al tentativo di elaborare i segnali numericamente a una frequenza sostanzialmente al di sopra della frequenza demodulata di interesse più alta. In realtà, sono curioso di quali svantaggi esistono in questo approccio generale rispetto a un super-hetrodyne? Si noti che se i riferimenti di frequenza sono stabili, si potrebbe probabilmente generare un gate di quadratura sufficientemente accurato senza bisogno di una frequenza più alta per derivarlo.


Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...