# filter **Repository Path**: techwolf/filter ## Basic Information - **Project Name**: filter - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-15 - **Last Updated**: 2026-07-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # filtery MATLAB 转 OpenCL 嵌入式 GPU 加速迁移框架。 支持时频滤波(STFT/ISTFT、平滑、中值、形态、CFAR、Gabor)、极化 SAR 滤波(Boxcar、Refined Lee、PWF、Lee Sigma、IDAN)、极化分解(Pauli、H/A/Alpha、Wishart)、SAR/ISAR 成像、目标跟踪与机器学习模块。 ## 项目结构 - `include/filter/`: C++ 公共头文件 - `src/`: C++ 实现 - `kernels/`: OpenCL Kernel 源码 - `demos/`: 可运行示例 - `tests/`: 单元测试与对比验证 - `scripts/`: MATLAB/Python 辅助脚本 - `docs/`: 文档 ## 构建 ### Native 构建(需要 OpenCL SDK + clFFT) ```bash cmake -B build cmake --build build -j ``` 构建系统会自动通过 FetchContent 获取 clFFT(可通过 `FILTER_FETCH_CLFFT=OFF` 禁用)。 ### ARM HCC1400 构建 ```bash cmake -B build-arm -DFILTER_ARM_BUILD=ON cmake --build build-arm -j ``` ### 构建选项 | 选项 | 默认值 | 说明 | |------|--------|------| | `FILTER_ARM_BUILD` | OFF | ARM HCC1400 交叉编译 | | `FILTER_FETCH_CLFFT` | ON | 自动获取 clFFT 源码 | | `FILTER_CLFFT_TAG` | v2.12.2 | clFFT 版本标签 | | `FILTER_ENABLE_TIMING` | OFF | 启用 GPU 核函数计时 | ## 运行 Demo ```bash ./demo_time_frequency_filter ./demo_polar_filter ./demo_advanced_time_frequency_filter ./demo_advanced_polar_filter ``` ## 运行测试 ```bash ctest --output-on-failure ./test_filter ``` ## 功能模块 ### 时频滤波 (filter::timefreq) | 功能 | CPU 参考 | OpenCL 加速 | 依赖 | |------|----------|-------------|------| | STFT/ISTFT | stft_cpu / istft_cpu | StftOcl / IstftOcl | clFFT | | 谱图高斯平滑 | spectrogram_smooth_gaussian_cpu | SpectrogramSmoothOcl | - | | 谱图幅值门限 | spectrogram_threshold_cpu | SpectrogramSmoothOcl | - | | 谱图中值滤波 | spectrogram_median_cpu | SpectrogramMedianOcl | - | | 形态滤波(腐蚀/膨胀/开/闭) | spectrogram_erosion/dilation/opening/closing | SpectrogramMorphOcl | - | | 2D CFAR 检测 | spectrogram_cfar_cpu | SpectrogramCfarOcl | - | | Gabor 滤波器组 | gabor_filter_bank_cpu | GaborFilterBankOcl | - | | **峰值估计/参数估计** | peak_detect/interp_parabolic/interp_sinc | PeakEstimationOcl | - | | **Wigner-Ville 分布 (WVD/PWVD/SPWVD)** | wvd_cpu / pwvd_cpu / spwvd_cpu | WvdOcl | clFFT | | **连续小波变换 (CWT)** | cwt_cpu (Morlet/Paul/Mexican hat) | CwtOcl | - | | **微多普勒特征提取** | extract_ridge / inst_freq / compute_features | MicroDopplerOcl | - | | **GO-CFAR (Greatest-Of)** | go_cfar_cpu | GoCfarOcl | - | | **OS-CFAR (Ordered Statistics)** | os_cfar_cpu | OsCfarOcl | - | | **AC-CFAR (Adaptive)** | ac_cfar_cpu | AcCfarOcl | - | ### 极化 SAR 滤波 (filter::polar) | 功能 | CPU 参考 | OpenCL 加速 | |------|----------|-------------| | Boxcar 均值滤波 | boxcar_cpu | BoxcarFilterOcl | | Refined Lee 滤波 | refined_lee_cpu | RefinedLeeOcl | | 极化白化滤波 (PWF) | pwf_cpu | PwfOcl | | Lee Sigma 滤波 | lee_sigma_cpu | LeeSigmaOcl | | IDAN 滤波 | idan_cpu | IdanOcl | | **极化相似性滤波** | polar_similarity_cpu | PolarSimilarityOcl | ### 极化分解与分类 (filter::polar) | 功能 | 说明 | |------|------| | Pauli 分解 | 输出奇次/偶次/体散射 RGB 强度 | | H/A/Alpha 分解 | Cloude-Pottier 分解,输出熵/各向异性/平均 alpha 角 | | Wishart 分类 | 基于 Wishart 距离的 K-means 非监督分类 | | **Freeman-Durden 3 成分分解** | 表面/偶次/体散射功率分解算法 (Freeman & Durden 1998) | | **Yamaguchi 4 成分分解** | 增加螺旋体散射分量 (Yamaguchi et al. 2005) | | **极化合成** | 任意收发极化状态下的功率合成 + 极化签名生成 | | **最优极化检测 (OPD)** | 基于 Neyman-Pearson 准则的似然比检测器 | ### SAR/ISAR 成像 (filter::sar) | 功能 | 说明 | |------|------| | **线性调频信号生成** | generate_chirp (LFM chirp) | | **距离向脉压** | range_compress_cpu (FFT + 匹配滤波) | | **2D SAR 成像** | sar_image_cpu (距离压缩 + 方位处理) | | **极坐标格式算法 (PFA)** | polar_format_algorithm_cpu (spotlight SAR) | | **运动补偿** | motion_compensation_cpu (相位历史校正) | ### 目标跟踪 (filter::tracking) | 功能 | 说明 | |------|------| | **EKF 卡尔曼滤波** | 常速模型,支持 Cartesian/极坐标量测,马氏距离门控 | | **JPDA 联合概率数据关联** | JPDA 跟踪器,多目标杂波环境下的概率关联 | | **粒子滤波** | ParticleFilterTracker,非线性非高斯跟踪 | ### 信号变换 (filter::timefreq) | 功能 | 说明 | |------|------| | **Hilbert-Huang 变换 (HHT)** | EMD (经验模态分解) + Hilbert 谱,EMD sift 算法,Hilbert 瞬时频率提取 | ### 机器学习模块 (filter::ml) | 功能 | CPU 参考 | OpenCL 加速 | |------|----------|-------------| | **HOG 特征提取** | hog_features_cpu / hog_descriptor_cpu | HogOcl (Sobel 梯度 + 细胞直方图) | | **K-means 聚类** | kmeans_cpu / polarimetric_kmeans_cpu | KmeansOcl (GPU 加速) | | **SVM 分类** | SvmClassifier (RBF kernel, SMO 训练) | - | ### 算法框架 | 功能 | 说明 | |------|------| | **Algorithm 基类** | 算法接口抽象,process() / apply() 方法 | | **Singleton Registry** | 类型擦除工厂,自动发现并实例化算法 | | **AlgorithmConfig** | 参数容器,支持 JSON/YAML 配置化 | | **Pipeline 链式调用** | 滤波器链组合,支持串行连接 | | **algo_catalog CLI** | 算法目录工具,列出所有可用算法 | ## License TBD