基于MATLAB语音信号的数字滤波

news2025/1/18 16:55:50

MATLAB语音信号的数字滤波

一、实验目的

  1. 掌握使用 FFT 进行信号谱分析的方法
  2. 设计数字滤波器对指定的语音信号进行滤波处理

二、实验内容

  1. 导入音频信号,并绘制出时域波形和频域波形:
    音频时域波形
    音频频域波形
    可以看到,频谱上有很多额外的噪音频率,在时域上从第7秒末开始存在大量噪音。
    2. 根据上图中的噪声频谱信息,确定了噪声的频率为1575Hz、3150Hz和4725Hz,设计相应的滤波器,滤除这些频率分量。
    其中,滤除1575Hz的滤波器频率响应曲线如下图所示。
    通过滤波器后音频时域波形

通过滤波器后音频频域波形
可以看到,除了有一部分直流分类没有滤除外,其他的噪声分量被滤波器过滤,时域上的噪音得到明显遏制。

三、额外处理

值得注意的是,在完成以上处理之后,声音在7秒末和9秒末会出现明显跳变,十分刺耳。很明显这是由第8-10秒存在一定的直流分量造成的,同时在7秒末和9秒末存在冲击。通过滤波器,可以滤除低频分量,通过以下代码实现了直流分量的滤除:

freqmax = 1/fs
B = -2*cos(freqmax*2*pi)
hh = [1, B, 1];
yy = filter(hh, 1, yy);

因为时域上音频信号幅值明显小于0.5,冲击却明显远大于0.5,因此可通过以下代码实现消除冲击:

for k = 1:N
     if yy(k)>=0.5 || yy(k)<=-0.5
         yy(k) = 0;
     end
end

在我滤除直流分量以及冲击量后,波形进一步规则,得到的时域赫尔频域波形
额外处理后的音频时域波形
额外处理后的音频频域波形此时音频的跳变消失,变得十分自然。

四、实验结果分析

在通过滤波器后,噪声频率分量得到有效的滤除,但由于存在直流分量,8-10秒声音的幅度不在0附近波动。频域上由于直流分类幅度过大,导致正常的频率分量几乎看不见。经过上述额外处理后,消除直流分类,可以看到音频主要集中在0-4kHz。

五、源代码

所使用的音频文件、MATLAB代码:
源代码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/435041.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

智加科技与舍弗勒签订商用车先进转向系统量产合作协议,将率先量产行业首个正向开发的智能重卡冗余转向

自动驾驶已经成为当前汽车行业的重要发展趋势之一。在此背景下&#xff0c;在2023上海国际汽车展期间&#xff0c;智加科技与舍弗勒集团签订量产合作协议&#xff0c;双方将在自动驾驶商用车先进转向系统领域展开合作&#xff0c;共同推动重卡自动驾驶的技术应用和创新发展。 图…

用TrackEval评测自己的数据集

TrackEval库虽然很专业&#xff0c;但是设置路径很麻烦&#xff0c;于是我自己基于TrackEval简单写了个对评测自己数据集更友好的&#xff0c;仅限2DMOT数据集&#xff0c;可以评测多类别。 项目地址&#xff08;欢迎star&#xff01;&#xff09;https://github.com/JackWoo0…

第三十天 Maven高级(分模块设计、继承、聚合、私服)

目录 Maven高级 1. 分模块设计与开发 1.1 介绍 1.2实践 1.3 总结 2. 继承与聚合 2.1 继承 2.2 聚合 2.3 继承与聚合对比 3. 私服 3.1 场景 3.2 介绍 3.3 资源上传与下载 Maven高级 Web开发讲解完毕之后&#xff0c;我们再来学习Maven高级。其实在前面的课程当中&am…

camunda如何处理流程待办任务

在 Camunda 中处理流程任务需要使用 Camunda 提供的 API 或者用户界面进行操作。以下是两种常用的处理流程任务的方式&#xff1a; 1、通过 Camunda 任务列表处理任务&#xff1a;在 Camunda 任务列表中&#xff0c;可以看到当前需要处理的任务&#xff0c;点击任务链接&#…

数据库基础篇 《2. MySQL环境搭建》

1. MySQL的卸载 步骤1&#xff1a;停止MySQL服务 在卸载之前&#xff0c;先停止 MySQL8.0 的服务。按键盘上的 “Ctrl Alt Delete” 组合键&#xff0c;打开 “ 任务管理器 ” 对话框&#xff0c;可以在“ 服务 ” 列表找到 “MySQL8.0” 的服务&#xff0c;如果现在 “ 正…

SAP 生产订单自定义订单状态

1、生产订单通常系统有一整套订单状态&#xff0c;做PP的各位同学都应该知道。 CRTD状态 REL已下达 CNF已报工 DLV已入库 TECO技术性完成 等等状态这里就不在罗列了&#xff0c;可以自行在生产订单中看到 2、这篇文章主要是在生产订单系统外&#xff0c;在自定义一套状态。这个…

Win10系统下,蓝牙开关不见了怎么办

自从更新了Win10系统后&#xff0c;不少驱动人生的用户反馈&#xff0c;Win10系统中蓝牙开关突然不见了&#xff0c;无法连接蓝牙设备。驱动人生就为大家带来Win10系统下&#xff0c;蓝牙开关不见的解决方法。 方法一&#xff1a;检查蓝牙设备驱动程序 首先&#xff0c;检查蓝…

手把手教你 YOLOv8 添加注意力机制 | 适用于【检测任务】【分类任务】【分割任务】【关键点任务】| 20+ 种全打通!

YOLOv8 添加注意力机制 ! 注意力机制介绍 注意力机制(Attention Mechanism)源于对人类视觉的研究。在认知科学中,由于信息处理的瓶颈,人类会选择性地关注所有信息的一部分,同时忽略其他可见的信息。为了合理利用有限的视觉信息处理资源,人类需要选择视觉区域中的特定部…

skyWalking自动建表-逻辑梳理

skyWalking自动建表-逻辑梳理 使用skyWalking后&#xff0c;发现我们不需要创建表&#xff0c;启动skywalking会自动创建表&#xff0c;遂研究官方源码&#xff0c;感觉oap-server设计的自动建表功能很强大&#xff0c;并进行逻辑梳理&#xff0c;仅供参考。 源码地址&#xff…

Guitar Pro8中文版如何下载?有哪些新功能

Guitar Pro是一款专业的吉他制谱软件&#xff0c;现在已更新至Guitar Pro8&#xff0c;新增了支持添加音频轨道、支持嵌套连音符、直观的效果器视图、让指法一目了然的音阶示意图等实用新功能。软件内有多种功能&#xff0c;方便用户使用乐谱&#xff0c;软件界面简洁&#xff…

Vue 模板语法

文章目录 Vue 模板语法插值文本Html属性表达式 指令参数修饰符 用户输入过滤器缩写v-bind 缩写v-on 缩写 Vue 实例构造器属性与方法 Vue 模板语法 Vue.js 使用了基于 HTML 的模版语法&#xff0c;允许开发者声明式地将 DOM 绑定至底层 Vue 实例的数据。 Vue.js 的核心是一个允…

『OPEN3D』1.7 Ray Casting

1 ray casting ray casting(光线衍射) 和 ray tracing(光线追踪)都属于计算机图形学内的基础方法&#xff1b;用于对三维的实体建模和图片渲染&#xff1b;ray casting一词来自于General Motors Research Labs from 1978–1980&#xff1b;出自论文《Ray Casting for Modeling …

软件测试金融项目经验总结,面试题都问什么?接口加解密如何处理?

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 加/解密接口的处理…

JAVA数据结构之顺序表、单向链表及双向链表的设计和API实现

一、顺序表 顺序表在内存中是数组的形式存储 类名SequenceList构造方法SequenceList(int capacity)&#xff1a;创建容量为capacity的SequenceList对象成员方法1. public void clear()&#xff1a;空置线性表 2. public boolean isEmpty()&#xff1a;判断线性表是否为空&…

浅谈java网络编程及RPC框架

目录 1.计算机网络 2.TCP/IP协议 3.UDP协议 4.RPC框架 1.计算机网络 从资源共享的角度上来说&#xff0c;计算机网络就是以能够相互共享资源的方式互连起来的自治计算机系统的集合。网络建立的主要目的是实现计算机资源的共享。 目前来说&#xff0c;计算机网络分为两大模…

JRE和JDK 及 常用DOS命令

JRE和JDK Java程序开发的三个步骤 ●编写代码 ●编译代码 ●运行代码 1.编写代码 A.txt JRE : JRE是Java Runtime Environment缩写&#xff0c;指Java运行环境&#xff0c;包含JVM虚拟机及Java核心类库。 类&#xff1a;java文件在代码中的集合体现( 类java文件&#xf…

CAD转SHP最好的方法 赶快收藏起来吧

1、利用 ArcToolsbox 工具先将 DWG 文件转为 MDB 通过 CASS 软件生成的 DWG 文件&#xff0c;字段中包含有很多属性内容&#xff0c;所以我们先将 DWG 格式 的文件转换为 MDB 格式&#xff0c;再通过 MDB 转换为 SHP 格式数据进行整理。具体步骤如下&#xff1a; 通过 ArcTool…

jenkins——凭据管理

这里写目录标题 一、Jenkins 凭据管理1、凭据管理入口2、凭据的新增3、用户名和密码方式的凭据配置4、SSH密钥方式的凭据配置5、凭据的更新和删除6、凭据的使用 一、Jenkins 凭据管理 凭据管理的作用&#xff1a;管理ssh、邮箱、git等认证信息 1、凭据管理入口 Dashboard —…

深度学习实战24-人工智能(Pytorch)搭建transformer模型,真正跑通transformer模型,深刻了解transformer的架构

大家好&#xff0c;我是微学AI&#xff0c;今天给大家讲述一下人工智能(Pytorch)搭建transformer模型&#xff0c;手动搭建transformer模型&#xff0c;我们知道transformer模型是相对复杂的模型&#xff0c;它是一种利用自注意力机制进行序列建模的深度学习模型。相较于 RNN 和…

【微信小程序】数据监听器,纯数据字段

一、数据监听器 1.1 什么是数据监听器 数据监听器用于 监听和响应任何属性和数据字段的变化&#xff0c;从而执行特定的操作 。它的作用类似于 vue 中 的 watch 侦听器。在小程序组件中&#xff0c; 在componets中新建一个test2文件夹在文件夹里新建component 在app.json …