ACPR和CCDF测量MATLAB系统对象
ACPR测量
这个例子展示了如何从基带50kbps QPSK信号测量相邻信道功率比(ACPR)。ACPR是在相邻频带中测量的信号功率与在其主频带中测量的同一信号功率的比值。每个符号的样本数量设置为4。
设置每个符号的样本(sps
)和信道带宽(bw
)参数。
SPS = 4;Bw = 50e3;
为QSPK调制生成10,000个4元符号。
数据= randi([0 3],10000,1);
构造一个QPSK调制器,然后对输入数据进行调制。
qpskMod = com . qpskmodulator;x = qpskMod(data);
对调制信号应用矩形脉冲整形。这种类型的脉冲整形通常不会在实际系统中进行,但在这里用于说明目的。
Y = rectpulse(x,sps);
构造一个ACPR System对象。采样率是带宽乘以每个符号的采样数。主信道假定为0,而相邻信道偏移量设置为50 kHz(与主信道的带宽相同)。同样,相邻通道的测量带宽设置为与主通道相同。最近,使能主通道和相邻通道电源输出端口。
acpr = com . acpr (“SampleRate”bw * sps,...“MainChannelFrequency”0,...“MainMeasurementBandwidth”bw,...“AdjacentChannelOffset”, 50 e3,...“AdjacentMeasurementBandwidth”bw,...“MainChannelPowerOutputPort”,真的,...“AdjacentChannelPowerOutputPort”,真正的);
测量信号的ACPR、主通道功率和相邻通道功率y.
[ACPRout,mainPower,adjPower] = acpr(y)
ACPRout = -9.3071
mainPower = 28.9389
adjPower = 19.6318
将频率偏移量更改为75 kHz并确定ACPR。由于AdjacentChannelOffset属性不可调,必须首先释放acpr
.观察ACPR随着信道偏移量的增加而改善。
(acpr) acpr发布。AdjacentChannelOffset = 75e3;ACPRout = acpr(y)
ACPRout = -13.1702
释放acpr
并指定一个50 kHz的相邻信道偏移。
(acpr) acpr发布。AdjacentChannelOffset = 50e3;
创建一个凸起的余弦滤波器和滤波调制信号。
txfilter = com . raisedcosinetransmitfilter (“OutputSamplesPerSymbol”, sps);Z = txfilter(x);
测量滤波信号的ACPR,z.您可以看到,当使用提升余弦脉冲时,ACPR从-9.5 dB提高到-17.7 dB。
ACPRout = acpr(z)
ACPRout = -17.2245
绘制相邻信道偏移范围的相邻信道功率比。在10 kHz的步骤中将通道偏移量设置为30 kHz到70 kHz。回想一下,您必须先发布hACPR
改变偏移量。
freqOffset = 1e3*(30:5:70);(acpr) acpr发布。AdjacentChannelOffset = freqOffset;
确定矩形和凸起余弦脉冲形状信号的ACPR值。
ACPR1 = acpr(y);ACPR2 = acpr(z);
绘制相邻信道功率比。
情节(ACPR1 freqOffset / 1000,“* - - - - - -”, ACPR2 freqOffset / 1000“啊——”)包含(“相邻信道偏移量(kHz)”) ylabel (“ACPR (dB)”)传说(“矩形”,提出了余弦的,“位置”,“最佳”网格)
CCDF测量
这个例子展示了如何使用互补累积分布函数(CCDF)系统对象™来测量信号的瞬时功率大于指定电平的平均功率的概率。构建comm.CCDF
对象,使能PAPR输出端口,并设置最大信号功率限制为50dbm。
ccdf = com . ccdf (“PAPROutputPort”,真的,“MaximumPowerLimit”, 50);
创建一个FFT长度为256,循环前缀长度为32的OFDM调制器。
ofdmMod = com . ofdmmodulator (“FFTLength”, 256,“CyclicPrefixLength”、32);
方法确定OFDM调制器对象的输入和输出大小信息
的功能comm.OFDMModulator
对象。
ofdmdim = info(ofdmMod)
ofdmDims =带字段的结构:DataInputSize: [245 1] OutputSize: [288 1]
ofdmInputSize = ofdmDims.DataInputSize;ofdmOutputSize = ofdmDims.OutputSize;
设置OFDM帧数。
numFrames = 20;
为信号阵列分配内存。
qamSig = repmat(0 (ofdmInputSize),numFrames,1);ofdmSig = repmat(0 (ofdmOutputSize),numFrames,1);
生成64-QAM和OFDM信号进行评估。
为k = 1:numFrames%生成随机数据符号data = randi([0 63],ofdmInputSize);应用64-QAM调制tmpQAM = qammod(data,64);对qam调制信号应用OFDM调制tmpOFDM = ofdmMod(tmpQAM);保存信号数据qamSig((1:ofdmInputSize)+(k-1)*ofdmInputSize(1)) = tmpQAM;ofdmSig((1:ofdmOutputSize)+(k-1)*ofdmOutputSize(1)) = tmpOFDM;结束
确定两个信号的平均信号功率、峰值信号功率和PAPR比。被计算的两个信号长度必须相同,因此前4000个符号被计算。
[财政年度,外汇,地表铺面]= ccdf ([qamSig (1:4000) ofdmSig (1:4000)]);
绘制CCDF数据。观察到,OFDM调制信号的功率高于其平均功率水平3 dB的可能性比QAM调制信号要高得多。
情节(ccdf)传说(“QAM”,OFDM的,“位置”,“最佳”)
比较QAM调制和OFDM调制信号的PAPR值。
流('\nPAPR for 64-QAM = %5.2f dB\nPAPR for OFDM = %5.2f dB\n',...地表铺面(1),地表铺面(2))
64-QAM的PAPR = 3.65 dB OFDM的PAPR = 9.44 dB
可以看到,通过对64-QAM调制信号应用OFDM调制,PAPR增加了5.8 dB。这意味着如果关闭64-QAM链路需要30 dBm的发射功率,功率放大器需要有33.7 dBm的最大功率来确保线性工作。如果同样的信号被OFDM调制,则需要一个39.5 dBm的功率放大器。