应用各种RF减损到QAM信号。观察通过使用星座图,随时间变化的误差矢量幅度(EVM)图和频谱图的影响。估计等效信噪比(SNR)。
设置采样率,调制阶数,和SNR。计算参考星座点。
FS = 1000;M = 16;snrdB = 30;refConst = qammod(0:M-1,M,'UnitAveragePower',真正);
创建星座图和时间范围中的对象以可视化的障碍的效果。
constDiagram = comm.ConstellationDiagram('ReferenceConstellation',refConst);时间波谱= dsp.TimeScope('YLimits',[0 40],'采样率',FS,'时间跨度'1,...'ShowGrid',真正,'YLabel','EVM(%)');
所产生的16-QAM信号,并把它传递通过AWGN信道。画出它的星座。
数据=兰迪([0 M-1],1000,1);modSig = qammod(数据,M'UnitAveragePower',真正);noisySig = AWGN(modSig,snrdB);constDiagram(noisySig)
估计从基准星座点有噪信号的EVM。
EVM = comm.EVM('ReferenceSignalSource',“从参考星座估计”,...'ReferenceConstellation',refConst,...'正常化',“平均星座力量”);rmsEVM = EVM(noisySig)
rmsEVM = 3.1768
调制误差率(MER)接近地对应于SNR。创建一个MER对象,并估计SNR。
聚体= comm.MER('ReferenceSignalSource',“从参考星座估计”,...'ReferenceConstellation',refConst);snrEst =聚体(noisySig)
snrEst = 30.1071
估计是非常接近30分贝指定SNR。
创建使用记忆非线性对象的放大器。
安培= comm.MemorylessNonlinearity('IIP3'38,'AMPMConversion',0);
通过非线性放大器通过所述调制信号,并绘制其星座图。
txSig =安培(modSig);constDiagram(txSig)
星座的角点已向原移动由于放大器的增益压缩。
引入一个小的AM / PM转换,并显示接收到的信号星座图。
amp.AMPMConversion = 1;txSig =安培(modSig);constDiagram(txSig)
星座有旋转由于AM / PM转换。为了计算随时间变化的EVM,释放EVM对象并设置AveragingDimensions
属性为2。为了估算对一输入信号的EVM,省略ReferenceSignalSource
属性定义。这种方法可以产生更精确的结果。
EVM = comm.EVM('AveragingDimensions',2);evmTime = EVM(modSig,txSig);
画出失真信号随时间变化的EVM。
时间波谱(evmTime)
计算RMS EVM。
evmRMS = SQRT(平均值(evmTime。^ 2))
evmRMS = 35.5919
计算MER。
聚体= comm.MER;snrEst =聚体(modSig,txSig)
snrEst = 8.1392
的SNR(≈8dB)被从其初始值(∞)由于放大器失真减小。
指定输入功率电平范围从0到40 dBm的。转换的水平来W.初始化它们的线性等效输出功率向量。
powerIn = 0:40;销= 10 ^((powerIn-30)/ 10)。powerOut =零(长度(powerIn),1);
用于测量输入功率电平的范围中的放大器的输出功率。
对于K = 1:长度(powerIn)数据=兰迪([0 15],1000,1);txSig = qammod(数据,16,'UnitAveragePower',真)* SQRT(销(K));ampSig =安培(txSig);powerOut(K)= 10 *日志10(VAR(ampSig))+ 30;结束
绘制功率输出相对于电力输入曲线。
图图(powerIn,powerOut,powerIn,powerIn,' - ')图例(“放大器输出”,“理想的输出”,'位置','SE')xlabel('功率在(DBM)')ylabel('电源输出(DBM)')网格
所述输出功率电平断开在30 dBm的。该放大器表现出对输入功率电平超过25 dBm的更大的非线性行为。
适用的幅度和相位不平衡的调制信号。
ampImb = 3;phImb = 10;GAINI = 10 ^(0.5 * ampImb / 20)。gainQ = 10 ^( - 0.5 * ampImb / 20)。IMBI =实际(modSig)* * GAINI EXP(-0.5i * phImb * PI / 180);imbQ = IMAG(modSig)* gainQ * EXP(1I *(PI / 2 + 0.5 * phImb * PI / 180));rxSig = IMBI + imbQ;
画出接收星座图。
constDiagram(rxSig)
星座的幅值和相位发生变化的I / Q不均衡的结果。
计算并绘制随时间变化的EVM。
evmTime = EVM(modSig,rxSig);时间波谱(evmTime)
该EVM表现出的行为是类似于用非线性放大器虽然方差较小经历。
产生具有1000Hz的采样速率100Hz的正弦波。
正弦波= dsp.SineWave('频率',100,'采样率',1000,...'SamplesPerFrame',1E4,'ComplexOutput',真正);X =正弦波();
应用相同的3分贝和10度的I / Q不平衡。
ampImb = 3;phImb = 10;GAINI = 10 ^(0.5 * ampImb / 20)。gainQ = 10 ^( - 0.5 * ampImb / 20)。IMBI =实际(X)* * GAINI EXP(-0.5i * phImb * PI / 180);imbQ = IMAG(X)* gainQ * EXP(1I *(PI / 2 + 0.5 * phImb * PI / 180));Y = + IMBI imbQ;
画出不平衡信号的频谱。
光谱= dsp.SpectrumAnalyzer('采样率',1000,'PowerUnits','DBW');谱(y)的
的I / Q不平衡在-100赫兹,这是输入色调的倒数引入第二音调。
适用的相位噪声所发送的信号。积所得的星座图。
pnoise = comm.PhaseNoise('水平',-50,“频偏”20,'采样率',FS);pnoiseSig = pnoise(modSig);constDiagram(pnoiseSig)
相位噪声引入的旋转抖动。
计算并绘制了接收信号的EVM。
evmTime =维生素(modSig pnoiseSig);时间波谱(evmTime)
确定RMS EVM。
evmRMS = SQRT(平均值(evmTime。^ 2))
evmRMS = 6.1989
指定每个符号参数样本。创建一对升余弦匹配滤波器。
SPS = 4;txfilter = comm.RaisedCosineTransmitFilter('RolloffFactor',0.2,'FilterSpanInSymbols'8,...'OutputSamplesPerSymbol',SPS,'获得',SQRT(SPS));rxfilter = comm.RaisedCosineReceiveFilter('RolloffFactor',0.2,'FilterSpanInSymbols'8,...'InputSamplesPerSymbol',SPS,'获得',1 / SQRT(SPS),...'DecimationFactor',SPS);
确定通过匹配滤波器的延迟。
fltDelay = 0.5 *(+ txfilter.FilterSpanInSymbols rxfilter.FilterSpanInSymbols);
通过匹配滤波器传递调制信号。
filtSig = txfilter(modSig);rxSig = rxfilter(filtSig);
要考虑到通过过滤器的延迟,丢弃第一fltDelay
样本。
rxSig = rxSig(fltDelay + 1:结束);
为了适应接收的信号样本的数量的改变,创建新的星座图和时间范围的对象。
constDiagram = comm.ConstellationDiagram('ReferenceConstellation',refConst);时间波谱= dsp.TimeScope('YLimits',[0 40],'采样率',FS,'时间跨度'1,...'ShowGrid',真正,'YLabel','EVM(%)');
估计EVM。绘制所接收的信号星座图和所述随时间变化的EVM。
EVM = comm.EVM('ReferenceSignalSource',“从参考星座估计”,...'ReferenceConstellation',refConst,...'正常化',“平均星座力量”,'AveragingDimensions',2);evmTime = EVM(rxSig);constDiagram(rxSig)时间波谱(evmTime)
确定RMS EVM。
evmRMS = SQRT(平均值(evmTime。^ 2))
evmRMS = 2.7199
确定等价SNR。
聚体= comm.MER;snrEst =聚体(modSig(1:最终fltDelay),rxSig)
snrEst = 31.4603
结合过滤器,非线性放大器,AWGN和相位噪声的影响。显示星座和EVM图。
创建EVM,时间范围和星座图的对象。
EVM = comm.EVM('ReferenceSignalSource',“从参考星座估计”,...'ReferenceConstellation',refConst,...'正常化',“平均星座力量”,'AveragingDimensions',2);时间波谱= dsp.TimeScope('YLimits',[0 40],'采样率',FS,'时间跨度'1,...'ShowGrid',真正,'YLabel','EVM(%)');constDiagram = comm.ConstellationDiagram('ReferenceConstellation',refConst);
指定非线性放大器和相位噪声对象。
安培= comm.MemorylessNonlinearity('IIP3'45,'AMPMConversion',0);pnoise = comm.PhaseNoise('水平',-55,“频偏”20,'采样率',FS);
过滤器,然后放大该调制信号。
txfiltOut = txfilter(modSig);txSig =安培(txfiltOut);
加入相位噪声。通过AWGN信道传递受损信号。画出星座图。
rxSig = AWGN(txSig,snrdB);pnoiseSig = pnoise(rxSig);rxfiltOut = rxfilter(pnoiseSig);constDiagram(rxfiltOut)
计算随时间变化的EVM。绘制的结果。
evmTime = EVM(rxfiltOut);时间波谱(evmTime)
确定RMS EVM。
evmRMS = SQRT(平均值(evmTime。^ 2))
evmRMS = 6.6444
估计SNR。
聚体= comm.MER('ReferenceSignalSource',“从参考星座估计”,...'ReferenceConstellation',refConst);snrEst =聚体(rxfiltOut)
snrEst = 23.6978
此值是近似6dB超过了30分贝规定值时,这意味着其他损伤的效果显著和将降低误码率特性恶化。