数字信号处理音频FIR去噪滤波器(基于MATLAB GUI的开发完整代码+报告+课设)

简介: 数字信号处理音频FIR去噪滤波器(基于MATLAB GUI的开发完整代码+报告+课设)

1、内容简介


利用MATLAB GUI设计平台,用窗函数法设计FIR数字滤波器,对所给出的含有噪声的声音信号进行数字滤波处理,得到降噪的声音信号,进行时域频域分析,同时分析不同窗函数的效果。将文件解压至一个目录下,运行m文件即可使用。


2、函数使用


读取.wav音频文件函数:audioread();(老版本为wavread) MATLAB播放音乐函数:sound(); MATLAB停止播放音乐:clear sound 写入.wav音频文件函数:audiowrite();(老版本为audiowrite) 加入白噪声:noise=(max(x(:,1))/5)*randn(x,2); y=x+noise; 频谱分析: fft(); fftshift(); Fir滤波: fir1(n,Wn,ftype,window); 窗函数选择: 梯形窗boxcar 三角窗triang 海明窗hamming

汉宁窗hanning 布莱克曼窗blackman 凯塞窗kaiser


3、实现功能


514c2ed594d1a62b456f3990ad4ec556.png


实现的功能有:


  • 打开文件:选择路径打开wav格式的音频文件,自动生成音频的原始波形与频谱。
  • 加入噪声:有两种噪声可以选择加入,一种是白噪声,其频率蔓延整个频谱;一种是特定频率的噪声,可通过输入频率加入单一频率的噪声。加入噪声后自动绘制加入噪声后的波形与频谱。
  • 滤波处理:首先输入滤波器通/阻带的开始频率与截止频率(若为低/高通类型滤波,则只需输入开始频率;若为带通/阻类型,则开始与截止都要输入;输入频率值为真实频率值,可根据频谱图进行判断 ),之后选取窗函数和滤波类型,将会生成滤波处理后的波形与频谱。
  • 音频播放/停止:可随时播放/停止原始、加噪、滤波处理后的音频。
  • 图片导出:将波形、频谱图片一张张导出保存,可选的格式有jpg、png、bmp、eps。
  • 保存文件:将加躁/滤波后的音频导出保存。


4、操作实例

选取音乐“卢本伟语音包”,转换为wav格式导入,得到结果如下

7f39e91110ae160441de19e915e94149.png


添加白噪声后,此时播放音频能听到显著杂音。而从原始信号的频谱来看,初始音频的频率主要集中在0-1000Hz,因此我们可以选用低通滤波器,阻带开始频率设为1000Hz,选用矩形窗进行滤波,得到结果如下:

4845d9c24ce0cde7d3a94c3bd731e841.png


由于白噪声遍布于整个频谱,对于噪声频谱于音频频谱的重叠部分,我们无法通过FIR滤波器进行滤除,依然会有小部分杂音存在。若噪声为特定单一频率的噪声,我们可以较好地将其去除。对于该音频添加5000Hz的特定频率,通过设计带阻滤波器,阻带范围为4500-5500Hz对其进行滤波,如下图所示:

3a23d16f2aa7589148cf04d43e4ae190.png


5、窗函数对比

仍选用上例中的5000Hz频率噪声,同时增加噪声幅度,如下图所示:


577a033edcd7014c2c23dc54f313470e.png

选用带阻滤波器,设置阻带范围4000-6000Hz,观察各窗函数对其滤波的效果。(每行从左到右分别是:矩形窗,三角窗,海明窗,汉宁窗,布莱克曼窗,凯塞窗,下同)


2d1ac7d782cc151f83e126db50c0ca51.pnge6b4be2f71cd3c20a94f1fb6d44126b9.png


该种情况下滤波效果的总体排序为:凯瑟窗>矩形窗>汉宁窗>海明窗=三角窗>布莱克曼窗。


完整代码:


https://download.csdn.net/download/qq_38735017/87385584


相关文章
|
2月前
|
传感器 算法 vr&ar
六自由度Stewart控制系统matlab仿真,带GUI界面
六自由度Stewart平台控制系统是一种高精度、高稳定性的运动模拟装置,广泛应用于飞行模拟、汽车驾驶模拟、虚拟现实等领域。该系统通过六个独立的线性致动器连接固定基座与移动平台,实现对负载在三维空间内的六个自由度(三维平移X、Y、Z和三维旋转-roll、pitch、yaw)的精确控制。系统使用MATLAB2022a进行仿真和控制算法开发,核心程序包括滑块回调函数和创建函数,用于实时调整平台的位置和姿态。
|
3月前
|
存储 算法 数据可视化
基于 MATLAB的GUI信号处理界面设计 源码+运行截图
基于 MATLAB的GUI信号处理界面设计 源码+运行截图
128 2
|
5天前
|
机器学习/深度学习 监控 算法
基于yolov4深度学习网络的排队人数统计系统matlab仿真,带GUI界面
本项目基于YOLOv4深度学习网络,利用MATLAB 2022a实现排队人数统计的算法仿真。通过先进的计算机视觉技术,系统能自动、准确地检测和统计监控画面中的人数,适用于银行、车站等场景,优化资源分配和服务管理。核心程序包含多个回调函数,用于处理用户输入及界面交互,确保系统的高效运行。仿真结果无水印,操作步骤详见配套视频。
41 18
|
1月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于yolov4深度学习网络的公共场所人流密度检测系统matlab仿真,带GUI界面
本项目使用 MATLAB 2022a 进行 YOLOv4 算法仿真,实现公共场所人流密度检测。通过卷积神经网络提取图像特征,将图像划分为多个网格进行目标检测和识别,最终计算人流密度。核心程序包括图像和视频读取、处理和显示功能。仿真结果展示了算法的有效性和准确性。
67 31
|
1月前
|
供应链 算法 调度
排队算法的matlab仿真,带GUI界面
该程序使用MATLAB 2022A版本实现排队算法的仿真,并带有GUI界面。程序支持单队列单服务台、单队列多服务台和多队列多服务台三种排队方式。核心函数`func_mms2`通过模拟到达时间和服务时间,计算阻塞率和利用率。排队论研究系统中顾客和服务台的交互行为,广泛应用于通信网络、生产调度和服务行业等领域,旨在优化系统性能,减少等待时间,提高资源利用率。
|
1月前
|
算法
超市火灾烟雾蔓延及人员疏散的matlab模拟仿真,带GUI界面
本项目基于MATLAB2022A开发,模拟了大型商业建筑中火灾发生后的人员疏散与烟雾扩散情况。算法通过设定引导点指导人员疏散,考虑视野范围、随机运动及多细胞竞争同一格点的情况。人员疏散时,根据是否处于烟雾区调整运动策略和速度,初始疏散采用正态分布启动。烟雾扩散模型基于流体方程,考虑了无风环境下的简化。
|
1月前
|
存储 算法 数据安全/隐私保护
基于方块编码的图像压缩matlab仿真,带GUI界面
本项目展示了基于方块编码的图像压缩算法,包括算法运行效果、软件环境(Matlab 2022a)、核心程序及理论概述。算法通过将图像划分为固定大小的方块并进行量化、编码,实现高效压缩,适用于存储和传输大体积图像数据。
|
3月前
|
算法 决策智能
基于禁忌搜索算法的VRP问题求解matlab仿真,带GUI界面,可设置参数
该程序基于禁忌搜索算法求解车辆路径问题(VRP),使用MATLAB2022a版本实现,并带有GUI界面。用户可通过界面设置参数并查看结果。禁忌搜索算法通过迭代改进当前解,并利用记忆机制避免陷入局部最优。程序包含初始化、定义邻域结构、设置禁忌列表等步骤,最终输出最优路径和相关数据图表。
|
5月前
|
存储 算法 Serverless
【matlab】matlab基于DTW和HMM方法数字语音识别系统(源码+音频文件+GUI界面)【独一无二】
【matlab】matlab基于DTW和HMM方法数字语音识别系统(源码+音频文件+GUI界面)【独一无二】
|
5月前
|
安全
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
本文介绍了2023年高教社杯数学建模竞赛D题的圈养湖羊空间利用率问题,包括问题分析、数学模型建立和MATLAB代码实现,旨在优化养殖场的生产计划和空间利用效率。
258 6
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码

热门文章

最新文章