基于matlab语音信号的采集与分析内容摘要:
函数和数据、实现算法、创建用户界面、 连接 其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、 图像处理 、 信号检测 、金融建模设计与分析等领域。 MATLAB 的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用 MATLAB 来解算问题要比用 C, FORTRAN 等语言完成相同的事情简捷得多,并且 mathwork 也吸收了像 Maple 等软件的优点 ,使 MATLAB 成为一个强大的数学软件。 在新的版本中也加入了对 C, FORTRAN, C++ , JAVA 的支持。 可以直接调用 ,用户也可以将自己编写的实用程序导入到 MATLAB 函数库中方便自己 6 以后调用,此外许多的 MATLAB 爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用 [9]。 图形用户界面或图形用户接口 (Graphical User Interface, GUI)是指采用图形方式显示的计算机操作环境用户接口。 与早期计算机使用的命令行界面相比,图形界面对于用户来说更为简便易用。 GUIDE 是 Matlab 提供的图形用户界面开发环境,提供了一系列用于创建图形用户界面的工具,从而简化界面布局和编程工作。 MATLAB 的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生 物学等众多应用领域。 附加的工具箱(单独提供的专用 MATLAB 函数集)扩展了 MATLAB 环境,以解决这些应用领域内特定类型的问题。 7 3 系统设计 系统 设计 的 理论依据 ⑴ 采样定理 在进行模拟 /数字信号的转换过程中,当采样频率 大于信号中,最高频率 fmax 的 2 倍时,即: =2fmax,则采样之后的数字信号完整地保留了原始信号中的信息,一般实际应用中保证采样频率为信号最高频率的 5~ 10 倍;采样定理又称奈奎斯特定理。 1924 年奈奎斯特 (Nyquist)就推导出在理想低通信道的 最高大码元传输速率的公式 : 理想低通信道的最高大码元传输速率 =2W*log2 N (其中 W是理想低通信道的带宽 ,N 是电平强度 ) ⑵ 采样频率 采样频率(也称为采样速度或者 采样率 )定义了每秒从连续信号中提取并组成离散信号的采样个数,它用赫兹( Hz)来表示。 采样频率的倒数是采样周期或者叫作 采样时间 ,它是采样之间的时间间隔。 采样频率只能用于周期性采样的采样器,对于非周期性采样的采样器没有规则限制。 采样频率与声音频率之间有一定的关系,根据奎斯特理论,只有采样频率高于声音信号最高频率的两倍时,才能把数字信号表示的声音还原成为原来的声音。 这就是说采样频率是衡量声卡采集、记录和还原声音文件的质量标准。 ⑶ 语音的录入与打开 在 MATLAB 中, [y,fs,bits]=wavread(39。 Blip39。 ,[N1 N2])。 用于读取语音,采样值放在向量 y中, fs表示采样频 率 (Hz), bits 表示采样位数。 [N1 N2]表示读取从 N1 点到 N2 点的值(若只有一个 N 的点则表示读取前 N 点的采样值) [10]。 sound(x,fs,bits)。 用于对声音的回放。 向量 x则就代表了一个信号(也即一个复杂的“函数表达式”)也就是说可以像处理一个信号表达式一样 8 处理这个声音信号。 ⑷ 时域信号的 FFT 分析 FFT 即为快速傅氏变换,是离散傅氏变换的快速算法,它是根据离散傅氏变换的奇、偶、虚、实等特性,对离散傅立叶变换的算法进行改进获得的 [11]。 在 MATLAB的信号处理工具箱中函数 FFT和 IFFT用于快速傅立叶变换和逆变换。 函数 FFT 用于序列快速傅立叶变换 ,其 调用格式 为 y=fft(x), 其中, x是序列, y是序列的 FFT, x 可以为一向量或矩阵,若 x 为一向量, y是 x的 FFT 且和x相同长度 ; 若 x 为一矩阵,则 y是对矩阵的每一列向量进行 FFT。 如果 x 长度是 2 的幂次方,函数 fft 执行高速基- 2FFT 算法 , 否则 fft 执行一种混合基的离散傅立叶变换算法,计算速度较慢。 函数 FFT的另一种调用格式 为 y=fft(x,N),式中, x, y意义同前, N为正整数。 函数执行 N点的 FFT, 若 x为向量且长度小于 N,则函数将 x 补零至长度 N; 若向量 x 的长度大于 N,则函数截短 x 使之长度为 N; 若 x 为矩阵,按相同方法对 x进行处理。 ⑸ 语音信号的频域分析 语音信号的频域分析就是分析语音信号的频域持征。 从广义上讲,语音信号的频域分析包括语音信号的频谱、功率谱、倒频谱、频谱包络分析等,而常用的频域分析方法有带通滤波器组法、傅里叶变换法、线件预测法等几种。 本文介绍的是语音信号的傅里叶分析法。 因为语音波是一个非平稳过程,因此适用于周期、瞬变或平稳随机信号的标准傅里叶变换不能用来直接表示语音信号,而应该用短时傅里叶变换对语音信号的频谱进行分析 ,相应的频谱称为“短时谱 ”。 ⑹ 数字滤波器设计原理 数字滤波是数字信号分析中最重要的组成部分之一,与模拟滤波相比,它具有精度和稳定性高、系统函数容易改变、灵活性强、便于大规模集成和可实现多维滤波等优点。 在信号的过滤、检测和参数的估计等方面,经典数字滤波器是使用最广泛的一种线性系统。 数字滤波器的作用是利用离散时间系统的特性对输入信号波形 (或频谱 )进行加工处理,或者说利用数字方法按预定的要求对信号进行变换。 ⑺ 数字滤波器的设计步骤 9 不论是 IIR 滤波器还是 FIR 滤波器的设计都包括三个步骤: ① 按照 实际任务的要求,确定滤波器的性能指标。 ② 用一个因果、稳定的离散线性时不变系统的系统函数去逼近这一性能指标。 根据不同的要求可以用 IIR 系统函数,也可以用 FIR 系统函数去逼近。 ③ 利用有限精度算法实现系统函数,包括结构选择、字长选择等。 ⑻ IIR 滤波器与 FIR 滤波器的性能比较 FIR:Finite Impulse response,有限冲击响应 IIR:Infinite Impulse response,无限冲击响应 从性能上来说, IIR 滤波器传输函数的极点可位于单位圆内的任何地方,因此可用较低的阶数获得高的选择性,所用的存贮单元少,所以经济而效率高。 但是这个高效率是以相位的非线性为代价的。 选择性越好,则相位非线性越严重。 相反, FIR 滤波器却可以得到严格的线性相位,然而由于 FIR 滤波器传输函数的极点固定在原点,所以只能用较高的阶数达到高的选择性;对于同样的滤波器设计指标, FIR 滤波器所要求的阶数可以比 IIR 滤波器高 5~10 倍,结果,成本较高,信号延时也较大;如果按相同的选择性和相同的线性要求来说,则 IIR 滤波器就必须加全 通网络进行相位较正,同样要大增加滤波器的节数和复杂性 [12]。 系统的详细设计 图形用户界面制作 MATLAB 中图形用户界面的制作有两种方法: M 文件和 GUIDE,本设计采用 GUIDE 的方法制作 GUI。 ⑴ 新建一个空白 GUI 模板:进入 MATLAB 程序界面以后执行 File→ New→ GUI 过程,即可进入。 ⑵ 选择空白模板选项条,单击 OK,一个空白 GUI 模板生成 ⑶ 拖拉白色框的右下角调整界面大小,现在就可以开始设计 GUI 功能界面了。 从左边控件框选择所需要的控件放置在 GUI 面板中,然后对各个控件进行编辑,包括位置、大小、颜色、名称以及编写回调函数等。 本设计主要用到 坐标系 和按钮,现分别介绍。 ① 按钮设计:按钮键又称命令按钮或按钮,是小的长方形屏幕对象,常常 10 在对象本身标有文本。 将鼠标指针移至对象,单击鼠标按钮执行由回调字符串所定义的动作。 单击空间框左侧的 Push Button 按钮,在图形编辑框中确定其位置后单击鼠标左键即可放置。 现在开始编写回调函数,确定按钮功能。 在按钮上单击鼠标右键,选择 view callbacks→ callback 即可在 M 文件中找到该按钮的回 调函数位置。 然后编写功能函数,本设计中该按钮的功能是绘制原始波形,那么只需要读取语音信号并画出波形。 ② 坐标系设计:坐标轴对象是许多图形对象的父对象,每一个可视化显示用户数据的图形窗口都包含一个或多个坐标轴对象。 坐标轴对象确定了图形窗口的坐标系统,所有绘图函数都会使用当前坐标轴对象或创建一个新的坐标轴对象,用于确定其绘图数据点在图形中的位置。 单击空间框左侧的 Axes 按钮,在图形编辑框中确定其位置后单击鼠标左键即可放置。 本次课程设计的最终图形用户界面如 图 31 所示。 图 31图形用户界面总体图 系统功能的实现 ⑴ 信号的打开 在“打开信号”按钮上单击鼠标右键,选择 view callbacks→ callback,在 M文件中找到该按钮的回调函数位置,然后编写功能函数。 功能函数如下。 global I。 global X。 %定义全局变量 global magX。 global angX。 11 H={39。 *.wav39。 }。 %定义打开信号的格式 [filename,pathname]=uigetfile(H,39。 请选择打开文件 39。 )。 file=strcat(pathname,filename)。 %文件的路径和文件名 I=wavread(file)。 %打开。基于matlab语音信号的采集与分析
相关推荐
() 当 2INIA 时 , 2 .5 0 1 .2 52IN VRMA ;当 750INIA 时 ,2 .5 0 3 .3 3750IN VRKA , 为了使数字控制能够使 2 ~ 750INI A A 实现 , 我们在D/A转换模块使用图。 当数字量为 00H时 , OUTbV 输出为0V。 MAX038的 10脚 IIN有 2A 的电流输入。 当数字量为
高水位) ,选择全自动洗衣机运行模式手动模式,选择所需要的的洗涤时间和洗涤次数,按下启动按钮,水位会根据衣服重量自动选择水位。 2) 当选择洗涤次数为一次,洗涤时间为二十五秒时,程序启动, 05 秒开始进水 ,5秒后停止进水。 3) 6 秒后开始洗涤。 4) 洗涤时,正转 5 秒后浸泡,浸泡 2 秒后开始反转洗涤,反转洗涤 5 秒后浸泡,浸泡 2 秒。 5) 如此循环 1 次,总共 14
图 4 机组工作流程图 图 5 恒水位电磁阀控制原理 电磁阀 PID调节器 伺服放 大器 软水 水箱 差压变送器 给定值 软水 水 箱水位 开始 1变频启动 1变频运行 1电机工频运行f=50HZ。 1电机 频率f=50HZ。 1工频和 2交换 1工频停机, 2变频运行 2工频运行, 1变频运行 2电机 f﹦ fmin,压力 p≤ pk 2电机 f≤ fmin,压力 p≥ pk N Y Y N
17 三、对运行结果的分析: 为什么在用计算机对某网络初次进行潮流计算时往往是要调潮流,而并非任何情况下只一次送入初始值算出结果就行呢。 要考虑什么条件。 各变量是如何划分的。 哪些可调。 哪些不可调。 答:潮流计算时功率方程是非线性,多元的具有多解。 初始条件给定后得到的结果不一定能满足约束条件要求,要进行调整初值后才能满足。 其约束条件有: m axm in iii UUU
2 仿真软件 MATLAB MATLAB 发展历史 MATLAB 软件用作数字图形处理和数值计算的科学计算系统环境,其由美国 Math works 公司推出的。 MATLAB 是英文 Matrix Laboratory 的简写。 Matlab 的第 1 版是 1984年发行的,期间经过了 10 多年的不断完善,如今已推出最新版本 ( 版 )。
特性愈接近矩形,过渡带愈窄传递函数无零点。 利用 Matlab 设计巴特沃斯滤波器的程序 [z,p,k]=buttap(N)。 %设计巴特沃斯滤波器 [b,a]=zp2tf(z,p,k)。 %将零点增益形式转换为传递函数形式 [H,w]=freqs(b,a,n)。 %按 n指定的频率点给出频率响应 magH2=(abs(H)).^2。 %给出传递函数幅度平方 程序运行结果如下 : 鲁东大学