Skip to content

15725ljh/signal_processing_system

Repository files navigation

Radar Signal Processing System (Windows)

雷达信号处理系统 — 波形生成 · 干扰模拟 · 检测抑制 · 信号处理

Language Framework GUI Platform License


项目简介

一套完整的雷达电子对抗信号处理系统,涵盖 波形生成、干扰模拟、干扰识别与抑制、信号处理 四大核心流程。支持 10 种干扰模式(转发型 + 生成型)的仿真与 6 种信号处理算法,所有参数通过外部 JSON 配置,无需重新编译。

系统架构

┌─────────────────┐    ┌─────────────────┐
│   模块 01       │    │   模块 02       │
│   波形生成      │    │   干扰生成      │
│   (5 种模式)    │    │   (10 种模式)   │
│                 │    │                 │
│ · LFM/NLFM     │    │ · 距离假目标(RDJ)│
│ · 跳频/相位编码 │    │ · 速度假目标(VDJ)│
│ · PRI 抖动     │    │ · 间歇采样(ISRJ) │
│ · 混合波形     │    │ · 窄带噪声(NNJ)  │
│ · 复合波形     │    │ · RGPOJ/VGPOJ   │
└────────┬────────┘    │ · DRFTJ/IPLE    │
         │             │ · SMSPJ/COMBJ   │
         │             └────────┬────────┘
         │                      │
         └──────┐  ┌────────────┘
                │  │
         ┌──────▼──▼──────┐    ┌─────────────────┐
         │   模块 04       │    │   模块 03       │
         │   信号处理      │    │   干扰检测抑制   │
         │   (6 种模式)    │    │   (5 种类型)    │
         │                 │    │                 │
         │ · 匹配滤波      │    │ · ISDJ/ISRJ    │
         │ · STFT 分析     │    │ · ISCJ/NBJ     │
         │ · 干扰识别      │    │ · RDJ 检测     │
         │ · 时频抑制      │    │ · 目标/干扰分离 │
         │ · Tsallis 处理  │    │ · 时频域抑制    │
         └─────────────────┘    └─────────────────┘
              (独立运行,不依赖其他模块)

技术特性

  • 高精度信号模型 — 采用 frac(x) 分数部分提取技术,避免 fc·t ≈ 10⁶ 时的浮点精度丢失
  • 热配置 — 修改 config.json 即时生效,支持 //# 行注释
  • 级联处理 — C++ 模块间通过 .dat 文件传递数据,模块 02 支持 10 种干扰的级联叠加;GUI 通过 pybind11 在内存中传递 numpy 数组
  • Windows 原生 — 针对 Windows x64 编译,内置 FFTW 源码,MSVC/MinGW 工具链,支持 PyInstaller 单文件 exe 打包
  • GUI 界面 — 四个独立 PySide6 桌面应用:波形生成 + 干扰生成 + 干扰识别 + 信号处理,pybind11 直调 C++ 引擎,支持 PyInstaller 打包为单文件 exe
  • 轻量依赖 — 仅依赖 Eigen 和 FFTW 两个第三方库,JSON 解析和 Bessel 函数为自实现

快速开始

GUI 应用(推荐)

# 克隆仓库
git clone -b feature/all-guis-windows https://github.com/15725ljh/signal_processing_system.git
cd signal_processing_system

# 运行 GUI (需要 Python 3.13+)
cd 01_GUI_waveform && pip install -r requirements.txt && python app.py
cd 02_GUI_jamming && pip install -r requirements.txt && python app.py
cd 03_GUI_detection && pip install -r requirements.txt && python app.py
cd 04_GUI_signal_processing && pip install -r requirements.txt && python app.py

C++ 命令行

C++ 源码已从仓库移除,备份为加密 zip 文件。解压后按 docs/BUILD_GUIDE.md 编译运行。

详细构建指南见 docs/BUILD_GUIDE.md

技术栈

组件 技术 用途
语言 C++17 核心信号处理算法
线性代数 Eigen 3.4.0 矩阵运算
FFT FFTW 3.3.10 快速傅里叶变换
配置解析 自实现 mini JSON (~215行) JSON 参数文件解析
Bessel 函数 自实现 bessel_i0() Taylor 级数 Kaiser 窗函数
构建系统 CMake 3.14+ 跨平台构建
GUI PySide6 + pybind11 四 GUI 可视化界面 + exe 打包

10 种干扰模式

类型 模式 缩写 原理
转发型 Case 1 RDJ 距离假目标 — FFT + 频域时延相位 + IFFT
转发型 Case 2 VDJ 速度假目标 — 多普勒调制 + FFT + 时延相位
转发型 Case 3 ISRJ 间歇采样转发 — 周期采样窗 + 多普勒切片重组
生成型 Case 4 NNJ 窄带噪声 — 复高斯白噪声 + 载波调制 + 低通滤波
生成型 Case 5 RGPOJ 距离波门拖引 — 三阶段策略(捕获→拖引→反转)
生成型 Case 6 VGPOJ 速度波门拖引 — 多普勒频移渐进变化
生成型 Case 7 DRFTJ 密集复制转发 — 50 个等间隔假目标
生成型 Case 8 IPLESRJ 脉内前沿切片重复 — 16 次转发等间隔假目标群
生成型 Case 9 SMSPJ 频谱弥散 — 增强调频率子脉冲匹配滤波失配
生成型 Case 10 COMBJ 梳状谱 — 7 个离散频率点对称分布

目录结构

signal_processing_system/
├── config.json                 # 外部参数配置文件(所有模块共享)
├── CMakeLists.txt              # C++ 顶层构建配置
├── build_all.bat               # 一键构建全部 4 个 GUI exe
├── third_party.zip             # 第三方库备份 (Eigen + FFTW + mini JSON, 解压后为 third_party/)
├── cmake/                      # CMake 模块 (FindLibraries.cmake)
├── 01_GUI_waveform/               # PySide6 GUI (波形生成, 链接 libwaveform_core.a)
├── 02_GUI_jamming/                # PySide6 GUI (干扰生成, 链接 libjamming_core.a)
├── 03_GUI_detection/              # PySide6 GUI (干扰识别, 链接 libdetection_core.a)
├── 04_GUI_signal_processing/      # PySide6 GUI (信号处理, 链接 libsignal_processing_core.a + libwaveform_core.a)
├── 01_waveform_generation.zip     # 模块1 C++ 源码备份 (加密)
├── 02_jamming_generation.zip      # 模块2 C++ 源码备份 (加密)
├── 03_jamming_detection_suppression.zip  # 模块3 C++ 源码备份 (加密)
├── 04_signal_processing.zip       # 模块4 C++ 源码备份 (加密)
├── docs/                       # 统一文档目录
├── build/                      # C++ 构建输出目录
└── output/                     # 运行输出目录

文档

文档 说明
构建指南 编译运行 + GUI 打包手册
C++ 模块详解 4 个 C++ 模块的算法与参数
GUI 使用指南 4 个 GUI 的构建与使用
GUI 共享组件 共享基础设施与配置参数分区

License

This project is licensed under the MIT License.

About

Radar signal processing system: waveform generation, jamming simulation (10 types), detection/suppression, and signal processing algorithms

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors