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):
- Find the "Oscillations" section
- Click "Add Oscillation"
- A new oscillation configuration appears
- Configure parameters (see below)
- 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
- Add first oscillation (primary frequency)
- Click "Add Oscillation" again
- Configure second oscillation (secondary frequency)
- Repeat as needed
- 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:
-
Amplitude too small compared to noise
Problem: Oscillation Amp=0.1, Noise=5 Fix: Increase amplitude or decrease noise -
Amplitude too small compared to mean
Problem: Mean=1000, Oscillation Amp=1 Fix: Zoom in on chart or increase amplitude -
Period too long for duration
Problem: Period=86400 (24h), Duration=1 hour Fix: Increase duration or use shorter period -
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:
- Very different amplitudes
- Largest amplitude dominates
- Smaller oscillations invisible
-
Fix: Adjust relative amplitudes
-
Very different frequencies
- Slow oscillation not visible in short duration
- Fast oscillation blurs together
-
Fix: Adjust zoom or duration
-
Frequencies too close (beats)
- Expected behavior if frequencies are similar
- 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
- Multi-Channel - Add oscillations to multiple channels independently
- Sampling and Aliasing - Deep dive into sampling theory
- Basic Usage - Review complete signal generation workflow
- Technical Reference - Mathematical formulas and details
Mastering oscillations unlocks Phoenix's full potential for simulating realistic industrial time series data with periodic behavior.