可视化射频损伤
应用各种射频损伤到一个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)”网格)
输出功率为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)
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,这意味着其他损害的影响是显著的,将降低误码率性能。