// RMS计算的数学定义 // RMS = sqrt(1/T * ∫[0,T] x²(t) dt) // 其中T为积分周期,x(t)为瞬时值 // 常见波形的RMS值 typedef struct { char name[20]; float peak_to_rms; // 峰值到RMS的转换系数 float avg_to_rms; // 平均值到RMS的转换系数 } waveform_rms_t; waveform_rms_t waveforms[] = { {"正弦波", 0.707, 1.111}, // RMS = Peak/√2 {"方波", 1.000, 1.000}, // RMS = Peak {"三角波", 0.577, 1.155}, // RMS = Peak/√3 {"锯齿波", 0.577, 1.155}, // RMS = Peak/√3 {"高斯噪声", 1.000, -1 } // 统计平均 }; // 波形失真分析 float calculate_crest_factor(float peak_value, float rms_value) { // 峰值因数 = 峰值 / RMS值 return peak_value / rms_value; } float calculate_form_factor(float rms_value, float avg_value) { // 波形因数 = RMS值 / 平均值 return rms_value / avg_value; }