hPUSCHEVM using with TDD uplink signals

1 次查看(过去 30 天)
Hello,
I try to use the function as described in Title to evaluate the EVM of an LTE UE Uplink signal in TDD. I tried to do it like the example "LT E Uplink EVM and In-Band Emissions Measurements" openExample('lte/UplinkEVMandInBandEmissionsExample')
I generated a signal over the lteRMCULTool and set the Duplex Mode to TDD. Result is that i´ve got EVM over 300% and a warning:
________
Warning: CRC failed on decoded data, using sliced received symbols, EVM may be inaccurate!
> In hPUSCHEVM_ (line 303)
In UplinkEVMandInBandEmissionsExample (line 111)
________
Why does´nt it work with TDD. Can somebody help me?
EDIT: Code as follows:
clear all; close all;
%% Transmitter
% Set the seeds of random number generators used to 0
rng(0);
% UE Configuration, TS36.101 FRC
frc = lteRMCUL('A3-5');
frc.PUSCH.RVSeq = 0; % Redundancy version
frc.TotSubframes = 10; % Total number of subframes to generate
frc.DuplexMode = 'TDD';
% Create UE transmission with random PUSCH data
txWaveform = lteRMCULTool(frc,randi([0 1], frc.PUSCH.TrBlkSizes(1), 1));
%% Impairment Modeling
% Model EVM with additive noise
scfdmaInfo = lteSCFDMAInfo(frc);
txEVMpc = 1.2; % Desired transmit EVM in percent
evmModel = txEVMpc/(100*sqrt(double(scfdmaInfo.Nfft)))* ...
complex(randn(size(txWaveform)),randn(size(txWaveform)))/sqrt(2);
rxWaveform = txWaveform+evmModel;
% Add frequency offset impairment to received waveform
foffset = 33.0; % Frequency offset in Hertz
t = (0:length(rxWaveform)-1).'/scfdmaInfo.SamplingRate;
rxWaveform = rxWaveform.* exp(1i*2*pi*foffset*t);
% Add IQ offset
iqoffset = complex(0.01, -0.005);
rxWaveform = rxWaveform+iqoffset;
%% Receiver
% Apply frequency estimation and correction for the purposes of performing
% timing synchronization
foffset_est = lteFrequencyOffset(frc, rxWaveform);
rxWaveformFreqCorrected = ...
lteFrequencyCorrect(frc, rxWaveform, foffset_est);
% Synchronize to received waveform
offset = lteULFrameOffset(frc, frc.PUSCH, rxWaveformFreqCorrected);
rxWaveform = rxWaveform(1+offset:end,:);
%% Perform Measurements
% Compute EVM and in-band emissions
[evmpusch, evmdrs, emissions, plots] = hPUSCHEVM(frc, rxWaveform);
% Plot the absolute in-band emissions
if (~isempty(emissions.DeltaRB))
hPUSCHEVMEmissionsPlot(emissions);
end
  1 个评论
Zhengguang Zhang
Zhengguang Zhang 2023-7-5
Hi Reichmuth, have you addressed the issue? I encountered the same error. Please kindly let me know if you found solutions. Thank you!

请先登录,再进行评论。

回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Signal Processing 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by