MatlabCode

本站所有资源均为高质量资源,各种姿势下载。

您现在的位置是:MatlabCode > 资源下载 > 一般算法 > 含噪正弦信号低通滤波去噪与频谱分析系统

含噪正弦信号低通滤波去噪与频谱分析系统

资 源 简 介

本项目旨在开发一个基于MATLAB的数字信号处理演示系统,主要用于模拟和处理受噪声干扰的周期性信号。项目首先依据用户设定的参数(如频率、振幅、采样率和时长)生成一个标准的纯净正弦波信号。随后,利用随机数生成算法产生高斯白噪声(AWGN),并将其叠加到原始正弦信号上,从而构建出一个含噪的混合信号,以模拟真实物理环境中的信号干扰情况。核心处理环节涉及数字低通滤波器的设计与应用,系统将计算并构建一个合适的低通滤波器(如巴特沃斯滤波器或FIR滤波器),其截止频率需设定在正弦信号频率与噪声主要频带之间。通过该滤波器对含噪信号进行卷积或滤波运算,有效地滤除高频白噪声分量,尽可能恢复原始的正弦波形。此外,系统还将提供可视化功能,在同一个图形窗口中绘制原始信号、含噪信号以及滤波后信号的时域波形,并计算它们的频谱(FFT),以便直观地对比分析滤波器的去噪效果和信号的频率特性。

详 情 说 明

含噪正弦信号生成与低通滤波去噪仿真系统

项目介绍

本项目是一个基于 MATLAB 开发的数字信号处理演示系统。其主要功能是模拟真实环境下的信号干扰与恢复过程。系统首先生成标准的正弦波信号,按指定的信噪比(SNR)添加高斯白噪声(AWGN),然后通过设计并应用数字低通滤波器滤除噪声,最终通过时域和频域的对比图表,直观展示信号处理算法的去噪效果。

主要功能特性

  • 参数化信号生成:支持自定义采样率、信号频率、振幅、持续时间等基础参数。
  • 高斯白噪声模拟:能够根据设定的信噪比(SNR)自动计算噪声功率,生成相应的加性高斯白噪声。
  • 数字滤波器设计:内置巴特沃斯(Butterworth)低通滤波器设计算法,可调节截止频率和滤波器阶数。
  • 零相移滤波处理:采用 filtfilt 算法进行双向滤波,在去噪的同时避免了相位延迟,保证了波形在时间轴上的严格对齐。
  • 全方位可视化分析
* 时域分析:对比展示原始信号、含噪信号及滤波恢复后的信号波形。 * 频域分析:通过快速傅里叶变换(FFT)计算并绘制单边幅值谱,清晰展示噪声分布及滤波器的频域截止效果。 * 滤波器响应:独立绘制滤波器的幅频响应曲线,验证设计指标。

系统要求

  • MATLAB R2016a 或更高版本
  • Signal Processing Toolbox(信号处理工具箱)
* 代码中使用了 butter(滤波器系数设计)、filtfilt(零相移滤波)和 freqz(频率响应分析)等工具箱函数。

使用方法

  1. 确保 MATLAB 环境已按要求配置。
  2. 打开 MATLAB,将工作路径切换到项目所在目录。
  3. 在命令行窗口直接运行主函数。
  4. 程序运行结束后,将自动在命令行输出“仿真完成”提示,并弹出三个图形窗口展示仿真结果。

---

核心算法与实现逻辑详解

本项目的所有逻辑均包含在一个主流程中,具体实现细节如下:

1. 信号与噪声建模

  • 原始信号:基于设定的采样频率(2000 Hz)和时长(1.0 秒),生成频率为 50 Hz、振幅为 2.0 的标准正弦波。
  • 信噪比换算与噪声生成
* 首先计算原始正弦信号的理论功率 $P_{signal} = A^2 / 2$。 * 根据给定的信噪比 $SNR = 5dB$,反向推算所需的噪声功率 $P_{noise} = P_{signal} / 10^{(SNR/10)}$。 * 利用 randn 函数生成标准正态分布随机数,并乘以 $sqrt{P_{noise}}$ 进行幅度缩放,从而获得符合指定信噪比的高斯白噪声。 * 最终通过叠加原始信号与噪声,构建出模拟的含噪混合信号。

2. 滤波器设计与应用

  • 参数归一化:将设定的截止频率(150 Hz)除以奈奎斯特频率(采样率的一半),转换为 MATLAB 滤波器设计所需的归一化频率参数。
  • 巴特沃斯滤波器:调用 butter 函数设计一个 4 阶低通滤波器,获取传递函数系数 b (分子) 和 a (分母)。
  • 零相移滤波:代码优先尝试使用 filtfilt 函数。该函数通过正向和反向两次滤波,不仅使幅频响应翻倍(衰减更强),更重要的是完全消除了相位非线性引起的延迟,使得滤波后的正弦波峰值与原始信号在时间上完美重合。代码包含了兼容性检查,若未检测到工具箱则回退使用 filter 函数。

3. 频谱分析 (FFT)

  • 为了准确分析频率特性,代码内部封装了一个 fft_wrapper 辅助逻辑:
* 执行标准 FFT 变换。 * 计算双边频谱并取模,除以采样点数 N 进行归一化。 * 截取前一半数据转换为单边频谱,并将除直流分量外的幅度乘以 2,以还原真实的物理幅值。

4. 结果可视化方案

结果通过三个独立的图形窗口进行展示:

  • 图1:时域分析
* 窗口包含三个子图,分别显示“原始信号”、“含噪信号”和“滤波后信号”。 * 细节优化:含噪信号图和滤波信号图中均叠加了原始信号的虚线轮廓,便于直观评估噪声强度和还原程度。同时,X 轴被限制在 $[0, 0.2]$ 秒范围内,以放大观察局部波形细节。

  • 图2:频域分析
* 窗口包含两个子图,对比滤波前后的频谱变化。 * 滤波前:展示含噪信号频谱,可见在整个频带上分布着噪声底噪,但在 50 Hz 处有明显的主信号峰值。 * 滤波后:展示滤波处理后的频谱,并绘制了一条绿色的截止频率指示线(150 Hz)。可以明显观察到截止频率尤其是高频部分的噪声被大幅抑制。

  • 图3:滤波器特性
* 利用 freqz 函数计算并绘制所设计滤波器的幅频响应曲线(Bode图幅度部分)。 * 图中标记了截止频率位置,验证了滤波器在通带内的平坦特性和阻带内的衰减特性。