对QAM信号施加各种射频损伤。利用星座图、时变误差矢量幅值(EVM)图和频谱图观察其影响。估计等效信噪比(SNR)。
设置采样率、调制顺序和信噪比。计算参考星座点。
fs = 1000;M = 16;snrdB = 30;refConst = qammod (0: M - 1 M,“UnitAveragePower”,真正的);
创建星座图和时间范围的对象可视化的损害效果。
constDiagram = comm.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(数据、米“UnitAveragePower”,真正的);noisySig = awgn (modSig snrdB);constDiagram (noisySig)
从参考星座点估计噪声信号的EVM。
维生素与= comm.EVM (“ReferenceSignalSource”,“根据参考星座估算”,...“ReferenceConstellation”refConst,...“归一化”,的平均星座力量”);rmsEVM =维生素(noisySig)
rmsEVM = 3.1768
调制错误率(MER)与信噪比密切对应。创建一个MER对象,并估计信噪比。
mer = comm.MER (“ReferenceSignalSource”,“根据参考星座估算”,...“ReferenceConstellation”, refConst);信噪比= mer (noisySig)
信噪比= 30.1071
估计的信噪比非常接近规定的30 dB。
使用无记忆非线性对象创建一个放大器。
amp = comm.MemorylessNonlinearity (“IIP3”38岁“AMPMConversion”, 0);
将调制好的信号通过非线性放大器,绘制其星座图。
txSig = amp (modSig);constDiagram (txSig)
由于放大器增益压缩,星座的角点向原点移动。
引入小型AM/PM转换,并显示接收信号星座。
amp.AMPMConversion = 1;txSig = amp (modSig);constDiagram (txSig)
星座由于AM/PM转换而旋转。要计算时变EVM,需要释放EVM对象,并设置AveragingDimensions
属性2。要根据输入信号估计EVM,省略ReferenceSignalSource
属性定义。这种方法的结果更准确。
维生素与= comm.EVM (“AveragingDimensions”2);evmTime =维生素(modSig txSig);
绘制失真信号的时变EVM图。
timeScope (evmTime)
计算RMS EVM。
evmRMS =√意味着(evmTime ^ 2))
evmRMS = 35.5919
计算任务。
mer = comm.MER;信噪比= mer (modSig txSig)
信噪比= 8.1392
由于放大器失真,信噪比(≈8 dB)从初始值(∞)降低。
指定输入功率级别从0到40 dBm。将这些电平转换为w中的线性等效值。
力量=今日;销= 10 ^ ((powerIn-30) / 10);powerOut = 0(长度(的力量),1);
测量放大器的输出功率范围的输入功率电平。
为k = 1:length(powerIn) data = randi([0 15],1000,1);txSig = qammod(数据、16“UnitAveragePower”,真正的*√(销(k));ampSig = amp (txSig);powerOut (k) = 10 * log10 (var (ampSig)) + 30;结束
绘制功率输出与功率输入曲线。
图绘制(powerOut力量,力量,力量,“——”)传说(放大器输出的,“理想输出”,“位置”,“本身”)包含(“在(dBm)”) ylabel (“电力供应(dBm)”网格)
输出功率稳定在30 dBm。该放大器在输入功率大于25 dBm时表现出非线性行为。
对调制信号施加振幅和相位不平衡iqimbal
函数。
ampImb = 3;phImb = 10;rxSig = iqimbal (modSig ampImb phImb);
绘制接收到的星座。
constDiagram (rxSig)
由于I/Q不平衡,星座的星等和相位发生了变化。
计算并绘制时变EVM。
evmTime =维生素(modSig rxSig);timeScope (evmTime)
EVM表现出与非线性放大器相似的行为,尽管方差更小。
创建一个100hz的正弦波具有1000hz的采样率。
sinewave = dsp。SineWave (“频率”, 100,“SampleRate”, 1000,...“SamplesPerFrame”1 e4,“ComplexOutput”,真正的);x = sinewave ();
应用相同的3db和10度I/Q不平衡。
ampImb = 3;phImb = 10;y = iqimbal (x, ampImb phImb);
绘制不平衡信号的频谱。
谱= dsp。简介(“SampleRate”, 1000,“PowerUnits”,“瓦分贝”);谱(y)
I/Q不平衡引入了第二个音调在- 100hz,这是输入音调的逆。
对发射信号施加相位噪声。绘制得到的星座图。
pnoise = comm.PhaseNoise (“水平”, -50,“FrequencyOffset”, 20岁,“SampleRate”fs);pnoiseSig = pnoise (modSig);constDiagram (pnoiseSig)
相位噪声会引起旋转抖动。
计算并绘制接收信号的EVM。
evmTime =维生素(modSig pnoiseSig);timeScope (evmTime)
确定RMS EVM。
evmRMS =√意味着(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 /√(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);timeScope = timeScope (“YLimits”, 40 [0],“SampleRate”fs,“TimeSpanSource”,“属性”,“时间间隔”,1,...“ShowGrid”,真的,“YLabel”,'维生素(%)');
估计维生素。绘制接收信号星座图和时变EVM。
维生素与= comm.EVM (“ReferenceSignalSource”,“根据参考星座估算”,...“ReferenceConstellation”refConst,...“归一化”,的平均星座力量”,“AveragingDimensions”2);evmTime =维生素(rxSig);constDiagram (rxSig)
timeScope (evmTime)
确定RMS EVM。
evmRMS =√意味着(evmTime ^ 2))
evmRMS = 2.7199
确定等效信噪比。
mer = comm.MER;信噪比= mer (modSig (1: end-fltDelay) rxSig)
信噪比= 31.4603
结合滤波器、非线性放大器、AWGN和相位噪声的影响。显示星座和EVM图。
创建EVM、时间范围和星座图对象。
维生素与= comm.EVM (“ReferenceSignalSource”,“根据参考星座估算”,...“ReferenceConstellation”refConst,...“归一化”,的平均星座力量”,“AveragingDimensions”2);timeScope = timeScope (“YLimits”, 40 [0],“SampleRate”fs,“TimeSpanSource”,“属性”,“时间间隔”,1,...“ShowGrid”,真的,“YLabel”,'维生素(%)');constDiagram = comm.ConstellationDiagram (“ReferenceConstellation”, refConst);
指定非线性放大器和相位噪声对象。
amp = comm.MemorylessNonlinearity (“IIP3”45岁的“AMPMConversion”, 0);pnoise = comm.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 =维生素(rxfiltOut);timeScope (evmTime)
确定RMS EVM。
evmRMS =√意味着(evmTime ^ 2))
evmRMS = 19.4992
估计信噪比。
mer = comm.MER (“ReferenceSignalSource”,“根据参考星座估算”,...“ReferenceConstellation”, refConst);信噪比= mer (rxfiltOut)
信噪比= 14.1996
该值大约比指定值30 dB差6 dB,这意味着其他损害的影响是显著的,将降低误码率性能。