语音数字滤波系统
- 格式:doc
- 大小:389.50 KB
- 文档页数:20
课程设计任务书设计题目语音信号的数字滤波——FIR数字带通滤波器的(三角)窗函数法设计一、课程设计的目的通过对常用数字滤波器的设计和实现,掌握数字信号处理的工作原理及设计方法;掌握利用数字滤波器对信号进行滤波的方法。
并能够对设计结果加以分析。
二、课程设计的步骤利用Windows系统采集:按“开始->程序->附件->娱乐->录音机”的顺序操作打开Windows系统中的录音机软件图1录音机采集语音信号信息:(将所录wma格式转换为wav格式)图上画出来图2原始信号频谱图图3 截短信号频谱图代码如下所示:[x,fs]=wavread('250.wav');x1=x(:,1);plot (x1, 'DisplayName', 'x1', 'YDataSource', 'x1'); figure(gcf)x2=x(9500:67201);plot (x2, 'DisplayName', 'x2', 'YDataSource', 'x2');figure(gcf)处理(1)产生一个长度与你所截取的语音信号等长的噪声信号,为“250.wav”,所用指令为wavewrite(),所加噪声如图6所示。
(2)叠加噪声可以用awgn()语句,在叠加噪声时,应选取适当的值,尽量能体现出能量主要集中的频段。
(3)将语音与噪声合成的信号“250.wav”送入所设计的基于凯泽窗的FIR数字滤波器中进行滤波。
(4)将滤波结果导出保存成文件“250.wav”.得出加噪后信号如下:图4 加噪后的语音信号代码如下所示:Y = AWGN(x2,8,'measured');一个理想的带通滤波器应该有一个完全平坦的通带,在通带内没有放大或者衰减,有源带通滤波器电路并且在通带之外所有频率都被完全衰减掉,另外,通带外的转换在极小的频率范围完成。
语音信号去噪 ——数字滤波器的设计摘要:在现代各种通信系统中,由于自然界中的各种各样的复杂噪声不免会掺杂在其中,数字信号处理这门经典学科恰好能够解决这个问题,其中最通用的方法就是利用滤波器来滤除这些杂波噪声,FIR 数字滤波器就是滤波器设计的基本部分。
本论文研究的主要内容就是基于Matlab 软件仿真设计一个数字滤波器,将掺杂在语音信号中的高频噪音消除,在此将分析消除高频噪音前后语音信号的时域及频域特性,对比分析即可验证滤波前后特性差别。
在本课题中,将利用简单的窗函数法来设计FIR 数字滤波器,通过Matlab 仿真说明所设计滤波器的正确性。
仿真说明所设计滤波器的正确性。
通过这次毕业设计,通过这次毕业设计,将会进一步理解语音信号原理分析及滤波处理,为更好的设计滤波器打好基础。
波处理,为更好的设计滤波器打好基础。
关键词:Matlab ;窗函数法;FIR 数字滤波器数字滤波器 Remove noise in the speech signal ————the design of digital filter the design of digital filter Abstract :In modern communication systems, a variety of complex noise may mix in the nature of sounds. The classic disciplines of the digital signal processing can solve this problem, one of the most common method is to use a filter to filter those clutter noise. FIR digital filter is the basic part part of of of filter filter filter design. design. The The main main main research research research content content content of of of this this this paper paper paper is is is based based based on on on Matlab Matlab Matlab software software software simulation simulation simulation to to design a digital filter, in which to cancel the high frequency noise of the speech signal, then it will eliminate the high high frequency frequency frequency noise noise noise and and and the the the speech speech speech signals signals signals from from from time time time domain domain domain and and and frequency frequency frequency domain domain domain characteristics characteristics characteristics in in in this this analysis analysis before before before and and and after, after, after, and and and analysis analysis analysis the the the differences differences differences test test test the the the filtering filtering filtering characteristics. characteristics. characteristics. In In In this this this issue, issue, issue, using using using a a simple simple window window window function function function method method method to to to design design design a a a FIR FIR FIR digital digital digital filter, filter, filter, Matlab Matlab Matlab simulation simulation simulation shows shows shows the the the correct correct correct of of of the the designed filter. Through the design of this graduation design, we will understand the principle of speech signal analysis and filtering, and lay the foundation for the filter design.Key words: Matlab; window function method; FIR digital filter 作 者指导教师目录1 引言................................................................................................................................................ 31.1 课题研究现状课题研究现状 ....................................................................................................................... 31.2 课题研究目的课题研究目的 ....................................................................................................................... 31.3 课题研究内容课题研究内容 ....................................................................................................................... 31.4 MA TLAB软件设计平台简介 .............................................................................................. 4 2 原始语音信号采集与处理原始语音信号采集与处理 .............................................................................................................. 52.1 课题设计步骤及流程图课题设计步骤及流程图 ...................................................................................................... 52.2 语音信号处理语音信号处理 ....................................................................................................................... 52.2.1 语音信号的采集语音信号的采集 .......................................................................................................... 52.2.2 语音信号的时域频谱分析语音信号的时域频谱分析 .......................................................................................... 62.2.3 语音信号加噪与频谱分析语音信号加噪与频谱分析 .......................................................................................... 8 3 FIR数字滤波器的设计数字滤波器的设计 (10)3.1 数字滤波器基本概念数字滤波器基本概念 (10)3.2 常用窗函数介绍常用窗函数介绍 (10)3.3 FIR数字滤波器概述数字滤波器概述 (10)3.4 FIR滤波器的窗函数设计滤波器的窗函数设计 (11)3.5 滤波器的编程实现滤波器的编程实现 (13)3.6 用滤波器对加噪语音信号进行滤波用滤波器对加噪语音信号进行滤波 (14)3.7 回放语音信号回放语音信号 (16)4 结论 (17)致谢 (18)参考文献 (19)参考文献20世纪60年代中期数字信号处理领域形成的诸多富有实践性的的理论和算法,如快速傅立叶变换(FFT )以及各种数字滤波器等是语音信号数字处理的各项理论和技术基础。
简述数字滤波的概念及方法数字滤波是一种在数字信号处理领域中广泛使用的算法,用于对数字信号进行滤波、降噪、去基线等处理。
本文将简要介绍数字滤波的概念及方法。
一、数字滤波的概念数字滤波是指在数字信号处理系统中,使用计算机算法对数字信号进行滤波的方法。
数字信号是指用二进制数字表示的音频、视频等信号,这些信号在传输、处理过程中常常受到噪声、失真等影响,需要进行滤波来去除这些干扰。
数字滤波的方法可以分为两大类:基于差分的和基于频域的。
1. 基于差分的滤波基于差分的滤波是指使用一组基线差分信号作为滤波器输入,输出是一个差分信号。
该方法的优点是不需要对信号进行采样,缺点是在频率响应上可能存在局部噪声。
2. 基于频域的滤波基于频域的滤波是指使用频域表示信号的方法,通过对信号进行傅里叶变换,得到滤波器的频率响应。
该方法的优点是可以在保留基线信息的同时,去除噪声和失真,缺点是需要对信号进行采样,并且计算量较大。
二、数字滤波的方法数字滤波的方法可以分为以下几种:1. 带通滤波器带通滤波器是指只能让信号通过,不能阻止信号通过的滤波器。
该方法适用于去除噪声和基线,但可能会丢失高频信息。
2. 高通滤波器高通滤波器是指只能让信号通过,不能阻止信号通过的滤波器。
该方法适用于去除噪声和高频信息,但可能会丢失低频信息。
3. 带阻滤波器带阻滤波器是指只能让信号通过,不能阻止信号通过的滤波器。
该方法适用于去除噪声和基线,并且可以保留高频信息。
4. 低通滤波器低通滤波器是指只能让信号通过,不能阻止信号通过的滤波器。
该方法适用于去除噪声和高频信息,并且可以保留低频信息。
5. 中心频率加权滤波器中心频率加权滤波器是指根据信号的中心频率进行加权的滤波器。
该方法适用于去除高频噪声和失真,但可能会丢失基线信息。
三、数字滤波的应用数字滤波在音频处理中的应用包括均衡器、压缩器、降噪器等;在视频处理中的应用包括去噪、去斑、去雾等。
此外,数字滤波也被广泛应用于信号处理、图像处理、通信等领域。
数字滤波的名词解释数字滤波是一种信号处理技术,用于对数字信号进行去噪、滤波和频率调整等操作。
它利用数学算法,通过对数字信号进行运算和变换,从而实现对信号的改善和优化。
数字滤波在生活和工业领域有着广泛的应用,比如音频处理、图像处理、通信系统、控制系统等,对于提高信号质量和减少噪声干扰非常重要。
数字滤波的基本原理是将原始信号输入到滤波器中,滤波器通过选择性的增强或抑制特定频率的成分,对信号进行处理。
根据滤波器的特性和传递函数,数字滤波可以分为低通滤波、高通滤波、带通滤波和带阻滤波等不同类型。
不同类型的滤波器在处理信号时,会根据需求选择性地保留或移除特定频率的信号成分。
数字滤波的核心是滤波器的设计和实现。
滤波器可以是数字滤波器或者是模拟滤波器的数字化版本。
数字滤波器通常由延迟元件和加权系数组成,延迟元件用于存储输入信号的历史数据,加权系数用于对不同历史数据进行加权运算。
通过将输入信号经过滤波器的每个延迟元件,然后与对应的加权系数相乘并求和,即可得到滤波后的输出信号。
常见的数字滤波器算法包括有限脉冲响应(FIR)滤波器和无限脉冲响应(IIR)滤波器。
FIR滤波器是一种线性相位滤波器,其特点是具有稳定的频率响应和线性相位特性,适用于需要高质量的滤波效果。
IIR滤波器则是一种非线性相位滤波器,由于其反馈机制,可以实现更高的滤波效率和更窄的带宽,适用于实时处理和资源限制的应用。
除了滤波器的类型和算法选择,数字滤波的效果还受到滤波器的阶数和截止频率等参数的影响。
阶数越高,滤波器的频率响应越陡峭,对于需求更严格的滤波效果可以选择更高阶的滤波器。
截止频率则是滤波器能够通过或阻止的频率范围,选择合适的截止频率可实现对信号的精确控制。
在数字滤波的实际应用中,为了提高滤波效果和避免误差累积,通常会使用多级滤波器结构。
多级滤波器将滤波操作分解为多个较小的滤波器级联,每个级联内部都有自己的频率响应和延迟元件。
通过这种层级结构,可以有效去除不同频率范围内的噪声和干扰,提高滤波器的整体性能。
语音信号滤波去噪——使用汉宁窗设计的FIR滤波器学生姓名:指导老师:摘要本课程设计主要是对一段语音信号,加入噪声后,用汉宁窗设计出的FIR滤波器对加入噪声后的语音信号进行滤波去噪处理。
在此次课程设计中,系统操作平台为Windows XP,程序设计的操作软件为MATLAB 7.0。
此课程设计首先是用麦克风采集一段语音信号,加入噪声,然后采用汉宁窗函数法设计出FIR滤波器,再用设计出的滤波器对这段加噪后的语音信号进行滤波去噪,最后对前后时域和频域的波形图进行对比分析,从波形可以看出噪声被完全滤除,达到了语音不失真的效果,说明此次设计非常成功。
关键词程序设计;滤波去噪;FIR滤波器;汉宁窗;MATLAB 7.01 引言本课程设计主要是对一段语音信号,进行加噪后,用某种函数法设计出的FIR滤波器对加入噪声后的语音信号进行滤波去噪处理,并且分析对比前后时域和频域波形的程序设计。
1.1 课程设计目的在此次课程中主要的要求是用麦克风采集一段语音信号,绘制波形并观察其频谱,给定相应技术指标,用汉宁窗设计一个满足指标的FIR滤波器,对该语音信号进行滤波去噪处理,比较滤波前后的波形和频谱并进行分析,根据结果和学过的理论得出合理的结论。
与不同信源相同滤波方法的同学比较各种信源的特点,与相同信源不同滤波方法的同学比较各种滤波方法性能的优劣。
通过此次课程设计,我们能够学会如何综合运用这些知识,并把这些知识运用于实践当中,使所学知识在综合运用能力上以及分析问题、解决问题能力上得到进一步的发展,让自己对这些知识有更深的了解。
通过课程设计培养严谨的科学态度,认真的工作作风和团队协作精神。
1.2课程设计的要求(1)滤波器指标必须符合工程实际。
(2)设计完后应检查其频率响应曲线是否满足指标。
(3)处理结果和分析结论应该一致,而且应符合理论。
(4)独立完成课程设计并按要求编写课程设计报告书。
1.3 工作平台简介课程设计的主要设计平台式MATLAB 7.0。
长沙学院课程设计题目语音信号滤波器的设计说明书系(部) 电信系专业(班级) 电气工程及其自动化姓名学号指导教师起止日期2012.12.10-2012.12.16设计任务(一)设计目的模拟电子技术课程设计是一门独立设课、有独立学分的实践性课程,同“模拟电子技术”理论讲授课程有密不可分的关系,起着相辅相成的作用,也是在“模拟电子技术实验”课的基础上,进一步深化的实践环节。
其主要目的是通过本课程,培养、启发学生的创造性思维,进一步理解电子系统的概念,掌握小型模拟电子系统的设计方法,掌握小型模拟系统的组装和调试技术,掌握查阅有关资料的技能,基本任务是设计一个小型模拟电子系统。
(二)设计要求和技术指标1、技术指标:截止频率Hz f H 2000=,Hz f L 200=,4=V A ,阻带衰减速率为倍频10/40dB - 2、设计要求(1) 设计一个能满足要求的二阶有源滤波电路; (2) 要求绘出原理图,并用Protel 画出印制板图;(3) 根据设计要求和技术指标设计好电路,选好元件及参数; (4) 在万能板或面包板或PCB 板上安装好电路并调试;(5) 测量滤波器的性能参数:截止频率、带内增益V A 和阻带衰减速率; (6) 用EWB 对电路仿真,并打印出幅频特性和相频特性曲线; (7) 拟定测试方案和设计步骤; (8) 写出设计性报告。
(三)设计提示1、电路可采用一级二阶低通与一级二阶高通滤波电路级联;(四)设计报告要求1、选定设计方案;2、拟出设计步骤,画出电路,分析并计算主要元件参数值;3、列出测试数据表格。
(五)设计总结1、总结有源滤波器的设计方法和运用到的主要知识点;2、总结有源滤波器性能参数的测试方法。
长沙学院课程设计鉴定表目录第1章绪论................................................... - 0 -1.1滤波器简介.............................................. - 0 -1.2 本人工作............................................... - 1 - 第2章滤波器的传输函数与性能参数 ................ 错误!未定义书签。
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数字滤波器作为数字信号处理领域中的重要工具,具有着广泛的应用前景。
数字滤波器在声音增强与降噪中的应用优化在现代社会中,我们经常会遇到各种噪音干扰,比如在公共场所、工作环境以及日常生活中。
这些噪音不仅会对我们的听觉体验造成负面影响,还可能对我们的健康产生不良影响。
因此,声音增强与降噪技术的研究与应用变得尤为重要。
数字滤波器作为一种常见的信号处理工具,被广泛应用于声音增强与降噪领域。
它可以通过对音频信号进行滤波处理,去除或减弱噪音成分,从而提高声音的质量和清晰度。
然而,要实现有效的声音增强与降噪,需要对数字滤波器进行优化。
首先,优化数字滤波器的设计是关键。
在设计数字滤波器时,需要根据实际应用场景和需求选择合适的滤波器类型和参数。
不同类型的滤波器具有不同的特性和适用范围,如低通滤波器、高通滤波器、带通滤波器等。
根据噪音的频率分布特点,选择适当的滤波器类型可以更好地抑制噪音,同时保留声音信号的有效成分。
其次,优化数字滤波器的算法是重要的一环。
数字滤波器的算法决定了滤波器对信号的处理效果。
目前常用的数字滤波器算法有FIR滤波器和IIR滤波器。
FIR滤波器具有线性相位和稳定性的优点,适用于实时处理和需要精确频率响应的应用;而IIR滤波器则具有较小的计算复杂度和较窄的滤波器带宽,适用于对信号进行长时间处理的应用。
根据具体需求,选择合适的滤波器算法可以提高声音增强与降噪的效果。
此外,数字滤波器的参数调整也是优化的一部分。
滤波器的参数包括截止频率、滤波器阶数、滤波器带宽等。
通过调整这些参数,可以对滤波器的频率响应进行优化,从而更好地增强声音信号和降低噪音干扰。
在实际应用中,可以通过频域分析和实验调试等方法,对数字滤波器的参数进行优化。
除了以上优化方法,还可以考虑引入其他信号处理技术来进一步提高声音增强与降噪效果。
例如,自适应滤波器可以根据噪声的统计特性自动调整滤波器的参数,从而适应不同的噪声环境;小波变换可以将信号分解成不同频率的子带,对每个子带进行独立处理,从而更好地保留信号的细节特征。
基于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.。
《数字信号处理实验》课程设计学号: 2011289教师姓名:李敏学院:光电工程学院时间:2013年12月15日中国﹒重庆重庆大学光电工程学院二〇一三年十二月目录1. 实验目的 (3)2. 实验器材 (3)3. 实验原理 (4)3.1 滤波器频谱范围 (4)3.2 设计IIR数字滤波器的基本思想 (4)3.3 巴特沃思低通数字滤波器 (4)3.4 巴特沃思高通数字滤波器 (4)3.5 巴特沃思带通数字滤波器 (5)4. 实验步骤 (6)5. 实验程序设计及测试 (7)5.1 语音信号的采集与频谱分析 (7)5.2 巴特沃斯低通滤波器的设计与仿真 (8)5.3 巴特沃斯高通滤波器的设计与仿真 (11)5.4 巴特沃斯带通滤波器的设计与仿真 (15)6.实验结果分析 (20)7.附录.................................................. 错误!未定义书签。
1. 实验目的1. 掌握数字信号处理的基本概念,基本理论和基本方法。
1.熟悉离散信号和系统的时域特性。
2.掌握序列快速傅里叶变换方法。
3.学会MATLAB的使用,掌握MATLAB的程序设计方法。
4.掌握利用MATLAB对语音信号进行频谱分析。
5.掌握滤波器的网络结构。
6.掌握MATLAB设计数字滤波器的方法和对信号进行滤波的方法。
2. 实验器材1.Windows下的录音机2.Matlab软件3. 实验原理3.1 滤波器频谱范围语音信号的频谱范围主要为800HZ左右,并且在5000HZ左右有一个小信号,因此,在设计低通滤波器时,应把噪声频谱设定在5000HZ以上,这样,通过低通滤波器,即可滤除噪声信号从而还原语音信号;在设计高通滤波器时,应把噪声设定在800HZ以内,以通过高通滤波器滤除低频的噪声信号,从而还原相对频率较高的语音信号;在设计带通滤波器时,可把噪声设计在低于800HZ或高于5000HZ频谱上,已通过带通滤波器还原带通范围内的语音信号。
3.2 设计IIR数字滤波器的基本思想设计IIR数字滤波器的方法主要有基于冲激响应不变法的IIR数字滤波器设计,基于双线性Z变换法的IIR数字滤波器设计,数字高通、带通及带阻IIR 滤波器设计,基于MATLAB函数直接设计IIR数字滤波器。
本实验中采用双线性变换法变换的巴特沃思数字滤波器。
3.3 巴特沃思低通数字滤波器(1)选择来自window自带音频文件的“ding.wav”声音作为语音信号(2)给信号加一个大频率的噪声(取噪声频率远大于语音信号的最大频率),产生污染信号。
(3)设计一个巴特沃思低通滤波器,通带范围包括语音信号,阻带频率设定为小于噪声信号频率。
(4)将设计好的巴特沃思低通滤波器滤除被噪声污染后的语音信号。
还原语音信号。
3.4 巴特沃思高通数字滤波器(1) 选择来自window自带音频文件的“ding.wav”声音作为语音信号(2)给信号加一个小频率的噪声(取噪声频率远小于语音信号的最小频率),产生污染信号。
(3)设计一个巴特沃思高通滤波器,通带范围包括语音信号,阻带频率设定为大于噪声信号频率。
(4)将设计好的巴特沃思低通滤波器滤除被噪声污染后的语音信号。
还原语音信号。
3.5 巴特沃思带通数字滤波器(1) 选择来自window自带音频文件的“ding.wav”声音作为语音信号(2)给信号加一个小频率或大频率的噪声(取噪声频率远小于语音信号的最小频率或大于语音信号的最大频率),产生污染信号。
本实验取小频率的噪声信号。
(3)设计一个巴特沃思带通滤波器,通带范围包括语音信号,阻带频率设定为不包括噪声信号频率。
(4)将设计好的巴特沃思带通滤波器滤除被噪声污染后的语音信号。
还原语音信号。
4. 实验步骤(1)利用Windows下的录音机或其他软件录一段声音信号,或者选择Windows系统的“叮……”(Ding.wav),并对该信号进行采样;(2)语音信号的频谱分析,画出采样后语音信号的时域波形和频谱图;(3)产生噪声信号加到语音信号中,得到被污染的语音信号,并回放语音信号;(4)污染信号的频谱分析,画出被污染的语音信号时域波形和频谱;(5) 根据有关的频谱特性,采用间接法设计IIR数字滤波器,并画出相应滤波器的幅频图(设计3个IIR滤波器,本实验中设计的模拟滤波器类型:巴特沃思低通滤波器,巴特沃思高通滤波器,巴特沃思带通滤波器);(6)用设计出的滤波器对被噪声污染的信号进行滤波;(7)分析得到信号的频谱,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化;(8)回放语音信号。
5. 实验程序设计及测试5.1 语音信号的采集与频谱分析将windows 系统自带的声音文件Ding.wav 复制到E 盘,并利用wavread 函数将该声音文件导入matlab 中,可以利用函数fft 对信号进行快速傅里叶变换,得到信号的频谱特性;绘出采样后的语音信号的时域波形和频谱图。
程序如下:%导入语音信号 Fs=22050;[x,FS,bits]=wavread('E:\signal20113289\Ding.wav'); x=x(:,1); figure(1);subplot(2,1,1); plot(x);%在命令窗口输入 sound(x,FS,bits) 回放语音 title('语音信号时域波形图') y=fft(x,3260);f=(FS/1630)*[1:1630]; subplot(2,1,2);plot(f(1:1630),abs(y(1:1630))); title('语音信号频谱图');运行程序得到语音时域和频谱图形如下0.511.522.53x 104语音信号时域波形图00.51 1.52 2.533.544.5x 104语音信号频谱图5.2 巴特沃斯低通滤波器的设计与仿真(1)产生高频的噪声信号zs=0.05*cos(2*pi*10000*t/22050), MATLAB 程序如下:%产生高频噪声信号 t=0:length(x)-1;zs=0.05*cos(2*pi*10000*t/22050);zs0=0.05*cos(2*pi*10000*t/22050000); figure(2);subplot(2,1,1) plot(zs0)title('高频噪声信号波形'); zs1=fft(zs,1200);%sound(zs,FS,bits); %回放噪声 subplot(2,1,2)plot(f(1:600),abs(zs1(1:600))); title('高频噪声信号频谱');程序运行得高频噪声的时域波形和频谱如下:00.51 1.52 2.53x 104-0.050.05高频噪声信号波形020004000600080001000012000140001600018000102030高频噪声信号频谱(2)将高频信号添加到原声音信号,得到污染的声音信号,并利用fft 对污染后的信号进行快速傅里叶变换,得到频谱特性。
matlab 程序如下:%将噪声添加到声音信号 x1=x+zs';%sound(x1,FS,bits); %回放加入噪声后的语音 y1=fft(x1,1200); figure(3);subplot(2,1,1);plot(x1); title('加入高频噪声后的信号波形'); subplot(2,1,2);plot(f(1:600),abs(y1(1:600))); title('加入高频噪声后的信号频谱');程序运行结果得加入噪声信号后的声音信号时域波形和频谱:0.511.522.53x 104-0.4-0.200.20.4加入高频噪声后的信号波形020004000600080001000012000140001600018000102030加入高频噪声后的信号频谱(3)巴特沃斯低通滤波器的设计根据语音信号的特点给出有关滤波器的性能指标,设计低通滤波器性能指标如下,Fs=22050Hz ,fp=3000Hz ,fs=3500 Hz , rp=1dB ,rs=10dB ;巴特沃斯滤波器的设计程序如下: %设计巴特沃斯低通滤波fp=3000;fs=3500;Fs=22050; rp=1;rs=10; wp=2*pi*fp/Fs; ws=2*pi*fs/Fs; Fs1=1;wap=2*tan(wp/2); was=2*tan(ws/2);[N,wc]=buttord(wap,was,rp,rs,'s'); [B,A]=butter(N,wc,'s'); [Bz,Az]=bilinear(B,A,Fs1); figure(4);[h,w]=freqz(Bz,Az,512,Fs1*22050); plot(w,abs(h));title('巴特沃斯低通滤波器');xlabel('频率(HZ )');ylabel('损耗(dB )');grid on ;程序运行结果如下:020004000600080001000012000巴特沃斯低通滤波器频率(HZ )耗损(d B )(4)巴特沃斯低通滤波器的仿真利用巴特沃斯滤波器对含有噪声的声音进行低通滤波,程序如下 %对信号进行低通滤波yd=filter(Bz,Az,x1); figure(5);subplot(2,1,1);plot(yd); title('低通滤波后信号波形'); ydd=fft(yd,1200);subplot(2,1,2);plot(f(1:600),abs(ydd(1:600))); title('低通滤波后信号频谱'); sound(yd,FS,bits)运行结果如下:0.511.522.53x 104-0.2-0.100.10.2低通滤波后信号波形200040006000800010000120001400016000180********20低通滤波后信号频谱5.3 巴特沃斯高通滤波器的设计与仿真(1)产生低频的噪声信号zs=0.05*cos(2*pi*100*t/22050), MATLAB 程序如下:%产生低频噪声信号 t=0:length(x)-1;zs0=0.05*cos(2*pi*100*t/22050); figure(6); subplot(2,1,1) plot(zs0);axis([0 2000 -0.05 0.05]) title('低频噪声信号波形'); zs1=fft(zs0,1200);%sound(zs,FS,bits); %回放噪声 subplot(2,1,2)plot(f(1:600),abs(zs1(1:600))); title('低频噪声信号频谱');程序运行得低频噪声的时域波形和频谱如下:010002000300040005000600070008000900010000-0.050.05低频噪声信号波形020004000600080001000012000140001600018000102030低频噪声信号频谱(2)将低频信号添加到原声音信号,得到污染的声音信号,并利用fft 对污染后的信号进行快速傅里叶变换,得到频谱特性。