synthesis op• 数据种类:无 → signal(仅由参数决定的算子 —— 不接受图像或数据输入)
• 调用: import fullseye as fs; fs.ledger.synthesize_bearing_signal(rate=25600.0, duration=1.0, carrier_hz=3000.0, defect_hz=107.0, modulation=0.5, mode='am', damping=0.05, noise_sigma=0.0, seed=None)(要直接调用实现,import acoustics; acoustics.synthesize_bearing_signal(rate=25600.0, duration=1.0, carrier_hz=3000.0, defect_hz=107.0, modulation=0.5, mode='am', damping=0.05, noise_sigma=0.0, seed=None);从台账取用则 opsacoustics.get("synthesize_bearing_signal"))
以已知缺陷频率调幅的共振 —— 答案已知的真值。
> 以下的详细说明为原文 —— 摘要与标题已翻译。
This is the whole reason envelope analysis exists, built forwards so the answer is known before the measurement. A spall on a bearing race does not radiate at the defect rate; it strikes a structure that rings at a much higher resonance, once per defect passage. What reaches the microphone is a carrier at the resonance, modulated at the defect rate, and the defect rate itself is not present in the signal as a frequency component at all.
mode="am" gives the exactly analysable case, x(t) = (1 + m cos(2 pi f_d t)) sin(2 pi f_c t). Its analytic envelope is exactly 1 + m cos(2 pi f_d t) for m < 1, so the single-sided envelope spectrum has a line of amplitude exactly m at f_d and nothing else. Measured with m = 0.5: envelope_spectrum returns a peak at 107.000000 Hz of amplitude 0.499677 (the 0.06 % shortfall is the band-pass filter rolling off across the two sidebands, not the demodulation).
mode="impulse" gives the physically shaped case: an impulse train at f_d, each impulse ringing down as exp(-2 pi zeta f_c t) sin(2 pi f_c t). The envelope spectrum then shows f_d and its harmonics, which is what a real record looks like. Measured with f_d = 107 Hz: the envelope-spectrum peak is at 107.000000 Hz and the harmonics at 214 and 321 Hz carry 0.6542 and 0.4748 of the fundamental's amplitude.
In am mode the raw spectrum has nothing at f_d: measured, the raw single-sided amplitude at 107 Hz is 4.3e-16, while the carrier reads 1.000000 and each sideband at 2893 and 3107 Hz reads 0.250000 — exactly m/2, as amplitude modulation requires. In impulse mode the raw amplitude at 107 Hz is 0.01165, not zero (an impulse train is not a pure product), but still 18x below what the envelope spectrum recovers from the same record.
Raises ValueError: any non-real / non-finite / string / bool scalar, rate <= 0, duration <= 0, modulation outside [0, 1) in am mode (at m >= 1 the envelope is |1 + m cos|, which folds and puts energy at 2 f_d — a rectified envelope, not the modulation), damping outside (0, 1), a total length over MAX_SAMPLES, and — the one that matters — any requested frequency at or above Nyquist, including the upper modulation sideband f_c + f_d. An aliased carrier would come back as a plausible signal at the wrong frequency with no error.
• acoustic_condition_monitoring 族使用指南
• 示例数据目录(下载 URL / 许可证) —— 2-D 用 skimage.data(BSD/公有领域)加合成图,3-D 给出真实数据源(Stanford/PDS 等)的下载 URL。
• 算子来历与参考文献 —— 该算子族所依据的研究/方法出处。
• 算法的正典(作者、年份)与用途见上面的族使用指南。
• acoustic_condition_monitoring — py -3.11 examples/acoustic_condition_monitoring.py
• poc_bearing_diagnosis — py -3.11 examples/poc_bearing_diagnosis.py
• poc_machine_condition_fusion — py -3.11 examples/poc_machine_condition_fusion.py
signal 作为输入)stft · envelope_spectrum · spectral_kurtosis · cepstrum · angular_resample · order_spectrum · octave_spectrum · weighting_response
synthesis)*Provenance: acoustics.py — ACOUSTICS 算子登记表。本条目由 tools/opdocs.py md 自动生成(请勿手工编辑)。*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.