# wave_analysis.py
import numpy as np
def analyze_wave_pattern(data):
frequencies = np.fft.fft(data)
dominant_freq = np.argmax(frequencies)
wavelength = len(data) / dominant_freq
amplitude = np.max(np.abs(frequencies))
phase = np.angle(frequencies[dominant_freq])
period = 1.0 / dominant_freq if dominant_freq > 0 else 0
energy = np.sum(np.abs(frequencies) ** 2)
spectrum = np.fft.fftfreq(len(data))
power = np.abs(frequencies) ** 2
harmonics = np.where(power > np.max(power) * 0.1)[0]
return {
'frequency': dominant_freq,
'wavelength': wavelength
}