This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English version of the page.

Note: This page has been translated by MathWorks. Click here to see
To view all translated materials including this page, select Country from the country navigator on the bottom of this page.


Generate 1xEV-DO forward link waveform


waveform = evdoForwardWaveformGenerator(cfg)



waveform = evdoForwardWaveformGenerator(cfg) returns the 1xEV-DO forward link waveform as defined by the parameter configuration structure, cfg.

The top-level parameters and lower-level substructures of cfg specify the waveform and channel properties the function uses to generate a 1xEV-DO waveform. You can generate cfg by using the evdoForwardReferenceChannels function.


The tables herein list the allowable values for the top-level parameters and substructure fields. However, not all parameter combinations are supported. To ensure that the input argument is valid, use the evdoForwardReferenceChannels function. If you input the structure fields manually, consult [1] to ensure that the input parameter combinations are permitted.


collapse all

Create a structure to transmit a Revision A 1xEV-DO channel consisting of three 1024-bit packets transmitted over 2 slots with a 64-bit preamble length.

config = evdoForwardReferenceChannels('RevA-1024-2-64',3);

Verify that the function created a 1-by-3 structure array. Each element in the structure array corresponds to a data packet.

ans = 1x3 struct array with fields:

Examine the first structure element to verify the packet size, number of slots, and preamble length match what you specified in the function call.

ans = struct with fields:
          MACIndex: 0
        PacketSize: 1024
          NumSlots: 2
    PreambleLength: 64

Generate the waveform.

wv = evdoForwardWaveformGenerator(config);

Create a structure to generate two packets of a 1.8 Mbps Release 0 channel.

config = evdoForwardReferenceChannels('Rel0-1843200-1',2);

Calculate the sample rate of the waveform.

fs = 1.2288e6 * config.OversamplingRatio;

Disable the internal filter of the evdoForwardWaveformGenerator function. Generate the 1xEV-DO waveform. Plot the spectrum of the waveform.

config.FilterType = 'off';
wv = evdoForwardWaveformGenerator(config);

sa = dsp.SpectrumAnalyzer('SampleRate',fs);

Create a lowpass FIR filter with a 500 kHz passband, a 750 kHz stopband, and a stopband attenuation of 60 dB.

d = designfilt('lowpassfir', ...
    'PassbandFrequency',500e3, ...
    'StopbandFrequency',750e3, ...
    'StopbandAttenuation',60, ...

Change the filter type to 'Custom' and specify the coefficients from the digital filter, d.

config.FilterType = 'Custom';
config.CustomFilterCoefficients = d.Coefficients;

Generate the waveform using the custom filter coefficients.

wv = evdoForwardWaveformGenerator(config);

Plot the spectrum of the filtered 1xEV-DO waveform.


The filter attenuates the waveform by 60 dB for frequencies outside of 750 kHz.

Input Arguments

collapse all

Configuration of the parameters and channels used by the waveform generator. The configuration structure is defined in these tables.

Top-Level Parameters and Substructures

Parameter Field



Release'Release0' | 'RevisionA'



Nonnegative scalar integer [0, 511]

PN offset of the base station

IdleSlotsWithControl'Off' | 'On'

Include idle slots with control channels

EnableControl'Off' | 'On'

Enable control signaling


Positive scalar integer

Number of chips in the waveform


Positive scalar integer [1, 8]

Oversampling ratio at output

FilterType'cdma2000Long' | 'cdma2000short' | 'Custom' | 'Off'

Select filter type or disable filtering


Real vector

Custom filter coefficients (applies when the FilterType field is set to 'Custom')

InvertQ'Off' | 'On'

Negate the quadrature output

EnableModulation'Off' | 'On'

Enable carrier modulation


Nonnegative scalar integer

Carrier modulation frequency (applies when EnableModulation is 'On')



See PacketSequence substructure.


See PacketDataSources substructure.

PacketSequence Substructure

Include the PacketSequence substructure in the cfg structure to define a sequence of data packets for consecutive transmission. The PacketSequence substructure contains these fields.

Parameter Field




Positive scalar integer

MAC index associated with the packet

Release 0
DataRate38400 | 76800 | 153600 | 307200 | 614400 | 921600 | 1228800 | 1843200 | 2457600

Data rate (bps)


Positive scalar integer

Number of slots

Revision A
PacketSize128 | 256 | 512 | 1024 | 2048 | 3072 | 4096 | 5120

Packet size (bits)

NumSlots1 | 2 | 4 | 8 | 16

Number of slots

PreambleLength64 | 128 | 256 | 512 | 1024

Preamble length (chips)

PacketDataSources Substructure

Include a PacketDataSources substructure in the cfg structure to define a set of matching data sources for each MAC index. The PacketDataSources substructure contains these fields.

Parameter Field




Positive scalar integer

MAC index associated with the packet


Cell array, {'PN Type', RN Seed} or binary vector.

Standard PN sequence options are 'PN9', 'PN15', 'PN23', 'PN9-ITU', and 'PN11'.

Data source. Specify a standard PN sequence with a random number seed or a custom vector.

EnableCoding'Off' | 'On'

Enable error correction coding

Output Arguments

collapse all

Modulated baseband waveform comprising the primary cdma2000™ physical channels, returned as a complex vector array.


[1] 3GPP2 C.S0024–A v3.0. “cdma2000 High Rate Packet Data Air Interface Specification.” 3rd Generation Partnership Project 2.

Introduced in R2015b