# GSWEEP

## Purpose:

Generates a linearly swept sine wave.

## Syntax:

GSWEEP(length, spacing, start, end)

(s, f) = GSWEEP(length, spacing, start, end)

 length - An integer, the number of output samples. spacing - A real, the sample interval. start - Optional. A real, the starting frequency in Hertz. Defaults to 10.0. end - Optional. A real, the ending frequency in Hertz. Defaults to 100.0.

## Returns:

A series, a linearly swept sine wave.

(s, f) = GSWEEP(length, spacing, start, end) returns both the swept sine wave and the instantaneous frequency series.

## Example:

W1: gsweep(1000, .001, 2, 200)

Creates a 1000 point linear swept sine wave with points spaced at an interval of 0.001 seconds (a sample rate of 1/.001 = 1000 Hz) starting at 2 Hz and ending at 200 Hz.

## Example:

W2: spectrum(W1, 1024)

W3: specgram(W1, 128, 120, 512)

W4: demodfm(W1)

W2 displays the normalized FFT showing frequency information from 2 to 200 Hz. W3 displays the joint time-frequency plot of W1, clearly displaying the linear frequency ramp. W4 demodulates W1 to approximately recover the linear frequency ramp. ## Example:

(s, f) = gsweep(1000, .001, 2, 200)

Same as the first example except variable s contains the swept sine wave and variable f contains the instantaneous frequency values.

## Remarks:

GSWEEP returns a series that is a linear frequency sweep from the starting frequency to the ending frequency. To prevent aliasing, both the starting and ending frequencies must be less than 1/(2*spacing), the Nyquist frequency.

The sweep is created by calculating the sine of the integrated linear ramp:

s = sin(2*pi*integ(t))

where:

t = start..inc..end

inc = (end - start) / length

See MODFM to frequency modulate any series.