主要内容

可视化射频损伤

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

初始化

设置采样率、调制顺序和信噪比。计算参考星座点。

Fs = 1000;M = 16;snrdB = 30;refConst = qammod(0:M-1,M,“UnitAveragePower”,真正的);

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

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

白噪声

生成一个16-QAM信号,并将其通过AWGN通道。画出它的星座。

data = randi([0 M-1],1000,1);modSig = qammod(data,M,“UnitAveragePower”,真正的);noisySig = awgn(modSig,snrdB);constDiagram (noisySig)

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

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

调制错误率(MER)与信噪比密切相关。创建一个MER对象,并估计信噪比。

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

估计值非常接近于指定的30 dB的信噪比。

放大器失真

使用无记忆非线性对象创建一个放大器。

amp = com . memoryless非线性(“IIP3”38岁“AMPMConversion”, 0);

将调制信号通过非线性放大器并绘制其星座图。

txSig = amp(modSig);constDiagram (txSig)

由于放大器增益压缩,星座的角点向原点移动。

介绍一个小型的AM/PM转换,并显示接收到的信号星座。

amp.AMPMConversion = 1;txSig = amp(modSig);constDiagram (txSig)

由于上午/下午的转换,星座已经旋转。要计算时变EVM,释放EVM对象并设置AveragingDimensions属性为2。要根据输入信号估计EVM,请省略ReferenceSignalSource属性定义。这种方法产生更准确的结果。

evm = com . evm“AveragingDimensions”2);evmTime = evm(modSig,txSig);

绘制失真信号的时变EVM。

timeScope (evmTime)

计算RMS EVM。

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

计算MER。

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

由于放大器失真,信噪比(≈8 dB)从初始值(∞)降低。

输入功率范围为0 ~ 40dbm。将这些电平转换为w中的线性等效值,初始化输出功率向量。

powerIn = 0:40;pin = 10.^((powerIn-30)/10);powerOut = 0(长度(powerIn),1);

测量放大器输出功率范围的输入功率电平。

k = 1:length(powerIn) data = randi([0 15],1000,1);txSig = qammod(data,16,“UnitAveragePower”,真正的*√(销(k));ampSig = amp(txSig);powerOut(k) = 10*log10(var(ampSig))+30;结束

绘制功率输出与功率输入曲线。

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

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

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

I / Q不平衡

对调制信号应用振幅和相位不平衡iqimbal函数。

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

绘制接收到的星座。

constDiagram (rxSig)

由于I/Q不平衡,星座的星等和相位发生了变化。

计算并绘制随时间变化的EVM。

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

EVM表现出与非线性放大器相似的行为,尽管方差较小。

创建一个1000hz采样率的100hz正弦波。

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

应用相同的3分贝和10度I/Q不平衡。

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

绘制不平衡信号的频谱。

频谱= dsp。简介(“SampleRate”, 1000,“PowerUnits”“瓦分贝”);谱(y)

图频谱分析仪包含一个axis对象和其他类型为uiflowcontainer、uimenu、uitoolbar的对象。axis对象包含一个line类型的对象。该对象表示通道1。

I/Q不平衡会在- 100hz处引入第二个音调,与输入音调相反。

相位噪声

将相位噪声应用于传输信号。绘制结果星座图。

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

相位噪声会引起旋转抖动。

计算并绘制接收信号的EVM。

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

确定RMS EVM。

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

过滤效果

为每个符号参数指定样本。创建一对凸起的余弦匹配过滤器。

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);

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

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

估计维生素。绘制接收信号星座图和时变EVM。

evm = com . evm“ReferenceSignalSource”“从参考星座估计”...“ReferenceConstellation”refConst,...“归一化”“平均星座功率”“AveragingDimensions”2);evmTime = evm(rxSig);constDiagram (rxSig)

timeScope (evmTime)

确定RMS EVM。

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

确定等效信噪比。

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

联合效应

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

创建EVM、时间范围和星座图对象。

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

指定非线性放大器和相位噪声对象。

amp = com . memoryless非线性(“IIP3”45岁的“AMPMConversion”, 0);pnoise = com . phasenoise (“水平”, -55,“FrequencyOffset”, 20岁,“SampleRate”fs);

滤波,然后放大调制信号。

txfiltOut = txfilter(modSig);txSig = amp(txfiltOut);

添加相位噪声。将受损信号通过AWGN通道传递。绘制星座图。

rxSig = awgn(txSig,snrdB);iqImbalSig = iqimbal(rxSig,ampImb,phImb);pnoiseSig = pnoise(iqImbalSig);rxfiltOut = rxfilter(pnoiseSig);constDiagram (rxfiltOut)

计算时变EVM。画出结果。

evmTime = evm(rxfiltOut);timeScope (evmTime)

确定RMS EVM。

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

估计信噪比。

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

这个值大约比指定的值30 dB差6 dB,这意味着其他损害的影响是显著的,将降低误码率性能。

另请参阅

|