基于数字滤波器的语音信号处理系统的设计
语音信号处理课程设计报告python

语音信号处理课程设计报告python一、引言语音信号处理是数字信号处理中的一个重要分支,它主要涉及到语音信号的获取、预处理、特征提取、分类识别等方面。
在本次课程设计中,我们将使用Python语言对语音信号进行处理,并实现一个简单的语音识别系统。
二、问题描述本次课程设计的主要任务是实现一个基于MFCC特征提取和GMM-HMM模型的语音识别系统。
具体来说,我们需要完成以下任务:1. 对输入的语音信号进行预处理,包括去噪、分帧、加窗等;2. 提取MFCC特征;3. 使用GMM-HMM模型对不同的语音进行分类识别。
三、方法实现1. 语音信号预处理在对语音信号进行MFCC特征提取之前,需要对其进行预处理。
我们需要去除信号中的噪声。
常见的去噪方法包括基于阈值的方法和基于滤波器的方法。
在本次课程设计中,我们将使用基于阈值的方法对信号进行去噪。
我们需要将原始信号分帧,并对每一帧应用窗函数以减少频谱泄漏效应。
常见的窗函数包括汉明窗、海宁窗等。
2. MFCC特征提取MFCC是一种常用的语音特征提取方法,它可以将语音信号转换为一组包含语音信息的系数。
MFCC特征提取包括以下几个步骤:1. 对预处理后的语音信号进行快速傅里叶变换(FFT);2. 将频谱图转换为梅尔频率倒谱系数(MFCC);3. 对MFCC系数进行离散余弦变换(DCT)。
3. GMM-HMM模型GMM-HMM模型是一种常见的语音识别模型,它将每个单词表示为一个由高斯混合模型(GMM)和隐马尔可夫模型(HMM)组成的序列。
在本次课程设计中,我们将使用GMM-HMM模型对不同的语音进行分类识别。
四、程序实现1. 语音信号预处理我们使用Python中的librosa库对语音信号进行预处理。
具体来说,我们使用librosa.load()函数加载.wav格式的文件,并使用librosa.effects.trim()函数去除静默段。
我们对剩余部分进行分帧和加窗操作,并使用librosa.feature.mfcc()函数提取MFCC特征。
(完整word版)语音信号处理实验报告实验一

通信工程学院12级1班罗恒2012101032实验一语音信号的低通滤波和短时分析综合实验一、实验要求1、根据已有语音信号,设计一个低通滤波器,带宽为采样频率的四分之一,求输出信号;2、辨别原始语音信号与滤波器输出信号有何区别,说明原因;3、改变滤波器带宽,重复滤波实验,辨别语音信号的变化,说明原因;4、利用矩形窗和汉明窗对语音信号进行短时傅立叶分析,绘制语谱图并估计基音周期,分析两种窗函数对基音估计的影响;5、改变窗口长度,重复上一步,说明窗口长度对基音估计的影响。
二、实验目的1.在理论学习的基础上,进一步地理解和掌握语音信号低通滤波的意义,低通滤波分析的基本方法。
2.进一步理解和掌握语音信号不同的窗函数傅里叶变化对基音估计的影响。
三、实验设备1.PC机;2。
MATLAB软件环境;四、实验内容1。
上机前用Matlab语言完成程序编写工作.2。
程序应具有加窗(分帧)、绘制曲线等功能。
3.上机实验时先调试程序,通过后进行信号处理。
4.对录入的语音数据进行处理,并显示运行结果。
5。
改变滤波带宽,辨别与原始信号的区别。
6。
依据曲线对该语音段进行所需要的分析,并且作出结论。
7.改变窗的宽度(帧长),重复上面的分析内容。
五、实验原理及方法利用双线性变换设计IIR滤波器(巴特沃斯数字低通滤波器的设计),首先要设计出满足指标要求的模拟滤波器的传递函数Ha(s),然后由Ha(s)通过双线性变换可得所要设计的IIR滤波器的系统函数H(z)。
如果给定的指标为数字滤波器的指标,则首先要转换成模拟滤波器的技术指标,这里主要是边界频率Wp和Ws的转换,对ap和as指标不作变化。
边界频率的转换关系为∩=2/T tan(w/2).接着,按照模拟低通滤波器的技术指标根据相应设计公式求出滤波器的阶数N和3dB截止频率∩c ;根据阶数N查巴特沃斯归一化低通滤波器参数表,得到归一化传输函数Ha(p);最后,将p=s/ ∩c 代入Ha(p)去归一,得到实际的模拟滤波器传输函数Ha(s)。
基于DSP的数字语音信号处理系统的设计

【 1 ] 肖 瑛, 李振兴, 董玉华, 等. 基于压缩传递函数的神 经网 络盲均衡算法
弹箭与制导学报 , 2 0 0 9 , 2 9 ( 1 ) : 2 5 1 — 2 5 3 . 图 1数字语音信号处理系统硬件组成 3 F I R数字滤波器算法的 D S P实现 本设计中采用窗函数法设计 F I R滤波器 。T MS 3 2 0 v c 5 4 1 0在指令 2 0 0 9 , 3 8 ( 4 ) : 4 7 9 — 4 8 3 . 集和硬件结构上 , 对滤波器算法的实现 , 有专 门的考虑。首先是在指令 [ 4 】 肖瑛 , 冯长建. 组合窗函数的短时傅里叶变换时频表示方法 探 测与 中设置了 MA C D指令, 它的功能是将数据区的两个数相乘以后, 再与 累 控制学报 , 2 0 1 0 , 3 2 ( 3 ) : 4 3 - 4 8 . 加器中的值累加 , 运算结果仍保 留于累加器中, 而为下 一次操作准备 ; 【 5 】 肖瑛, 李振 兴. 差异进化算法初始化的小波神经网络盲均衡m电路 与 其次在硬件上, 设计了间接寻址时的循环寻址功能 , 即将滤波器系数保 系统学报 , 2 0 1 0 , 1 5 ( 4 ) : 2 2 — 2 6 . 存于—个可循环寻址的数据缓冲区, 寻址指针由低地址 自 动增长 , 当达 嘲 肖 瑛. 并联滤波的常数模 与判决 引导融合 盲均衡算 法 声学学报 , 到缓冲区顶部时 , 自动返回低地址重新寻址 , 这样 , 配合单指令重复指 2 0 1 2 , 3 7 ( 5 ) : 4 9 5 — 5 0 0 . 令R P T , 就可以快速实现卷积操作。程序设计流程图如图 2所示。 董玉华 , 张俊星. 修正的解相关前馈神经网络盲均衡算法研 究 大连 民族学院学报 , 2 0 1 2 , 1 4 ( 5 ) : 4 6 0 — 4 6 2 . [ 8 ] 董玉华 , 肖瑛. 基于¥ 3 C 2 4 4 0的温度采集 系统 的实现Ⅱ l 数 字通信 ,
基于滤波器的语音信号分析与处理

目 录
摘要............................................... 错误!未定义书签。 第 1 章 绪论........................................ 错误!未定义书签。 1.1MATLAB 简介 .................................. 错误!未定义书签。 1.2 滤波器简介 .................................. 错误!未定义书签。 1.2.1 滤波器的构成 ........................... 错误!未定义书签。 1.2.2 滤波器的功能 ........................... 错误!未定义书签。 1.2.3 数字滤波器简介. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误! 未定义书签。 第 2 章 语音信号处理技术简介. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 错误! 未定义书签。 2.1 语音信号处理技术简介. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错 误!未定义书签。 2.1.1 语音的概念. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错 误!未定义书签。 2.1.2 语音信号处理技术的概念. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错 误!未定义书签。 2.1.3 语音信号处理技术的应用. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错 误!未定义书签。 第 3 章 课程设计的内容. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错 误!未定义书签。 3.1 课程设计的目的. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错 误!未定义书签。 3.2 课程设计的原理. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错 误!未定义书签。 3.2.1 数字滤波器的原理. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错 误!未定义书签。 3.2.2 用窗函数法设计 FIR 数字滤波器. . . . . . . . . . . . . . . . . . . . . . . . . . 错误! 未定义书签。
数字信号处理中的滤波器设计及其应用

数字信号处理中的滤波器设计及其应用数字信号处理中的滤波器是一种用于处理数字信号的工具,它能够从信号中去除杂音、干扰等不需要的部分,使信号变得更加清晰、准确。
在数据通信、音频处理、图像处理等各种领域都有着广泛的应用。
本文将探讨数字信号处理中的滤波器设计及其应用。
一、滤波器的分类根据滤波器能否传递直流分量,可以将滤波器分为直流通、低通、高通、带通和带阻五种类型。
1.直流通滤波器:直流通滤波器不会滤除信号中的直流分量,只是将信号波形的幅值进行调整。
它主要用于直流电源滤波、电池充电电路等。
2.低通滤波器:低通滤波器可以通过滤除信号中的高频分量来保留低频分量,其截止频率通常指代3dB的频率,低于该频率的信号通过的幅度保持不变,而高于该频率的信号则被削弱。
低通滤波器主要用于音频处理、语音识别等。
3.高通滤波器:高通滤波器与低通滤波器相反,它滤除低频分量,只保留高频分量。
其截止频率也指代3dB的频率,高于该频率的信号通过的幅度保持不变。
高通滤波器主要用于图像处理、视频处理等。
4.带通滤波器:带通滤波器可以通过滤除一定频率范围内的信号,使得出现在该频率范围内的信号通过,而其他的信号则被削弱。
带通滤波器主要应用于频率选择性接收和频率选择性信号处理。
5.带阻滤波器:带阻滤波器可以通过滤除一定频率范围内的信号,使得不在该频率范围内的信号通过,而其他的信号则被削弱。
带阻滤波器主要应用于频率选择性抑制和降噪。
二、滤波器设计方法滤波器的设计需要考虑其所需的滤波器类型、截止频率、通/阻带宽度等参数。
现有的设计方法主要有两种:频域设计和时域设计。
1.频域设计:频域设计是一种基于频谱分析的滤波器设计方法,其核心是利用傅里叶变换将时域信号转换为频域信号,进而根据所需的滤波器类型和参数进行滤波器设计。
常见的频域设计方法包括理想滤波器设计、布特沃斯滤波器设计、切比雪夫滤波器设计等。
理想滤波器设计基于理想低通、高通、带通或带阻滤波器的理论,将所需的滤波器类型变换为频率响应函数进行滤波器设计。
iir数字滤波器处理实际案例

IIR数字滤波器处理实际案例I.概述数字信号处理作为一门重要的学科,其在工程领域中得到了广泛的应用。
数字滤波器作为数字信号处理的重要工具,常常用于对信号进行去噪、滤波等处理。
本文将以IIR数字滤波器处理实际案例为主题,探讨IIR数字滤波器的原理、应用以及实际案例分析。
II.IIR数字滤波器原理1. IIR数字滤波器概述IIR数字滤波器(Infinite Impulse Response)是一种常见的数字滤波器,其基本原理是根据输入信号的当前值和过去的输出值计算当前的输出值。
IIR数字滤波器具有反馈,可以实现很复杂的频率响应。
2. IIR数字滤波器结构IIR数字滤波器通常由系统函数和差分方程两部分组成。
系统函数是用来描述滤波器的频率响应特性,而差分方程则是描述滤波器的输入输出关系。
常见的IIR数字滤波器包括Butterworth、Chebyshev等。
III.IIR数字滤波器应用1. 语音信号处理在语音信号处理中,常常需要对信号进行降噪、滤波等处理。
IIR数字滤波器可以很好地满足这一需求,对语音信号进行有效处理。
2. 生物医学信号处理生物医学信号通常包含多种噪声和干扰,需要进行滤波处理以提取有效信息。
IIR数字滤波器在心电图、脑电图等生物医学信号处理中有着广泛的应用。
IV.IIR数字滤波器实际案例分析以一种生物医学信号处理为例,对IIR数字滤波器进行实际案例分析。
1.问题描述假设有一组心电图信号,该信号包含多种噪声和干扰,需要对其进行滤波处理,以提取有效的心电信号。
2.解决方案针对该问题,可以采用Butterworth低通滤波器进行处理。
利用Matlab等工具,设计并实现Butterworth低通滤波器,对心电图信号进行滤波处理。
3.实验结果经过Butterworth低通滤波器处理后,心电图信号的噪声和干扰得到了有效抑制,同时保留了有效的心电信号,达到了预期的滤波效果。
V.总结IIR数字滤波器作为数字信号处理领域中的重要工具,具有着广泛的应用前景。
基于DSP芯片的语音信号FIR滤波系统

摘要数字信号处理(Digital Signal Processing,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。
20世纪60年代以来,随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并得到迅速的发展。
数字信号处理是一种通过使用数学技巧执行转换或提取信息,来处理现实信号的方法,这些信号由数字序列表示。
在过去的二十多年时间里,数字信号处理已经在通信等领域得到极为广泛的应用。
随着微处理技术的快速发展,微处理器芯片的集成度从最早的几千个晶体管发展到现在的上亿个晶体管,字长从4位提高到了64位,正是这些技术的飞速发展引发了一轮又一轮的信息产业革命,而人们的生活、学习和工作方式也在以计算机技术、通信技术为核心的信息技术的影响下发生着前所未有的改变。
然而在这次设计中,比较核心的是数字滤波器,数字滤波器是一种用来过滤时间离散信号的数字系统,通过对抽样数据进行数学处理来达到频域。
滤波的目的。
根据其单位冲激响应函数的时域特性可分为两类:无限冲激响应(IIR)滤波器和有限冲激响应(FIR)滤波器。
与IIR滤波器相比,FIR滤波器只有零点,除原点外.在z平面上没有极点,因此总是稳定的和可实现的;更重要的是,FIR 滤波器在满足一定的对称条件下,可以获得严格的线性相位特性,这一点是IIR 滤波器难以实现的。
因此。
它在高保真的信号处理.如数字音频、图像处理、数据传输、生物医学等领域得到广泛应用。
对于本设计主要是利用一个DSP芯片来进行语音采集系统的设计,而数字信号处理技术的发展使得采用数字化的方法实时的处理语音信号成为可能。
早期的语音信号处理均是采用模拟处理,对声音信号最常用的滤波、相关、谱分析等运算,部分采用模拟电路来实现的。
这种传统的模拟方法处理语音信号,硬件设备昂贵,不能升级、产品生命周期短,而采用数字处理技术处理语音信号具有抗干扰性强、便于传输和处理等优点,代表着语音处理技术的发展方向。
基于dsp的语音采集及滤波器设计

基于DSP的语音采集与FIR滤波器的设计与实现摘要: 介绍了一种基于TMS320C5402的语音采集与FIR数字滤波器的设计与实现, 采用TLC320AD50作为语音CODEC模块的核心器件, 简述了FIR数字滤波器的特点,以及其在DSP上实现的原理。
利用TMS320C5402对采集到的语音信号进行FIR滤波, 该系统具有较强的数据处理能力和灵活的接口电路,能够满足语音信号滤波的要求, 可以扩展为语音信号处理的通用平台.关键词: 语音采集; FIR滤波器; TMS320C5402数字信号处理是把数字或符号表示的序列, 通过计算机或专用处理设备, 用数字的方式去处理, 以达到更符合人们要求的信号形式。
而语音处理是数字信号处理最活跃的研究方向之一, 在IP电话和多媒体通信中得到广泛应用. 一个完备的语音信号处理系统不但要具有语音信号的采集和回放功能, 还要能够进行复杂的语音信号分析和处理。
通常这些信号处理算法的运算量很大, 而且又要满足实时的快速高效处理要求, 随着DSP技术的发展, 以DSP为内核的设备越来越多, 为语音信号的处理提供了优质可靠的平台. 软件编程的灵活性给很多设备增加不同的功能提供了方便, 利用软件在已有的硬件平台上实现不同的功能已成为一种趋势。
本文设计了一个语音处理系统, 采用定点DSP芯片TMS320C5402作为CPU, 完成对语音信号的采集和滤波处理.1 语音采集系统的设计1. 1 系统总体设计语音采集与处理系统主要包括3个主要部分: 以TMS320C5402 为核心的数据处理模块; 以TLC320AD50为核心的语音采集与编解码( CODEC)模块; 用户根据需要扩展的存储器模块. 系统硬件结构如图1所示.1. 1. 1 CODEC模块本设计选用TLC320AD50( 以下简称AD50) 完成语音信号的A/ D转换和D/ A转换. AD50是TI公司生产的一款集成有A/ D和D/ A的音频芯片, DSP与音频AD50连接后, 可使用一个缓冲串行口来同时实现语音信号的采集和输出, 从而可以节省DSP的硬件开销. AD50使用过采样技术提供从数字信号到模拟信号和模拟信号到数字信号的高分辨率低速信号转换. 该器件包括2个串行的同步转换通道, 分别用于各自的数据传输. 语音信号直接从AD50的模拟信号输入端输入, AD50对其进行采样, 并将采样后的数据传送至DSP. DSP应用相应的算法对数据进行处理, 并将处理后的数据传送到AD50的D/ A输入端. AD50再对DSP处理后的数据进行数模转换, 变为语音信号后输出到音响设备.本系统中TLC320AD50与TMS320C5402之间采用串行通信, 通过DSP芯片的MCBSP串口实现.接口电路如图2所示.1. 1. 2 MCBSP的工作原理TMS320C5402有2个McBSP 多通道缓存串行口. McBSP提供了全双工的通信机制, 以及双缓存的发送寄存器和三缓存的接收寄存器, 允许连续的数据流传输, 数据长度可以为8、12、16、20、24、32; 同时还提供了A律和L律压扩. 数据信号经DR和DX引脚与外设通讯, 控制信号则由CLKX、CLKR、FSX、FSR等4个引脚来实现[ 4]. CPU和DMA控制器可以读取DRR[ 1, 2] 的数据实现接收, 并且可以对DXR[ 1, 2] 写入数据实现发送. 串行口控制寄存器SPCR[ 1, 2] 和引脚控制寄存器PCR用来配置串行口; 接收控制寄存器RCR[ 1, 2] 和发送控制寄存器XCR[ 1, 2]用来设置接收通道和发送通道的参数; 采样率发生器寄存器SRGR[ 1, 2] 用来设置采样率. TMS320C5402芯片串口控制寄存器功能强大, 用户通过编程不但可以设置时钟信号的极性及输入输出方向, 还可以设置同步信号的极性及输入输出方向.1. 1. 3 AD50与DSP的同步通信在应用中, 将TLC320AD50C接至DSP的同步串口, 并将TLC320AD50设置在主动工作模式下, 即由TLC320AD50 提供帧同步信号和移位时钟,TMS320C5402的管脚电压为3. 3V, 可以与AD50直接相连. 串口的移位时钟SCLK由AD发出, 串行数据在SCLK的驱动下经DIN、DOUT 移进、移出, 在SCLK的下降沿采样DIN 数据, 在SCLK下降沿送出数据到DOUT. XF控制首次或二次通信, XF为低时是AD50的首次通信, 是正常的AD、DA的数据; XF为高时是AD50的二次通信, 这时可以读写AD50的4个寄存器. 进入二次通信有软件的方法, 即把AD50设为15+1位数据模式, 最后一位标记下一个数据是否为二次通信数据, 1表示是, 0表示否.一次通信格式的16位都用来传输数据. DAC的数据长度由寄存器1的D0位决定. 启动和复位时, 默认值为15+ 1模式, 最后一位要求二次通信. 如果工作在16位传输模式下, 则必须由FC产生二次通信请求. 二次通信格式则用来初始化和修改TLC320AD50C内部寄存器的值. 在二次通信中可通过向DIN写数据来完成初始化.二次通信格式如图3所示, D13= 1表示读DIN的数据, D13= 0表示向DIN 写数据.系统复位后, 必须通过DSP 的DX接口向TLC320AD50C的DIN 写数据, 因为采用一片TLC320AD50C, 只需初始化寄存器1、寄存器2、寄存器4. 由于通信数据长度为16位, 初始化是应通过RCR1和XCR1设置McBSP的传输数据长度为16.2 语音采集语音信号的采集, 是通过话筒经模拟放大输入到AD50, AD50作相应的低频滤波并进行A/ D转化, 再通过MCBSP通道输入DSP芯片. 语音信号采集程序包括以下几个部分:( 1) DSP初始化. 对DSP的寄存器以及缓冲串口进行初始化.( 2) AD50初始化. 通过DSP的缓冲串口和XF引脚对AD50进行初始化, 再设置AD50的4个控制寄存器; 确定AD50的4个控制寄存器设置正确后,AD50才能开始采集数据. 此时, 可以用示波器检测AD50的DOUT引脚, 能发现引脚是否有连续的信号输出.( 3) 设置DSP的中断, 从缓冲串口读取数据. 如果此时在缓冲串口连续读取数据, 就可以在仿真软件CCS中查看读取的数据是否正确.( 4) DSP存放数据. 可以将缓冲串口读取的数据存放到DSP的RAM单元, 连续存放, 可通过CCS的图形显示功能判断AD50采样的数据是否正确.3 语音滤波语音去噪在语音信号上应用较多, 在实质上和普通的数字信号去噪没有什么区别, 使用滤波器和各种算法均可以实现语音信号的去噪, 使得含有噪声的信号更加清晰. 但语音信号的去噪和一般的数字信号去噪又存在着很大的差别, 因为语音信号的频谱覆盖在100Hz~3. 4kHz, 较为丰富的信号主要集中在1kHz 附近, 所以一般的滤波去噪时必须考虑语音信号的自身特征.本系统中应用的AD50内置了低通滤波器, 可以通过设置来有效滤除信号中混杂的高频干扰信号, 而对于低于100Hz的干扰信号, 则无能为力. 因此, 要用DSP进行编程设计一个软件可实现高通滤波器, 由处理器来完成信号的去噪, 采用FIR滤波.3.1 FIR滤波器的基本结构及特点有限冲激响应( FIR)滤波器的基本结构是一个分节的延时线, 把每一节的输出加权累加, 得到滤波器的输出. 数学上表示为y(n) =EN-1n=0h(n)x(n-m), (0[ n[ N- 1) (1) 对(1)式进行Z变换, 整理后可得出FIR滤波器的传递函数为H(z) = EN-1n=0h(n)z-n, (0[ n[ N- 1) (2)由( 2)式可知FIR滤波器的一般结构如图1所示.图1 FIR数字滤波器直接实现形式3.2 FIR滤波器的DSP实现原理由( 1)式可知, FIR滤波器的冲激响应为h(0), h(1), ,, h(N- 1). x(n)表示滤波器在n时刻的输入, 则n时刻的输出为y(n) = h(0)x(n) +h(1)x(n- 1) + ,+ h(N- 1)x[ n- (N- 1) ],这是一个乘、加的过程, 可以使用DSP中的MAC 指令实现该运算. 图2说明了使用循环寻址实现FIR滤波器的方法. 为了能正确使用循环寻址, 必须先初始化BK, 块长为N. 同时, 数据缓冲区和冲激响应( FIR滤波器的系数)的开始地址必须是大于N的2的最小幂的倍数. 例如, 当N= 11时, 大于N的最小2的幂为16, 则数据缓冲区的第一位地址应该是16的倍数, 因此数据缓冲区起始地址的最低4位必须是0.在图2中, 滤波系数指针初始化时指向h(N- 1), 经过一次FIR滤波计算后, 在循环寻址的作用下,仍然指向h(N- 1). 而数据缓冲区指针指向的是需要更新的数据, 如x(n). 在写入新数据并完成FIR运算后, 该指针指向x(n- (N- 1)) , 所以, 使用循环寻址可以方便地完成滤波窗口数据的自动更新.4 FIR滤波器设计实例给定FIR数字带通滤波器的技术指标为: 2个通带截止频率分别为4kHz和6kHz, 2个阻带截止频率分别为3kHz和7kHz, 采样频率均为25kHz. 输入为一个混合信号f = [ cos(2000Pt) + cos(10000Pt) + cos(20000Pt)] /6,利用Matlab设计FIR带通滤波器的系数, 将得到的滤波器系数乘以32768(即215)后舍尾取整可得DSP中滤波器系数列表. 用. word汇编命令将各滤波器系数直接输入到DSP程序中; 模拟输入数据由C语言程序实现, 然后用. copy命令将C语言程序生成的数据文件firinput拷贝到DSP程序中. DSP程序实现读入数据、滤波、显示波形等方面的任务. 完成FIR滤波器的程序框图如图3所示, 可知FIR滤波器的DSP实现主要由以下4方面的内容组成.4.1 模拟输入数据的生成用C语言程序生成输入数据, 通过. copy汇编命令将生成的数据文件拷贝到汇编程序中, 作为FIR滤波器的输入数据. C语言程序运行后所生成的数据文件名为firinpu,t 生成firinput数据文件的C语言程序如下所示:#include"stdio. h"#include"math. h"main( ){int ;idouble f[ 256];FILE*fp;if( ( fp= fopen( "e: \ \ firinput", "wt") ) = =NULL){printf( "canct openfile! \n");}for( i=0; i< =255; i++ ){f[ i] =( cos( 2* 3. 14159265* *i 1000/25000) + cos( 2* 3. 14159265* *i 5000/25000) +cos( 2* 3. 14159265* *i 10000/25000) ) /6;fprintf( fp, " . word %ld\n", ( long) ( f[ i]* 32768) );}fclose( fp);}4.2 DSP初始化程序 DSP初始化程序包括了对堆栈指针( SP)、软件等待状态寄存器( SWWSR)、中断寄存器( IFR)、中断屏蔽寄存器( IMR)以及处理器工作状态寄存器( PMST)的初始化; 另外还对各变量赋值, 具体的程序如下: . def _c_int00. mmregsswcr . set 2bht_ar2 . set 066ht_ar3 . set 067hout_wave_buf . set 0d00hdata_in . set 0f00hN . set 51fir_coef_buf . set 100hfir_data . set 200h. textrs b_c_int00_c_int00:stm#2020h, pmstssbx intmssbx sxmssbx frctstm #10h, 26hstm #10h, 36hstm #0ffh, spld #0, dpstm #0ffffh, ifrstm #20h, imrstm #02492h, swwsrstm #0, swcr可看出, FIR滤波器的系数列表将存在100h开始的单元中, 输入数据将存在200h开始的单元中, 而输出数据将存在0d00h开始的单元中.4.3 滤波系数以及输入数据的调入由于滤波器系数一开始是存在程序存储器中, 输入数据则是存在程序外的文件中, 程序对这2组数据进行处理时, 需要把两者都调到数据存储器中, 具体实现程序如下:stm #fir_data, ar6rpt #255mvpd #inpu,t*ar6+stm #fir_coef_bu,f ar6rpt #N-1mvpdfir_coe,f*ar6+stm #fir_coef_bu,f t_ar2stm #fir_data, t_ar3这段程序实现的是把输入数据调到以200h开始的单元, 而把滤波系数调到从100h开始的单元.4.4 滤波子程序一次滤波的过程实质上就是对2组数进行有规律的乘加计算, 具体程序如下:fir:mvdm #t_ar2, ar2 ; 将起始滤波系数地址100h 赋给ar2mvdm #t_ar3, ar5 ; 将起始输入数据地址200h 赋给ar5stm #data_in, ar3 ; ar3=0f00hstm #255, brc ; 定义块循环次数rptbdloop-1 ; 定义块循环结束地址stm #N, bk ; 定义循环缓冲器大小ld *ar5+, a ; 将新数据读到累加器a中 stl a,*ar3+% ; 将新数据读入栈顶rptz a, #(N-1) ; 定义循环次数, 之前先将a累加器清0mac *ar2+0%,*ar3+0%, a ; a=ar2*ar3+a, 每完成一次计算ar2、ar3 ; 指针所对应地址+1sth a, * ar6+ ; 将计算结果保存输出loop这个程序段将重复执行256次, 从而实现对于数据的读入、处理、输出等功能.5 结语本文介绍了一个实时数据采集处理系统的设计和实现, 系统以DSP芯片和TLC320AD50芯片为核心,有很强的数据处理能力和灵活的外围接口电路, 实验证明, 可较好地实现语音的滤波. 该系统可扩展为3G手机语音识别系统, 也可以作为语音信号处理算法研究和实时实现的通用平台参考文献: :[ 1] 邹彦. DSP原理及应用[ M]. 北京:电子工业出版社, 2005.[2] 乔瑞萍, 崔涛,张芳娟. TMS320C54x原理及应用[M].西安: 西安电子科技大学出版社, 2005.[3] 黄海波, 蒋伟荣. 通用语音处理系统的DSP实现[ J] . 微计算机信息, 2006,22( 5) :173- 175.[4] 张勇, 曾炽祥,周好斌. TMS320C5000系列DSP汇编语言程序设计[M]. 西安:西安电子科技大学出版社, 2004.[ 5] 卢山, 田野,郭黎利. 利用DSP技术实现FIR滤波器[ J]. 应用科技, 2002, 29( 11): 19-21.[ 6] 张伟利, 朱煜. FIR滤波器在TMS320C5402中的实现[ J].微处理机, 2005( 2): 4- 6.。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于数字滤波器的语音信号处理系统的设计前言:语音信号的数字滤波就是利用快速傅里叶变换fft对语音信号进行频谱分析,利用分析得到的指标设计数字滤波器,将不需要的部分通过设计好的数字滤波器滤除掉,以达到优化语音的目的。
数字滤波器是一种对数字信号进行处理的系统,数字滤波器完成数字信号滤波处理功能,其输入是一组数字量,其输出是经过变换的另一组数字量。
它通过一定的运算关系或电路形式来改变输入信号所包含的频率成分的相对比例或滤出某些频率成分,数字滤波器具有稳定性高、精度高、灵活性大等优点。
随着数字技术的发展,用数字技术实现滤波器的功能越来越受到人们的注意和广泛的应用。
摘要:本文介绍了两种数字滤波器的基本设计原理及步骤1、利用双线性变换法以及脉冲响应不变法设计IIR数字滤波器2、用窗函数法实现FIR数字滤波器的设计。
并且把理论与实践结合,通过一段语音,利用MATLAB软件分析语音信号频谱,确定指标设计滤波器,编写程序设计滤波器,对语音信号进行滤波处理,分析滤波后的时域和频域特征,回放语音信号分析其经过信号处理后的效果。
正文1、总体设计1.1 总体设计内容1)利用脉冲响应不变法和双线性变换法设计IIR数字滤波器,实现数字低通、数字高通、数字带通、数字带阻。
2)利用窗函数实现FIR数字滤波器的设计3)设计完整的语音信号处理系统,可实现语音信号的读入、语音信号的频域分析、滤波器选择、语音信号的时/频域滤波操作、语音信号的短时频域分析等功能。
1.2 课设流程图设计2、模块设计2.1 语音信号的采集用windows工具中的录音机录一段(语音信号),将语音信号的文件命名为test.wav.将语音文件保存后,在MATLAB软件平台下,首先调用wavread函数可采集到录制的音乐信号,并得到其采样率fs和比特数bits。
具体调用如下:>> [y,fs,bits]=wavread('d:\test.wav')%读取语音信号。
运行后得出fs,bit。
其中参数y是每个样本的值,fs是生成该波形文件时的采样率,bits 是波形文件每样的编码位数。
sound(y); 用于对声音的回放。
向量y则就代表了一个信号,也即一个复杂的“函数表达式”,也可以说像处理一个信号的表达式一样处理这个声音信号。
2.2 语音信号的时域及频域分析语音信号分析是语音信号处理的前提和基础,只有分析出可表示语音信号本质特征的参数,才有可能利用这些参数进行高效的语音通信、语音合成和语音识别等处理。
而且,语音合成的音质好坏,语音识别率的高低,也都取决于对语音信号分桥的准确性和精确性。
因此语音信号分析在语音信号处理应用中具有举足轻重的地位。
2.2.1语音信号的时域分析语音信号的时域分析就是分析和提取语音信号的时域参数。
进行语音分析时,最先接触到并且也是最直观的是它的时域波形。
语音信号本身就是时域信号,因而时域分析是最早使用,也是应用最广泛的一种分析方法,这种方法直接利用语音信号的时域波形。
运用matlab软件,调用plot函数,在读取语音信号的基础上画出语音信号的时域波形图。
理想状态下,语音信号的时域波形应该是关于时间轴对称的,但是实际情况下,由于存在着一些噪音,使得波形看上去不是那么完美。
2.2.2语音信号的频域分析对语音信号进行频谱分析。
MATLAB提供了快速傅里叶变换算法FFT计算DFT的函数fft,调用格式如下:Xk=fft(xn,N)参数xn为被变换的时域序列向量,N是DFT变换区间的长度,当N大于xn时,fft函数自动在xn后面补零,当N小于xn的长度时,fft函数计算xn的前N个元素,忽略其后面的元素。
在本次设计中,调用fft函数得到语音信号的快速傅里叶变换序列,再用plot函数画出信号的频谱图。
2.3 IIR数字滤波器的设计IIR滤波器系统函数的极点可以再单位圆内的任何位置,实现IIR滤波器的阶次较低,所用的存储单元较少,效率高,又由于IIR数字滤波器能够保留一些模拟滤波器的优良特性,因此应用很广。
设计IIR数字滤波器的方法主要有基于脉冲响应不变法和双线性Z变换法设计,数字高通、带通及带阻IIR 滤波器设计,基于MATLAB 函数直接设计IIR 数字滤波器。
IIR 数字滤波器的特点如下:1)系统的单位冲激响应h(n)为无限长的;2)系统函数H(z)在有限z 平面上有极点存在;3)结构上存在着输出到输入的反馈,也就是结构上是递归型的。
IIR 滤波器的设计就是在给定的技术指标下去确定滤波器的阶数N 和系数{ia ,ib }。
在已满足给定的技术指标下,应选用阶数尽可能低的滤波器,因为滤波器的阶数越低,在实现时成本就越低。
在设计IIR 滤波器时,最常用的方法是利用模拟滤波器来设计数字滤波器。
2.3.1 IIR 数字滤波器的设计步骤1) 按一定规则将给出的数字滤波器的技术指标通带边界频率pω、通带最大最大衰减pα、阻带截止频率s ω、阻带最小衰减s α,转化为模拟低通滤波器的技术指标,主要是边界频率pω、s ω的转换,p α、s α指标不变。
如果采用脉冲响应不变法,边界频率的转换关系为:,,psps TTωωΩ=Ω=如果采用双线性变换法,边界频率的转换关系为:22tan ,tan 22p s p sT T ωωΩ=Ω=2)根据归一化频率,确定最小阶数N 和频率参数Wn 。
归一化频率可以由以下公式得到:3)根据转换后的技术指标,运用最小阶数设计模拟低通滤波器G(s)。
4)再按一定规则将G (s )转换成H (z )。
若设计的数字滤波器是低通的,那么上述设计工作可以结束,若设计的是高通,带通或带阻滤波器,那么还需进行一下步骤。
5)将高通、带通、或带阻数字滤波器的技术指标先转化为低通模拟滤波器的技术指标,然后按上述步骤再进行设计。
2.3.2 双线性变换法的基本原理双线性变换法的S 域与Z 域间的变换关系为:[1()]/[1()]22T TZ s s =+- (1) 由式(1)可以看出,z 和s 之间可以直接代换,由于这是一非线性变换,需考察一下是否能把j Ω映射成单位圆,以及是否能将s 域左半平面映射到单位圆内部。
2/)(实际模拟频率实际数字频率)/(实际模拟角频率归一化频率Fs Hz Fs s rad ==⨯=ππ对于s 平面上的虚轴j Ω,用s=j Ω代入式(1)得:2()2[1()]/[1()]22Tj arctg j T T Z j j e e ωΩ=+Ω-Ω==可见:1,2arctan()2TZ ωΩ==上面表示S 平面与Z 平面一一单位对应,S 平面的虚轴经映射后确已成为Z 平面的单位圆,但是Ω与ω为非线性关系,因此,通过双线性变换后两个滤波器的频率特性形状不能保持相同,双线性变换不存在混叠效应。
对于s 域的左半平面,用s j σ=+Ω代入式(1),得到: [1()()]/[1()()]22T T Z j j σσ=++Ω--Ω由此得:|Z|=2222[(1)()]/[(1)()]2222T T T Tσσ++Ω-+Ω此式表明,当σ<0,有|z|<1,因而s 平面的左半平面被映射在单位圆内部,这意味着稳定的模拟滤波器经双线性变换可以映射成稳定的数字滤波器。
2.3.3脉冲响应不变法法的基本原理 设模拟滤波器的系统函数为()s H a ,相应的单位冲激响应是()t h a ,()s H a =LT [()t h a ]。
LT [·]代表拉氏变换,对()t h a 进行等间隔采样,采样间隔为T ,得到()nt h a ,将()()nT h n h a =作为数字滤波器的单位脉冲响应,那么数字滤波器的系统函数H(z)便是h(n)的Z 变换。
因此脉冲响应不变法是一种时域逼近方法,它使h(n)在采样点上等于h a (t)。
但是,模拟滤波的设计结果是H a (s),所以下面基于脉冲响应不变法的思想,导出直接从H a (s)到()z H 的转换公式。
设模拟滤波器H a (s)只有单阶极点,且分母多项式的阶次高于分子多项式的阶次,将H a (s)用部分分式表示:式中si 为H a (s)的单阶极点。
将Ha(s)进行逆拉氏变换, 得到:式中, u(t)是单位阶跃函数。
对ha(t)进行等间隔采样,采样间隔为T ,得到:对上式进行Z 变换,得到数字滤波器的系统函数H(z),即H a (s)的极点is 映射到z 平面的极点为Ts i e,系数A i 不变,通过模拟滤波器的系统传递函数可以直接求得数字滤波器的系统传递函数。
2.3.4基于MATLAB 函数直接设计IIR 数字滤波器 1)基于巴特沃斯法直接设计IIR 数字滤波器尽管巴特沃斯滤波器的幅度特性是通带平坦,阻带单调下降,但是在满足相同的设计要求下,巴特沃斯滤波器的阶次一般都比切比雪夫滤波器和椭圆滤波器高。
在MATLAB 中,可以利用butter 函数直接设计各种形式的滤波器,它的语法为 [b,a]=butter(N,Wn)[b,a]=butter(N,Wn,’ftype ’) [b,a]=butter(N,Wn,’s ’)[b,a]=butter(N,Wn, ’ftype ’ ,’s ’)[z,p,k]=butter(…) [A,B,C,D]=butter(…)N 为滤波器阶数,Wn 为滤波器的截止频率,取值为0~1;‘ftype ’为滤波器类型参数:‘high ’为高通滤波器,截止频率为Wn; ‘stop ’为带阻滤波器,截止频率Wn =[W1,W2],默认为低通和带通滤波器;低通滤波器时,Wn 为截止频率;带通滤波器时,Wn=[W1,W2].b,a 分别为滤波器传递函数分子和分母系数向量;z ,p ,k ,分别为滤波器的零点,极点和增益。
巴特沃斯滤波器的阶数可由MATLAB 中的buttord 函数确定,该函数的调用格式为[N,Wn]=buttord(wp,ws,Rp,Rs),其中wp 表示通带截止频率,ws 表示阻带截止频率,Rp 表示通带纹波系数,Rs 表示阻带纹波系数,N 表示巴特沃斯滤波器的最小阶次,Wn 为其截止频率。
2)基于切比雪夫法直接设计IIR 数字滤波器切比雪夫1型滤波器在通带是等波纹的,而在阻带是单调下降的。
在MATLAB 中,可以利用cheby1函数直接设计各种形式的数字滤波器,该函数的调用格式为[b,a]=cheby1(N,Rp,Wn)[b,a]=cheby1(N,Rp,Wn,’ftype ’) [b,a]=cheby1(N,Rp,Wn,’s ’)[b,a]=cheby1(N,Rp,Wn, ’ftype ’ ,’s ’) [z,p,k]=cheby1(…) [A,B,C,D]=cheby1(…)格式中,Rp 为通带波纹(dB );Wn 为截止频率,取值为0~1;在该频率处滤波器的幅值相应为-Rp ,其余参数和函数butter 的一样。