lteRMCULTool
Uplink RMC or FRC waveform generation
Syntax
Description
lteRMCULTool
starts the LTE Waveform Generator app
for the parameterization and generation of a reference measurement channel (RMC)
waveform. For a list of the default top-level configuration associated with the
available uplink reference channels, see UL Reference Channel Options.
[
also
accepts optional input arguments to define the duplex mode of the
generated waveform and total number of subframes that make up the waveform
,grid
,rmccfgout
]
= lteRMCULTool(rc
,trdata
,duplexmode
,totsubframes
)grid
.
[
where
support for control information transmission on PUSCH is specified
in vectors waveform
,grid
,rmccfgout
]
= lteRMCULTool(rmccfg
,trdata
,cqi
,ri
,ack
)cqi
, ri
, and ack
.
Together, these three fields form an uplink control information (UCI)
message. If these particular control information bits are not present
in this transmission, cqi
, ri
,
and ack
can be empty vectors. The UCI is encoded
for PUSCH transmission using the processing defined in TS 36.212 [3], Section 5.2.4, consisting
of UCI coding and channel interleaving. The vectors cqi
, ri
,
and ack
are not treated as data streams. Thus,
each subframe contains the same CQI, RI, and ACK information bits.
Examples
Generate Uplink LTE FRC A3-2
Generate a time domain signal and a 3-dimensional array of the resource elements for A3-2 as specified in TS 36.104 Annex A. The A3-2 fixed reference channel (FRC) settings include: FDD, 1.4MHz, QPSK, and 1/3 code rate.
rmc = lteRMCUL('A3-2');
[waveform,grid,rmccfgout] = lteRMCULTool(rmc,1);
Inspect the FRC configuration settings.
rmccfgout
rmccfgout = struct with fields:
RC: 'A3-2'
NULRB: 6
NCellID: 0
NFrame: 0
NSubframe: 0
CyclicPrefixUL: 'Normal'
CyclicShift: 0
Shortened: 0
Hopping: 'Off'
SeqGroup: 0
TotSubframes: 10
RNTI: 1
NTxAnts: 1
Windowing: 0
DuplexMode: 'FDD'
PUSCH: [1x1 struct]
SamplingRate: 1920000
Nfft: 128
rmccfgout.PUSCH
ans = struct with fields:
Modulation: 'QPSK'
NLayers: 1
DynCyclicShift: 0
NBundled: 0
BetaACK: 2
BetaCQI: 2
BetaRI: 2
NHARQProcesses: 8
RVSeq: [0 2 3 1]
RV: 0
NTurboDecIts: 5
OrthCover: 'On'
PMI: 0
PRBSet: [6x1 double]
TargetCodeRate: 0.3333
ActualCodeRate: [0.3611 0.3611 0.3611 0.3611 0.3611 0.3611 0.3611 0.3611 0.3611 0.3611]
TrBlkSizes: [600 600 600 600 600 600 600 600 600 600]
CodedTrBlkSizes: [1728 1728 1728 1728 1728 1728 1728 1728 1728 1728]
HARQProcessSequence: [1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8]
rmccfgout.PUSCH.ActualCodeRate
ans = 1×10
0.3611 0.3611 0.3611 0.3611 0.3611 0.3611 0.3611 0.3611 0.3611 0.3611
The actual code rate of 0.3611 is slightly higher then the target code rate of 1/3.
Generate Uplink RMC Waveform
Generate a time-domain signal and a 2-D array of the resource elements for a modified A1-1 fixed reference channel.
Initialize the frc
configuration structure and change the modulation scheme to '16QAM'
. Generate the txWaveform
, txGrid
, and output the configuration structure. Create a spectrum analyzer object, setting the sampling rate. Plot the waveform.
frc = lteRMCUL('A1-1'); frc.PUSCH.Modulation = '16QAM';
[txWaveform,txGrid,rmcCfgOut] = lteRMCULTool(frc,[1;0;0;1]);
saScope = spectrumAnalyzer(SampleRate=rmcCfgOut.SamplingRate); saScope(txWaveform)
Customized Uplink RMC configuration
Create a new customized parameter set by overriding selected values of an existing preset RMC to define a full-band, 5MHz, PUSCH using 64QAM modulation, and 1/3 coding rate.
Begin with TS 36.104 Annex A, RMC A1-3, which matches this criteria but with QPSK modulation.
rmcOverride.RC = 'A1-3';
rmc = lteRMCUL(rmcOverride,1);
rmc.PUSCH
ans = struct with fields:
Modulation: 'QPSK'
NLayers: 1
DynCyclicShift: 0
NBundled: 0
BetaACK: 2
BetaCQI: 2
BetaRI: 2
NHARQProcesses: 8
RVSeq: [0 2 3 1]
RV: 0
NTurboDecIts: 5
OrthCover: 'On'
PMI: 0
PRBSet: [25x1 double]
TargetCodeRate: 0.3333
ActualCodeRate: [0.3111 0.3111 0.3111 0.3111 0.3111 0.3111 0.3111 0.3111 0.3111 0.3111]
TrBlkSizes: [2216 2216 2216 2216 2216 2216 2216 2216 2216 2216]
CodedTrBlkSizes: [7200 7200 7200 7200 7200 7200 7200 7200 7200 7200]
Override the PUSCH modulation. lteRMCUL
returns recomputed PUSCH transport block sizes and physical channel capacities to maintain the coding rate of R=1/3.
rmcOverride.PUSCH.Modulation = '64QAM';
rmc = lteRMCUL(rmcOverride,1);
rmc.PUSCH
ans = struct with fields:
Modulation: '64QAM'
NLayers: 1
DynCyclicShift: 0
NBundled: 0
BetaACK: 2
BetaCQI: 2
BetaRI: 2
NHARQProcesses: 8
RVSeq: [0 2 3 1]
RV: 0
NTurboDecIts: 5
OrthCover: 'On'
PMI: 0
PRBSet: [25x1 double]
TargetCodeRate: 0.3333
ActualCodeRate: [0.3378 0.3378 0.3378 0.3378 0.3378 0.3378 0.3378 0.3378 0.3378 0.3378]
TrBlkSizes: [7224 7224 7224 7224 7224 7224 7224 7224 7224 7224]
CodedTrBlkSizes: [21600 21600 21600 21600 21600 21600 21600 21600 21600 21600]
Input Arguments
rc
— Reference measurement channel
'A1-1'
| 'A1-2'
| 'A1-3'
| 'A1-4'
| 'A1-5'
| 'A2-1'
| 'A2-2'
| 'A2-3'
| 'A3-1'
| 'A3-2'
| 'A3-3'
| 'A3-4'
| 'A3-5'
| 'A3-6'
| 'A3-7'
| 'A4-1'
| 'A4-2'
| 'A4-3'
| 'A4-4'
| 'A4-5'
| 'A4-6'
| 'A4-7'
| 'A4-8'
| 'A5-1'
| 'A5-2'
| 'A5-3'
| 'A5-4'
| 'A5-5'
| 'A5-6'
| 'A5-7'
| 'A7-1'
| 'A7-2'
| 'A7-3'
| 'A7-4'
| 'A7-5'
| 'A7-6'
| 'A8-1'
| 'A8-2'
| 'A8-3'
| 'A8-4'
| 'A8-5'
| 'A8-6'
| 'A11-1'
| 'A3-2-9RB'
| 'A4-3-9RB'
Reference channel, specified as a character vector or string scalar. Use double quotes for string. This argument identifies the reference measurement channel (RMC) number, as specified in TS 36.104 [2]. See UL Reference Channel Options for a list of the default top-level configuration associated with the available uplink reference channels.
Data Types: char
| string
trdata
— Information bits
column vector | cell array of one or two column vectors
Information bits, specified as a column vector or a cell array
containing one or two column vectors of bit values. Each vector contains
the information bits stream to be coded across the duration of the
generation, which represents multiple concatenated transport blocks.
Internally these vectors are looped if the number of bits required
across all subframes of the generation exceeds the length of the vectors
provided. Looping on the information bits allows you to enter a short
pattern, such as [1;0;0;1]
, that is repeated as
the input to the transport coding. The TrBlkSizes
matrix
field of rmccfgout
.
PUSCH
defines
the number of data bits taken from the information bit stream for
each subframe of generation.
Data Types: double
| cell
duplexmode
— Duplexing mode
'FDD'
(default) | optional | 'TDD'
Duplexing mode, specified as 'FDD'
or 'TDD'
to
indicate the frame structure type of the generated waveform.
Data Types: char
| string
totsubframes
— Total number of subframes
10 (default) | optional | positive numeric scalar
Total number of subframes, specified as a numeric scalar. Optional. This argument specifies the total number of subframes that form the resource grid.
Data Types: double
rmccfg
— Reference channel configuration
structure
Reference channel configuration, specified as a structure. The
structure defines any (or all) of the fields or subfields. The reference
configuration structure with default parameters can easily be created
using the lteRMCUL
function. lteRMCUL
generates the various FRC configuration
structures, as defined in TS 36.104 [2], Annex A.
You can specify rmccfg
to include fields that are contained in the output
structure, rmccfgout
.
Data Types: struct
cqi
— CQI information bits
numeric vector
CQI information bits, specified as a numeric vector. CQI stands
for channel quality information. cqi
can be empty
if these particular control information bits are not present in the
transmission. cqi
is not treated as a data stream,
and thus each subframe contains the same CQI information bits.
Data Types: double
ri
— RI information bits
numeric vector
RI information bits, specified as a numeric vector. RI stands
for rank indication. ri
can be empty if these
particular control information bits are not present in the transmission. ri
is
not treated as a data stream, and thus each subframe contains the
same RI information bits.
Data Types: double
ack
— ACK information bits
numeric vector
ACK information bits, specified as a numeric vector. ACK stands
for acknowledgment in automatic repeat request (ARQ) protocols. ack
can
be empty if these particular control information bits are not present
in the transmission. ack
is not treated as a
data stream, and thus each subframe contains the same ACK information
bits.
Data Types: double
Output Arguments
waveform
— Generated RMC time-domain waveform
numeric matrix
Generated RMC time-domain waveform, returned as a T-by-P numeric matrix. T is the number of time-domain samples and P is the number of antennas.
grid
is a 3-D array of resource elements
for the generated subframes across all configured antenna ports, as
described in Represent Resource Grids. rmccfgout
is
a structure containing information about the SC-FDMA modulated waveform
and RMC configuration parameters.
Data Types: double
Complex Number Support: Yes
grid
— Populated resource grid
numeric 3-D array
Populated resource grid, returned as a numeric 3-D array of resource elements for several subframes across all configured antenna ports, as described in Represent Resource Grids.
grid
represents the populated resource
grid for all the physical channels specified in TS 36.104 [2], Annex A
Data Types: double
Complex Number Support: Yes
rmccfgout
— Configuration parameters
structure
Configuration Parameters Structure
Configuration parameters, returned as a structure. rmccfgout
contains
the following fields.
Parameter Field | Values | Description |
---|---|---|
RC |
| Reference channel number |
NULRB | Scalar integer from 6 to 110 | Number of uplink resource blocks. () |
NCellID | Integer from 0 to 503 | Physical layer cell identity |
NFrame | 0 (default), nonnegative scalar integer | Frame number |
NSubFrame | 0 (default), nonnegative scalar integer | Initial subframe number |
CyclicPrefixUL |
| Cyclic prefix length |
CyclicShift | 0, 1, 2, 3, 4, 5, 6, 7 | Cyclic shift. This argument yields . |
Shortened | 0 (default), 1 | Subframe shortened flag. If the function sets the flag
to |
Hopping |
| Hopping type |
SeqGroup | 0 (default), integer from 0 to 29 | PUSCH sequence group assignment (ΔSS). |
TotSubFrames |
Positive scalar integer | Total number of subframes to generate This argument specifies the total number of subframes that form the resource grid. |
RNTI |
Scalar integer | Radio network temporary identifier (RNTI) value (16 bits) |
NTxAnts | 1, 2, 4 | Number of transmission antennas. |
Windowing | Nonnegative scalar integer | The number of time-domain samples over which windowing and overlapping of SC-FDMA symbols is applied |
DuplexMode |
| Duplexing mode, specified as either:
It represents the frame structure type. |
PUSCH | Structure | PUSCH transmission configuration |
SRS | Structure | Sounding Reference Signal (SRS) configuration |
SamplingRate | Numeric scalar | Carrier sampling rate in Hz, NSC / NSYM × 3.84e6, where NSC is the number of subcarriers and NSYM is the number of SC-FDMA symbols in a subframe. |
Nfft | Scalar integer, typically one of {128, 256, 512, 1024,
1536, 2048} for standard channel bandwidths { | Number of FFT frequency bins |
PUSCH Substructure
The substructure PUSCH
relates to the physical
channel configuration and contains these fields:
Parameter Field | Values | Description |
---|---|---|
Modulation | 'QPSK' , '16QAM' , '64QAM' , or
'256QAM' | Modulation format |
NLayers | 1, 2, 3, 4 | Number of transmission layers. |
DynCyclicShift | 0, 1, 2, 3, 4, 5, 6, 7 | Cyclic shift for DM-RS (yields ). |
NBundled | 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 | HARQ-ACK bundling scrambling sequence index |
BetaACK | Scalar integer | Modulation and coding scheme (MCS) offset for HARQ-ACK bits |
BetaCQI | Scalar integer | Modulation and coding scheme (MCS) offset for CQI and PMI bits |
BetaRI | Scalar integer | Modulation and coding scheme (MCS) offset for RI bits |
NHARQProcesses | 1, 2, 3, 4, 5, 6, 7, 8 | Number of HARQ processes per component carrier |
RVSeq | Numeric matrix | Redundancy version (RV) indicator used by all HARQ processes, returned as a numeric
matrix. |
RV | Numeric matrix | Redundancy version (RV) indicator in initial subframe, returned as a numeric matrix.
This argument is a one- or two-column vector that
specifies the redundancy version for one or two
codewords used in the initial subframe number,
|
NTurboDecIts | Positive scalar integer | Number of turbo decoder iteration cycles |
OrthCover |
| Orthogonal cover sequence flag. Applies ( |
PMI | Integer from 0 to 23 | Scalar precoder matrix indication (PMI) to be used during precoding |
PRBSet | Integer matrix | Physical resource block set of indices, returned as an integer matrix. This argument is a 1- or 2-column matrix that contains the 0-based physical resource block indices (PRBs) corresponding to the resource allocations for this PUSCH. |
TargetCodeRate | Numeric scalar or vector | Target code rates for each subframe in a frame. Used for calculating the transport block sizes according to TS 36.101 [1], Annex A.2.1.2. If |
ActualCodeRate | Numeric vector | Actual code rates for each subframe in a frame. The maximum actual code rate is 0.93. This parameter field is only for informational purposes and is read-only. |
TrBlkSizes | Numeric vector | Transport block sizes for each subframe in a frame |
CodedTrBlkSizes | Numeric vector | Coded transport block sizes for each a subframe in a frame, returned as a numeric vector. This parameter field is only for informational purposes and is read-only. |
HARQProcessSequence | 1-by-LHARQ_Seq integer vector. | One-based HARQ process indices for the internal HARQ scheduling sequence, based on same transport block size in all active subframes. See footnote. |
|
SRS Substructure
The substructure SRS
contains these fields:
Parameter Field | Values | Description |
---|---|---|
NTxAnts | 1 (default), 2, 4 | Number of transmission antennas. |
BWConfig | 0, 1, 2, 3, 4, 5, 6, 7 | Cell-specific SRS Bandwidth Configuration value (CSRS) |
BW | 0, 1, 2, 3 | UE-specific SRS Bandwidth value (BSRS) |
ConfigIdx | Integer from 0 to 644 | Configuration index (ISRS) for UE-specific periodicity (TSRS) and subframe offset (Toffset). |
TxComb | 0 or 1 | Transmission comb. Controls SRS positions; SRS is transmitted in 6 carriers per resource block on odd (1) and even (0) resource indices. |
HoppingBW | 0, 1, 2, 3 | SRS Frequency hopping configuration index (bhop) |
FreqPosition | Integer from 0 to 23 | Frequency domain position (nRRC) |
CyclicShift | 0 (default), integer from 0 to 7 | UE-specific cyclic shift () |
SeqGroup | 0 (default), integer from 0 to 29 | SRS sequence group number (u) |
SeqIdx | 0 or 1 | Base sequence number (v) |
SubframeConfig | Integer from 0 to 15 | Sounding reference signal (SRS) subframe configuration |
The following fields are present
only when DuplexMode is set to 'TDD' . | ||
NF4RachPreambles | 0, 1, 2, 3, 4, 5, 6 | Number of RACH preamble frequency resources of Format 4 in UpPTS |
OffsetIdx | 0 or 1 | Choice of SRS Subframe Offset in the case of 2 ms SRS periodicity.
This parameter indexes the two SRS Subframe Offset entries in the
row specified by the |
More About
UL Reference Channel Options
Initialization choices available for the uplink reference channel and associated top-level configuration defaults include:
Reference channels | Reference channels (continued) | Reference channels (continued) |
---|---|---|
|
|
|
The fields in the output configuration structure, rmccfgout
,
are initialized in accordance with the reference channels defined
in TS 36.104, Annex A.
'A3-2-9RB'
and'A4-3-9RB'
are custom RMC configured for non-standard bandwidth but with the same code rate as the standardized version.'A11-1'
enables TTI bundling and the corresponding HARQ pattern (enhanced HARQ pattern for FDD).
References
[1] 3GPP TS 36.101. “Evolved Universal Terrestrial Radio Access (E-UTRA); User Equipment (UE) Radio Transmission and Reception.” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network. URL: https://www.3gpp.org.
[2] 3GPP TS 36.104. “Evolved Universal Terrestrial Radio Access (E-UTRA); Base Station (BS) Radio Transmission and Reception.” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network. URL: https://www.3gpp.org.
[3] 3GPP TS 36.212. “Evolved Universal Terrestrial Radio Access (E-UTRA); Multiplexing and channel coding.” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network. URL: https://www.3gpp.org.
Version History
Introduced in R2014aR2019b: This function now opens the LTE Waveform Generator app
In previous releases, the input-free syntaxes of this function opened the LTE Uplink RMC Generator app. Starting in R2019b, input-free calls to this function open the LTE Waveform Generator app for an uplink RMC waveform.
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)
Asia Pacific
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 日本Japanese (日本語)
- 한국Korean (한국어)