UNPKG

@rfkit/spectrum-analyzer

Version:

A high-performance spectrum analyzer library for RF signal processing, supporting real-time spectrum analysis, waterfall display, and multi-segment frequency scanning

103 lines (75 loc) 2.09 kB
# @rfkit/spectrum-analyzer 高性能 RF 频谱分析库,支持实时频谱分析、瀑布图显示和多段频率扫描。 提供 **JS 版本** **WASM 高性能版本** 两种选择。 ## 安装 ```bash pnpm add @rfkit/spectrum-analyzer ``` ## 使用 ### JS 版本(默认) ```typescript 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 版本完全一致,仅需在应用启动时初始化一次。 ```typescript 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 电平流分析器,支持: - 电平概率分布统计 - 时间/点数缓存模式 ## 构建命令 ```bash pnpm build # 构建 JS 版本 pnpm build:wasm # 构建 WASM 版本 pnpm build:all # 构建全部 ``` ## License MIT