Bilanciamento automatico in fase e quadratura AIQB

Oscar Steila, IK1XPV ,   October 2006 rev C (7/12/2012)           www.qsl.net\ik1xpv

 

 

Molti Radioamatori hanno iniziato ad impiegare tecniche di processamento digitale dei segnali con ricevitori a conversione diretta, utilizzando il PC  [5][7] o processori delicati [6].

Alcune tecniche di bilanciamento sono state sviluppate [1]-[4].   In questo documento viene introdotta una tecnica di bilanciamento che non richiede la  conoscenza del segnale trasmesso (alla cieca). L’algoritmo è stato implementato nel programma CIAOradio [12].

 

Uno degli aspetti che limitano la prestazione dei ricevitori a conversione diretta o con IF a bassa frequenza  è lo sbilanciamento e la conseguente insufficiente cancellazione delle frequenze immagine.

Lo sbilanciamento è attribuibile alle differenze tra i componenti dei rami in fase (I) e quadratura (Q).

 

Fig 1- Ricevitore a conversione diretta (eterodina)

 

Il problema nasce dall’imperfetto bilanciamento dell’oscillatore locale (LO) e/o differenze nei filtri passa basso(LPF) con risposte in frequenza diverse. Un sistema di ricevitore eterodina ideale realizza una semplice traslazione di frequenza. Un ricevitore eterodina con uno sbilanciamento I/Q non solo converte in banda base il segnale desiderato, ma introduce un’interferenza immagine.

Fig.2 – Ricevitore eterodina con sbilanciamento I/Q

Lo sbilanciamento I/Q del ricevitore eterodina può essere interpretato come la sovrapposizione della conversione di un segnale desiderato complesso e la conversione in senso opposto di un segnale indesiderato complesso.

 

Anche se lo sbilanciamento I/Q introdotto dall’oscillatore locale (LO) può essere assunto costante sulla banda del segnale demodulato, i disadattamenti della successiva catena di filtri e amplificatori I/Q varia con la frequenza.

 

Lo sbilanciamento I/Q dipendente dalla frequenza si fa particolarmente severo nei ricevitori eterodina a banda larga e la ricerca di un algoritmo di compensazione diventa una interessante sfida [2].

Esiste una abbondante letteratura sulla compensazione dello sbilanciamento I/Q, [1]-[4] e riferimenti ivi contenuti.

 

In questo documento assumiamo che i segnali siano campionati e soddisfino la teoria del campionamento.   Vengono considerate solo le componenti di modulazione equivalenti passa basso in relazione ai segnali a radio frequenza (RF).

 

Il metodo più immediato per correggere lo sbilanciamento è un approccio trigonometrico che lo compensa con una rotazione (di fase) e una regolazione di guadagno (ampiezza).

 

 

 

^

xi = xi

 

^

xq = xq a + xi • b

 

dove:

a = g ⁄ cosθ

b = g •tanθ

g = correzione di guadagno

      ( idealmente 1 )

θ = correzione di fase 

      ( idealmente 0°)

Fig.3 – Correzione di ampiezza e fase dei campioni.

 

La procedura può essere implementata usando due moltiplicazioni e una sola addizione ogni campione[1].

 

Il guadagno e la fase devono essere aggiustati per ottenere le prestazioni migliori.

Lo schema non è capace di compensare distorsioni di guadagno e di fase che variano con la frequenza.

 

Assumendo di avere un segnale a banda larga, la compensazione della sua immagine avrà un risultato ottimale solo in una parte dello spettro immagine.

                        Fig.4 – Ricezione con CIAOradio di un segnale di test (1) con spettro di 20 Khz

 

La figura è salvata dallo schermo del programma CIAOradio e mostra lo spettro ricevuto nell’intorno di Fo, con un aggiustamento manuale di fase e quadratura.

Si può notare che la reiezione dell’immagine dipende dalla frequenza.

Un approccio per la compensazione dello sbilanciamento che dipende dalla frequenza nasce da un filtro che compensi ed equalizzi la risposta dei canali I e Q.

 

Nell’architettura del software di CIAOradio il filtraggio e la sintonia sono implementati usando una convoluzione veloce.

Una Digital Fourier Transform dell’ingresso è realizzata con una FFT complessa.

Questo algoritmo DSP analizza lo spettro di frequenza con una risoluzione dell’ordine di 12 Hz ( 48kHz di campionamento/ FFT a 4096 punti).

 

Fig.5 – La DFT genera campioni in frequenza complessi

Ogni campione in frequenza all’uscita dell’FFT trasporta informazione di fase e ampiezza corrispondente ad una frequenza compresa tra –Fs/2  to +Fs/2, con Fs = frequenza di campionamento (tipicamente 48kHz).

Lo sbilanciamento selettivo in frequenza influenza i campioni simmetrici (riferiti alla frequenza 0) , ad esempio  Zm verso Z-m , in modo diverso al variare della frequenza.

 

 

In [2] viene introdotto un modello in cui lo sbilanciamento può essere visto come il risultato di un imperfetto oscillatore locale (LO) complesso rappresentato con la funzione del tempo:

 

ŝLO(t)  =  cos(2πfLOt ) - jg sin(2πfLOt + θ)                          (1)

 

dove g  è lo sbilanciamento di ampiezza e θ indica lo sbilanciamento di fase.

Vengono qui definiti i parametri di bilanciamento complessi come:

 

          1 + ge-jθ                   1 - ge+jθ

K1 = ────── ,     K2 = ──────                               (2)

             2                             2

In modo da definire l’equazione (1) come:

 

ŝLO(t) = K1e-j2πfLOt   +  K2 e+j2πfLOt                                                         (3)

 

I ricevitori eterodina con sbilanciamento possono essere interpretati come sovrapposizione di una conversione del segnale desiderato (pesata da K1) e quella di un segnale interferente (pesata da K2).

Conseguentemente il segnale del ricevitore in banda base con sbilanciamento I/Q z(t) è la sovrapposizione della frequenza desiderata y(t) e della sua immagine y*(t):

 

z(t) = K1 y(t) + K2 y*(t)                                                  (4)

 

Il calcolo della DFT del segnale della banda m con sbilanciamento può essere scritto come:

 

Zm  = K1  Ym  +  K2  Y*-m                                               (5)

 

Z-m = K1  Y-m +  K2  Y*m                                                (6)

 

Unendo l’equazione (5) e la sua coniugata  (6) otteniamo ad una notazione a matrice dell’effetto dello sbilanciamento I/Q.

 

 

 

Zm(n)

 

Z*-m(n)

 

=  K

Ym(n)

 

Y*-m(n)

 

,               

 

K =

 K1        K2

 

K2*       K1*

 

       (7)

 

Poiché la matrice K è sempre non-singolare per parametri di sbilanciamento realistici, il segnale desiderato rappresentato da Ym(n) e Y-m(n)  può essere ricostruito in base ai simboli interferiti Zm(n) e

Z-m(n) usando la matrice inversa K-1.

 

Lo schema di compensazione è basato sul calcolo della matrice inversa di ogni coppia di componenti della DFT associati a ciascuna frequenza.

 

Noi assumiamo che E{ YmY-m} = 0 ,  dove E{.} indica il calcolo del valore atteso (expected value [11]).

 

Questo significa che Ym  e Y-m sono scorrelati e hanno media zero. Questo assunto è realistico per la maggior parte dei casi che consistono nell’avere segnali differenti in punti diversi dello spettro.

Come la stima del parametro in un ricevitore a bassa IF sia influenzato da una correlazione residua è affrontato in [4].

 

Guardando al termine di correlazione incrociata E{ ZmZ-m} viene derivata la seguente equazione:

 

E{ ZmZ-m} = K1K2 E{ YmY*-m}  + K1K2 E{ Y-mY*-m} +

                            K12 E{ YmY-m}  + K22 E{ Y*mY*-m}

                    =  K1K2 E{ Pm+ P-m}                                                       (8)

dove Pm =  E{ YmY*m }  cioè la potenza della riga m della DFT.

 

Possiamo ancora scrivere:

 

Zm  + Z*-m = ( K1 + K2*) Ym  + (K2 + K1*) Y*-m

               = Ym  +  Y*-m                                                                           (9)        

 

Poiché dalla definizione (2) ricaviamo:

 K1 + K2* =  K2 + K1* =  1                                                        (10)

 

 

Ora possiamo scrivere il secondo valore atteso come:

 

E{ | Zm  + Z*-m |2} =  E{ | Ym  + Y*-m |2}

                             =  E{ YmY*m}  + E{ Y-mY*-m} +

                               E{ YmY-m}  +  E{ Y*mY*-m}

                            =  E{ Pm+ P-m}                                                     (11)

 

Dalla (7) e dalla (10)  è ora possibile calcolare il termine K1mK2m

 

E{ ZmZ-m}

K1mK2m  = ───────────                                                           (12)

       E{ | Zm  + Z*-m |2}      

 

 

 

Dalla (4) ricaviamo

 

K1mK2m  =   ¼ (1-g2)  – j ½ g sin(θ)                                                    (13)

 

K1 e K2  non possono essere calcolati direttamente, tuttavia è possibile ricavare il valore delle variabili gm e θm come:

           ________________

ĝm  =  √ 1 -  4 Re{K1mK2m}                                                                (14)

 

                         2

θm  =  arcsin ( - ──  Im{K1mK2m})                                                     (15)

                               ĝm

 

Re{} e Im{}  indicano la parte reale e immaginaria del numero complesso.

  

I valori di  K1m  e di  K2m possono ora essere calcolati impiegando la definizione (2).

Usando ogni coppia di valori associati a ciascuna frequenza è possibile statisticamente calcolare il valore della matrice inverse stimata K-1.

 

                   1

K -1m = ───────

           |K1m|2- |K2m|2

K1m       -K2m

 

-K2m*      K1m*

 

      (16)

Nota (Rev C: 7/10/2012): Grazie a Mr. Kok Chen, W7AY www.w7ay.net per aver segnalato un errore nell'equazione 16 che porta il bilanciamento a non superare i -90dB relativi al segnale. L'equazione corretta è:

                   1

K-1m = ───────

           |K1m|2- |K2m|2

K*1m       -K2m

 

-K*2m      K1m

 

      (16b)

 

La ricostruzione di ogni coppia sbilanciata di frequenze è possibile come in figura, usando l’equazione:

 

Ym(n)

 

Y*-m(n)

 

=  K-1m

Zm(n)

 

Z*-m(n)

 

 =  K-1m Km

Ym(n)

 

Y*-m(n)

 

 

 

Nella implementazione del processo il calcolo del valore atteso è sostituito da una media in tempo ed in frequenza impiegando i campioni vicini.

Fig.6 –Schema a blocchi della procedura AIQB

 

L’effetto dell’algoritmo AIQB sul segnale in fig. 4 è illustrato dalla figura seguente.

Fig.7 – CIAOradio output with AIQB  (test signal 1)

 

I segnali di test impiegati nella implementazione dell’algoritmo AIQB sono stati realizzati da Claudio Re, I1RFQ.

 

Il segnale di test 1 impiegato in Fig.4 e Fig.7 è un singolo generatore modulato in frequenza con una banda di 22 kHz.

Il segnale di test 1 usato in Fig.8 e Fig.9 è un singolo generatore modulato in frequenza con una banda di 11 kHz.

 

Fig.8 – Ricezione con CIAOradio di un segnale di test 2.

Lo sbilanciamento senza AIQB è di circa – 50 dB

 

Fig.9 – Ricezione con CIAOradio di un segnale di test 2 con AIQB attivo.

 

Con l’AIQB attivo lo sbilanciamento diminuisce fino a -80 dB, con un miglioramento di circa 30 dB.

Il segnale di test 3 usato nelle misure successive  è ottenuto sommando l’uscita di 3 generatori RF.

Il primo genera un segnale deviato in FM di 18kHz centrato a 7012 Khz, il secondo ed il terzo generano due sinusoidi rispettivamente a  6985 kHz e a 6990 kHz, dalla parte opposta di Fo.

 

Fig.10 – Ricezione con CIAOradio di un segnale di test 3.

 

Fig.11 – Ricezione con CIAOradio di un segnale di test 3 con AIQB attivo.

 

L’algoritmo da me chiamato AIQB è stato descritto. Questo algoritmo è stato implementato e provato nel programma CIAOradio [12]. La versione testata in questo documento è la versione 1.42alfa.

Le prestazioni dell’algoritmo sono interessanti. Non richiede alcun speciale segnale di test in ingresso e necessita solamente che il segnale e la sua immagine siano scorrelati.

L’elevata cancellazione dell’immagine permette di realizzare ricevitori con buone prestazioni fino al campo delle microonde.

E’ in programma una attività di ottimizzazione anche nella direzione di ridurre la potenza di calcolo richiesta.

 

Referimenti

( molti collegamenti sono a pagine web in lingua inglese )

 

[1]  http://www.comsoc.org/tech_focus/pdfs/rf2/pdf/23.pdf

Frequency Offset and I/Q Imbalance Compensation for Direct-Conversion Receivers

Guanbin Xing, Manyuan Shen, and Hui Liu, IEEE TRANSACTIONS ON WIRELESS COMMUNICATIONS, VOL. 4, NO. 2, MARCH 2005

 

[2]  http://www.ifn.et.tu-dresden.de/MNS/veroeffentlichungen/2004/Windisch_M_INOWO_04.pdf

Standard-Independent I/Q Imbalance compensation in OFDM Direct-Conversion Receivers

Marcus Windisch, Gerhard Fettweis Dresden University of Technology, Vodafone Chair Mobile Communications Systems, D-01062 Dresden, Germany.

[3]  http://wwwmns.ifn.et.tu-dresden.de//publications/2004/Windisch_M_ISCCSP_04a.pdf

BLIND I/Q IMBALANCE PARAMETER ESTIMATION AND COMPENSATION

IN LOW-IF RECEIVERS Marcus Windisch, Gerhard Fettweis Technische Universit¨at Dresden, Vodafone Chair Mobile Communications Systems, 01062 Dresden, Germany.

 

[4] http://wwwmns.ifn.et.tu-dresden.de//publications/2004/Windisch_M_ISCCSP_04b.pdf

PERFORMANCE ANALYSIS FOR BLIND I/Q IMBALANCE COMPENSATION IN LOW-IF RECEIVERS  Marcus Windisch, Gerhard Fettweis Technische Universit¨at Dresden, Vodafone Chair Mobile Communications Systems, 01062 Dresden, Germany.

 

[5] http://www.flex-radio.com/

The SDR-1000, from Flexradio. is a complete Software Defined Radio (SDR) transceiver interface to a Personal Computer. Gerald Youngblood, K5SDR

 

[6] http://www.proaxis.com/~boblark/dsp10.htm

The DSP-10 is an amateur-radio, software-defined 2-meter transceiver that can be built at home.

Bob Larkin, W7PUA

 

[7] http://www.sdradio.org/  or  http://www.weaksignals.com/  -“Here you can find my software, developed for radio amateur's use, all freeware. “

Alberto Di Bene, I2PHD

 

[8] http://www.moetronix.com/spectravue.htm

A Windows based Spectral Analysis/Receiver Program. Moe Wheatley AE4JY

 

[9 ] http://www.sm5bsz.com/linuxdsp/linrad.htm -  “ ... In case the input signal is in complex format Linrad has routines to correct amplitude and phase for complex input signals These routines operate in the frequency domain and can absorb frequency dependent phase and amplitude errors that are introduced by differences in amplifiers and filters used between the I/Q mixers and the audio board. The only requirement (non trivial) is that amplitude and phase errors are independent of amplitude, time and temperature.” Leif Åsbrik, SM5BSZ

 

[10 ] http://www.dxatlas.com/rocky/

 “…I/Q Balancing in Rocky is fully automatic and does not require any lab equipment, all you have to do is start the program when the band is open. Rocky will use all strong stations on the band as signal generators!  The algorithm works as follows. The power spectrum is scanned for the signals that are at least 30 dB above the noise. For each signal, synchronous detection of the image is performed using the main signal as a reference oscillator. “  Alex VE3NEA, VE3NEA

 

[11] http://en.wikipedia.org/wiki/Expected_value

From Wikipedia:  In probability theory the expected value (or mathematical expectation) of a random variable is the sum of the probability of each possible outcome of the experiment multiplied by its payoff ("value").

 

[12]  http://www.comsistel.com/Ciao%20Radio.htm

CIAOradio SDR   Oscar Steila IK1XPV ,  Claudio Re I1RFQ.

 

Homepage: www.qsl.net\ik1xpv

e-mail: [email protected]