hPUSCHEVM using with TDD uplink signals

2 visualizzazioni (ultimi 30 giorni)
Reichmuth Kim
Reichmuth Kim il 12 Nov 2020
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 Commento
Zhengguang Zhang
Zhengguang Zhang il 5 Lug 2023
Hi Reichmuth, have you addressed the issue? I encountered the same error. Please kindly let me know if you found solutions. Thank you!

Accedi per commentare.

Risposte (0)

Categorie

Scopri di più su Signal Processing in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by