umtsDownlinkWaveformGenerator
UMTS downlink waveform generation
Description
returns the Universal Mobile Telecommunications Service (UMTS) downlink waveform,
waveform
= umtsDownlinkWaveformGenerator(config
)waveform
, defined by the configuration structure,
config
. This function supports Wideband Code Division
Multiple Access (W-CDMA), High-Speed Downlink Packet Access (HSDPA), and Evolved
High-Speed Packet Access (HSPA+) waveform generation. The top-level parameters and
lower-level substructures of config
characterize the waveform
and channel properties of the umtsDownlinkWaveformGenerator
function output. The config
input is generated using the
umtsDownlinkReferenceChannels
function;
config
includes top-level parameters and substructures to
describe the different channels to include in the waveform. The top-level parameters
of config
are: TotFrames
,
PrimaryScramblingCode
, FilterType
,
OversamplingRatio
, and NormalizedPower
. To
enable the specific channels, you can add associated substructures:
DPCH
, PCCPCH
, SCCPCH
,
PCPICH
, SCPICH
, PSCH
,
SSCH
, PICH
, HSDPA
, and
OCNS
.
Note
Include an interfering downlink W-CDMA noise source by initializing the
OCNS
substructure. Specify the orthogonal channel
noise source (OCNS) parameters using the appropriate 3GPP definition,
Examples
UMTS Downlink Waveform Generation
Initialize a 'QPSK'
, 'H-Set1'
FRC reference channel and generate the UMTS waveform that corresponds to these settings.
Generate the configuration structure, frcStruct
.
rc = 'H-Set1'; modulation = 'QPSK'; frcStruct = umtsDownlinkReferenceChannels(rc, modulation);
Generate the desired waveform using frcStruct
as the input to the waveform generation function. Create a spectrum analyzer object sampling at chiprate
x OversamplingRatio
. Plot the waveform.
waveform = umtsDownlinkWaveformGenerator(frcStruct); saScope = spectrumAnalyzer(SampleRate=3.84e6*frcStruct.OversamplingRatio); saScope(waveform);
Input Arguments
config
— Definition of the channels included by waveform generator
structure
Top-Level Parameters and Substructures
Definition of the channels included by the waveform generator, specified as a structure.
Parameter Field | Required or Optional | Values | Description |
---|---|---|---|
TotFrames | Required | Nonnegative integer | Total number of 10 ms frames to be generated, specified as a nonnegative integer. The default is 1. |
PrimaryScramblingCode | Required | Nonnegative integer | Primary scrambling code index, specified as a nonnegative integer in the interval [0, 511]. |
FilterType | Required | 'RRC' (default), 'Off' | Enable or disable the RRC filter by setting |
OversamplingRatio | Required | Nonnegative integer | Oversampling ratio, specified as a nonnegative integer. |
NormalizedPower | Required | Float, | Overall waveform power in dBW relative to 1 ohm, specified as a float,
– |
DPCH | Optional | Not present, structure, or structure array | See DPCH Substructure. |
PCCPCH | Optional | Not present or structure | See PCCPCH Substructure. |
SCCPCH | Optional | Not present or structure | See SCCPCH Substructure. |
PCPICH | Optional | Not present or structure | See PCPICH Substructure. |
SCPICH | Optional | Not present or structure | See SCPICH Substructure. |
PSCH | Optional | Not present or structure | See PSCH Substructure. |
SSCH | Optional | Not present or structure | See SSCH Substructure. |
PICH | Optional | Not present or structure | See PICH Substructure. |
HSDPA | Optional | Not present or structure | See HSDPA Substructure. |
OCNS | Optional | Not present or structure | See OCNS Substructure. |
DPCH Substructure
To add dedicated physical channels (DPCHs) to the output structure, include the
DPCH
substructure in the
config
structure. The DPCH
substructure contains the following fields.
Parameter Field | Required or Optional | Values | Description |
---|---|---|---|
Enable | Required | 'On' , 'Off' | Enable or disable the channel by setting |
SlotFormat | Required | Nonnegative integer | DPCH slot format number, specified as a nonnegative integer in the interval [0, 16]. |
SpreadingCode | Required | Nonnegative integer | DPCH spreading code, specified as a nonnegative integer in the interval [0, 512]. For
multicode transmission, |
NMulticodes | Required | Positive integer | Number of DPCHs, specified as 1, 2, 3, 4, 5, or 6. |
SecondaryScramblingCode | Required | Nonnegative integer | DPCH secondary scrambling code index, specified as a nonnegative integer in the interval [0, 15]. |
TimingOffset | Required | Nonnegative integer | The timing offset in terms of the number of chips (x256Tchip), specified as a nonnegative integer in the interval [0, 149]. |
Power | Required | Float, | Channel power in dB, specified as a float, |
TPCData | Required | Binary scalar, binary vector | Transmit Power Control data, specified as a binary scalar or a vector with binary entries. |
TFCI | Required | Nonnegative integer | Transport Format Combination Indicator (TFCI), specified as a nonnegative integer in the interval [0, 1023]. |
DataSource | Required | Binary scalar, binary vector, character vector, cell array, or string scalar | DPCH data source, specified as a binary scalar, a vector with binary entries, a character vector, a cell array, or a string scalar. When
specifying To enable transport channel
coding, specify |
CCTrCH | Optional | Structure | See CCTrCH Substructure. |
CCTrCH Substructure
Include a CCTrCH
substructure instance individually for
DPCH
, PCCPCH
, and/or
SCCPCH
substructures. Separate instances of a
coded composite transport channel (CCTrCH) are added to the output
structures of the DPCH, P-CCPCH, and/or S-CCPCH physical channel
definitions. When the CCTrCH
substructure is
included, it contains the following fields.
Parameter Field | Required or Optional | Values | Description |
---|---|---|---|
Name | Optional | Character vector, string scalar Default depends on the physical channel specified | Name assigned to the CCTrCH, specified as a character vector or a string scalar.
Functions do not use the |
DTXPosition | Required | 'fixed' , 'flexible' | Specifies the DTX position, specified as |
TrCH | Required | Structure, structure array | Transport channels in the CCTrCH, specified as a structure or a structure array. |
TrCH.Name | Required | Character vector, string scalar Default depends on the physical channel specified | Name assigned to the TrCH, specified as a character vector or a string scalar.
Functions do not use the |
TrCH.CRC | Required | Character vector, string scalar | Cyclic redundancy check (CRC) polynomial specifier, specified as one of these values:
|
TrCH.TTI | Required | Positive integer | Transmission time interval (TTI) in milliseconds, specified as 10, 20, 40, or 80. |
TrCH.CodingType | Required |
| Channel coding type and rate, specified as |
TrCH.RMA | Required | Positive integer | Rate matching attribute value, specified as a positive integer in the interval [1, 256]. |
TrCH.DataSource | Required | Binary scalar, binary vector, character vector, cell array, or string scalar | Transport channel data source, specified as a binary scalar, a vector with binary entries, a cell array, or a string scalar. When defined as a
cell array use standard PN sequences and a seed value: {PN, seed}. PN
options for character vector or cell array are If no seed is specified, the shift register is initialized with all ones. |
Examples for setting
the
| |||
TrCH.ActiveDynamicPart | Required | Positive integer, vector | Active dynamic part, specified as a positive integer or a vector whose entries are
positive integers in the interval [1,
|
The | |||
TrCH.DynamicPart | Required | Structure, structure array | Size of each transport block, specified as a structure or a structure array. |
The | |||
TrCH.DynamicPart.BlockSize | Required | Positive integer | Transport block length, specified as a positive integer. |
TrCH.DynamicPart.BlockSetSize | Required | Integer, multiple of | Total number of bits in the transport block set. Implementation does not support
multiple transport blocks, so by definition |
Note
When configuring the output structure to transmit the RMC 0kbps as
defined in TS 25.101, Section A.3.0 [1], a transport channel
CRC is defined for transmission. The standard indicates DTCH
transport block size = 0 and transport block set size = 0. Our
implementation requires signaling transmission of a transport block
to transmit a CRC. In the
umtsDownlinkWaveformGenerator
, one
transport block of size zero is signaled by setting either
BlockSize or BlockSetSize
to
'0'
. Setting both
BlockSize
and BlockSetSize
to '0'
signals '0'
transport
block of size '0'
and no CRC is transmitted.
PCCPCH Substructure
To add the primary common control physical channel (PCCPCH) to the output structure, include
the PCCPCH
substructure in the
config
structure. The PCCPCH
substructure contains the following fields.
Parameter Field | Required or Optional | Values | Description |
---|---|---|---|
Enable | Required | 'On' , 'Off' | Enable or disable the channel by specifying |
Power | Required | Float, | PCCPCH power in dB, specified as a float, - |
DataSource | Required | Binary scalar, binary vector, character vector, cell array, or string scalar | PCCPCH data source, specified as a binary scalar, a vector with binary entries, a character vector, a cell array, or a string scalar. When
specifying To enable BCH transport channel
coding, specify |
CCTrCH | Optional | Structure | See |
SCCPCH Substructure
To add the secondary common control physical channel (SCCPCH) to the output structure, include
the SCCPCH
substructure in the
config
structure. The SCCPCH
substructure contains the following fields.
Parameter Field | Required or Optional | Values | Description |
---|---|---|---|
Enable | Required | 'On' , 'Off' | Enable or disable the channel by specifying |
SlotFormat | Required | Nonnegative integer | SCCPCH slot format number, specified as a nonnegative integer in the interval [0, 17]. |
SpreadingCode | Required | Nonnegative integer Valid range depends on slot format | SCCPCH spreading code, specified as a nonnegative integer in the interval [0, 255]. |
SecondaryScramblingCode | Required | Nonnegative integer | SCCPCH secondary scrambling code index, specified as a nonnegative integer in the interval [0, 15]. |
TimingOffset | Required | Nonnegative integer | Timing offset in terms of the number of chips (x256Tchip), specified as a nonnegative integer in the interval [0, 149]. |
Power | Required | Float, -inf , inf | SCCPCH power in dB, specified as a float, - |
TFCI | Required | Nonnegative integer | Transport format combination indicator, specified as a nonnegative integer in the interval [0, 1023]. |
DataSource | Required | Scalar, vector, character vector, cell array, or string scalar | SCCPCH data source, specified as a binary scalar, a vector with binary entries, a character vector, a cell array, or a string scalar. When defined
as a cell array use standard PN sequences and a seed value: {PN, seed}. PN
options for character vector or cell array are To
enable PCH/FACH transport channel coding, specify
|
CCTrCH | Optional | Structure | See |
PCPICH Substructure
To add the primary common pilot channel to the output structure, include the
PCPICH
substructure in the
config
structure. The PCPICH
substructure contains the following fields.
Parameter Field | Required or Optional | Values / Ranges / Notes | Description |
---|---|---|---|
Enable | Required | 'On' , 'Off' | Enable or disable the channel by specifying |
Power | Required | Float, – | PCPICH power in dB, specified as a float, – |
SCPICH Substructure
To add the secondary common pilot channel (SCPICH) to the output structure, include the
SCPICH
substructure in the
config
structure. The SCPICH
substructure contains the following fields.
Parameter Field | Required or Optional | Values | Description |
---|---|---|---|
Enable | Required | 'On' , 'Off' | Enable or disable the channel by specifying |
SpreadingCode | Required | Nonnegative integer | SCPICH spreading code, specified as a nonnegative integer in the interval [0, 255]. |
SecondaryScramblingCode | Required | Nonnegative integer | SCPICH secondary scrambling code index, specified as a nonnegative integer in the interval [0, 15]. |
Power | Required | Float, – | SCPICH power in dB, specified as a float, – |
PSCH Substructure
To add the physical shared channel (PSCH) to the output structure, include the
PSCH
substructure in the
config
structure. The PSCH
substructure contains the following fields.
Parameter Field | Required or Optional | Values | Description |
---|---|---|---|
Enable | Required | 'On' , 'Off' | Enable or disable the channel by specifying |
Power | Required | Float, –inf , inf | PSCH power in dB, specified as a float, – |
SSCH Substructure
To add the secondary synchronization channel (SSCH) to the output structure, include the
SSCH
substructure in the
config
structure. The SSCH
substructure contains the following fields.
Parameter Field | Required or Optional | Values | Description |
---|---|---|---|
Enable | Required | 'On' , 'Off' | Enable or disable the channel by specifying |
Power | Required | Float, – | SSCH power in dB, specified as a float, – |
PICH Substructure
To add the page indicator channel (PICH) to the output structure, include the
PICH
substructure in the
config
structure. The PICH
substructure contains the following fields.
Parameter Field | Required or Optional | Values | Description |
---|---|---|---|
Enable | Required | 'On' , 'Off' | Enable or disable the channel by specifying |
SpreadingCode | Required | Nonnegative integer | PICH spreading code, specified as a nonnegative integer in the interval [0, 255]. |
TimingOffset | Required | Nonnegative integer | Timing offset in terms of the number of chips (x256Tchip), specified as a nonnegative integer in the interval [0, 149]. |
Power | Required | Float, – | PICH power in dB, specified as a float, – |
DataSource | Required | Scalar, vector, character vector, cell array, or string scalar | PICH data source, specified as a binary scalar, a vector with binary entries, a character vector, a cell array, or a string scalar. When defined
as a cell array use standard PN sequences and a seed value: {PN, seed}. PN
options for character vector or cell array are To
use paging data, specify |
Np | Required | Positive integer | Number of paging indicators per frame, specified as one of the values 18, 36, 72, 144. |
HSDPA Substructure
To add high-speed downlink packet access (HSDPA) information and channels to the output
structure, include the HSDPA
substructure in the
config
structure. The HSDPA
substructure
contains the following fields.
Parameter Field | Required or Optional | Values / Ranges / Notes | Description |
---|---|---|---|
Enable | Required | 'On' , 'Off' | Enable or disable the HSDPA channels (HS-PDSCHs and HS-SCCH) by specifying
|
CodeGroup | Required | Positive integer | Number of channelization codes used simultaneously for HS-PDSCHs, specified as a positive integer in the interval [1, 16]. |
CodeOffset | Required | Nonnegative integer | Offset to the first channelization code to use for HS-PDSCHs, specified as a nonnegative integer in the interval [0, 15]. |
Modulation | Required | 'QPSK' , '16QAM' , '64QAM' | Symbol modulation, specified as one of the values |
VirtualBufferCapacity | Required | Positive integer | Number of soft channel bits (or soft metric location) in a HARQ process for the H-Sets
as defined in TS 36.101 Annex A.7. Specify
|
InterTTIDistance | Required | Positive integer | Transmission time interval in subframes. This interval is the distance between different HARQ transmissions to the same UE.
|
NHARQProcesses | Required | Positive integer | Total number of HARQ processes, specified as a positive integer in the interval [1, 8]. |
XrvSequence | Required | Nonnegative integer, vector of nonnegative integers | Redundancy and constellation version coding sequence, specified as a nonnegative
integer, or a vector whose entries are nonnegative integers, in the
interval [0, 7].
When a HARQ process completes all transmissions corresponding
to the For sequences used for HSDPA H-Sets, see TS 25.101 Section 9. |
UEId | Required | Nonnegative integer | UE identity, specified as a nonnegative integer in the interval [0, 216 – 1]. |
TransportBlockSizeId | Required | Nonnegative integer | Transport block size index (xtbs) signaled on
the HS-SCCH as defined in TS 25.212 Section 4.6. The calculation is
based on the |
HSSCCHSpreadingCode | Required | Nonnegative integer | HS-SCCH spreading code, specified as a nonnegative integer in the interval [0, 127]. |
SecondaryScramblingCode | Required | Nonnegative integer | Secondary scrambling code index for HS-PDSCH and HS-SCCH channels, specified as a nonnegative integer in the interval [0, 15]. |
HSPDSCHPower | Required | Float, – | HS-PDSCH power in dB, specified as a float, – |
HSSCCHPower | Required | Float | HS-SCCH power in dB, specified as a float, – |
DataSource | Required | Scalar, vector, character vector, cell array, or string scalar | HSDPA data source, specified as a binary scalar, a vector with binary entries, a character vector, a cell array, or a string scalar. When
specifying To enable HS-DSCH transport channel coding, specify
|
HSDSCH | Optional | Not present or a structure | HS-DSCH transport channel configuration, specified as a structure. |
The following fields are required
only if the HSDSCH substructure is present. | |||
HSDSCH.BlockSize | Required | Nonnegative integer | Transport block size, specified as a nonnegative integer. |
HSDSCH.DataSource | Required | Scalar, vector, character vector, cell array, or string scalar | HS-DSCH transport data source, specified as a binary scalar, a vector with binary entries, a cell array, or a string scalar. When defined as a
cell array use standard PN sequences and a seed value: {PN, seed}. PN
options for character vector or cell array are
If no seed is specified, the shift register is initialized with all ones. |
In the generator, the HSPDA functionality creates continuous HS-PDSCH and HS-SCCH
transmissions. This functionality supports the HSPDA H-Set fixed reference channels where a
multi-HARQ reference transmission sequence is defined. The multi-HARQ reference transmission
sequence is masked with the same RNTI, directed at a single UE specified by the
UEId
parameter. The NHARQProcesses
and
InterTTIDistance
parameters define the reference transmission
frequency to the UE. Any gaps between the reference subframes are filled with additional
HS-PDSCH/HS-SCCH subframes. These subframes are masked with a complementary RNTI, directed
at a different UE defined as xor(UEId,65535)
. The
NHARQProcesses
parameter gives the numbers of HARQ processes used in
the reference transmission. The number of gap subframes between each transport block
transmission or retransmission for different HARQ processes is
InterTTIDistance-1
. Due to the HARQ ACK-NACK feedback signaling
requirements, the gap between the transmissions of the same HARQ process should be no less
than six subframes.
The HSDPA.DataSource
parameter controls the data transmitted on the
reference PDSCH and HS-SCCH physical channels. If HSDPA.DataSource
is set
to 'HSDSCH'
, the reference PDSCH data comes from an HS-DSCH transport
channel and the HS-SCCH channel carries the associated control information. In this case,
the source to the HS-DSCH transport channel is parameterized by the fields in the
HSDSCH
substructure data (transport block size and data stream). This
reference data is also used to fill the non-reference gap subframes:
The gap HS-PDSCH subframes are filled with the same HS-DSCH encoded data used for reference transmission. The encoded data is scrambled according to the subframe.
The gap HS-SCCH subframes are filled with the encoded control information using the complimentary RNTI.
The HS-SCCH transmission is aligned with the scrambling boundary. The HS-PDSCH
transmission begins 2×Tslot = 5120
chips after the start of the HS-SCCH
(see TS 25.211 Section 7.8). To fill the first two slots in the generated waveform, the
HS-PDSCH wraps around for the last subframe.
The virtualBufferCapacity
parameter must match the number of soft
channel bits in a HARQ process used in the test device or decoding software.
OCNS Substructure
To add orthogonal channel noise source (OCNS) information to the output structure, include the
OCNS
substructure in the
config
structure. The OCNS
substructure contains the following fields.
Parameter Field | Required or Optional | Values | Description |
---|---|---|---|
Enable | Required | 'On' , 'Off' | Enable or disable the channel by specifying |
Power | Required | Float, –inf , or inf | OCNS overall power in dB, specified as a float, |
OCNSType | Required | Character vector or string scalar | If
For test model generation, set the corresponding channel
configuration |
Output Arguments
waveform
— Modulated baseband waveform containing the UMTS physical channels
complex vector array
Modulated baseband waveform containing the UMTS physical channels,
returned as a complex vector array, sampled at (3.84 × config
.
OversamplingRatio
)
MHz.
Data Types: double
Complex Number Support: Yes
References
[1] 3GPP TS 25.101. “Universal Mobile Telecommunications System (UMTS); User Equipment (UE) Radio Transmission and Reception (FDD).” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network. URL: https://www.3gpp.org.
[2] 3GPP TS 25.141. “Universal Mobile Telecommunications System (UMTS); Base Station (BS) Conformance Testing (FDD).” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network. URL: https://www.3gpp.org.
[3] 3GPP TS 25.211. “Universal Mobile Telecommunications System (UMTS); Physical channels and mapping of transport channels onto physical channels (FDD).” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network. URL: https://www.3gpp.org.
[4] 3GPP TS 25.212. “Universal Mobile Telecommunications System (UMTS); Multiplexing and channel coding (FDD).” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network. URL: https://www.3gpp.org.
[5] 3GPP TS 25.306. “Universal Mobile Telecommunications System (UMTS); UE Radio Access capabilities.” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network. URL: https://www.3gpp.org.
[6] 3GPP TS 25.321. “Universal Mobile Telecommunications System (UMTS); Medium Access Control (MAC) protocol specification.” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network. URL: https://www.3gpp.org.
[7] 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.
Version History
Introduced in R2015a
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 (한국어)