# dip_lib **Repository Path**: mudash/dsp_lib ## Basic Information - **Project Name**: dip_lib - **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-06-28 - **Last Updated**: 2026-06-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 数字信号处理 C 语言程序集 > 基于《数字信号处理 C 语言程序集》全书整理,包含 8 篇共 50 个数字信号处理函数的 C 语言实现、测试用例及数学公式说明。 --- ## 项目概述 本项目整理了全书 8 篇核心内容,涵盖随机信号生成、离散变换、快速卷积、滤波器分析与设计、随机信号处理、数字图像处理等领域。所有函数均使用 K&R C 风格编写,附带独立测试用例,通过 `make test` 可一键编译验证。 | 指标 | 数值 | |------|------| | 总函数数 | 50 | | 源码文件 | 33 个 `.c` + 33 个 `.h` | | 测试用例 | 50 个 | | 编译状态 | 50/50 PASS, 0 warning | --- ## 目录结构 ``` dsp_lib/ ├── lib/ # 函数实现源码 (33个 .c 文件) ├── inc/ # 头文件 (33个 .h 文件) ├── test/ # 测试用例 (50个 .c 文件) ├── build/ # 编译输出目录 ├── doc/ # 文档 (8篇独立md + 1个合并md) ├── Makefile # 工程构建脚本 └── README.md # 本文件 ``` --- ## 快速开始 ### 编译全部模块 ```bash make ``` ### 运行全部测试 ```bash make test ``` ### 清理构建产物 ```bash make clean ``` ### 单独编译测试某个函数 ```bash gcc -Wall -Wextra -I./inc test/test_fft.c lib/fft.c -o build/test_fft -lm ./build/test_fft ``` --- ## 8 篇内容一览 ### 第1篇 随机信号的数字特征及数字滤波(16个函数) | 章节 | 函数 | 功能 | |------|------|------| | §1.1 | `uniform` | 均匀分布随机数 | | §1.2 | `gauss` | 正态分布随机数 | | §1.3 | `exponent` | 指数分布随机数 | | §1.4 | `laplace` | 拉普拉斯分布随机数 | | §1.5 | `rayleigh` | 瑞利分布随机数 | | §1.6 | `lognorm` | 对数正态分布随机数 | | §1.7 | `cauchy` | 柯西分布随机数 | | §1.8 | `weibull` | 韦伯分布随机数 | | §1.9 | `erlang` | 爱尔朗分布随机数 | | §1.10 | `bn` | 贝努里分布随机数 | | §1.11 | `bg` | 贝努里-高斯分布随机数 | | §1.12 | `binomial` | 二项分布随机数 | | §1.13 | `poisson` | 泊松分布随机数 | | §1.14 | `arma` | ARMA(p,q) 模型数据产生 | | §1.15 | `sinwn` | 含高斯白噪声的正弦组合信号 | | §1.16 | `analytic` | 解析信号的产生 | ### 第2篇 离散变换(8个函数) | 章节 | 函数 | 功能 | |------|------|------| | §2.1 | `dft` | 离散傅里叶变换 | | §2.2 | `fft` | 基2时间抽取 FFT | | §2.3 | `split_fft` | 分裂基 FFT | | §2.4 | `pfa_fft` | 素因子算法 FFT | | §2.5 | `wfta` | Winograd 傅里叶变换 | | §2.6 | `dht` | 离散哈特莱变换 | | §2.7 | `dct` | 离散余弦变换 | | §2.8 | `dwt` | 离散小波变换 | ### 第3篇 快速卷积与相关(3个函数) | 章节 | 函数 | 功能 | |------|------|------| | §3.1 | `convol` | 快速卷积 | | §3.2 | `convold` | 分段卷积(重叠相加法) | | §3.3 | `correl` | 快速相关 | ### 第4篇 数字滤波器的时域和频域响应(4个函数) | 章节 | 函数 | 功能 | |------|------|------| | §4.1 | `gainc` | 级联型数字滤波器频率响应 | | §4.2 | `resp` | 数字滤波器时域响应 | | §4.3 | `freqres` | 线性相位 FIR 滤波器频率响应 | | §4.4 | `filter` | IIR 级联型数字滤波器 | ### 第5篇 FIR 数字滤波器的设计(3个函数) | 章节 | 函数 | 功能 | |------|------|------| | §5.1 | `firwin` | 窗函数法设计 FIR 滤波器 | | §5.2 | `firls` | 最小二乘法设计 FIR 滤波器 | | §5.3 | `remez` | 等波纹逼近法设计 FIR 滤波器 | ### 第6篇 IIR 数字滤波器的设计(3个函数) | 章节 | 函数 | 功能 | |------|------|------| | §6.1 | `bwtf` | 巴特沃兹滤波器设计 | | §6.2 | `chebyi` | 切比雪夫 I 型滤波器设计 | | §6.3 | `chebyii` | 逆切比雪夫滤波器设计 | ### 第7篇 随机数字信号处理(8个函数) | 章节 | 函数 | 功能 | |------|------|------| | §7.1 | `periodogram` | 功率谱密度估计(周期图) | | §7.2 | `burg` | Burg 谱估计 | | §7.3 | `mlm` | 最大似然谱估计 | | §7.4 | `wigner` | Wigner 分布 | | §7.5 | `wiener` | Wiener 滤波 | | §7.6 | `kalman` | Kalman 滤波 | | §7.7 | `lms` | LMS 自适应滤波 | | §7.8 | `rls` | RLS 自适应滤波 | ### 第8篇 数字图像处理(5个函数) | 章节 | 函数 | 功能 | |------|------|------| | §8.1 | `histeq` | 直方图均衡化 | | §8.1 | `graytrans` | 灰度变换 | | §8.2 | `sobel` | Sobel 边缘检测 | | §8.3 | `hilditch` | Hilditch 细化算法 | | §8.4 | `median` | 中值滤波 | --- ## 文档说明 - `doc/数字信号处理c语言程序集.md` — 完整合并文档(8篇合一,共 5615 行) - `doc/第N篇_xxx.md` — 各篇独立文档 - 每篇文档按章节顺序包含:函数说明、数学公式、函数声明、C 实现源码、测试用例源码 --- ## 编译环境 - **编译器**: GCC (支持 `-std=c89` 或更高) - **依赖**: 仅标准 C 库 (`math.h`, `stdlib.h`, `stdio.h`) - **平台**: macOS / Linux --- ## 许可证 本程序集为学习参考用途,代码整理自《数字信号处理 C 语言程序集》。