Generates a square wave with a specified rise time.

GRTSQR(length, spacing, frequency, phase, rt, duty)

length |
- |
An integer, the length of the output series. |

spacing |
- |
A real, the spacing (delta x) between each point on the |

frequency |
- |
Optional. A real, the frequency specified in cycles per second (Hertz). Defaults to 1. |

phase |
- |
Optional. A real, the phase specified in radians. Defaults to 0. |

rt |
- |
Optional. A real, the rise time in seconds. Defaults to 0.1. |

duty |
- |
Optional. A real, between 0 and 100. The duty cycle, the percentage of a period the squarewave is "on". Defaults to 50.0. |

A series.

grtsqr(100, .01, 3, 0, .04)

generates 100 points of a 3 Hz square wave with a rise time of 0.04 seconds.

grtsqr(100, .01, 3, 0, .04, 30)

same as above except the duty cycle is 30%.

Filters an ideal square wave with a single pole low pass analog filter to produce a square wave with a specified rise time. The rise time is defined as the time required for a step to go from 10% to 90% of final value. The desired rise time rt = τ, specifies the low pass cutoff frequency of the filter as follows:

Fc = 2.2 / 2πτ

The squarewave is normalized with an amplitude of 0.0 to 1.0 Volts.

The single pole analog lowpass filter is implemented in the digital domain using the impulse invariance technique.