synthesize_bearing_signal — ACOUSTICS synthesis op

데이터 종류: 없음signal(인자만으로 정해지는 연산자 —— 이미지나 데이터 입력을 받지 않습니다)

호출: 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: :func: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 :data: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 패밀리 가이드

참고(샘플 데이터·문헌)

• 샘플 데이터 카탈로그(DL URL / 라이선스) —— 2-D 는 skimage.data(BSD/public)+ 합성, 3-D 는 실데이터 소스(Stanford/PDS 등)의 DL URL.

• 연산자의 내력·참고문헌 —— 이 연산자 족의 바탕이 된 연구/기법의 출처.

• 알고리즘의 정전(저자·연도)과 용도는 위의 패밀리 사용 가이드에 적혀 있습니다.

실행 가능한 예제(이 연산자를 실제로 호출하는 검증된 샘플)

acoustic_condition_monitoringpy -3.11 examples/acoustic_condition_monitoring.py

poc_bearing_diagnosispy -3.11 examples/poc_bearing_diagnosis.py

타입이 이어지는 다음 연산자(signal 를 입력으로 받는 것)

stft · envelope_spectrum · spectral_kurtosis · cepstrum · angular_resample · order_spectrum · octave_spectrum · weighting_response

같은 카테고리(synthesis)

synthesize_speed_ramp


*Provenance: acoustics.py — ACOUSTICS 연산자 레지스트리. 이 op 노트는 tools/opdocs.py md 가 자동 생성합니다(직접 편집하지 마세요).*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.