upd
This commit is contained in:
		
							parent
							
								
									3e15c2ebf5
								
							
						
					
					
						commit
						78157bcc7b
					
				
					 1 changed files with 12 additions and 12 deletions
				
			
		| 
						 | 
					@ -91,7 +91,7 @@ def filter_signal_by_modes(time, signal, num_modes=1, bandwidth_factor=0.1, nyqu
 | 
				
			||||||
    return filtered_signals, dominant_freqs, time_filtered
 | 
					    return filtered_signals, dominant_freqs, time_filtered
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def analyze_signal_Hilbert(time, e_signal, s_signal):
 | 
					def analyze_signal_Hilbert(time, e_signal, s_signal, freq_rtol=0.01):
 | 
				
			||||||
    """
 | 
					    """
 | 
				
			||||||
    Analyzes the dominant frequencies, phase shift, time shift, and periods between two signals e_signal(t) and s_signal(t) from a DataFrame.
 | 
					    Analyzes the dominant frequencies, phase shift, time shift, and periods between two signals e_signal(t) and s_signal(t) from a DataFrame.
 | 
				
			||||||
    Uses Hilbert transform method for phase shift calculation (single mode only).
 | 
					    Uses Hilbert transform method for phase shift calculation (single mode only).
 | 
				
			||||||
| 
						 | 
					@ -143,8 +143,8 @@ def analyze_signal_Hilbert(time, e_signal, s_signal):
 | 
				
			||||||
    freq_s = s_peak_freqs[s_idx]
 | 
					    freq_s = s_peak_freqs[s_idx]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Check if frequencies match within 1%
 | 
					    # Check if frequencies match within 1%
 | 
				
			||||||
    if np.abs(freq_e - freq_s) / ((freq_e + freq_s)/2) > 0.01:
 | 
					    if np.abs(freq_e - freq_s) / ((freq_e + freq_s)/2) > freq_rtol:
 | 
				
			||||||
        raise ValueError("Frequency difference exceeds 1%. Phase shift cannot be determined.")
 | 
					        raise ValueError(f"Frequency difference exceeds {freq_rtol*100}%. Phase shift cannot be determined.")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Calculate mean frequency for phase shift calculation
 | 
					    # Calculate mean frequency for phase shift calculation
 | 
				
			||||||
    mean_freq = (freq_e + freq_s) / 2
 | 
					    mean_freq = (freq_e + freq_s) / 2
 | 
				
			||||||
| 
						 | 
					@ -200,7 +200,7 @@ def analyze_signal_Hilbert(time, e_signal, s_signal):
 | 
				
			||||||
    return (period_e, period_s, freq_e, freq_s,
 | 
					    return (period_e, period_s, freq_e, freq_s,
 | 
				
			||||||
            mean_phase_diff, phase_diff_deg, time_shift)
 | 
					            mean_phase_diff, phase_diff_deg, time_shift)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def analyze_signal_sinfit(time, e_signal, s_signal):
 | 
					def analyze_signal_sinfit(time, e_signal, s_signal, freq_rtol=0.01):
 | 
				
			||||||
    """
 | 
					    """
 | 
				
			||||||
    Analyzes the dominant frequencies, phase shift, time shift, and periods between two signals e_signal(t) and s_signal(t) from a DataFrame.
 | 
					    Analyzes the dominant frequencies, phase shift, time shift, and periods between two signals e_signal(t) and s_signal(t) from a DataFrame.
 | 
				
			||||||
    Uses curve fitting method for phase shift calculation (single mode only).
 | 
					    Uses curve fitting method for phase shift calculation (single mode only).
 | 
				
			||||||
| 
						 | 
					@ -252,8 +252,8 @@ def analyze_signal_sinfit(time, e_signal, s_signal):
 | 
				
			||||||
    freq_s = s_peak_freqs[s_idx]
 | 
					    freq_s = s_peak_freqs[s_idx]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Check if frequencies match within 1%
 | 
					    # Check if frequencies match within 1%
 | 
				
			||||||
    if np.abs(freq_e - freq_s) / ((freq_e + freq_s)/2) > 0.01:
 | 
					    if np.abs(freq_e - freq_s) / ((freq_e + freq_s)/2) > freq_rtol:
 | 
				
			||||||
        raise ValueError("Frequency difference exceeds 1%. Phase shift cannot be determined.")
 | 
					        raise ValueError(f"Frequency difference exceeds {freq_rtol*100}%. Phase shift cannot be determined.")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Calculate mean frequency for phase shift calculation
 | 
					    # Calculate mean frequency for phase shift calculation
 | 
				
			||||||
    mean_freq = (freq_e + freq_s) / 2
 | 
					    mean_freq = (freq_e + freq_s) / 2
 | 
				
			||||||
| 
						 | 
					@ -300,7 +300,7 @@ def analyze_signal_sinfit(time, e_signal, s_signal):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def analyze_signal_cross_correlation(time, e_signal, s_signal):
 | 
					def analyze_signal_cross_correlation(time, e_signal, s_signal, freq_rtol=0.01):
 | 
				
			||||||
    """
 | 
					    """
 | 
				
			||||||
    Analyzes signals using cross-correlation method for phase shift calculation (single mode only).
 | 
					    Analyzes signals using cross-correlation method for phase shift calculation (single mode only).
 | 
				
			||||||
    """
 | 
					    """
 | 
				
			||||||
| 
						 | 
					@ -351,8 +351,8 @@ def analyze_signal_cross_correlation(time, e_signal, s_signal):
 | 
				
			||||||
    freq_s = s_peak_freqs[s_idx]
 | 
					    freq_s = s_peak_freqs[s_idx]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Check if frequencies match within 1%
 | 
					    # Check if frequencies match within 1%
 | 
				
			||||||
    if np.abs(freq_e - freq_s) / ((freq_e + freq_s)/2) > 0.01:
 | 
					    if np.abs(freq_e - freq_s) / ((freq_e + freq_s)/2) > freq_rtol:
 | 
				
			||||||
        raise ValueError("Frequency difference exceeds 1%. Phase shift cannot be determined.")
 | 
					        raise ValueError(f"Frequency difference exceeds {freq_rtol*100}%. Phase shift cannot be determined.")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Calculate mean frequency for phase shift calculation
 | 
					    # Calculate mean frequency for phase shift calculation
 | 
				
			||||||
    mean_freq = (freq_e + freq_s) / 2
 | 
					    mean_freq = (freq_e + freq_s) / 2
 | 
				
			||||||
| 
						 | 
					@ -401,7 +401,7 @@ def analyze_signal_cross_correlation(time, e_signal, s_signal):
 | 
				
			||||||
            phase_diff, phase_diff_deg, time_shift)
 | 
					            phase_diff, phase_diff_deg, time_shift)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def analyze_signal_wavelet(time, e_signal, s_signal):
 | 
					def analyze_signal_wavelet(time, e_signal, s_signal, freq_rtol=0.01):
 | 
				
			||||||
    """
 | 
					    """
 | 
				
			||||||
    Analyzes signals using wavelet transform for phase shift calculation (single mode only).
 | 
					    Analyzes signals using wavelet transform for phase shift calculation (single mode only).
 | 
				
			||||||
    """
 | 
					    """
 | 
				
			||||||
| 
						 | 
					@ -452,8 +452,8 @@ def analyze_signal_wavelet(time, e_signal, s_signal):
 | 
				
			||||||
    freq_s = s_peak_freqs[s_idx]
 | 
					    freq_s = s_peak_freqs[s_idx]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Check if frequencies match within 1%
 | 
					    # Check if frequencies match within 1%
 | 
				
			||||||
    if np.abs(freq_e - freq_s) / ((freq_e + freq_s)/2) > 0.01:
 | 
					    if np.abs(freq_e - freq_s) / ((freq_e + freq_s)/2) > freq_rtol:
 | 
				
			||||||
        raise ValueError("Frequency difference exceeds 1%. Phase shift cannot be determined.")
 | 
					        raise ValueError(f"Frequency difference exceeds {freq_rtol*100}%. Phase shift cannot be determined.")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Calculate mean frequency for phase shift calculation
 | 
					    # Calculate mean frequency for phase shift calculation
 | 
				
			||||||
    mean_freq = (freq_e + freq_s) / 2
 | 
					    mean_freq = (freq_e + freq_s) / 2
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue