
特防科技反谍技术研究院2026-09-27阅读约 20 分钟1. 背景为什么要做全频段射频探测反窃听检测的核心问题不是“有没有信号”而是“这个信号是什么设备、在哪、合不合法”。要回答这个问题第一步是能完整采集1MHz–10GHz全频段的射频信号。本文基于AD8317对数检波器 ESP32-S3主控的硬件架构给出五类窃听/定位设备的信号特征采集与分类方案。文中的实测数据来自特防科技反谍技术研究院的电磁信号特征库采集环境为受控电磁暗室采样率100kSPS每组数据采集60分钟重复三次取均值。2. 硬件架构2.1 系统框图天线SMA全向宽带 │ ▼ 通道滤波器组2.4GHz / 5GHz / Sub-1GHz 多通道并行切换 │ ▼ AD8317 对数射频功率检波器1MHz–10GHz动态范围≈50dB精度±1dB │ ▼ ESP32-S3 ADC12bit采样率100kSPS │ ▼ DSP滤波去噪 → 特征提取带宽/中心频率/占空比/脉冲重复周期 │ ▼ JSON payload → MQTT over TLSQoS 1→ 云端2.2 关键器件选型模块型号关键参数选型理由主控ESP32-S3双核240MHzWi-Fi/BLE 5.012bit ADC集成Wi-Fi/BLE内置ADC成本可控检波器AD83171MHz–10GHz50dB动态范围±1dB精度对数响应宽频覆盖适合RF功率检测滤波器多频段带通/低通切换2.4GHz / 5GHz / Sub-1GHz分频段采集提高信噪比天线全向宽带天线SMA接口可外接定向天线全向覆盖定向增强灵活3. 信号采集链路3.1 采集流程AD8317将射频功率转换为dBm级直流电压ESP32-S3的ADC以100kSPS采样。采集后的信号经过DSP滤波去噪提取以下特征信号带宽通过频谱分析计算3dB带宽中心频率峰值功率对应的频率占空比信号超过阈值的时长 / 总观测时长脉冲重复周期相邻脉冲峰值之间的时间间隔3.2 AD8317 ADC读取代码// AD8317 ADC读取与dBm转换 // ESP32-S3, 12bit ADC, 100kSPS #include driver/adc.h #include esp_adc_cal.h #define ADC_CHANNEL ADC1_CHANNEL_0 #define ADC_ATTEN ADC_ATTEN_DB_11 #define ADC_WIDTH ADC_WIDTH_BIT_12 #define V_REF 1100 // mV #define SAMPLE_COUNT 1000 // AD8317 传递函数: Vout Vslope * (Pin - Pintercept) // Vslope ≈ 25mV/dB, Pintercept ≈ -68dBm (典型值) #define VSLOPE_MV_PER_DB 25.0f #define PINTERCEPT_DBM (-68.0f) float adc_to_dbm(uint32_t adc_raw) { // ADC原始值 → 电压(mV) float voltage_mv (adc_raw / 4095.0f) * V_REF * 3.6f; // 电压 → dBm float dbm (voltage_mv / VSLOPE_MV_PER_DB) PINTERCEPT_DBM; return dbm; } void rf_sampling_task(void *pvParameters) { uint32_t adc_raw; float dbm; adc1_config_width(ADC_WIDTH); adc1_config_channel_atten(ADC_CHANNEL, ADC_ATTEN); while (1) { adc1_get_raw(ADC_CHANNEL); // 多次采样取平均降低噪声 uint32_t sum 0; for (int i 0; i SAMPLE_COUNT; i) { sum adc1_get_raw(ADC_CHANNEL); } adc_raw sum / SAMPLE_COUNT; dbm adc_to_dbm(adc_raw); // 输出到队列供特征提取任务处理 xQueueSend(rf_data_queue, dbm, 0); vTaskDelay(pdMS_TO_TICKS(10)); // 100Hz采样 } }3.3 特征提取与MQTT上报// 信号特征提取 MQTT over TLS 上报 typedef struct { uint64_t timestamp; float freq_band; // MHz float rssi_dbm; uint32_t duration_ms; float duty_cycle; // 0.0-1.0 char protocol_label[16]; float confidence; // 0.0-1.0 } rf_feature_t; // 协议指纹匹配表简化版 typedef struct { const char *label; float freq_min, freq_max; float bw_min, bw_max; float duty_min, duty_max; } protocol_fingerprint_t; static const protocol_fingerprint_t fingerprints[] { {GSM900, 890, 915, 0.18, 0.22, 0.30, 1.0}, {GSM1800, 1710, 1785, 0.18, 0.22, 0.30, 1.0}, {WiFi2.4, 2400, 2483, 18, 82, 0.05, 0.20}, {BLE, 2400, 2483, 1.5, 2.5, 0.0, 0.001}, {LTE_B1, 2100, 2170, 1.2, 1.6, 0.0, 0.05}, {NB-IoT, 700, 900, 0.15, 0.25, 0.0, 0.01}, }; const char* classify_protocol(rf_feature_t *f) { for (int i 0; i sizeof(fingerprints)/sizeof(fingerprints[0]); i) { if (f-freq_band fingerprints[i].freq_min f-freq_band fingerprints[i].freq_max f-duty_cycle fingerprints[i].duty_min f-duty_cycle fingerprints[i].duty_max) { return fingerprints[i].label; } } return UNKNOWN; } // MQTT over TLS 上报 void mqtt_publish_feature(rf_feature_t *f) { char payload[256]; snprintf(payload, sizeof(payload), {\ts\:%llu,\freq\:%.1f,\rssi\:%.1f, \dur\:%lu,\duty\:%.4f,\proto\:\%s\,\conf\:%.2f}, f-timestamp, f-freq_band, f-rssi_dbm, f-duration_ms, f-duty_cycle, f-protocol_label, f-confidence); esp_mqtt_client_publish(mqtt_client, rf/feature, payload, 0, 1, 0); }4. 五类设备实测信号特征下表是AD8317在受控暗室环境下采集的五类设备信号特征数据。数据来源特防科技反谍技术研究院电磁信号特征库。设备类型中心频率占用带宽占空比发射周期RSSI范围时域波形GSM蜂窝类900/1800MHz200kHz30%持续−30~−60dBmTDMA脉冲串WiFi类2.4/5GHz20/40/80MHz5–20%突发−40~−70dBmOFDM突发包4G Cat-M/NB-IoTB1/B3/B38/B39/B40/B411.4MHz/200kHz5%周期性−50~−80dBm窄带脉冲BLE蓝牙低功耗2.4GHz/40信道2MHz0.1%可达1次/小时−60~−90dBm毫秒级短脉冲离线录音/存储无无无无无不发射4.1 各类设备的技术细节GSM蜂窝类调制GMSK帧结构TDMA每帧4.615ms8时隙典型发射功率2W33dBm检测难点易发现但难与合法手机区分WiFi类调制OFDM802.11a/g/n/ac/ax信道带宽20/40/80MHz典型发射功率100mW20dBm检测难点难与合法AP区分需多维信息综合判定4G Cat-M/NB-IoT类调制SC-FDMA上行/ OFDMA下行带宽1.4MHzCat-M1/ 200kHzNB-IoT占空比5%NB-IoT可低至1%检测难点窄带低功耗宽频扫描易忽略BLE蓝牙低功耗类调制GFSK信道40个3广播37数据广播间隔20ms~10.24s可延长至数分钟检测难点时间/灵敏度/识别三重矛盾离线录音/存储类射频特征无检测方式物理排查 NLJD检测难点射频检测完全无效5. BLE为什么最难抓三个技术矛盾BLE是五类设备中检测难度最高的。原因来自三个层面的矛盾5.1 时间矛盾BLE广播间隔可配到20ms~10.24s部分追踪器几分钟才发一次。每次发射毫秒级占空比0.1%。传统频谱仪扫描周期3–10秒一次扫描内BLE可能已经发完休眠。即使扫到2.4GHzBLE用40信道跳频单次驻留时间不够捕获完整跳频序列。5.2 灵敏度矛盾BLE Class 2典型发射功率2.5mW约4dBmClass 3可低到1mW约0dBm。室内衰减后RSSI通常−60~−90dBm。传统宽频扫描灵敏度−80~−90dBm。要可靠捕获BLE需将扫描带宽收窄到2MHz以内但扫完40信道需数十秒期间设备可能已休眠。5.3 识别矛盾BLE普遍用随机MAC地址和跳频。即使捕获信号也无法通过MAC追踪设备身份。跳频意味着同一设备连续广播用不同信道单点接收难以持续跟踪。要区分合法BLE设备耳机、手表和非法BLE窃听器需结合信号强度变化、空间位置、出现时间规律综合判断。结论BLE检测需要多节点、持续、全信道的监测能力。单点手持探测器在架构上无法满足。6. 多节点协同的数据上报单个探针只能感知“有信号”无法定位。要反算设备数量和位置需要多节点协同。系统通常部署8–10个探针通过MQTT over TLS汇聚到云端。6.1 MQTT上报格式// 探针上报的JSON payload { node_id: probe_03, timestamp: 1758940800123, freq_band: 2402.0, rssi_dbm: -72.5, duration_ms: 8, duty_cycle: 0.0008, protocol_label: BLE, confidence: 0.87 }6.2 云端处理链路多探针数据 → MQTT Broker → 时序数据库TDengine/InfluxDB │ ▼ 时间戳对齐NTP同步精度1ms │ ▼ DBSCAN聚类频率占空比持续时间 │ ▼ 多节点RSSI差分定位WLS 3D path loss修正 │ ▼ 协议指纹匹配 → 设备清单类型/数量/坐标/置信度7. 小结本文给出了基于AD8317ESP32-S3的1MHz–10GHz全频段射频探测方案包括硬件架构、信号采集链路、特征提取算法、协议分类代码以及五类窃听设备的实测信号特征数据。核心结论五类设备按检测难度递进GSM WiFi 4G Cat-M/NB-IoT BLE 离线设备BLE是最难检测的无线设备类型存在时间、灵敏度、识别三重矛盾单点手持探测器无法覆盖全部五类设备多节点持续监测是架构层面的必然选择离线设备射频检测无效必须配合物理排查本文实测数据来自特防科技反谍技术研究院的电磁信号特征库。该研究院基于火眼探针硬件平台AD8317对数检波器1MHz–10GHz全频段和悟空空间感知系统的多节点采集能力持续积累各类无线设备的实测信号数据。