@rfkit/spectrum-analyzer
v0.2.0
Published
A high-performance spectrum analyzer library for RF signal processing, supporting real-time spectrum analysis, waterfall display, and multi-segment frequency scanning
Maintainers
Readme
@rfkit/spectrum-analyzer
高性能 RF 频谱分析库,支持实时频谱分析、瀑布图显示和多段频率扫描。
提供 JS 版本 和 WASM 高性能版本 两种选择。
安装
pnpm add @rfkit/spectrum-analyzer正式版本默认走 Release PR -> 合并 -> GitHub Actions 自动发布 npm。仓库里的 publish:npm / build:npm 只保留为调试或应急入口,不作为日常正式发版流程。
使用
JS 版本(默认)
import {
SpectrumAnalyzer,
LevelStreamAnalyzer,
type SpectrumConfig,
type SpectrumOutputData,
} from '@rfkit/spectrum-analyzer';
const analyzer = new SpectrumAnalyzer({
maxPoints: 2048,
outputPoints: 1024,
enableStatistics: true,
onSpectrumUpdate: (data) => {
console.log(data.realData);
},
});
// 处理频谱数据
analyzer.process({ data: Float32Array, timestamp: Date.now() });WASM 高性能版本
WASM 版本 API 与 JS 版本完全一致,仅需在应用启动时初始化一次。
import {
initWasm,
SpectrumAnalyzer,
LevelStreamAnalyzer,
} from '@rfkit/spectrum-analyzer/wasm';
// 应用启动时初始化(仅需一次)
await initWasm();
// 之后使用方式与 JS 版本完全一致
const analyzer = new SpectrumAnalyzer({
maxPoints: 2048,
outputPoints: 1024,
enableStatistics: true,
onSpectrumUpdate: (data) => {
console.log(data.realData);
},
});
analyzer.process({ data: Float32Array, timestamp: Date.now() });性能对比
| 场景 | JS 版本 | WASM 版本 | 提升 | |------|---------|-----------|------| | 8192 点数据 | 0.032 ms | 0.020 ms | 35% | | 2000 点 / 300Hz | 0.023 ms | 0.020 ms | 13% |
两个版本在 300Hz 更新频率下都能轻松满足,CPU 占用 < 1%。
核心组件
SpectrumAnalyzer
频谱分析器,支持:
- 实时数据处理与重采样
- 最大值/最小值/平均值统计
- 瀑布图数据管理
- 天线因子补偿
- 模板超限检测
- 多段频率扫描
LevelStreamAnalyzer
电平流分析器,支持:
- 电平概率分布统计
- 时间/点数缓存模式
构建命令
pnpm build # 构建 JS 版本
pnpm build:wasm # 构建 WASM 版本
pnpm build:all # 构建全部发版约定
- 发布级改动默认需要在 PR 中携带
.changeset/*.md patch/minor/major由 changeset 决定,不要手改package.json.version- PR 合并到
main后会自动创建或更新 Release PR;合并 Release PR 后才会正式发布 npm - 若 GitHub Actions 在
npm publish阶段报E404或权限类错误,先检查 npm 包设置里的 Trusted Publisher 是否精确匹配Hxgh/rfkit-spectrum-analyzer、release.yml、npm-release,并确认package.json.repository.url仍是当前 GitHub 仓库;修配置后直接重跑当前未发布版本,不要继续 bump 版本
License
MIT
