The Signal Generator synthesizes test signals — sines, sweeps, modulated tones, noise and
free-form formula signals — and writes them to a HEAD time-data .hdf file.
Generated signals are useful for verifying an analysis chain, exciting a structure through a
shaker amplifier, checking a filter design, or producing reference material for training and
demonstrations.
A generated file is built from channels, and each channel is a sequence of segments laid end to end. Every segment has its own waveform type, frequency, amplitude and duration, so a complete test signal — for example silence, then a calibration tone, then a sweep, then silence again — is described in a single channel.
The generator opens inside the Start Menu content area and keeps its channel and segment configuration for the rest of the session, so you can navigate away and come back without losing your work.
| Area | Contents |
|---|---|
| Toolbar (top) | Add / remove channel, add / remove / move / duplicate segment, Synthesize and preview, Export all channels to HDF. A status message appears at the right-hand end. |
| Left column | CHANNELS list on top, SEGMENTS list of the selected channel underneath. Each segment entry shows its name and waveform kind. |
| Middle column | Parameter panel for the selected segment. Sections appear and disappear depending on the waveform kind: SEGMENT, PARAMETERS, SWEEP, STEP SINE, MODULATION, NOISE, MLS / PRBS, BURST, FORMULA, CROSSFADE, CHANNEL. |
| Right column | Preview: time-domain waveform on top, magnitude spectrum below, with an FFT size selector above them. |
One channel is created automatically when the generator opens. Use the toolbar to build up the structure you need:
Ch 2,
Ch 3 … at a sample rate of 51200 Hz.(copy) appended to the name. This is the
quickest way to build a repeating pattern.The channel's own settings live at the bottom of the parameter panel, in the CHANNEL section:
| Field | Meaning | Default |
|---|---|---|
| Name | Channel name written into the exported file. | Ch 1 |
| Sample Rate | Sampling rate in Hz used to render every segment of the channel. | 51200 |
| Unit | Physical unit written into the exported file. Left blank, the file is written
with unit V. | (empty) |
The Kind drop-down in the SEGMENT section selects the waveform. Throughout the formulas below, t is the time in seconds measured from the start of the segment, A is the Amplitude field (a linear peak value), f is the Freq (Hz) field and fs is the channel sample rate.
| Kind | Definition | Notes |
|---|---|---|
| Sine | x = A · sin(2πft) | The default and the most common choice for calibration and single-tone checks. |
| Square | x = A · sign(sin(2πft)) | Fixed 50 % duty cycle. Rich in odd harmonics. |
| Triangle | x = A · (2/π) · asin(sin(2πft)) |
Odd harmonics that roll off faster than a square wave. |
| DC | x = A | Constant offset. Frequency is ignored. Useful for testing DC-removal and offset detection. |
| Impulse | x[0] = A, all following samples zero | A single-sample impulse at the very beginning of the segment. Frequency is ignored. |
Sweeps run from Freq (Hz) to End Freq (Hz) over the whole segment duration. Setting the end frequency below the start frequency produces a down-sweep.
In both cases the output is x = A · sin(φ(t)) and T is the segment
duration, so the phase is continuous across the whole sweep and no clicks are produced.
A step sine holds a fixed frequency for a while, jumps to the next frequency, and so on. The segment duration is divided evenly by Steps; the frequency of step s is spaced either logarithmically (the default, and the usual choice for acoustic work) or linearly between the start and end frequency.
Both modulated kinds use Freq (Hz) as the carrier, Mod Freq (Hz) as the modulation frequency and Mod Depth / β for the modulation strength.
For AM, m is the modulation depth — use values between 0 and 1; larger values overmodulate and the envelope inverts. For FM, β is the modulation index, and the maximum frequency deviation is β × fmod.
| Kind | Definition | Extra parameters |
|---|---|---|
| WhiteNoise | Uniformly distributed random samples in the range [−A, +A], flat on average across the whole band. | Seed |
| PinkNoise | 1/f noise generated from 16 overlapping random sources plus a white component, giving roughly constant energy per octave. | Seed |
| PseudoNoise | Maximum-length binary sequence (MLS / PRBS): the output is exactly +A or −A. Deterministic and exactly repeatable, with a period of 2Order − 1 samples. | Seed, Order [7–20] |
| BurstRandom | White noise gated on and off with a fixed period of one tenth of a second. Duty Ratio sets the fraction of each period that carries noise; the rest is silence. | Seed, Duty Ratio (0.01–1.0) |
Seed makes the random signals reproducible: the same seed always produces exactly the same sample values, so two runs of the same test are directly comparable. Change the seed to get an independent realisation.
| Field | Section | Unit | Default | Applies to |
|---|---|---|---|---|
| Name | SEGMENT | — | Seg n | All |
| Kind | SEGMENT | — | Sine | All |
| Freq (Hz) | PARAMETERS | Hz | 1000 | All except DC and Impulse |
| Amplitude | PARAMETERS | channel unit (peak) | 1.0 | All |
| Duration (s) | PARAMETERS | s | 1.0 | All |
| End Freq (Hz) | SWEEP | Hz | 4000 | LinearSweep, LogSweep, StepSine |
| Steps | STEP SINE | count | 10 | StepSine |
| Log Spacing | STEP SINE | — | on | StepSine |
| Mod Freq (Hz) | MODULATION | Hz | 10 | AmModulated, FmModulated |
| Mod Depth / β | MODULATION | — | 1.0 | AmModulated, FmModulated |
| Seed | NOISE | — | 42 | All noise kinds |
| Order [7–20] | MLS / PRBS | — | 15 | PseudoNoise |
| Duty Ratio | BURST | ratio | 0.5 | BurstRandom |
| Type | CROSSFADE | — | None | All |
| Duration (s) | CROSSFADE | s | 0.01 | All |
Butting two segments together generally creates a discontinuity at the joint, which shows up as a broadband click in the spectrum. The CROSSFADE section sets how a segment blends into the one that follows it: the previous segment fades out while the next segment fades in over the same overlap window.
| Type | Fade shape | When to use |
|---|---|---|
| None | No overlap; the segments are simply concatenated. | Signals that already start and end at zero, e.g. a whole number of sine periods. |
| Linear | Straight-line fade: out = 1 − x,
in = x. | Simple, amplitude-preserving default. |
| Cosine | Raised-cosine fade: out = ½(1 + cosπx),
in = ½(1 − cosπx). | Smoother start and end of the transition; preferred for audible material. |
Duration (s) in the CROSSFADE section is the overlap length in seconds. Because the two segments overlap, the crossfade shortens the total signal: the resulting length is the sum of the segment durations minus the overlap.
Choose the Formula kind to type an arbitrary expression that is evaluated once per sample. The default expression is:
Available variables:
| Variable | Meaning |
|---|---|
t | Time in seconds from the start of the segment (starts at 0). |
A | The segment's Amplitude field. |
f | The segment's Freq (Hz) field. |
fs | The channel sample rate in Hz. |
pi | 3.14159… |
Available functions:
sin, cos, tan, asin,
acos, atan(x) or atan(y, x)exp, log (natural),
log10, sqrt, pow(x, y)abs, sign+ − * / % ^ and parenthesesFunction and variable names are not case-sensitive. Click Validate to check the syntax before running the synthesis; the result is shown in red text beneath the formula box.
Examples:
| Expression | Result |
|---|---|
A*sin(2*pi*f*t) | Plain sine. |
A*sin(2*pi*f*t) + 0.5*A*sin(4*pi*f*t) | Fundamental plus a second harmonic at half the amplitude. |
A*exp(-3*t)*sin(2*pi*f*t) | Exponentially decaying tone, useful as a synthetic impulse-response test case. |
A*sin(2*pi*f*t*t) | A quadratic phase ramp — frequency rising linearly with time. |
Click Synthesize and preview in the toolbar to render the currently selected channel and update both plots.
The status text reports the rendered length, for example
Preview ready — 51,200 samples / 1.000 s / 51200 Hz.
Right-click either plot for Copy Chart as Image, Preview / Synthesize, Export to HDF… and Reset Zoom. Each plot also has a small reset-zoom button in its lower-right corner.
SignalGenerator_Export.hdf.
The output is a HEAD time-data .hdf file with 32-bit floating-point samples. Each
channel carries the name and unit set in the CHANNEL section; a blank unit is written as
V. The exported file can be dragged straight into the analysis Pool or opened in the
Data Viewer.
Ch 1 and set Sample Rate to 51200 and Unit
to the unit you need (for example V for a shaker drive signal).Lead-in, set Kind to DC,
Amplitude to 0 and Duration to 0.5 s. This gives the amplifier a quiet
run-in.Sweep, set Kind to
LogSweep, Freq to 20, End Freq to 20000, Amplitude to
1.0 and Duration to 10 s.Lead-in segment, set CROSSFADE Type to Cosine and Duration to
0.05 s so the sweep starts smoothly.Lead-out DC segment of 0.5 s, and set a Cosine crossfade of 0.05 s on
the Sweep segment.Sine, LinearSweep, AmModulated,
PseudoNoise…) and are shown the same way in every interface language.ch0, ch1… (ch[0] also works); t is the
time in seconds, fs the sample rate. The usual functions are available —
ch0 + ch1, ch0 * 2, sqrt(ch0), ch0 * sin(2*pi*50*t).
A calculated channel may reference another calculated channel; a circular reference is reported and
the channel falls back to its own segments. Sources of unequal length are aligned to the longest and
the shorter ones are padded with zeros.© 2026 Deepsona. All Rights Reserved.