语音信号处理2:数字滤波器 Digital Filters

2024-09-01 00:32

本文主要是介绍语音信号处理2:数字滤波器 Digital Filters,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

参考:
The Scientist and Engineer’s Guide to Digital Signal Processing
Multimedia Signal Processing: Theory and Applications in Speech, Music and Communications

Classification

欲知细节,先识大体,看看数字滤波器都有哪些种类吧。
The Scientist and Engineer’s Guide to Digital Signal Processing 中是这样划分的:
filters classification
解释一下上面这张图:
首先,滤波器根据其用途被分为了三类:用在时域中、用在频域中和自定义。当信息被编码在信号的波形中时,使用时域的滤波器去进行诸如平滑、去偏置或整形等处理。而当信息被包含在信号的幅值、频率或者相位中时,使用频域的滤波器去提取某个频段以进行分析。自定义滤波器则用来做一些更加特殊而精巧的处理,比如反卷积(deconvolution)。
而根据滤波器的实现方式又有两种划分:通过卷积实现 或者 通过递归实现。通过卷积实现的滤波器就是FIR滤波器,通过递归实现的滤波器就是IIR滤波器。

The use of a digital filter can be broken into three categories: time domain, frequency domain and custom. As previously described, time domain filters are used when the information is encoded in the shape of the signal’s waveform. Time domain filtering is used for such actions as: smoothing, DC removal, waveform shaping, etc. In contrast, frequency domain filters are used when the information is contained in the amplitude, frequency, and phase of the component sinusoids. The goal of these filters is to separate one band of frequencies from another. Custom filters are used when a special action is required by the filter, something more elaborate than the four basic responses (high-pass, low-pass, band-pass and band-reject).
Digital filters can be implemented in two ways, by convolution (also called finite impulse response or FIR) and by recursion (also called infinite impulse response or IIR).

Multimedia Signal Processing: Theory and Applications in Speech, Music and Communications 中的划分方法则是这样的:

Depending on the form of the filter equation and the structure of implementation, filters may be broadly classified into the following classes:
(1)Linear filters versus nonlinear filters.
(2)Time-invariant filters versus time-varying filters.
(3)Adaptive filters versus non-adaptive filters.
(4)Recursive versus non-recursive filters.
(5)Direct-form, cascade-form, parallel-form and lattice structures.

前3点略去不表,第4点其实也就是根据实现方式来划分为FIR和IIR两种,第5点讲的是滤波器的结构,有直接型、级联型、并行型和lattice型。

最常用的分类还是分为FIR和IIR。

BTW,总结一下各种名称:
FIR滤波器,又名非递归滤波器(non-recursive filter)、全零点滤波器(all-zero filter)、前馈滤波器( feed-forward filter)或者滑动平均滤波器(moving average filter,MA filter,通常见于统计信号处理相关的文献中 )。
IIR滤波器,又名递归滤波器(recursive filter)、极点-零点滤波器(pole-zero filter)、反馈滤波器(feedback filter)或者自回归移动平均滤波器(auto-regressive-moving-average filter,ARMA filter,通常见于统计信号处理相关的文献中 )。还有一个比较常见的名词——双二阶滤波器(biquad filter)指的是二阶的IIR滤波器。

Alternative Methods for Description of Filters

要想学习某个东西,肯定要知道如何去描述它。那么如何描述一个滤波器?有四种方式:

1.时域,输入信号与输出信号的关系,差分方程
举个栗子:某个一阶滤波器
y ( m ) = a y ( m − 1 ) + x ( m ) y(m) = ay(m-1)+x(m) y(m)=ay(m1)+x(m)
其中,y(m)是滤波器输出,x(m)是滤波器输入,a是滤波器系数。

2.冲激响应形式,用滤波器对冲激信号的响应来描述
上面栗子中的滤波器 to a discrete-time impulse input at at m=0 又可以表示为
y ( m ) = a m y(m) = a^m y(m)=am

Impulse response is useful because: (i) any signal can be viewed as the sum of a number of shifted and scaled impulses, hence the response a linear filter to a signal is the sum of the responses to all the impulses that constitute the signal, (ii) an impulse input contains all frequencies with equal energy, and hence it excites a filter at all frequencies and (iii) impulse response and frequency response are Fourier transform pairs.

3.传递函数形式,零点和极点
还是上面的栗子:
H ( z ) = 1 / ( 1 − a z − 1 ) H(z)=1/(1-az^{-1}) H(z)=1/(1az1)

4.频率响应形式

The frequency response of a filter can be obtained by taking the Fourier transform of the impulse response of the filter, or by simple substitution of the frequency variable ejw for the z variable z=ejw in the z-transfer function as H(z=ejw) = Y(ejw)/X(ejw).

另外一些不错的资料:
Introduction to Digital Filters,Stanford的Julius Orion Smith写的online book
Introduction to Signal and System, University of Colorado Colorado Springs 的ECE2610课程,Lecture Notes写得不错

这篇关于语音信号处理2:数字滤波器 Digital Filters的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


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

相关文章

spring-gateway filters添加自定义过滤器实现流程分析(可插拔)

《spring-gatewayfilters添加自定义过滤器实现流程分析(可插拔)》:本文主要介绍spring-gatewayfilters添加自定义过滤器实现流程分析(可插拔),本文通过实例图... 目录需求背景需求拆解设计流程及作用域逻辑处理代码逻辑需求背景公司要求,通过公司网络代理访问的请求需要做请

Python中edge-tts实现便捷语音合成

《Python中edge-tts实现便捷语音合成》edge-tts是一个功能强大的Python库,支持多种语言和声音选项,本文主要介绍了Python中edge-tts实现便捷语音合成,具有一定的参考价... 目录安装与环境设置文本转语音查找音色更改语音参数生成音频与字幕总结edge-tts 是一个功能强大的

Python实现特殊字符判断并去掉非字母和数字的特殊字符

《Python实现特殊字符判断并去掉非字母和数字的特殊字符》在Python中,可以通过多种方法来判断字符串中是否包含非字母、数字的特殊字符,并将这些特殊字符去掉,本文为大家整理了一些常用的,希望对大家... 目录1. 使用正则表达式判断字符串中是否包含特殊字符去掉字符串中的特殊字符2. 使用 str.isa

使用Python实现文本转语音(TTS)并播放音频

《使用Python实现文本转语音(TTS)并播放音频》在开发涉及语音交互或需要语音提示的应用时,文本转语音(TTS)技术是一个非常实用的工具,下面我们来看看如何使用gTTS和playsound库将文本... 目录什么是 gTTS 和 playsound安装依赖库实现步骤 1. 导入库2. 定义文本和语言 3

使用PyTorch实现手写数字识别功能

《使用PyTorch实现手写数字识别功能》在人工智能的世界里,计算机视觉是最具魅力的领域之一,通过PyTorch这一强大的深度学习框架,我们将在经典的MNIST数据集上,见证一个神经网络从零开始学会识... 目录当计算机学会“看”数字搭建开发环境MNIST数据集解析1. 认识手写数字数据库2. 数据预处理的

java字符串数字补齐位数详解

《java字符串数字补齐位数详解》:本文主要介绍java字符串数字补齐位数,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java字符串数字补齐位数一、使用String.format()方法二、Apache Commons Lang库方法三、Java 11+的St

讯飞webapi语音识别接口调用示例代码(python)

《讯飞webapi语音识别接口调用示例代码(python)》:本文主要介绍如何使用Python3调用讯飞WebAPI语音识别接口,重点解决了在处理语音识别结果时判断是否为最后一帧的问题,通过运行代... 目录前言一、环境二、引入库三、代码实例四、运行结果五、总结前言基于python3 讯飞webAPI语音

Java数字转换工具类NumberUtil的使用

《Java数字转换工具类NumberUtil的使用》NumberUtil是一个功能强大的Java工具类,用于处理数字的各种操作,包括数值运算、格式化、随机数生成和数值判断,下面就来介绍一下Number... 目录一、NumberUtil类概述二、主要功能介绍1. 数值运算2. 格式化3. 数值判断4. 随机

Go信号处理如何优雅地关闭你的应用

《Go信号处理如何优雅地关闭你的应用》Go中的优雅关闭机制使得在应用程序接收到终止信号时,能够进行平滑的资源清理,通过使用context来管理goroutine的生命周期,结合signal... 目录1. 什么是信号处理?2. 如何优雅地关闭 Go 应用?3. 代码实现3.1 基本的信号捕获和优雅关闭3.2

从去中心化到智能化:Web3如何与AI共同塑造数字生态

在数字时代的演进中,Web3和人工智能(AI)正成为塑造未来互联网的两大核心力量。Web3的去中心化理念与AI的智能化技术,正相互交织,共同推动数字生态的变革。本文将探讨Web3与AI的融合如何改变数字世界,并展望这一新兴组合如何重塑我们的在线体验。 Web3的去中心化愿景 Web3代表了互联网的第三代发展,它基于去中心化的区块链技术,旨在创建一个开放、透明且用户主导的数字生态。不同于传统