语音信号的滤波设计

2024-07-03

语音信号的滤波设计(精选7篇)

语音信号的滤波设计 篇1

人类在获取知识和各种信息的过程当中最常利用的是语音, 但在获取语音的过程中, 将不可避免地受到外界环境的影响。掺杂的噪声不但降低了语音质量和语音的可懂度, 严重时还将导致不可预知的不良后果。因此, 在进行语音信号处理前, 就需要从带有噪声的原始语音信号中提取出有效语音信号, 这就是滤波技术的核心所在。

在数字信号处理中, 数字滤波占有极其重要的地位。目前对数字滤波器的设计有多种方法, 其中MATLAB软件已成为设计数字滤波器的强有力工具[1]。通过使用MATLAB设计FIR和IIR数字滤波器, 对含有噪声的语音信号进行滤波, 然后对滤波后的语音信号的时域波形和频谱进行分析。

1 FIR数字滤波器的设计原理

1.1 FIR数字滤波器的设计思想

MATLAB信号处理工具箱为FIR滤波器的两种设计方法提供了直接函数———窗函数法和等波纹最佳一致逼近法[2]。文中使用的设计方法是窗函数法, 下面就此方法简要说明其设计思想。

窗函数设计法一般由一个理想的所需设计的滤波器的频率响应开始, 即先求出理想滤波器的频响, 其对应的单位抽样响应是一个无限长、非因果的序列。由于FIR滤波器的单位抽样响应是有限长的, 所以需要一个有限长的序列逼近它, 得到有限长序列的一种简便方法就是运用窗函数对无限长序列进行截断处理, 因此窗函数的形状及长度的选择就成了关键。

1.2 FIR滤波器设计的MATLAB实现

在MATLAB中, 其信号处理工具箱提供了常用的6种窗函数, 分别是:矩形窗、三角窗、汉宁窗 (Hanning窗) 、汉明窗 (Hamming窗) 、布莱克曼窗 (Blackman窗) 和凯塞窗 (Kaiser窗) [3]。这些窗函数各有优缺点, 所以要根据实际情况进行合理选择。

2 IIR数字滤波器的设计原理

2.1 IIR数字滤波器的设计思想

IIR滤波器的设计思想就是寻找滤波器的各个系数, 使其逼近所要求的特性指标。IIR滤波器的设计方法有两种:一是直接法, 先确定一种最优化准则, 再求此最佳准则下的滤波器系数;二是间接法, 先设计一个合适的模拟滤波器, 然后变换成满足技术指标的数字滤波器[4]。

2.2 IIR滤波器设计的MATLAB实现

采用完全设计法 (即双线性变换后做数字频带变换) 设计IIR数字滤波器时, 在程序中无须经过模拟滤波的转换, 直接带入函数如buttord (巴特沃斯数字滤波器) 、cheblord (切比雪夫数字滤波器) 和cheby1 (椭圆滤波器) 即可。

采用双线性变换法设计滤波器时, 需要使用bilinear函数来实现模拟滤波器到数字滤波器的转换, 采用冲激不变法时, 数字截止频率到模拟截止频率的转换是线性的, 需要使用impinvar来实现模拟滤波器到数字滤波器的转换。

3 基于MATLAB语音信号去噪分析

3.1 语音信号的采样

在计算机上启动录音机, 按下录音按钮, 对着话筒说“数字信号处理”, 停止录音, 将录音保存为“xinhao.wma”, 将其转换为“xinhao.wav”, 保存入d:matlabwork中。

3.2 语音信号的时频分析

在MATLAB平台上利用函数wavread对语音信号进行采样, 得到的时域波形和频谱图如图1所示。

3.3 加噪信号的时频

在MATLAB中认为加入一个噪声干扰信号, 在本仿真中用的是随机噪声信号, 加噪信号的时域波形和频谱如图2所示。

通过将这两张图片的时域波形相对比, 可以明显看出加噪后的语音信号比原始语音信号浑浊, 通过将两者的频谱图对比也可以看出在2 000 Hz以后有明显的不同。从语音信号的回放效果来说, 加噪后的信号比原始信号要浑浊很多, 而且还有吱吱嘎嘎的混杂音。

3.4 FIR滤波器滤波

由加噪和原始语音信号频谱图的对比知, 噪音大部分是大于2000Hz的部分, 故设计低通滤波器进行滤波处理。

用设计好的FIR数字低通滤波器对加噪语音信号进行滤波, 滤波后的图像如图3所示。

将滤波前后信号的波形与频谱图相比, 可以看出滤波后的波形明显变得清晰了, 与原始信号的波形图与频谱图相近。从回放效果来说, 滤波后的加噪语音信号基本可以听清了, 杂音也没有那么强烈, 但仍然没有原始信号清晰。

3.5 IIR滤波器滤波

同理, 由于噪音大部分是大于2 000 Hz的部分, 故设计低通滤波器进行滤波处理。

用设计好的FIR数字低通滤波器对加噪语音信号进行滤波, 滤波后的图像如图4所示。

4 结束语

在对语音信号进行滤波时, 使用FIR与IIR滤波器均可以实现滤波功能, 但是由于其各自参数不同, IIR实行起来比较简单, 因此现在常用的是IIR滤波器。

参考文献

[1]付大丽, 党幼云.数字滤波器在语音信号处理中的应用[J].电声技术, 2012 (8) :62-65, 72.

[2]火元莲, 齐永锋, 甘振业.数字滤波器的MATLAB设计与应用[J].自动化仪表, 2007, 28 (12) :70-71.

[3]桂志国.数字信号处理[M].北京:科学出版社, 2010.

[4]张合权, 张奎.基于MATLAB的IIR数字滤波器设计[J].科技信息, 2008 (12) :1-3.

语音信号的滤波设计 篇2

一、本课题的目的本设计课题主要研究语音信号初步分析的软件实现方法、滤波器的设计及应用。通过完成本课题的设计,拟主要达到以下几个目的:

1.了解Matlab软件的特点和使用方法。

2.掌握利用Matlab分析信号和系统的时域、频域特性的方法;

3.掌握数字滤波器的设计方法及应用。

4.了解语音信号的特性及分析方法。

5.通过本课题的设计,培养学生运用所学知识分析和解决实际问题的能力。

二、课题任务

设计一个简单的语音信号分析系统,实现对语音信号时域波形显示、进行频谱分析,利用滤波器滤除噪声、对语音信号的参数进行提取分析等功能。采用Matlab设计语言信号分析相关程序,并且利用GUI设计图形用户界面。具体任务是:

1.采集语音信号。

2.对原始语音信号加入干扰噪声,对原始语音信号及带噪语音信号进行时频域分析。

3.针对语音信号频谱及噪声频率,设计合适的数字滤波器滤除噪声。

4.对噪声滤除前后的语音进行时频域分析。

5.对语音信号进行重采样,回放并与原始信号进行比较。

6.对语音信号部分时域参数进行提取。

7.设计图形用户界面(包含以上功能)。

三、主要设备和软件

1.PC机,一台

语音信号去噪数字滤波器设计浅析 篇3

(一) 课题研究现状

20世纪60年代中期数字信号处理领域形成的诸多富有实践性的的理论和算法, 如快速傅立叶变换 (FFT) 以及各种数字滤波器等是语音信号数字处理的各项理论和技术基础。在70年中后期之后, 线性预测技术 (LPC) 已经用于语音信号的信息压缩和特征提取, 并已成为语音信号处理中非常重要的一个工具。80年代语音信号处理技术的重大发展是隐马尔可夫模型 (HMM) 描述语音信号过程的产生过程。进入上世纪90年代以来, 语音信号采集与分析技术在实际应用方面取得了许多突破性的研究进展。近年来, 随着科学技术的不断进步, 人工神经网络 (ANN) 的研究取得了迅速发展, 语音信号处理的各项科学研究课题是促进其发展的催生力, 同时它的许多成果也体现在有关语音信号处理的各项技术之中。

(二) 课题研究目的

语音是人类获取知识和各种各样信息的重要手段和最初来源, 人类离不开自然界中各种不同的语音, 但在获取语音的过程中, 将不可避免的会受到外界环境的干扰和影响, 如各种机器的轰鸣声或者自然界太多的电磁噪声干扰等这些不可避免的有害噪声信号都会附加掺杂在语音信号中, 这样获取的语音信号将不再是单纯的语音, 掺杂的噪声不但降低了语音质量和语音的可懂度, 严重时将导致不可预知的不良效果。

语音信号处理的好坏将影响并导致语音信号的好坏, 只有通过将这些语音信号进行一系列的的数字处理, 才能将那些非必要的噪声杂波妥善滤除, 得到纯净的单纯的语音信号。现在社会衍生了很多现代的语音通信方式, 手机通话、QQ或MSN等这些语音聊天软件以及语音小说等, 涉及语音的方方面面已经存在于我们生活中的大部分, 因此语音信号去噪处理是具有现实意义的研究课程。

(三) 课题研究内容

1) 用M ATLAB程序对原始语音信号进行采样, 并绘制出采样后语言信号时域波形和频谱图, 并针对此图分析语音信号特点。2) 将干扰噪声加入到已经获取的语音信号中, 然后进行频谱分析, 并对比未加入噪声的信号, 分析差异。3) 设计FIR数字滤波器, 并对被噪声污染的语音信号进行滤波, 画出滤波前后信号的时域和频谱, 对滤波前后有噪音与无噪音的语音信号进行比较, 分析信号的变化, 从而验证所设计滤波器的滤波效果。4) 回放语音信号。

(四) MATLAB软件设计平台简介

M atlab是M ATrix和LABoratory的缩写, 是由M athw orks公司开发的一套用于科学工程计算的可视化高性能软件, 是一种交互式的以矩阵为基本数据结构的系统, 应用广泛。MATLAB的主要特点如下:

1) 程序的可移植性良好应用于其他程序。2) 程序限制宽泛, 程序设计自由。有大量已经系统定义的函数可直接应用, 并且能够用户自定义函数。3) 语言简洁, 使用灵活方便, 库函数相当丰富。4) 源程序向大众开放。用户可灵活的对源文件进行修改以及加入自己的设计语音构成新的工具箱。5) 最后MATLAB的一个重要特点是功能强大的工具箱。M ATLAB包含两个重要的部分:核心部分和各种可选的工具箱。

二、语音信号处理

(一) 语音信号的采集

将话筒输入计算机的语音输入插口上, 启动录音机, 要求为8000HZ, 8位单声道的音频格式, 按下录音按钮, 接着对话筒一段话, 说完后停止录音, 屏幕左侧将显示所录声音的长度。点击放音按钮, 可以实现所录音的重现。

(二) 语音信号的时域频谱分析

M atlab软件平台下, 利用w avread函数对语音信号进行采样, 采集出原始信号波形与频谱, [y, fs, bits]=wavread ('Blip', [N1N2]) , 用于读取语音, 采样值放在向量y中, fs表示采样频率 (Hz) , bits表示采样位数。[N1N2]表示读取从N1点到N2点的值 (若只有一个N的点则表示读取前N点的采样值) 。

三、FIR数字滤波器的设计

(一) 数字滤波器基本概念

所谓数字滤波器, 是指输入、输出均为数字信号, 通过一定运算关系改变输入信号所含频率成分的相对比例或者滤除某些频率成分的一种数字滤波形式。因此, 数字滤波的概念个模拟滤波的相同, 只是信号的形式和实现滤波方法不同。由于数字滤波通过数值运算实现滤波, 所以其处理精度高、稳定、体积小, 重量轻、灵活、不存在阻抗匹配问题, 可以实现模拟滤波器无法实现的特殊滤波功能。

(二) 常用窗函数介绍

常用的窗函数有矩形窗 (Rectangle Window) 、三角窗 (Bartlett Window s) 、汉宁窗 (Hanning) , 又称为升余弦窗、海明窗 (Hamming) , 又称为改进的升余弦窗, 除了以上几种常用窗函数以外, 尚有布拉克曼 (Blackman) 窗、凯塞 (kaiser) 窗等。对于选择何种窗函数, 应充分考虑被处理信号的性质与处理要求等。如果仅要求准确分辨出主瓣频率, 而不考虑这种幅值精度, 则可选用主瓣宽度较窄从而便于分辨的矩形窗, 例如探测物体的自然震动频率等;如果分析的信号是窄带信号, 而且具有较强的干扰噪声信号出现的话, 则应当选用旁瓣幅度较小的窗函数, 如汉宁窗、三角窗等。

(三) 回放语音信号

语音信号经过FIR滤波器的滤除噪声的处理, 在Matlab中, 函数sound可以对声音进行回放。其调用格式:sound (x, fs, bits) ;可以听出来滤波前后的声音所发生的变化, 而且声音变得没有加噪时那么刺耳了, 比原始语音更加地平滑。用汉宁窗设计FIR滤波器滤掉了在语音中加入的高频的噪声, 而且也把原始语音的很小的一部分也滤掉了, 余下的语音信号全都是低频语音信号, 所以回放语音的时候听起来比以前的更加平滑, 说明设计的低通滤波器是成功的。

四、结论与展望

人们在获取语音信号的过程中, 不可避免的会受到外界环境的干扰和影响, 这些干扰和影响不但降低了语音质量和语音的可懂度, 严重时将导致不可预知的不良效果。当这些语音信号经过数字处理, 用滤波器把噪声杂波滤除, 便得到纯净的语音信号。通过这次设计, 我对语音信号的滤波功能有了全面的认识, 对数字信号处理的知识点有了更深层次的理解, 进一步了解信号的产生、频谱分析的方法, 学会了分析滤波器的优劣和性能, 提高了分析问题和解决问题的能力。

参考文献

[1]高西全, 丁玉美.数字信号处理 (第三版) .西安:西安电子科大出版社, 2008.

基于声卡的语音信号采集系统设计 篇4

数据采集是信号分析与处理的一个重要环节, 通常由数据采集卡完成。但是, 专用数据采集卡的价格一般比较昂贵。随着多媒体技术的发展, 声卡已成为多媒体计算机的标准配置。且大多数声卡具有与数据采集卡相当的信号滤波、放大及采样保持、模-数相互转换等功能, 具有较高的采样频率与精度。声卡可对音频信号实现双声道16位、高保真的数据采集, 最高采样率可达44.1kHz。在满足测量要求的前提下, 利用声卡进行A/D转换, 话筒作为信号输入端, 实现对声音信号的单、双通道采集任务, 从而节省成本。本文实现了一种基于声卡的信号采集系统, 具有音频信号采集、数据处理、PCM波形显示及播放功能。

2、声卡的硬件结构及工作原理

声卡通常由以下部分组成:声音控制/处理芯片、功放芯片、声音输入/输出端口等。声音控制/处理芯片是声卡的核心, 集成了A/D、D/A转换、采样保持、音效处理等电路, 它决定了声卡的性能, 基本功能包括对声波采样和回放的控制、处理MIDI指令等。功放芯片完成信号的功率放大以推动扬声器发声。声音输入/输出端口, 主要有外接端口和内接端口。外接端口有喇叭输出、声音信号输出端口、声音信号输入端口、麦克风输入端口、MIDI端口, 连接电子乐器及游戏控制器。内接端口有内置输入/输出端口、CD音频接口, 通过3-4针的音频线直接和光驱相连。

声卡的工作原理[1]流程如图1所示:用声卡的Lineln端作为信号输入端, 模拟声音信号经声卡前置预处理及A/D转换为数字信号, 送入输入缓冲区, 然后通过各种数字信号处理对数据进行处理, 完成声音消噪、音效处理、声音合成等功能, 最后把处理好的数据保存至存储设备, 这就完成了录音过程。双通道采集时, 声卡采用并行采集, 并有采样保持功能, 两个通道的数据不存在时间差, 存储在同一个输入缓冲区, 等间隔存储, 奇数序列是左通道数据, 偶数序列为右通道数据。声音信号的回放过程为:把处理好的数据送到输出缓冲区, 再由声卡的D/A转换, 将数字音频转换为模拟信号, 经功率放大, 送到扬声器发声。

3、声卡的驱动软件结构

声卡驱动软件, 实现了对采样频率、位数、通道数等参数进行设置及对数据缓冲区、音量等进行控制, 使声卡各组成部件协调工作, 从而实现对声音的采集、存储和回放等功能。软件有两部分:高层音频服务和低层音频服务。前者通过调用S n d P l a y S o n d、M e ssageBeep等简单函数, 实现语音的播放和录制等功能, 但不能实现对底层数据的直接控制。后者可使应用程序直接与驱动程序通讯, 对声音播放和录制提供更强控制, 能更好地管理播放和录制过程, 实现了对底层数据的直接控制。本系统是对信号波形输入设备的操作, 因此采用以wave开头的一系列低层音频服务函数, 实现对波形输入缓冲区数据的控制。

4、软件设计

本设计以VC 6.0为平台, 通过直接调用音频API函数, 实现对声卡的操作。下面对音频采集及波形数据处理的关键问题进行说明。信号采集时, 需考虑信号的采样频率、长度、位数等。数据采集时, 调用底层音频函数来完成。首先, 利用WAVE2 FORMATEX数据结构对通道数、采样频率、位数 (A/D转换位数) 、长度等参数进行设置, 然后用waveInStart函数启动缓冲区存储来自话筒插口 (其他端口不可以) 的数据, 波形输入缓冲区不断存储数据.

4.1 采样参数设置

声卡比较特殊, 采样频率只有11.025kHz、22.05kHz、44.1 kHz等几个定值, 支持的采样位数有8位、16位、24位等, 输入声道 (即采样通道) 通常为单、双声道, 输出声道有单声道、双声道、四声道等, 不同类型声卡对应的各值也不同。因此, 在进行参数设置之前, 利用waveInGetDevCaps函数获取波形输入设备的性能, 包括厂商标志、产品标志、波形输入设备的版本号, 声道数, 所支持的采样频率、采样位数等, 并显示输出, 然后根据设备的性能及实际的需要, 对声卡的采样位数、输入声道及信号采样频率、采样长度进行设置.这些设置是对WAVEFORMATEX数据结构进行。

4.2 数据采集的数据结构

信号采集时, 需要考虑信号的采样频率、采样长度、采样位数等。首先, 利用AVEFORMATEX数据结构对上述参数进行设置[2,3]。其次, Windows提供了丰富的波形数据缓冲区控制函数, 利用这些函数能够在少量存储器的情况下, 循环使用波形数据缓冲区。对波形数据缓冲区的有效分配可按波形数据块结构WAVEHDR要求进行。

在使用低层的声音函数对声音进行采集、回放时, 声音是存放在一个内存数据缓冲区中的, 用户可以用相应的消息映射函数来处理相应的过程。当收到MM_WIM_DATA消息时, 表明输入缓冲区数据已满, 主程序采用双线程, 同时进行数据的保存和缓冲区程序的交换。当得到MM_WOM_DONE消息时, 表明输出缓冲区中数据为空, 在响应消息处理完采样数据后, 继续向输入缓冲区添加数据。

5、信号采集实例

对声卡进行单通道实时声音信号采集, 本例采样信号为人连续敲击桌面的声音, 采样频率为40kHz。由于噪声的混入, 所以得到的实际为混入噪声的时域PCM波形图如图2所示。

6、结语

利用声卡结合相应软件可以构建简便而又实用的信号采集系统。此采集系统, 廉价、方便, 精度高。对需要测试的音频信号, 经过声卡的喇叭输入插孔输入, 便可进行采集、波形显示、回放等, 实现对动态参数的测试及分析。通过仿真, 验证了基于声卡的信号采集系统采样精度较高, 达到了预期的效果.

参考文献

[1]周敬利, 余胜生, 等.多媒体计算机声卡技术及应用[M].北京.电子工业出版社, 1998.

[2]种兰祥, 阎丽, 张首军.基于计算机声卡的多通道数据采集系统[J].西北大学学报, 2002.

[3]云升, 姚晓, 夏志忠.vc++声卡低层音频服务的编程技术[J].计算机应用, 2002.

[4]徐丹, 胡荣强, 刘柱.基于声卡的数据采集及波形发生器设计.[J].中国水运, 2006.

语音信号的滤波设计 篇5

通常测控系统从外界获取数据时无论是模拟信号还是数字信号都会有干扰信号的存在,并且干扰信号经常是无规律的变化,会使系统产生随机误差。为克服这种现象,消除随机误差,使采样得到的数据尽可能的靠近真实值,可采用数字滤波技术,其优点:高精度、高可靠性、可程控改变特性或复用、便于集成等;可以对很高或很低的频率信号进行滤波,这是模拟滤波器所不及的;扩展性好,在实际使用中,只要适当改变软件滤波器的参数,就可改变滤波特性[1]。

从系统集成的角度出发,利用FPGA速度快、精度高、灵活性好、集成度高、可靠性强等优点[2],设计脉冲信号数字滤波系统的各个主要模块,用两种方法分别实现对干扰信号的有效滤除。

1 数字滤波实现方法一

该脉冲信号数字滤波器组成包括:门控电路、计数器和数字比较器。实现原理:利用输入信号fin上升沿使能计数器开始计数,下降沿使能数字比较器,将计数器的计数值与来自微处理器的预设值进行比较,从而决定脉冲产生电路是否有脉冲输出。单路脉冲信号滤波原理如图1所示。

微处理器将预设的要滤除干扰信号对应的最小脉宽转换成8位的数字量并送入FPGA中的锁存器锁存,然后再将锁存后的数字量送入数字比较器中[3]。门控电路对输入信号fin高电平持续期间的高频时基信号f0(由25MHz的外接晶振提供)进行选通。当输入信号fin上升沿到来时控制计数器对选通的时基信号f0进行计数,输入信号fin下降沿控制计数器停止计数,并将计数值送入数字比较器,数字比较器对计数值与预设数字量进行比较,若计数值小于预设值,则判断该脉冲为干扰信号,将其忽略;若计数值大于设定值,则判断该脉冲为有效信号,并由数字比较器输出一个有效脉冲fout。通过此方法,实现对输入脉冲信号的滤波。

1.1 计数器

计数器的作用是对选通的时基信号进行计数,计数电路如图2所示。

1.2 数字比较器

数字比较器如图3所示。

1.3 实验结果及分析

实验仿真是在QUARTUS II 9.0软件环境下进行的,仿真图如图4所示。其中f0为高频时基信号,选取的频率大小为25MHz,由外部晶振提供;fin为输入信号,其波形上叠加有干扰信号;f1为比较器输出信号;fout为脉冲产生电路的输出信号。

输入信号fin上升沿出现后,计数器开始计数。当输入信号fin下降沿时使能数字比较器。如果输入信号fin是有效信号,则比较器输出信号f1输出低电平,随后变高并送入脉冲产生电路,最终输出信号fout为低电平,直到输入信号fin下一个上升沿到来时输出信号fout变为高电平。当输入信号fin中的干扰信号上升沿出现时,计数器同样开始计数,干扰信号下降沿时比较器输出信号f1输出高电平,并送入脉冲产生电路并输出高电平,直到输入信号fin为有效信号时,再次按照之前的方式输出脉冲信号。

该滤波方法能有效地将干扰信号滤除,且有效脉冲个数不会丢失,如果在脉冲产生电路后面连接计数器,则计数结果也不会受影响。但是滤波后信号fout相比输入信号fin而言,脉宽发生变化,出现周期不均匀情况,所以对于要求输入与输出信号波形不发生变化的情况,该滤波方法存在弊端,有必要对其进行改进。

2 数字滤波实现方法二

2.1 工作原理

改进后的单路脉冲信号滤波原理如图5所示。

2.2 实际电路

实际电路连接如图6所示,高频时基信号f0同样由25MHz外接晶振提供,可预置计数器1和2分别对应图5中的延迟电路1和2。该计数器在微处理器发送的预设值基础上进行计数,并且通过预设值和高频时基信号f0共同决定该延迟电路的延迟时间长短,预设值和高频时基信号f0越小,则延迟时间越长,反之延迟时间越短。D触发器、与门和非门组成脉冲产生电路[4],输出滤波后信号fout。

输出信号fout分为两路,一路经反相后送入可预置计数器1,目的是清零可预置数计数器1,当下次上升沿时计数器重新预置数;另一路和高频时基信号f0相与后作为时钟信号送给可预置计数器2的时钟端。

2.3 实验结果及分析

改进后的滤波方法仿真如图7所示。

从仿真图中可看出滤波后的信号fout相比输入信号fin而言有一定的延迟,延迟时间的长短主要取决于微处理器发送的预设初值的大小。滤波后的信号fout有效地滤除了干扰信号,并且波形占空比相比输入信号并未发生改变。

3 结语

(1)两种方法均可实现对干扰脉冲的滤除。由于脉冲电路数字滤波器的后面往往连接计数器,这两种方法均不影响计数器的正常工作。

(2)方法一虽然滤除了干扰,滤波后的输出波形中有效脉冲也没有丢失,但波形的形状发生了变化;而方法二除可对干扰脉冲进行滤除外,还可保证原来信号脉冲的波形不发生变化。

(3)被滤除的干扰脉冲频率范围取决于高频时基信号f0,若f0选取频率为25MHz,理论上可以对频率范围为50k~12.5MHz的干扰信号进行滤除。如果高频时基信号f0的取值选取50MHz或100MHz时,理论上可以分别对97k~25MHz和195k~50MHz频率范围内的信号进行滤波,即f0取值越高则滤波范围越宽。

仿真结果表明,在FPGA芯片中实现对脉冲信号数字滤波相比于一般实现方法的电路规模更小,并且有更高的执行效率。FPGA器件的可编程特性,使得电路功能扩展及改进变得更加方便[5]。

参考文献

[1]郑涛,石秀华,许晖.数字滤波新方法尝试与验证[J].西北工业大学学报,2004,19(4):19

[2]周润景,图雅,张丽敏.基于Quartus II的FPGA/CPLD数字系统设计实例[M].北京:电子工业出版社,2007

[3]张志文,赵浩.惯导组件的脉冲输出测控系统[J].西安工业大学学报,2009,29(5):461

[4]褚振勇,翁木云.FPGA设计及应用[M].西安:西安电子科技大学出版社,2002

语音信号的滤波设计 篇6

在现代科学研究以及各个应用领域,信号发生器是最基本和最常用的仪器之一。它可以方便的输出任意幅值的正弦波以及一些调制波形等,很好的满足了人们的科研需求。无论是科研院所、学校的教学仪器、公司的科研部门,还是工业上的通信、军事、航空航天领域均具有广泛的需求。但是以往多用硬件组成,系统结构比较复杂,可维护性和可操作性不佳。随着计算机技术的发展,信号发生器的设计制作越来越多的是用计算机技术,种类繁多,价格、性能差异很大。本文介绍一种采用凌阳公司SPCE 061A单片机设计的多功能信号发生器,其特点是系统结构简单,成本低,使用方便,实用价值高。基本性能如下:

(1)可以产生正弦波、三角波、方波等几种周期性波形,并可通过调节变成其它相关波形。

(2)输出波形的频率范围为1H z~20k H z,可以通过键盘输入粗调频率,也可以实现频率的步进。

(3)输出波形的幅度范围为0V~5V(V p-p),可通过可变电阻任意调整幅度。

(4)具有L CD显示波形的种类、频率和幅度的功能。

(5)具有语音播报输出信号参数的功能。

1 SPCE 061A单片机简介

61板的核心是凌阳16位单片机SPCE 061A,是一款16位微控制器,封装形式为PL CC84。图1是它的结构概览。

SPCE 061A主要包括输入/输出端口、定时器/计数器、数/模转换、模/数转换、串行设备输入输出、通用异步串行接口、低电压监测和复位等部分,并且内置在线仿真电路ICE接口,较高的处理速度使其能够快速的处理复杂的数字信号。

SPCE 061A的CPU为16位微处理器。内嵌2kB的SR AM和32kB闪存F L ASH R O M。系统时钟由锁相环(PL L)振荡器提供一个实时时钟的基频(32768H z),然后将基频进行倍频。

低电压监测和低电压复位。

2种中断方式:快速中断请求F IQ中断和中断请求IR Q中断,中断控制器可处理18种中断。

2个可编程口:A口和B口。A口既是可编程唤醒功能的普通I/O口,又可与ADC的多路L IN E IN输入共用,B口除了具有普通I/O口的功能外,在特定的管脚上还可以完成一些特殊的功能。I/O口兼容5V T T L逻辑电平。

2个16位的定时器/计数器:T imerA和T im er B,T im er A为通用计数器,T imerB为多功能计数器。

8个10位模数转换通道,其中7个通道用于将模拟量信号转换为数字量信号,可直接通过IO A[0~6]输入。另外一个通道只作为语音输入通道,通过内置有自动增益控制放大器的麦克风通道(M IC IN)输入。

2 系统概述

直接采用凌阳SPCE 061A作为波形发生器,波形的具体产生是通过两路DAC来产生,凌阳SPCE 061A在这方面的设计为我们提供了极大的方便,用它实现的好处在于,外围电路极其简单,另外在DAC的编程方面又提供及其便利的编程环境。外围电路的设计包括三大部分,第一是键盘控制电路的设计,这里采用4*4键盘,由IO A的低八位进行控制,把键盘上的行和列分别接在IO A0~IO A3和IO A4~IO A7上,采用外部中断二来中断所显示波形,以便进入下一波形的编辑和输出,在波形输出的同时利用外部中断一来实现同步的频率调节。第二是显示电路的设计,采用带数据缓存器和驱动的L CD来提供显示,这样只占用八个I/O口即可完成设计要求。第三是滤波和电压转换电路的设计,滤波采用低通滤波器,滤除DAC转换过程中形成的高频小锯齿波。另外由于凌阳SPCE 061A单片机DAC输出为电流输出,为满足达到5V的电压输出,外接O P07运算放大器进行放大,加1千欧姆电阻进行电流信号到电压信号的转换。利用单片机控制管理,使频率设置和占空比调整等操作可用键盘输入,十分方便。

3 硬件电路的实现

3.1 滤波、放大及其电流到电压的转换电路电路

本系统采用二阶压控电压源低通滤波器,如图3所示。它由两节R C滤波器和同向放大电路组成。其中同相放大实际上就是所谓的压控电压源,它的电压增益就是低通滤波器的通带电压增益,即:A0=Avf=1+R f/R 1

传递函数由图电路可知,运放同相端输入电压为:V p(s)=V 0(s)/Avf(1)

而V p(s)与V a(s)的关系为:V p(s)=V a(s)/1+s R C)(2)

对于节点A,由节点电流法可得:

V i(s)/R-V a(s)/R-[V a(s)-V 0(s)]s C-V a(s)/R-V p(s)/R=0(3)

将式(1)、(2)和(3)连立求解,可得电路的传递函数为:

A(s)=V 0(s)/V i(s)=Avf/[1+(3-Avf)s R C+s R C*s R C](4)

式(4)为二阶低通滤波器传递函数的表达式。其中1/R C为特征频率,而1/(3-Avf)为等效品质因数。截止频率为1/R C。通过设置R、C可调节带通到我们需要的范围。另外调节R f可调节幅度到我们需要的范围。

3.2 语音播报电路的设计电路

凌阳的SPCE 061A是16位单片机,具有DSP功能,有很强的信息处理能力,最高时钟可达到49M,具备运算速度高的优势等等,这为语音的播放、录放、合成及辨识提供了条件。另外SPCE 061A单片机具有32k闪存,事先把所需要的语音信号录制好,整个语音信号经凌阳SACM_S480压缩算法压缩只占有13.2K存储空间,对凌阳SPCE 061A单片机的存储系统来说绰绰有余。凌阳S P CE 061A单片机自带双通道DAC音频输出,DAC1、DAC2转换输出的模拟量电流信号分别通过AU D 1和AU D2管脚输出,DAC输出为电流型输出,经L M 396音频放大,即可驱动喇叭放音,放大电路如图4(只列出了DAC1,DAC2类似)。在DAC1、DAC2后面接一个简单的音频放大电路和喇叭就能实现语音播报功能,这为单片机的音频设计提供了极大方便,音频的具体功能主要通过程序来实现。

3.3 各种波形的产生计算

3.3.1 正弦波信号计算

在信号输出部分,采用了10位的D/A变换器,其最大输出值为1023。为了与D/A变换器相适应,在2π一个周期内,将其输出信号的幅值,角频率量化,正弦信号为奇函数,其傅里叶级数只能用正弦项表示,即有:

f(k)=512sinkω0(0≤k≤512)

y(k)=512+f(k)

式中ω0=2π/1024,由此求出1024个离散值,形成数据表,以备计算驱动程序调用。

3.3.2 三角波的计算

按DAC满幅输出计算三角波的上升沿和下降沿的N个DAC输出的小阶梯,由于阶梯很小,从宏观上看它可以近似成三角波波信号,阶梯之间的时间间隔t1、t2由定时器T imerA的定时值决定,通过改变t1、t2的值来改变三角波信号上升沿和下降沿的时间T 1、T 2,从而改变三角波信号的频率。

3.3.3 方波信号的计算

方波的产生只需根据给出高电平时间t1和低电平t2时间,分别用定时器计时即可实现。

4 软件部分

本系统采用单片机汇编语言,进行程序设计,可以进行在线模拟、仿真。软件程序流程如图5。

5 结束语

由于采用较高性价比的单片机SPCE 061A,系统电路结构简单,输出信号电压和频率的精度较高,操作方便,L CD可直观显示信号类型、频率和幅值,并可实现语音播报信号参数,总体性能优于传统的信号发生器。

摘要:采用凌阳SPCE061A单片机为核心设计的多功能信号发生器,能够输出方波、正弦波、三角波信号,并能实现频段选择和频段内频率微调,同时实现语音播报功能。经测试验证,与现有各类型波形发生器比较而言,该信号发生器结构简单,操作方便,输出稳定,成本低廉,具有较高的实用价值,非常适合于物理实验室教学与科研实验使用。

关键词:信号发生器,SPCE061A凌阳单片机,调制信号

参考文献

[1]凌阳科技产品资料

[2]凌阳科技.凌阳16位单片机开发实例.北京航空航天大学出版社.2006

[3]薛钧义,张彦斌,虞鹤松.凌阳十六位单片机原理及应用.北京航空航天大学出版社.2003

语音信号的滤波设计 篇7

人体上有很多生理信号因神经传导产生电位的改变, 其整体的活动可在体表得到电的信号。但一般来说, 表面生理信号都相当的微弱, 需要透过放大电路来放大微量的生理信号才可以进行分析, 而且生理信号极易受到周围环境的干扰。它的提取和处理是一个很复杂的信号处理过程, 在这个过程中, 去除干扰和噪声背景是首要的任务。用于生理信号提取的抗干扰的方法很多, 可以是硬件电路实现模拟电路滤波、也可以是由软件实现的数字滤波。本文基于STM32F4微处理器, 进行用于生理信号处理的数字滤波器的设计, 实现对生理信号的处理以得到纯净的生理信号。

2 FIR带通滤波器设计

人体的生理信号都相当的微弱, 有用信号的频率范围小。本文以脑电信号为例, 幅值范围为5μV~100μV, 频率范围一般在0.5~35Hz。

2.1 MATLAB工具箱fdatool生成C头文件

首先在matlab的命窗口输入fadtool就能打开这个工具箱, 然后在fadtool界面设计FIR带通滤波器。

参数设置好以后点击Design Filter按钮, 就生成了所需的滤波器系数, 生成滤波器系数以后点击fadtool界面上的菜单Targets>Generate C header, 然后点击Generate, 再点击保存, 并打开fdatool.h文件, 可以看到生成的180阶FIR带通滤波器系数。

2.2 MATLAB FIR滤波与ARM官方库滤波的比较

信号由30Hz正弦波和50Hz正弦波组成, 采样率1Kbps, 现设计一个带通滤波器, 截止频率1Hz和40Hz, 采样320个数据, 采用函数fi r1进行设计 (基于窗口的方法设计FIR滤波, 默认是hamming窗) , 滤波器阶数设置为180。

通过工具箱fdatool获得带通滤波器系数后在开发板上运行函数arm_fi r_f32来测试带通滤波器的效果。

运行如上函数可以通过串口打印出函数arm_fi r_f32滤波后的波形数据, 下面通过Matlab绘制波形来对比Matlab计算的结果和ARM官方库计算的结果。对比前需要先将串口打印出的一组数据加载到Matlab中, arm_fi r_f32的计算结果命名为sampledata。Matlab运行显示效果一样, 运行的代码如下:

2.3 FIR带通滤波器仿真

从上面的波形对比来看, matlab和函数arm_fi r_f32计算的结果基本是一致的。为了更好的说明滤波效果, 下面从频域的角度来分析, Matlab上面运行如下代码:

运行代码后波形变换前的FFT和变换后FFT可以看出, 50Hz的正弦波基本被滤除。

摘要:本文基于MATLAB工具箱fdatool设计数字滤波器, 介绍用于人体生理信号处理的数字滤波器的设计过程, 并运用STM32F4微处理器对生理信号进行软件处理, 信号的处理实验表明了很好的滤波效果。

关键词:生理信号,数字滤波器,MATLAB,STM32F4

参考文献

[1]郭栋, 张文超.基于USB和LabVIEW的生理信号采集系统[J].生命科学仪器, 2012 (05) :38-42.

上一篇:乳腺密度下一篇:实际成本