# evdoForwardWaveformGenerator

## Description

example

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.

Note

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.

## Examples

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.

config.PacketSequence
ans=1×3 struct array with fields:
MACIndex
PacketSize
NumSlots
PreambleLength

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

config.PacketSequence(1)
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.

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

sa = spectrumAnalyzer( ...
SampleRate=fs, ...
ChannelNames=["1xEv-DO","1xEV-DO filtered"]);

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, ...
SampleRate=fs);

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.

wvfiltered = evdoForwardWaveformGenerator(config);

Plot the spectrum of the unfiltered and filtered 1xEV-DO waveform. The filter attenuates the waveform by 60 dB for frequencies outside of $±$ 750 kHz.

sa(wv,wvfiltered)

## 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

Values

Description

Release'Release0' | 'RevisionA'

1xEV-DO

PNOffset

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

NumChips

Positive scalar integer

Number of chips in the waveform

OversamplingRatio

Positive scalar integer [1, 8]

Oversampling ratio at output

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

Select filter type or disable filtering

CustomFilterCoefficients

Real vector

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

InvertQ'Off' | 'On'

EnableModulation'Off' | 'On'

Enable carrier modulation

ModulationFrequency

Nonnegative scalar integer

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

PacketSequence

Structure

See PacketSequence substructure.
PacketDataSources

Structure

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

Values

Description

MACIndex

Positive scalar integer

MAC index associated with the packet

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

Data rate (bps)

NumSlots

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

Values

Description

MACIndex

Positive scalar integer

MAC index associated with the packet

DataSource

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.

## References

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

## Version History

Introduced in R2015b