|
|
1 月之前 | |
|---|---|---|
| .. | ||
| NOTES.md | 1 月之前 | |
| README.md | 1 月之前 | |
| config.plutosdr.json | 1 月之前 | |
| config.sample.json | 1 月之前 | |
go test ./...go run ./cmd/fmrtx -print-configgo run ./cmd/fmrtx -config docs/config.sample.jsongo run ./cmd/fmrtx --dry-run --dry-output build/dryrun/frame.jsongo run ./cmd/fmrtx --simulate-tx --simulate-output build/sim/simulated-soapy.iqf32 --simulate-duration 250msgo run ./cmd/offline -duration 500ms -output build/offline/composite.iqf32Current no-hardware sources:
audio.inputPath (robust chunk-scanning loader)The current no-hardware source can be parameterized via config:
audio.toneLeftHzaudio.toneRightHzaudio.toneAmplitudeThe full signal chain from audio input to IQ output:
FM broadcast requires pre-emphasis to boost high frequencies before transmission. The receiver applies complementary de-emphasis to restore flat response while reducing noise.
preEmphasisUS: 50)preEmphasisUS: 75)preEmphasisUS: 0fmModulationEnabled: true — output is baseband FM-modulated IQ (I² + Q² = 1). This is what SDR transmitters expect.fmModulationEnabled: false — output is raw composite MPX (I = composite, Q = 0). Useful for analysis or composite exciters.The MPX limiter prevents overmodulation by applying smooth gain reduction when the composite signal exceeds the configured ceiling. A hard clipper acts as a safety net after the limiter.
limiterEnabled: true/falselimiterCeiling: 1.0 (max composite level before FM modulation)Available endpoints:
GET /healthzGET /statusGET /dry-runGET /configPOST /configCurrent patchable runtime fields via POST /config:
frequencyMHzoutputDrivetoneLeftHztoneRightHztoneAmplitudepsradioTextpreEmphasisUSlimiterEnabledlimiterCeilingcd internalgo test ./...cd examplesgo test ./...go run ./soapy_simulatedThe dry-run mode generates a synthetic, hardware-free frame summary based on the current config. It reports the active source label, pre-emphasis setting, limiter state, and FM modulation mode.
The HTTP control plane also exposes GET /dry-run for quick inspection.
--simulate-tx runs the offline generator through the Soapy-oriented simulated backend path and writes an IQ-style artifact to disk.
cmd/offline generates a deterministic no-hardware IQ/composite file using the full DSP chain (pre-emphasis, stereo encoding, RDS, limiter, FM modulation).
Current honest release posture: pre-v1.
Recommended milestone tag: v0.4.0-pre.
See CHANGELOG.md and RELEASE.md.