# evdoForwardWaveformGenerator

## Syntax

``waveform = evdoForwardWaveformGenerator(cfg)``

## 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. NoteThe 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
`DataRate``38400` | `76800` | `153600` | `307200` | `614400` | `921600` | `1228800` | `1843200` | `2457600`

Data rate (bps)

`NumSlots`

Positive scalar integer

Number of slots

Revision A
`PacketSize``128` | `256` | `512` | `1024` | `2048` | `3072` | `4096` | `5120`

Packet size (bits)

`NumSlots``1` | `2` | `4` | `8` | `16`

Number of slots

`PreambleLength``64` | `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