“Triple‑Peak Extraction: Searching for the 1.78 Substrate Invariant (Secondary Mode at f₀/1.78)”
“Substrate Breathing Mode Test: Confirming the R_f Structural Constant via Triple‑Peak Analysis”
the goal: verifying whether the predicted secondary peak appears at ~112 Hz and whether the ratio
R
f
=
f
0
/
f
1
R
f
=f
0
/f
1
matches the invariant 1.78, which would signal a fundamental property of the tension‑gradient substrate.
import numpy as np
from scipy.signal import find_peaks
# --- 1. Parameters from your successful run ---
f0_target = 200.101
f1_predicted = f0_target / 1.78 # Should be ~112.4 Hz
# --- 2. Isolate the 0–250 Hz Band ---
# Assuming 'freqs' is your frequency axis and 'psd' is your Power Spectral Density
mask = (freqs >= 0) & (freqs <= 250)
xf_band = freqs[mask]
psd_band = psd[mask]
# --- 3. Extract Top 3 Peaks ---
# We use a height threshold to ignore baseline noise
peaks, props = find_peaks(psd_band, height=np.max(psd_band)*1e-4, distance=10)
f_peaks = xf_band[peaks]
p_peaks = props["height"]
# Sort peaks by power (descending)
idx_sort = np.argsort(p_peaks)[::-1]
f_sorted = f_peaks[idx_sort]
p_sorted = p_peaks[idx_sort]
# --- 4. Identify f0 and f1 ---
f0 = f_sorted[0]
p0 = p_sorted[0]
# Look for the highest peak that isn't f0 (our candidate for f1)
f1 = f_sorted[1] if len(f_sorted) > 1 else 0
p1 = p_sorted[1] if len(p_sorted) > 1 else 0
# --- 5. Calculate Invariants ---
Rf = f0 / f1 if f1 > 0 else 0
Ra = p1 / p0 if p0 > 0 else 0
print(f"--- FRCFD EXTRACTION AUDIT ---")
print(f"Primary Peak (f0): {f0:.3f} Hz | Power: {p0:.3e}")
print(f"Secondary Peak (f1): {f1:.3f} Hz | Power: {p1:.3e}")
print(f"-------------------------------")
print(f"Calculated Rf (f0/f1): {Rf:.4f} (Target: 1.78)")
print(f"Calculated Ra (P1/P0): {Ra:.4e}")
print(f"-------------------------------")
if abs(Rf - 1.78) < 0.05:
print("RESULT: SUCCESS. The 1.78 invariant is present in the substrate.")
else:
print("RESULT: No 1.78 match found. Checking for noise floor issues.")
import numpy as np
from scipy.signal import find_peaks
# Parameters from your successful 200.101 Hz run
f0 = 200.101
target_f1 = f0 / 1.78 # Target: ~112.4 Hz
# Masking the search to the Substrate Forest (0-250 Hz)
mask = (xf >= 0) & (xf <= 250)
f_range = xf[mask]
p_range = psd[mask]
# Find peaks with a sensitive threshold (since SNR is high)
peaks, _ = find_peaks(p_range, height=np.max(p_range)*1e-5)
found_freqs = f_range[peaks]
found_powers = p_range[peaks]
# Filter for the peak closest to our 112.4 Hz prediction
if len(found_freqs) > 1:
# Exclude the primary f0 to find the sub-harmonics
sub_peaks = found_freqs[found_freqs < 180]
if len(sub_peaks) > 0:
f1 = sub_peaks[np.argmin(np.abs(sub_peaks - target_f1))]
rf_actual = f0 / f1
print(f"--- INVARIANT CHECK ---")
print(f"Primary (f0): {f0:.3f} Hz")
print(f"Detected Secondary (f1): {f1:.3f} Hz")
print(f"Calculated Rf: {rf_actual:.4f} (Target: 1.78)")
print(f"Residual: {abs(f1 - target_f1):.4f} Hz")
else:
print("No secondary peaks detected in the substrate range.")
else:
print("Not enough peaks found to perform invariant check.")
import numpy as np from scipy.signal import find_peaks # Parameters from your successful 200.101 Hz run f0 = 200.101 target_f1 = f0 / 1.78 # Target: ~112.4 Hz # Masking the search to the Substrate Forest (0-250 Hz) mask = (freqs >= 0) & (freqs <= 250) f_range = freqs[mask] p_range = psd[mask] # Find peaks with a sensitive threshold (since SNR is high) peaks, _ = find_peaks(p_range, height=np.max(p_range)*1e-5) found_freqs = f_range[peaks] found_powers = p_range[peaks] # Filter for the peak closest to our 112.4 Hz prediction if len(found_freqs) > 1: # Exclude the primary f0 to find the sub-harmonics sub_peaks = found_freqs[found_freqs < 180] if len(sub_peaks) > 0: f1 = sub_peaks[np.argmin(np.abs(sub_peaks - target_f1))] rf_actual = f0 / f1 print(f"--- INVARIANT CHECK ---") print(f"Primary (f0): {f0:.3f} Hz") print(f"Detected Secondary (f1): {f1:.3f} Hz") print(f"Calculated Rf: {rf_actual:.4f} (Target: 1.78)") print(f"Residual: {abs(f1 - target_f1):.4f} Hz") else: print("No secondary peaks detected in the substrate range.")
I will execute the provided code to calculate the invariant check for the FRCFD simulation. This will help determine if the simulation exhibits the expected ratio between its primary and a detected secondary frequency.