Main Content

La traduzione di questa pagina non è aggiornata. Fai clic qui per vedere l'ultima versione in inglese.

Misurazioni ACPR e CCDF con MATLAB System Object

Misurazioni ACPR

Questo esempio mostra come misurare il rapporto di potenza del canale adiacente (ACPR) da un segnale QPSK in banda base a 50 kbps. ACPR è il rapporto tra la potenza del segnale misurata in una banda di frequenza adiacente e la potenza dello stesso segnale misurata nella sua banda principale. Il numero di campioni per simbolo è impostato su quattro.

Impostare i parametri dei campioni per simbolo (sps) e della larghezza di banda (bw) del canale.

sps = 4;
bw = 50e3;

Generare 10.000 simboli 4-ary per la modulazione QSPK.

data = randi([0 3],10000,1);

Costruire un modulatore QPSK e quindi modulare i dati di input.

qpskMod = comm.QPSKModulator;
x = qpskMod(data);

Applicare la modellazione dell’impulso rettangolare al segnale modulato. Questo tipo di modellazione non viene generalmente applicato nel sistema pratico, ma viene utilizzato in questo caso a scopo illustrativo.

y = rectpulse(x,sps);

Costruire un System object ACPR. La velocità di campionamento è data dalla larghezza di banda moltiplicata per il numero di campioni per simbolo. Si assume che il canale principale sia a 0 mentre l’offset del canale adiacente è impostato su 50 kHz (identico alla larghezza di banda del canale principale). Allo stesso modo, la larghezza di banda di misurazione del canale adiacente è impostata per essere la stessa del canale principale. In ultimo, abilitare le porte in uscita della potenza del canale principale e del canale adiacente.

acpr = comm.ACPR('SampleRate',bw*sps,...
    'MainChannelFrequency',0,...
    'MainMeasurementBandwidth',bw,...
    'AdjacentChannelOffset',50e3,...
    'AdjacentMeasurementBandwidth',bw,...
    'MainChannelPowerOutputPort', true,...
    'AdjacentChannelPowerOutputPort',true);

Misurare l’ACPR, la potenza del canale principale e la potenza del canale adiacente del segnale y.

[ACPRout,mainPower,adjPower] = acpr(y)
ACPRout = -9.3071
mainPower = 28.9389
adjPower = 19.6318

Modificare l'offset di frequenza a 75 kHz e determinare l'ACPR. Poiché la proprietà AdjacentChannelOffset non è sintonizzabile, è necessario prima rilasciare acpr. Si osservi il miglioramento dell’ACPR quando si aumenta l’offset del canale.

release(acpr)
acpr.AdjacentChannelOffset = 75e3;
ACPRout = acpr(y)
ACPRout = -13.1702

Rilasciare acpr e specificare un offset del canale adiacente di 50 kHz.

release(acpr)
acpr.AdjacentChannelOffset = 50e3;

Creare un filtro a coseno rialzato e filtrare il segnale modulato.

txfilter = comm.RaisedCosineTransmitFilter('OutputSamplesPerSymbol', sps);
z = txfilter(x);

Misurare l’ACPR per il segnale filtrato z. Come si può constatare, l’ACPR migliora da -9.5 dB a -17.7 dB quando si utilizzano impulsi a coseno rialzato.

ACPRout = acpr(z)
ACPRout = -17.2245

Tracciare i rapporti di potenza del canale adiacente per un intervallo di offset del canale adiacente. Impostare gli offset del canale su un intervallo da 30 kHz a 70 kHz, in incrementi di 10 kHz. Ricordarsi che è necessario prima rilasciare hACPR per modificare l’offset.

freqOffset = 1e3*(30:5:70);
release(acpr)
acpr.AdjacentChannelOffset = freqOffset;

Determinare i valori ACPR per i segnali con forma di impulso rettangolare e a coseno rialzato.

ACPR1 = acpr(y);
ACPR2 = acpr(z);

Tracciare i rapporti di potenza del canale adiacente.

plot(freqOffset/1000,ACPR1,'*-',freqOffset/1000, ACPR2,'o-')
xlabel('Adjacent Channel Offset (kHz)')
ylabel('ACPR (dB)')
legend('Rectangular','Raised Cosine','location','best')
grid

Figure contains an axes object. The axes object contains 2 objects of type line. These objects represent Rectangular, Raised Cosine.

Misurazioni CCDF

Questo esempio mostra come utilizzare il System object™ funzione di distribuzione cumulativa complementare (CCDF) per misurare la probabilità che la potenza istantanea di un segnale sia maggiore di un livello specificato, rispetto alla sua potenza media. Costruire l’oggetto comm.CCDF, abilitare la porta in uscita PAPR e impostare il limite massimo di potenza del segnale a 50 dBm.

ccdf = comm.CCDF('PAPROutputPort',true,'MaximumPowerLimit', 50);

Creare un modulatore OFDM con una lunghezza dell’FFT di 256 e una lunghezza del prefisso ciclico di 32.

ofdmMod = comm.OFDMModulator('FFTLength',256,'CyclicPrefixLength',32);

Determinare le dimensioni in entrata e in uscita dell’oggetto modulatore OFDM utilizzando la funzione info dell’oggetto comm.OFDMModulator.

ofdmDims = info(ofdmMod)
ofdmDims = struct with fields:
    DataInputSize: [245 1]
       OutputSize: [288 1]

ofdmInputSize = ofdmDims.DataInputSize;
ofdmOutputSize = ofdmDims.OutputSize;

Impostare il numero delle strutture OFDM.

numFrames = 20;

Allocare la memoria per gli array di segnale.

qamSig = repmat(zeros(ofdmInputSize),numFrames,1);
ofdmSig = repmat(zeros(ofdmOutputSize),numFrames,1);

Generare i segnali 64-QAM e OFDM per la valutazione.

for k = 1:numFrames
    % Generate random data symbols
    data = randi([0 63],ofdmInputSize);
    % Apply 64-QAM modulation
    tmpQAM = qammod(data,64);
    % Apply OFDM modulation to the QAM-modulated signal
    tmpOFDM = ofdmMod(tmpQAM);
    % Save the signal data
    qamSig((1:ofdmInputSize)+(k-1)*ofdmInputSize(1)) = tmpQAM;
    ofdmSig((1:ofdmOutputSize)+(k-1)*ofdmOutputSize(1)) = tmpOFDM;
end

Determinare la potenza media del segnale, la potenza di picco del segnale e i rapporti PAPR per i due segnali. I due segnali da valutare devono essere della stessa lunghezza in modo che vengano valutati i primi 4000 simboli.

[Fy,Fx,PAPR] = ccdf([qamSig(1:4000),ofdmSig(1:4000)]);

Tracciare i dati CCDF. Si osservi che la probabilità che la potenza del segnale modulato OFDM sia superiore di oltre 3 dB rispetto al suo livello medio di potenza, è molto più alta rispetto al segnale modulato QAM.

plot(ccdf)
legend('QAM','OFDM','location','best')

Figure contains an axes object. The axes object with title CCDF Measurement contains 2 objects of type line. These objects represent QAM, OFDM.

Confrontare i valori PAPR per i segnali modulati QAM e OFDM.

fprintf('\nPAPR for 64-QAM = %5.2f dB\nPAPR for OFDM = %5.2f dB\n',...
    PAPR(1), PAPR(2))
PAPR for 64-QAM =  3.65 dB
PAPR for OFDM =  9.44 dB

Come si può constatare, applicando una modulazione OFDM a un segnale modulato 64-QAM, il PAPR aumenta di 5,8 dB. Questo significa che se sono necessari 30 dBm di potenza di trasmissione per chiudere un collegamento 64-QAM e che l’amplificatore di potenza deve avere una potenza massima di 33,7 dBm per garantire un funzionamento lineare. Se lo stesso segnale fosse poi modulato OFDM, è necessario un amplificatore di potenza da 39,5 dBm.

Vedi anche

|

Argomenti complementari