基于MATLAB的高斯噪声添加与性能分析工具
项目介绍
本项目是一个集成的仿真平台,专门用于一维时间序列信号和二维数字图像的高斯噪声建模、注噪及质量评估。通过精确控制噪声的统计特性(均值与方差)以及信号间的能量比例(信噪比),该工具为信号处理算法的鲁棒性测试和图像降噪技术的性能验证提供了标准化的实验环境。
功能特性
- 一维信号动态模拟:支持生成标准正弦波信号,并根据预设的信噪比(SNR)参数自动计算并注入高斯白噪声。
- 多模式噪声注入:同时提供手动矩阵运算法(基于概率密度函数)与MATLAB内置函数法(awgn/imnoise),便于对比验证算法的准确性。
- 图像退化仿真:模拟相机在低照度环境下的成像特征,支持图像归一化处理、噪声叠加及像素溢出控制。
- 统计特性分析:提供噪声概率密度函数(PDF)的理论值与实验值对比,以及图像灰度直方图的分布演变分析。
- 全自动质量评估:系统化计算实测信噪比(SNR)、峰值信噪比(PSNR)、均方误差(MSE)以及结构相似性指数(SSIM)。
- 多维可视化展示:生成包含时间轴波形、噪声残差、图像对比及统计曲线的综合图表报告。
系统要求
- MATLAB R2016b 或更高版本
- Image Processing Toolbox(图像处理工具箱)
实现逻辑说明详解
一、 一维时间序列处理逻辑
- 信号构建:设定采样频率和信号频率,生成指定时长的纯净正弦信号。
- 噪声功率计算:首先计算原始信号的平均功率,然后根据用户设定的目标SNR(dB)换算出目标噪声功率。
- 手动注噪实现:利用标准正态分布随机数生成器生成的序列,乘以目标标准差(噪声功率的平方根)来构建高斯噪声向量,并将其叠加至原始信号。
- 性能反馈:通过计算注噪前后信号的能量差,反向推导实测SNR,验证注入过程的精确度。
二、 二维数字图像处理逻辑
- 数据初始化:系统自选内置灰度测试图。若环境缺失特定路径,则自动通过三角函数矩阵合成一张灰度纹理图像进行替代。图像数据将被归一化至 [0, 1] 范围。
- 加性噪声合成:根据设定的均值(Mean)和方差(Variance),生成与图像尺寸一致的高斯分布噪声矩阵。
- 线性叠加与约束:将噪声矩阵直接加至归一化后的图像数据中。为了符合数字图像规格,系统对计算结果进行边界截断处理(限制在 0 至 1 之间),最后还原为 8 位无符号整型(uint8)格式。
- 分布观测:对比原始图像与降质图像的直方图,观察高斯噪声对像素分布规律的影响。
三、 自动化评估算法
- PSNR与MSE计算:
* MSE(均方误差):计算原始像素与含噪像素之间差值的平方均值。
* PSNR(峰值信噪比):基于 255 像素峰值,利用公式 10 * log10(255^2 / MSE) 量化图像失真程度。
- SSIM评估:利用结构相似性算法,从亮度、对比度和结构三个维度综合评估图像的降质情况。
关键算法实现细节
高斯噪声生成
系统核心采用 randn 算法生成均值为 0、方差为 1 的标准正态分布。
- 对于信号:通过 SNR 转换公式 $Noise_{std} = sqrt{P_{signal} / 10^{SNR/10}}$ 进行缩放。
- 对于图像:通过 $Noise = Mean + sqrt{Var} times randn$ 进行平移和缩放。
可视化技术
- 一维视图:包含四个子图,分别展示原始波形、加噪波形、提取的噪声残差以及噪声概率密度的统计对比。其中 PDF 对比通过将实验直方图与理论高斯分布曲线(基于正态分布概率密度公式)叠加展示。
- 二维视图:包含四个子图,分别展示原始图像、加噪后的视觉效果及两个阶段对应的灰度直方图。
报表输出
每个处理流程结束后,系统会在命令行窗口实时打印统计分析报表,包含设定参数与实测结果的对比数据,提供直观的性能参考。
使用方法
- 打开 MATLAB 软件。
- 将包含主函数的脚本文件放置在当前工作路径。
- 在命令行窗口输入主函数名并回车。
- 程序将自动运行并弹出两个分析视窗,同时在控制台输出详细的技术报表。
- 用户可以根据需要修改脚本开头的配置区参数(如 SNR、噪声方差等)来模拟不同的干扰环境。