【Matlab】音频信号分析及FIR滤波处理——凯泽(Kaiser)窗
一、前言
1.1 课题内容:
- 利用麦克风采集语音信号(人的声音、或乐器声乐),人为加上环境噪声(窄带)
- 分析上述声音信号的频谱,比较两种情况下的差异
- 根据信号的频谱分布,选取合适的滤波器指标(频率指标、衰减指标),设计对应的 FIR 滤波器
- 实现数字滤波,将滤波前、后的声音播放,由听觉主观判别滤波效果。并选择、计算合适的客观参数(如:信噪比)评价滤波效果
- 优化参数,取得更好的滤波效果
1.2 课题要求:
- 滤波部分要详细讨论各种参数对结果的影响,并对结果数据进行分析、比较与总结
- 分析、讨论至少两种不同滤波方案的优劣
- 采用 Matlab 语言编程
1.3 应用价值:
20世纪60年代中期形成的一系列数字信号处理方法和算法,如数字滤波器,快速傅里叶变换(FFT)是语音数字信号处理的理论和技术基础。而70年代初期产生的线性预测编码(LPC)算法,为语音信号的数字处理提供了一个强有力的工具。语音信号的编码和压缩是语音信号处理的主要内容。语音信号处理在通信、语音识别与合成、自然语言理解、多媒体数据库以及互联网等多个领域有广泛的应用,同时它对于理解音频类等一般的声音媒体的特点也有很大的帮助。对于移动通信来说,最多的信息是语音信号,语音编码的技术在数字移动通信中具有相当关键的作用,高质量低速率的语音编码技术是数字移动网的永远的追求。所谓语音编码是信源编码,它是将模拟语音信号变成数字信号以便在信道中传输。除了通信带宽的要求外,计算机存储容量的限制也要求对语音信号进行压缩,以满足海量数据情况下进行实时或准实时计算机处理的目的。
二、文献综述
- 数字滤波器有很多种,根据其实现的网络结构或者其冲激响应函数的时域特性,可分为两种:有限冲激响应( FIR,Finite Impulse Response)滤波器和无限冲激响应( IIR,Infinite Impulse Response)滤波器。
- FIR滤波器必须采用间接法,常用的方法有窗函数法、频率采样法和切比雪夫等波纹逼近法。对于线性相位滤波器,经常采用FIR滤波器。在设计FIR滤波器时可以根据对阻带衰减及过渡带的指标要求,选择窗函数类型,并估计窗口长度N,先按照阻带衰减选择窗函数类型。保证阻带衰减满足要求的情况下,尽量选择主瓣的窗函数,再构造希望逼近的频率响应函数,计算。最后加窗便可以得到设计结果。
- FIR滤波器设计方法有窗函数法、频率抽样法等。窗函数设计法比较简单,有闭合形式的公式可循。频率抽样法可以在频域直接设计,在抽样点处与理想滤波器严格相等,可以设计任意幅度响应的滤波器。窗函数设计法是根据设计的性能要求,选择一个理想滤波器,然后用一个合适的窗函数,与理想滤波器在时域中的单位冲激响应相乘,即所谓加窗,得到一个有限长的冲激响应的数字系统,通过调整窗函数的参数来逼近理想滤波器的性能参数,从而达到设计要求。通过窗函数的作用过程可知,一个理想的窗函数在频域的主瓣应该非常窄,有足够的频率分辨率。而旁瓣又能非常低,降低频率之间的干扰。但是在实际中,我们不能同时做到主瓣和旁瓣性能最优,需要在这两者之间取得性能折中。常见的窗函数有矩形(Rectangle)窗、三角形(Fejer)窗、汉宁(Hanning)窗、海明(Hamming)窗、平顶 (Flat Top)窗、凯泽(Kaiser)窗、布莱克曼(Blackman)窗等。矩形窗的优点是主瓣比较集中,频率分辨率最高,缺点是旁瓣较高;三角形窗的主瓣较宽,约等于矩形窗的两倍,但旁瓣小,而且无负旁瓣 ;汉宁窗又称升余弦窗,主瓣变宽,频率分辨率下降,旁瓣减小,有效抑制频谱泄露;海明窗又称为改进升余弦窗,相对汉宁窗来说,其旁瓣更小,但是旁瓣衰减速度变慢;平顶窗在频域通带的波动较小;凯泽窗由一组可调的零阶贝塞尔(Bessel)函数构成,可以通过参数来调整主瓣宽度和旁瓣衰减程度;布莱克曼又称二阶升余弦窗,主瓣宽,旁瓣比较低。
- 窗函数的主瓣宽度和旁瓣峰值衰耗是矛盾的,一项指标的提高总是以另一项指标的下降为代价,窗口选择实际上是对两项指标作权衡。而两项指标是跳变的,于是有人提出可调整窗,适当修改参数,可在这两项指标间作连续的选择。常用的可调整窗是凯泽(Kaiser)窗。凯泽(Kaiser)窗全面地反映主瓣与旁瓣衰减之间的交换关系,可以在它们两者之间自由地选择它们的比重。 表2-1中列出了5种常用的窗函数的特性。

- 表2-1中,窗函数在某一个窗长N时,除凯泽(Kaiser)窗以外其他窗函数的系数都是固定的,而凯泽(Kaiser)窗的系数不是固定的,而是随参数值而变化的,凯泽(Kaiser)窗函数的形状也会随着不同的值而变化。
凯泽(Kaiser)窗在通带波纹和阻带衰减都随参数值而变化,表2-2中列出了部分值与FIR滤波器性能的关系。

- 从表2-2中可看出,当参数取不同数值时,阻带的衰减可以从30dB增加到100dB,滤波器的性能与参数的关系极为紧密。所以在滤波器设计中要选择合适的参数值,使滤波器的效果最佳。
三、算法分析


四、算法仿真与结果分析
- 准备原始音频——录制一段语音信号,时间长度约为6s。将音频信号保存路径为D:\matlab_project\audio.mp3。在MATLAB平台上,用audioread函数调出此语音信号,并得到其音频数据和采样率。
%% 读取音频文件
[x,fs]=audioread('audio.mp3'); % 读取音频信号:x是数据,fs是采样率
x = x(:,<相关文章:
【Matlab】音频信号分析及FIR滤波处理——凯泽(Kaiser)窗
一、前言 1.1 课题内容: 利用麦克风采集语音信号(人的声音、或乐器声乐),人为加上环境噪声(窄带)分析上述声音信号的频谱,比较两种情况下的差异根据信号的频谱分布,选取合适的滤波器指标(频率指标、衰减指标),设计对应的 FIR 滤波器实现数字滤波,将滤波前、后的声音…...
C数据类型
目录 1. 数据类型分类 2. 整数类型 3. 浮点类型 4. void 类型 5. 类型转换 1. 数据类型分类 在 C 语言中,数据类型指的是用于声明不同类型的变量或函数的一个广泛的系统。变量的类型决定了变量存储占用的空间,以及如何解释存储的位模式。 C 中…...
JAVA和Go的不解之缘
JAVA和Go的不解之缘 Java和Go是两种不同的编程语言,它们在语法、特性和设计理念上存在一些明显的异同之处。 1. 语法和特性: Java是一种面向对象的语言,而Go则是一种面向过程的语言。Java拥有类、继承、接口等传统的面向对象特性ÿ…...
(免费领源码)java#SSM#MySQL汽车车辆管理系统68424-计算机毕业设计项目选题推荐
摘 要 科技进步的飞速发展引起人们日常生活的巨大变化,电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用。信息时代的到来已成为不可阻挡的时尚潮流,人类发展的历史正进入一个新时代。在现实运用中,应用软件的工作…...
25考研每日的时间安排
今天要给大家分享一下25考研每日的时间安排。 没有完美的计划,只有合适的计划。 仅供参考 很多人说复习不要只看时长而是要看效率,所以学多长时间不重要,重要的高效率完成任务。 完美的计划 这个计划看起来很完美,从早到晚有学习…...
小程序直播项目搭建
项目功能: 登录实时聊天点赞功能刷礼物取消关注用户卡片直播带货优惠券直播功能 项目启动: 1 小程序项目创建与配置: 第一步 需要登录小程序公众平台的设置页面进行配置: 首先需要是企业注册的才可以个人不能开通直播功能。服务类…...
《Python 简易速速上手小册》第10章:Python 项目实战(基于最新版 Python3.12 编写)
注意:本《Python 简易速速上手小册》 核心目的在于让零基础新手「快速构建 Python 知识体系」 文章目录 <mark >注意:本《Python 简易速速上手小册》<mark >核心目的在于让零基础新手「快速构建 Python 知识体系」 10.1 项目规划和结构10.1…...
防御保护第六天笔记
一、防火墙的用户认证 用户、行为、流量 --- 上网行为管理三要素 防火墙管理员登录认证的作用有两点:检验身份的合法性,划分身份权限 用户认证 --- 上网行为管理的一部分 用户认证分类有以下三类: 1、上网用户认证 --- 三层认证 --- 所有的…...
【yaml 文件使用】pytest+request 框架中 yaml 配置文件使用
又来进步一点点~~ 背景:最近在学习pytestrequest框架写接口测试自动化,使用yaml文件配置更方便管理用例中的数据,这样更方便 yaml 介绍: 什么是 yaml 文件:YAML 是 “YAML Ain’t a Markup Language”(Y…...
浅析Redis②:命令处理之epoll实现(中)
写在前面 Redis作为我们日常工作中最常使用的缓存数据库,其重要性不言而喻,作为普通开发者,我们在日常开发中使用Redis,主要聚焦于Redis的基层数据结构的命令使用,很少会有人对Redis的内部实现机制进行了解,…...
react如果创建了类似于 Icketang元素,那么该如何实现 Icketang类
要实现一个类似于 "Icketang" 的类,首先需要考虑该类的属性和方法。根据上下文,可以假设 "Icketang" 是一个卡片或票据类,可以包含以下属性和方法: 属性: card_number:卡片编号amoun…...
「数字化转型」企业架构:成功业务转型的关键
在麦肯锡最近的一篇文章中,他们雄辩地论证了企业架构对数字转型的重要性。但他们也对实践状况提出了一些重要的批评。为了真正有效地支持数字转型,许多企业架构实践需要改变他们的行为。 一些EA实践首先关注的是详细记录企业的当前状态。这通常是我们在许…...
AI开启手机摄影新时代:三星Galaxy S24 Ultra影像解读
在全球科技领域,生成式AI无疑是当前最为炙手可热的亮点,不少行业专家和业界领袖都纷纷预言,生成式AI技术必将重塑千行百业。 那么是否有人想过,如果生成式AI技术被应用在智能手机上,又会带来怎样翻天覆地的变革&#x…...
Linux ---- Shell编程之函数与数组
目录 一、函数 1、函数的基本格式 2、查看函数列表 3、删除函数 4、函数的传参数 5、函数返回值 实验: 1.判断输入的ip地址正确与否 2. 判断是否为管理员用户登录 6、函数变量的作用范围 7、函数递归(重要、难点) 实验࿱…...
Python系列(9)—— 比较运算符
在Python中,比较运算符用于比较两个值的大小关系,如等于、不等于、大于、小于等。这些运算符可以帮助我们进行各种比较操作,并返回布尔值(True或False)。下面我们将详细介绍Python中的比较运算符。 等于运算符&#x…...
uni-app h5对接 thinkphp5接口跨域
uni-app h5对接 thinkphp5接口跨域 问题描述 请求接口 提示 Access to XMLHttpRequest at http://******* from origin http://localhost:8091 has been blocked by CORS policy: Response to preflight request doesnt pass access control check: It does not have HTTP o…...
react-jss书写样式
目录 react-jss的使用 react-jss的使用 实现组件化样式、动态样式、避免样式冲突 npm install react-jss yarn add react-jss// 使用 import React from react; import { createUseStyles } from react-jss;const useStyles createUseStyles({myButton: {color: green,margi…...
Oracle PL/SQL Programming 第3章:Language Fundamentals 读书笔记
总的目录和进度,请参见开始读 Oracle PL/SQL Programming 第6版 每种语言(无论是人类语言还是计算机语言)都有语法、词汇和字符集。 为了使用该语言进行交流,您必须学习管理其使用的规则。 我们许多人对学习新的计算机语言持谨慎…...
【Spring Boot 3】【@Scheduled】动态修改定时任务时间
【Spring Boot 3】【@Scheduled】动态修改定时任务时间 背景介绍开发环境开发步骤及源码工程目录结构总结背景 软件开发是一门实践性科学,对大多数人来说,学习一种新技术不是一开始就去深究其原理,而是先从做出一个可工作的DEMO入手。但在我个人学习和工作经历中,每次学习…...
WordPress如何自定义日期和时间格式?附PHP日期和时间格式字符串
WordPress网站在很多地方都需要用到日期和时间,那么我们应该在哪里设置日期和时间呢?又如何自定义日期和时间格式呢?下面boke112百科就跟大家一起来学习一下PHP标准化的日期和时间格式字符串。 特别说明:格式字符是标准化的&#…...
TDengine 快速体验(Docker 镜像方式)
简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...
利用ngx_stream_return_module构建简易 TCP/UDP 响应网关
一、模块概述 ngx_stream_return_module 提供了一个极简的指令: return <value>;在收到客户端连接后,立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量(如 $time_iso8601、$remote_addr 等)&a…...
抖音增长新引擎:品融电商,一站式全案代运营领跑者
抖音增长新引擎:品融电商,一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中,品牌如何破浪前行?自建团队成本高、效果难控;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...
postgresql|数据库|只读用户的创建和删除(备忘)
CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...
cf2117E
原题链接:https://codeforces.com/contest/2117/problem/E 题目背景: 给定两个数组a,b,可以执行多次以下操作:选择 i (1 < i < n - 1),并设置 或,也可以在执行上述操作前执行一次删除任意 和 。求…...
高等数学(下)题型笔记(八)空间解析几何与向量代数
目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...
数据链路层的主要功能是什么
数据链路层(OSI模型第2层)的核心功能是在相邻网络节点(如交换机、主机)间提供可靠的数据帧传输服务,主要职责包括: 🔑 核心功能详解: 帧封装与解封装 封装: 将网络层下发…...
Axios请求超时重发机制
Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式: 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...
自然语言处理——循环神经网络
自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元(GRU)长短期记忆神经网络(LSTM)…...
ArcGIS Pro制作水平横向图例+多级标注
今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作:ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等(ArcGIS出图图例8大技巧),那这次我们看看ArcGIS Pro如何更加快捷的操作。…...
