Signal Generator

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.

Opening the Signal Generator

  1. Go to the Start Menu.
  2. Open the Editor group in the left navigation tree.
  3. Click Signal Generator.

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.

Window Layout

AreaContents
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 columnCHANNELS list on top, SEGMENTS list of the selected channel underneath. Each segment entry shows its name and waveform kind.
Middle columnParameter 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 columnPreview: time-domain waveform on top, magnitude spectrum below, with an FFT size selector above them.
The parameter panel is greyed out until a segment is selected. If nothing appears when you open the generator, select the channel in CHANNELS first, then a segment in SEGMENTS.

Channels and Segments

One channel is created automatically when the generator opens. Use the toolbar to build up the structure you need:

The channel's own settings live at the bottom of the parameter panel, in the CHANNEL section:

FieldMeaningDefault
NameChannel name written into the exported file.Ch 1
Sample RateSampling rate in Hz used to render every segment of the channel.51200
UnitPhysical unit written into the exported file. Left blank, the file is written with unit V.(empty)

Waveform Types

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.

Periodic and Static Waveforms

KindDefinitionNotes
Sinex = A · sin(2πft)The default and the most common choice for calibration and single-tone checks.
Squarex = A · sign(sin(2πft))Fixed 50 % duty cycle. Rich in odd harmonics.
Trianglex = A · (2/π) · asin(sin(2πft)) Odd harmonics that roll off faster than a square wave.
DCx = AConstant offset. Frequency is ignored. Useful for testing DC-removal and offset detection.
Impulsex[0] = A, all following samples zeroA single-sample impulse at the very beginning of the segment. Frequency is ignored.

Sweeps

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.

Linear sweep: φ(t) = 2π(f0t + ½kt²),   k = (f1 − f0) / T
Logarithmic sweep: φ(t) = 2π f0 (T/L)(eLt/T − 1),   L = ln(f1/f0)

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.

Freq (Hz) = start End Freq (Hz) Sweep: frequency rises across the segment, amplitude stays constant

Step Sine

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.

The phase restarts at zero at the beginning of every step. If you need a click-free stepped excitation, either use a real sweep instead, or build the steps as separate segments and apply a crossfade between them.

Modulated Signals

Both modulated kinds use Freq (Hz) as the carrier, Mod Freq (Hz) as the modulation frequency and Mod Depth / β for the modulation strength.

AM: x(t) = A · (1 + m · cos(2πfmodt)) · sin(2πfct)
FM: x(t) = A · sin(2πfct + β · sin(2πfmodt))

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.

Amplitude-modulated tones are the standard stimulus for checking fluctuation strength and roughness algorithms — for example a 1 kHz carrier with 4 Hz modulation at depth 1.0 for fluctuation strength, or 70 Hz modulation for roughness.

Noise Signals

KindDefinitionExtra parameters
WhiteNoiseUniformly distributed random samples in the range [−A, +A], flat on average across the whole band.Seed
PinkNoise1/f noise generated from 16 overlapping random sources plus a white component, giving roughly constant energy per octave.Seed
PseudoNoiseMaximum-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]
BurstRandomWhite 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.

Segment Parameters

FieldSectionUnitDefaultApplies to
NameSEGMENT—Seg nAll
KindSEGMENT—SineAll
Freq (Hz)PARAMETERSHz1000All except DC and Impulse
AmplitudePARAMETERSchannel unit (peak)1.0All
Duration (s)PARAMETERSs1.0All
End Freq (Hz)SWEEPHz4000LinearSweep, LogSweep, StepSine
StepsSTEP SINEcount10StepSine
Log SpacingSTEP SINE—onStepSine
Mod Freq (Hz)MODULATIONHz10AmModulated, FmModulated
Mod Depth / βMODULATION—1.0AmModulated, FmModulated
SeedNOISE—42All noise kinds
Order [7–20]MLS / PRBS—15PseudoNoise
Duty RatioBURSTratio0.5BurstRandom
TypeCROSSFADE—NoneAll
Duration (s)CROSSFADEs0.01All
Amplitude is a peak linear value in the channel's unit. A sine of amplitude 1.0 has an RMS of 0.707. If you are generating a sound-pressure reference in Pa, remember that 94 dB SPL corresponds to 1 Pa RMS, i.e. an amplitude of 1.414.

Crossfade Between Segments

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.

TypeFade shapeWhen to use
NoneNo overlap; the segments are simply concatenated.Signals that already start and end at zero, e.g. a whole number of sine periods.
LinearStraight-line fade: out = 1 − x, in = x.Simple, amplitude-preserving default.
CosineRaised-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.

segment n segment n+1 overlap = Crossfade Duration (s) gains always sum to 1, so the level is preserved through the joint
The crossfade is taken from the earlier segment. Setting a crossfade on the last segment of a channel has no effect, because there is nothing after it to blend into. The overlap is also capped at the length of the shorter of the two segments.

Formula Signals

Choose the Formula kind to type an arbitrary expression that is evaluated once per sample. The default expression is:

A*sin(2*pi*f*t)

Available variables:

VariableMeaning
tTime in seconds from the start of the segment (starts at 0).
AThe segment's Amplitude field.
fThe segment's Freq (Hz) field.
fsThe channel sample rate in Hz.
pi3.14159…

Available functions:

Function 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:

ExpressionResult
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.

Preview

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.

The spectrum is computed from the last block of the signal, not averaged over the whole signal. For a multi-segment channel it therefore shows the content of the final segment. To inspect an individual segment, preview it on its own, or export the file and analyse it in the Pool.

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.

Exporting to HDF

  1. Click Export all channels to HDF… in the toolbar.
  2. Choose a destination folder and file name. The suggested name is SignalGenerator_Export.hdf.
  3. Click Save. All channels are re-rendered and written in one pass.

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.

All channels in one exported file must have the same number of samples and share a single sample rate — the sample rate of the first channel is used for the whole file. If your channels have different total durations or different sample rates, the export is rejected with an error message. Match the segment durations, or export the channels into separate files.

Typical Workflow: a Sweep Excitation File

  1. Open the Signal Generator from Start Menu → Editor → Signal Generator.
  2. Select Ch 1 and set Sample Rate to 51200 and Unit to the unit you need (for example V for a shaker drive signal).
  3. Click Add segment. Name it Lead-in, set Kind to DC, Amplitude to 0 and Duration to 0.5 s. This gives the amplifier a quiet run-in.
  4. Click Add segment again. Name it Sweep, set Kind to LogSweep, Freq to 20, End Freq to 20000, Amplitude to 1.0 and Duration to 10 s.
  5. On the Lead-in segment, set CROSSFADE Type to Cosine and Duration to 0.05 s so the sweep starts smoothly.
  6. Add a final Lead-out DC segment of 0.5 s, and set a Cosine crossfade of 0.05 s on the Sweep segment.
  7. Click Synthesize and preview and confirm the waveform and spectrum look correct.
  8. Click Export all channels to HDF… and save the file.

Notes and Limitations


© 2026 Deepsona. All Rights Reserved.