主要内容

可视化射频损伤

应用各种射频损伤到一个QAM信号。通过星座图、时变误差矢量幅值(EVM)图和频谱图观察效果。通过使用调制误差率(MER)测量估计等效信噪比(SNR)。

初始化

设置采样率、调制顺序和信噪比。计算参考星座点。生成16-QAM信号。

Fs = 1000;M = 16;snrdB = 30;refConst = qammod(0:M-1,M,UnitAveragePower=true);data = randi([0 M-1],1000,1);modSig = qammod(data,M,UnitAveragePower=true);

创建星座图和时间范围对象以可视化受损效果。

constDiagram = com . constellationdiagram (...ReferenceConstellation = refConst);timeScope = timeScope (...YLimits = 40 [0],...SampleRate = fs,...TimeSpanSource =“财产”...时间间隔= 1,...ShowGrid = true,...YLabel =“维生素(%)”);

放大器失真

无记忆非线性损伤使输入信号的幅值和相位畸变。振幅失真是振幅到振幅调制(AM-AM),相位失真是振幅到相位调制(AM-PM)。无记忆非线性系统对象™分别模拟由放大器增益压缩和AM-PM转换引起的AM-AM和AM-PM失真。

通过使用无记忆非线性对象增加放大器增益压缩,没有AM-PM转换损伤。放大器增益压缩是一种非线性损伤,随着距离原点的增加,符号失真更大。

mnlamp = comm.MemorylessNonlinearity (...IIP3 = 38,...AMPMConversion = 0);

将调制信号通过非线性放大器,然后绘制星座图。放大器增益压缩导致星座点向原点移动。

mnlampSig = mnlamp(modSig);constDiagram (mnlampSig)释放(constDiagram)

调整无记忆非线性对象配置,以添加一个小的AM-PM转换损伤。AM-PM转换是一种非线性损伤,随着与原点距离的增加,符号失真更大。上午-下午转换导致星座旋转。

将调制信号通过非线性放大器,然后绘制星座图来显示AM-AM和AM-PM的组合失真。

mnlamp。AMPMConversion = 1;mnlampSig = mnlamp(modSig);constDiagram (mnlampSig)释放(constDiagram)

配置一个EVM对象,以输入参考信号源作为输入参数,并对信号各行的结果求平均。根据输入信号估计EVM可以提供更准确的结果。对信号行间的结果求平均值,计算随时间变化的EVM。

evm = com . evm (AveragingDimensions=2);

绘制失真信号的时变EVM。

evmTime = evm(modSig,mnlampSig);timeScope (evmTime)释放(timeScope)

计算RMS EVM。

evmRMS =√(mean(evmTime.^2))
evmRMS = 35.5919

利用MER对象估计添加放大器失真后信号的信噪比。

mer = com . mer;snrEst = mer(modSig,mnlampSig)
snrEst = 8.1392

测量放大器输出功率范围内的输入功率电平。输入功率范围为0 ~ 40dbm。将这些电平转换为以瓦为单位的线性等值。初始化输出功率向量。

powerIn = 0:40;pin = 10.^((powerIn-30)/10);powerOut = 0(长度(powerIn),1);k = 1:length(powerIn) data = randi([0 15],1000,1);txSig = qammod(...数据,16日UnitAveragePower = true) * sqrt(销(k));mnlampSig = mnlamp(txSig);powerOut(k) = 10*log10(var(mnlampSig))+30;结束

绘制功率输出与功率输入曲线。输出功率为30dbm电平电平。当输入功率大于25 dBm时,放大器表现出非线性行为。

图绘制(powerOut力量,力量,力量,”——“)传说(“放大器输出”“理想输出”位置=“本身”)包含(上电(dBm)) ylabel (“下电(dBm)”网格)

图中包含一个轴对象。axis对象包含2个line类型的对象。这些对象代表放大器输出,理想输出。

智商不平衡

对调制信号应用振幅和相位不平衡iqimbal函数。星座点的大小和相位线性变化是智商不平衡的结果。

ampImb = 3;phImb = 10;rxSig = iqimbal(modSig,ampImb,phImb);

绘制智商失衡受损信号星座图和时变EVM。

constDiagram (rxSig)释放(constDiagram)

IQ不平衡受损信号的时变EVM行为与非线性放大器的时变EVM行为相似,但差异较小。

evmTime = evm(modSig,rxSig);timeScope (evmTime)释放(timeScope)

通过将其应用于正弦波来演示智商不平衡,然后显示智商不平衡受损正弦波的频谱。

通过使用正弦波系统对象™创建具有1000hz采样率的100hz正弦波。

正弦波= dsp。SineWave (...频率= 100,...SampleRate = 1000,...SamplesPerFrame = 1 e4,...ComplexOutput = true);X =正弦波();

应用同样的3分贝和10度智商失衡。

ampImb = 3;phImb = 10;y = iqimbal(x,ampImb,phImb);

绘制不平衡信号的频谱。IQ不平衡在-100 Hz处引入了第二种音调,与输入音调相反。

光谱分析仪(...SampleRate = 1000,...SpectrumUnits =“瓦分贝”);谱(y)释放(光谱)

相位噪声

通过使用相位噪声系统对象™将相位噪声应用于传输信号。相位噪声会引起旋转抖动。

pnoise = com . phasenoise (...水平= -50,...FrequencyOffset = 20,...SampleRate = fs);pnoiseSig = pnoise(modSig);

绘制相位噪声受损信号星座图和时变EVM。

constDiagram (pnoiseSig)释放(constDiagram)

evmTime = evm(modSig,pnoiseSig);timeScope (evmTime)释放(timeScope)

计算RMS EVM。

evmRMS =√(mean(evmTime.^2))
evmRMS = 6.3258

过滤效果

通过使用凸起余弦发射和接收过滤器系统对象创建一对凸起余弦匹配过滤器。为每个符号参数指定样本。

SPS = 4;txfilter = com . raisedcosinetransmitfilter (...RolloffFactor = 0.2,...FilterSpanInSymbols = 8,...OutputSamplesPerSymbol = sps,...获得= sqrt (sps));rxfilter = com . raisedcosinereceivefilter (...RolloffFactor = 0.2,...FilterSpanInSymbols = 8,...InputSamplesPerSymbol = sps,...获得= 1 /√(sps),...DecimationFactor = sps);

通过匹配的过滤器确定延迟。

fltDelay = 0.5*(...txfilter。FilterSpanInSymbols +...rxfilter.FilterSpanInSymbols);

使调制信号通过匹配的滤波器。

filtSig = txfilter(modSig);rxSig = rxfilter(filtSig);

为了考虑通过过滤器的延迟,丢弃第一个fltDelay样本。

rxSig = rxSig(fltDelay+1:end);

为了适应接收到的信号样本数量的变化,创建新的星座图和时间范围对象。创建一个EVM对象来估计EVM。

constDiagram = com . constellationdiagram (ReferenceConstellation=refConst);timeScope = timeScope (...YLimits = 40 [0],...SampleRate = fs,...TimeSpanSource =“财产”...时间间隔= 1,...ShowGrid = true,...YLabel =“维生素(%)”);evm = com . evm...ReferenceSignalSource =“从参考星座估计”...ReferenceConstellation = refConst,...归一化=“平均星座功率”...AveragingDimensions = 2);

绘制滤波后的信号星座图和时变EVM。

constDiagram (rxSig)释放(constDiagram)

evmTime = evm(rxSig);timeScope (evmTime)释放(timeScope)

计算RMS EVM。

evmRMS =√(mean(evmTime.^2))
evmRMS = 2.7199

通过使用MER对象估计信噪比。

mer = com . mer;snrEst = mer(modSig(1:end-fltDelay),rxSig)
snrEst = 31.4603

白噪声

将16-QAM信号通过AWGN信道传递,然后绘制其星座图。

noisySig = awgn(modSig,snrdB);constDiagram (noisySig)释放(constDiagram)

估计来自参考星座点的噪声信号的EVM。

evm = com . evm...ReferenceSignalSource =“从参考星座估计”...ReferenceConstellation = refConst,...归一化=“平均星座功率”);rmsEVM = evm(noisySig)
rmsEVM = 3.1941

MER测量值与信噪比密切相关。创建一个MER对象,并估计信噪比。估计接近于指定的信噪比30 dB。

mer = com . mer (...ReferenceSignalSource =“从参考星座估计”...ReferenceConstellation = refConst);snrEst = mer(noisySig)
snrEst = 30.0598

联合效应

综合了滤波器、非线性放大器、IQ不平衡、相位噪声和AWGN的影响。显示星座图、EVM图和计算出的EVM。

创建非线性放大器、相位噪声、EVM、时间范围和星座图对象。

mnlamp = com . memoryless非线性(IIP3=45,AMPMConversion=0);pnoise = com . phasenoise (Level=-55,FrequencyOffset=20,SampleRate=fs);evm = com . evm...ReferenceSignalSource =“从参考星座估计”...ReferenceConstellation = refConst,...归一化=“平均星座功率”...AveragingDimensions = 2);timeScope = timeScope (...YLimits = 40 [0],...SampleRate = fs,...TimeSpanSource =“财产”...时间间隔= 1,...ShowGrid = true,...YLabel =“维生素(%)”);constDiagram = com . constellationdiagram (...ReferenceConstellation = refConst);

应用发射机滤波,然后放大调制信号。增加智商不平衡和相位噪声。

txfiltOut = txfilter(modSig);mnlampSig = mnlamp(txfiltOut);iqImbalSig = iqimbal(mnlampSig,ampImb,phImb);txSig = pnoise(iqImbalSig);

将受损信号通过AWGN通道传递。绘制星座图。

rxSig = awgn(txSig,snrdB);rxfiltOut = rxfilter(rxSig);constDiagram (rxfiltOut)释放(constDiagram)

计算时变EVM。画出结果。

evmTime = evm(rxfiltOut);timeScope (evmTime)释放(timeScope)

确定RMS EVM。

evmRMS =√(mean(evmTime.^2))
evmRMS = 19.4785

估计信噪比。这个值大约比指定的值(30 dB)差16 dB。这种级别的射频减值影响是显著的,如果不通过减值补偿或高级接收机加以纠正,可能会降低误码率性能。

mer = com . mer (...ReferenceSignalSource =“从参考星座估计”...ReferenceConstellation = refConst);snrEst = mer(rxfiltOut)
snrEst = 14.2470

另请参阅

|