基于局部极值点的音频数字水印算法系统
项目简介
本项目是一个基于MATLAB开发的音频数字水印仿真系统。该系统实现了一种基于音频信号局部极值(Local Extremum)特性的自适应盲水印算法。通过对音频信号进行分帧处理,并利用量化索引调制(QIM)技术修改每一帧的幅值极值,将二值水印图像隐秘地嵌入到音频载体中。
该项目不仅仅实现了水印的嵌入与提取,还构建了一个完整的攻击模拟与性能评估框架,能够自动测试算法在噪声、滤波、压缩、重采样等多种攻击下的鲁棒性,并通过可视化的方式直观展示时域波形、频谱及提取出的水印效果。
主要功能特性
- 合成音频生成机制:系统不依赖外部音频文件,而是内置了信号生成模块,能够产生包含正弦波、啁啾信号(Chirp)及动态包络的合成音频,模拟真实的语音和音乐特性。
- 自适应QIM嵌入算法:采用基于帧能量的自适应量化步长,在保证嵌入强度的同时通过心理声学掩蔽效应(模拟)降低对听觉质量的影响。
- 盲提取机制:水印提取过程不需要原始音频信号,仅需利用接收到的信号即可恢复水印信息。
- 全波形缩放调制:不同于传统的单点修改,本算法通过缩放整帧信号幅值来调整极值点,保持了波形的连续性,提高了抗滤波攻击的能力。
- 综合攻击模拟库:集成了包括高斯白噪声、低通滤波、幅度缩放、MP3压缩模拟、重采样及随机抖动在内的多种攻击脚本。
- 多维性能评估:自动计算信噪比(SNR)、归一化相关系数(NC)和误码率(BER),并生成能够展示波形对比、频谱特征水印恢复效果的综合图表。
系统要求
- MATLAB R2016a 或更高版本
- Signal Processing Toolbox(推荐,用于滤波器设计)
- 无需额外安装第三方工具箱,所有算法均为原生实现
使用方法
直接运行主程序即可启动整个仿真流程。系统将自动执行以下步骤:
- 初始化系统参数(采样率、时长、水印尺寸等)。
- 生成原始音频信号和二值水印图像。
- 执行水印嵌入过程,并输出嵌入后的信噪比(SNR)。
- 对含水印音频施加多种类型的信号处理攻击。
- 从各类攻击后的音频中执行盲提取。
- 计算所有场景下的NC值和BER值。
- 弹出综合分析窗口,展示时域波形、原始水印、频谱图以及各攻击条件下的提取结果。
核心算法与实现细节
本项目主要包含以下核心算法逻辑:
1. 水印嵌入策略
- 分帧处理:将音频信号按1024个采样点为单位进行非重叠分帧。
- 特征选择:在每一帧内搜索绝对值最大的局部极值点(Local Extremum)。
- 自适应步长计算:为了平衡鲁棒性和不可感知性,利用当前帧的平均能量动态计算量化步长。能量越大的帧,允许的量化步长越大(嵌入强度越高)。
- 量化索引调制(QIM):
* 根据待嵌入的水印比特(0或1),将局部最大值量化到奇数或偶数倍的量化步长区间。
* 如果当前极值点不在目标区间(奇/偶特性不符),则将其调整到最近的正确区间中心。
- 平滑调整:计算目标极值与原始极值的比例因子,将该比例因子应用于整帧信号。这种整体缩放避免了信号突变产生的咔嗒声,并增强了信号抵抗滤波的特性。
2. 水印盲提取策略
- 同步分帧:接收端按照相同的帧长对信号进行分帧。
- 极值检测:计算每一帧内的最大幅值。
- 步长估算:接收端利用接收信号计算帧平均能量,并使用与发送端相同的公式恢复自适应量化步长。尽管攻击可能会微调能量,但在一定范围内该估算具有稳定性。
- 判决逻辑:将检测到的极值除以步长并取整,检查其奇偶性。如果是偶数倍则判定为比特0,奇数倍判为比特1。
3. 容量控制
系统通过比较音频总帧数和水印图像的总像素数进行容量检查。若音频过短或水印过大,程序会自动报错提示。默认配置下,5秒音频可容纳32x32(1024比特)的水印图像。
攻击模拟说明
项目内置了名为 define_attacks 的攻击库,包含以下具体实现:
- 加性高斯白噪声(AWGN):分别模拟高信噪比(30dB)和低信噪比(15dB)环境,测试抗噪性。
- 低通滤波(LPF):应用截止频率为6kHz的巴特沃斯低通滤波器,模拟高频丢失。
- 幅度缩放:将信号幅值分别放大(1.2倍)和缩小(0.7倍),测试对音量变化的抵抗力。由于算法基于相对量化间隔,理论上对均匀幅值缩放较敏感,但在自适应步长机制下具有一定的抵抗力。
- MP3压缩模拟:通过FFT变换并强制丢弃高频系数(保留低频70%)来模拟有损压缩带来的频域损失。
- 重采样攻击:通过线性插值将采样率降低一半(44.1kHz -> 22.05kHz)再恢复,模拟采样率转换过程。
- 抖动攻击(Jitter):随机删除极少量样本点(约0.2%),并补零对齐。这大大破坏了分帧的同步性,用于测试极值点位置偏移对算法的影响。
评估指标
程序运行结束后,控制台将输出以下关键指标:
- SNR (Signal-to-Noise Ratio):衡量嵌入水印后音频质量的客观指标,数值越大代表音质受损越小。
- NC (Normalized Correlation):归一化相关系数,用于衡量提取出的水印图像与原始水印图像的相似度。取值范围[0, 1],越接近1表示提取效果越好。
- BER (Bit Error Rate):误码率,表示提取错位的比特比例。数值越低越好(0%表示完全无误复原)。