Oscillations: Adding Periodic Behavior to Time Series

Oscillations add periodic (repeating) patterns to time series, essential for simulating rotating equipment, vibrations, daily cycles, and other rhythmic phenomena common in industrial data.

What Are Oscillations?

An oscillation is a periodic variation described by a sine wave. In time series generation, oscillations add predictable, repeating patterns on top of the base signal.

Mathematical Model

Phoenix uses the standard sine wave formula for each oscillation:

oscillation(t) = A × sin(2π × f × t + φ)

Where:
  A = Amplitude (peak height)
  f = Frequency (cycles per second, Hz)
  t = Time (seconds)
  φ = Phase (starting position in radians)

Oscillation Components

Amplitude (A) - Height of the oscillation from center to peak - Units match the signal (°C, kPa, m/s², etc.) - Must be ≥ 0 (non-negative)

Frequency (f) OR Period (P) - Frequency: How many complete cycles per second (Hz) - Period: How long one complete cycle takes (seconds) - Relationship: f = 1/P or P = 1/f

Phase (φ) - Starting position in the cycle (radians) - 0 = starts at zero, going up - π/2 = starts at peak - π = starts at zero, going down - Usually 0 for most applications

When to Use Oscillations

Common Applications

Rotating Equipment - Motors, pumps, fans, turbines - Main frequency = rotation speed - Harmonics = imbalances, belt issues

Vibration Monitoring - Structural vibrations - Machine imbalances - Resonant frequencies

Periodic Processes - Daily temperature cycles (day/night) - Tidal patterns (oceanography) - Production cycles (batch processes) - Seasonal patterns (environmental data)

Electrical Systems - Power line frequency (50/60 Hz) - Harmonic distortion - AC signals

Configuring Oscillations in Phoenix

Step 1: Add an Oscillation

Within a channel (or the base signal for single-channel):

  1. Find the "Oscillations" section
  2. Click "Add Oscillation"
  3. A new oscillation configuration appears
  4. Configure parameters (see below)
  5. Click "Add Oscillation" again for additional frequencies

Each channel can have unlimited oscillations (though 1-3 is typical).

[Screenshot Required: Oscillation Configuration] 1. Add 2 oscillations to a channel 2. Capture: Oscillation configuration section showing 2 oscillations 3. Purpose: Show oscillation parameter fields

Step 2: Choose Frequency or Period

Phoenix allows you to specify oscillations in two ways:

Option A: Frequency (Hz)

Best when you know the cycles per second:

Common Frequencies:

Power line (US):         60 Hz
Power line (EU/World):   50 Hz
Motor at 1800 RPM:       30 Hz (1800 ÷ 60)
Motor at 3600 RPM:       60 Hz
Heartbeat at 75 BPM:     1.25 Hz (75 ÷ 60)
Breathing:               0.2-0.3 Hz

Conversion from RPM:

Frequency (Hz) = RPM ÷ 60

Examples:
1200 RPM → 1200 ÷ 60 = 20 Hz
1800 RPM → 1800 ÷ 60 = 30 Hz
3000 RPM → 3000 ÷ 60 = 50 Hz

Option B: Period (seconds)

Best when you know the cycle duration:

Common Periods:

Daily cycle:           86400 seconds (24 hours)
Hourly cycle:          3600 seconds (1 hour)
10-minute cycle:       600 seconds
1-minute cycle:        60 seconds
10-second cycle:       10 seconds
Power line 60 Hz:      0.0167 seconds (1/60)

Conversion from Time Units:

Days to seconds:     days × 86400
Hours to seconds:    hours × 3600
Minutes to seconds:  minutes × 60

Example: 12 hours
Period = 12 × 3600 = 43200 seconds

Period Takes Precedence

If you specify both frequency and period, period takes precedence. Best practice: only fill in one field.

Step 3: Set Amplitude

Amplitude determines how much the signal oscillates.

Choosing Amplitude: - Match the physical phenomenon scale - Consider relative to noise and mean - Larger amplitude = more dominant oscillation

Examples:

Daily temperature variation:
- Mean: 20°C
- Amplitude: 5°C
- Range: 15°C to 25°C (peak-to-peak = 10°C)

Motor vibration:
- Mean: 0 m/s²
- Amplitude: 2 m/s²
- Range: -2 to +2 m/s²

Pressure pulsation in pump:
- Mean: 150 kPa
- Amplitude: 10 kPa
- Range: 140 to 160 kPa

Step 4: Set Phase (Optional)

Phase offset shifts where the oscillation starts in its cycle.

When to Use Phase: - Create phase-shifted channels (3-phase power) - Start at peak instead of zero crossing - Model known phase relationships

Common Phase Values:

0        → Start at zero, rising
π/4      → Start at 45° (0.785 radians)
π/2      → Start at peak (1.571 radians)
π        → Start at zero, falling (3.142 radians)
3π/2     → Start at minimum (4.712 radians)

Default: Leave at 0 for most applications.

[Screenshot Required: Oscillation with Phase Shift] 1. Create signal with: - Mean: 0 - Noise: 0 - Oscillation 1: Frequency=1 Hz, Amplitude=1, Phase=0 - Oscillation 2: Frequency=1 Hz, Amplitude=1, Phase=1.571 (π/2) 2. Duration: 3 seconds, Sampling: 10 Hz 3. Capture: Chart showing two sine waves 90° out of phase 4. Purpose: Demonstrate phase shift effect

Multiple Oscillations

Phoenix supports adding multiple oscillations to the same channel. They combine through superposition (simple addition).

Why Multiple Oscillations?

Harmonics - Fundamental frequency + integer multiples - Example: 30 Hz + 60 Hz + 90 Hz (motor with bearing issues)

Independent Phenomena - Daily cycle + hourly fluctuations - Rotation speed + belt frequency - Multiple vibration sources

Complex Patterns - Create realistic irregular patterns - Beat frequencies (close frequencies) - Amplitude modulation effects

Configuring Multiple Oscillations

  1. Add first oscillation (primary frequency)
  2. Click "Add Oscillation" again
  3. Configure second oscillation (secondary frequency)
  4. Repeat as needed
  5. All oscillations add together in the final signal

[Screenshot Required: Multiple Oscillations] 1. Configure: - Mean: 0, Noise: 0.1 - Oscillation 1: Frequency=5 Hz, Amplitude=3 - Oscillation 2: Frequency=15 Hz, Amplitude=1 2. Duration: 2 seconds, Sampling: 50 Hz 3. Capture: Chart showing combined oscillations 4. Purpose: Show superposition of multiple frequencies

Common Oscillation Patterns

Rotating Machinery

Single Speed Motor (1800 RPM)

Oscillation 1:
  Frequency: 30 Hz (1800 RPM ÷ 60)
  Amplitude: 2
  Phase: 0

Motor with Imbalance (adds 2× harmonic)

Oscillation 1 (Fundamental):
  Frequency: 30 Hz
  Amplitude: 2

Oscillation 2 (2× Harmonic):
  Frequency: 60 Hz
  Amplitude: 0.5

Complex Machine (multiple components)

Oscillation 1 (Motor):
  Frequency: 29.5 Hz
  Amplitude: 1.5

Oscillation 2 (Belt):
  Frequency: 15 Hz
  Amplitude: 0.8

Oscillation 3 (Bearing):
  Frequency: 95 Hz
  Amplitude: 0.3

[Screenshot Instructions: Rotating Machinery] 1. Configure: - Mean: 0, Noise: 0.2 - Osc 1: 30 Hz, Amp=2 - Osc 2: 60 Hz, Amp=0.5 - Osc 3: 90 Hz, Amp=0.2 2. Duration: 1 second, Sampling: 250 Hz 3. Preview and capture 4. Purpose: Realistic vibration signature

Daily Temperature Cycle

Simple Daily Variation

Mean: 20°C (average temperature)
Noise: 0.5°C (sensor noise)

Oscillation:
  Period: 86400 seconds (24 hours)
  Amplitude: 5°C (±5°C variation)
  Phase: 0

Result: Temperature varies from 15°C (night) to 25°C (day).

Daily + Hourly Variation

Mean: 20°C
Noise: 0.3°C

Oscillation 1 (Daily):
  Period: 86400 seconds
  Amplitude: 5°C

Oscillation 2 (Hourly fluctuation):
  Period: 3600 seconds
  Amplitude: 1°C

Result: Smooth daily pattern with small hourly variations.

[Screenshot Instructions: Temperature Cycles] 1. Configure: - Mean: 20, Noise: 0.3 - Osc 1: Period=86400, Amp=5 - Osc 2: Period=3600, Amp=1 2. Duration: 3 days, Sampling: 0.001 Hz (sample every ~16 min) 3. Preview and capture 4. Purpose: Realistic multi-day temperature pattern

Beat Frequencies

When two close frequencies combine, they create a "beat" pattern (amplitude modulation).

Beat Frequency Example

Oscillation 1:
  Frequency: 10.0 Hz
  Amplitude: 1

Oscillation 2:
  Frequency: 10.5 Hz
  Amplitude: 1

Beat Frequency = |10.5 - 10.0| = 0.5 Hz
Beat Period = 1/0.5 = 2 seconds

The combined signal appears to "pulse" at 0.5 Hz.

[Screenshot Instructions: Beat Frequency] 1. Configure: - Mean: 0, Noise: 0 - Osc 1: Frequency=10.0 Hz, Amp=1 - Osc 2: Frequency=10.5 Hz, Amp=1 2. Duration: 10 seconds, Sampling: 50 Hz 3. Preview and capture showing amplitude modulation 4. Purpose: Demonstrate beat phenomenon

Harmonic Series

Harmonics are integer multiples of a fundamental frequency.

Perfect Harmonics (Musical Note)

Fundamental:     100 Hz, Amplitude: 5
2nd Harmonic:    200 Hz, Amplitude: 2
3rd Harmonic:    300 Hz, Amplitude: 1
4th Harmonic:    400 Hz, Amplitude: 0.5

Power System Harmonics

Fundamental:     60 Hz, Amplitude: 10
3rd Harmonic:    180 Hz, Amplitude: 1
5th Harmonic:    300 Hz, Amplitude: 0.5
7th Harmonic:    420 Hz, Amplitude: 0.3

Frequency and Sampling Considerations

Critical Rule: Sampling frequency must be at least 2× the highest oscillation frequency (Nyquist theorem).

Aliasing Warnings

Phoenix automatically checks for aliasing:

Example: Aliasing Error

Oscillation: 60 Hz
Sampling: 100 Hz
Nyquist Frequency: 50 Hz

60 Hz > 50 Hz → ERROR (will be aliased)

Fix: Increase sampling to at least 120 Hz (2× 60 Hz)

Example: Aliasing Warning

Oscillation: 40 Hz
Sampling: 100 Hz
Nyquist Frequency: 50 Hz

40 Hz > 25 Hz (Nyquist/2) → WARNING (approaching aliasing)

Fix: Increase sampling to 100+ Hz for safety (2.5× recommended)

See Sampling and Aliasing Guide for comprehensive coverage.

[Screenshot Required: Aliasing Warning] 1. Configure: - Duration: 1 second, Sampling: 10 Hz - Oscillation: Frequency=8 Hz, Amplitude=1 2. Capture: Aliasing warning badge showing error or warning 3. Purpose: Show aliasing detection feature

Tips for Using Oscillations

Start with One Oscillation

Before adding multiple oscillations: 1. Add first oscillation 2. Preview to verify it looks correct 3. Adjust frequency/amplitude as needed 4. Then add additional oscillations

Use Realistic Frequencies

Base oscillation frequencies on: - Actual equipment specifications (motor RPM, etc.) - Physical phenomena (daily cycles, etc.) - Measured data from similar systems

Match Amplitudes to Importance

Dominant Signal: Largest amplitude

Main vibration: Amplitude = 5

Secondary Features: Medium amplitude

Belt frequency: Amplitude = 1

Noise/Minor Features: Small amplitude

High-frequency noise: Amplitude = 0.2

Consider Sampling Requirements Early

Before configuring oscillations: 1. Identify your highest frequency 2. Calculate required sampling: f_sample ≥ 2.5 × f_max 3. Check point count: Duration × Sampling × Channels ≤ 10,000

Example:

Want 100 Hz oscillation?
Required sampling: ≥ 250 Hz
For 10 seconds: 10 × 250 = 2,500 points ✓

Want 100 Hz for 100 seconds?
Points: 100 × 250 = 25,000 points ✗ EXCEEDS LIMIT

Preview After Each Addition

After adding or modifying oscillations: 1. Click Preview 2. Verify the oscillation appears 3. Check frequency looks correct (zoom in if needed) 4. Verify amplitude is appropriate

Use Zero Mean for Pure Oscillations

For pure vibration/AC signals:

Mean: 0
Oscillations: Various frequencies
→ Signal centers on zero

For oscillations on top of baseline:

Mean: 100
Oscillations: Added variation
→ Signal oscillates around 100

Troubleshooting

Can't see the oscillation in chart

Possible Causes:

  1. Amplitude too small compared to noise Problem: Oscillation Amp=0.1, Noise=5 Fix: Increase amplitude or decrease noise

  2. Amplitude too small compared to mean Problem: Mean=1000, Oscillation Amp=1 Fix: Zoom in on chart or increase amplitude

  3. Period too long for duration Problem: Period=86400 (24h), Duration=1 hour Fix: Increase duration or use shorter period

  4. Frequency too high (aliased) Problem: Frequency=50 Hz, Sampling=10 Hz Fix: Increase sampling frequency

Oscillation looks choppy or distorted

Cause: Sampling rate too low (aliasing)

Solution: 1. Check for aliasing warnings 2. Increase sampling to ≥ 2.5× oscillation frequency 3. Or reduce oscillation frequency

Wrong frequency displayed

Verify Configuration: 1. Check if both frequency AND period are filled (period takes precedence) 2. Verify units: Frequency in Hz, Period in seconds 3. Check for typos in values

Calculation Check:

If Period = 10 seconds:
  Expected Frequency = 1/10 = 0.1 Hz
  Should see 1 complete cycle every 10 seconds

If Frequency = 5 Hz:
  Expected Period = 1/5 = 0.2 seconds
  Should see 5 complete cycles per second

Multiple oscillations not visible

Possible Causes:

  1. Very different amplitudes
  2. Largest amplitude dominates
  3. Smaller oscillations invisible
  4. Fix: Adjust relative amplitudes

  5. Very different frequencies

  6. Slow oscillation not visible in short duration
  7. Fast oscillation blurs together
  8. Fix: Adjust zoom or duration

  9. Frequencies too close (beats)

  10. Expected behavior if frequencies are similar
  11. Creates amplitude modulation pattern

Beat frequency unexpected

Check Frequency Separation:

Oscillation 1: 10 Hz
Oscillation 2: 12 Hz
Beat Frequency: |12 - 10| = 2 Hz
Beat Period: 1/2 = 0.5 seconds

Look for pulsing every 0.5 seconds

If unintentional, separate frequencies more.

Advanced Oscillation Techniques

Creating Square Waves (Fourier Series)

Approximate square wave using odd harmonics:

Fundamental:     1 Hz, Amplitude: 4/π ≈ 1.273
3rd Harmonic:    3 Hz, Amplitude: 4/(3π) ≈ 0.424
5th Harmonic:    5 Hz, Amplitude: 4/(5π) ≈ 0.255
7th Harmonic:    7 Hz, Amplitude: 4/(7π) ≈ 0.182

More harmonics = better approximation

Amplitude Modulation

Create AM signal using beat frequencies:

Carrier:       100 Hz, Amplitude: 1
Modulation:    5 Hz, Amplitude: 0.5

Result: 100 Hz signal with 5 Hz amplitude variation

Frequency Modulation (Approximation)

Use multiple close harmonics with phase offsets:

Center:        50 Hz, Amplitude: 1, Phase: 0
Sideband +:    52 Hz, Amplitude: 0.3, Phase: π/2
Sideband -:    48 Hz, Amplitude: 0.3, Phase: -π/2

Approximates frequency modulation around 50 Hz.

Envelope Variations

Combine slow and fast oscillations:

Fast carrier:     100 Hz, Amplitude: 1
Slow envelope:    0.5 Hz, Amplitude: 0.5

Result: High frequency with slow amplitude variation

Real-World Examples

Industrial Fan (Variable Speed)

Scenario: Fan ramping from 1000 to 2000 RPM
Approximation using trend + oscillation:

Mean: 0
Trend Slope: 0.005 (simulates speed ramp)
Oscillation:
  Frequency: 25 Hz (average ~1500 RPM)
  Amplitude: 1.5
Duration: 30 seconds, Sampling: 100 Hz

Note: Phoenix oscillations have constant frequency. Use trend to approximate speed changes.

Ocean Tides

Semi-diurnal tide (twice daily):

Mean: 2 (meters, mean sea level)
Oscillation:
  Period: 44712 seconds (12.42 hours)
  Amplitude: 1.5 (1.5m tidal range)
Duration: 3 days, Sampling: 0.001 Hz

Power Quality Monitoring

60 Hz power with 5th harmonic distortion:

Mean: 0
Oscillation 1 (Fundamental):
  Frequency: 60 Hz
  Amplitude: 170 (peak voltage)

Oscillation 2 (5th Harmonic):
  Frequency: 300 Hz
  Amplitude: 20 (harmonic distortion)

Duration: 0.5 seconds, Sampling: 1000 Hz

Summary

Oscillations are fundamental to creating realistic time series data. Key points:

  • Use frequency OR period (not both)
  • Amplitude controls oscillation strength
  • Multiple oscillations combine additively
  • Sampling rate must be ≥ 2× highest frequency
  • Phase offset rarely needed (usually 0)

Next Steps


Mastering oscillations unlocks Phoenix's full potential for simulating realistic industrial time series data with periodic behavior.