1、 目录 洗手 摘要 1 洗手 1、 beef绪论 2 洗手 1.1 语音信号分析技术 2 洗手 1.2 数字滤波技术 2 洗手 1.3 主要内容和基本要求 4 洗手 2、 beef实验内容 4 洗手 2.1 语音信号的采集 4 洗手 2.2 语音信号的频谱分析 4 洗手 2.3 构建干扰信号 6 洗手 2.4 信号合成 8 洗手 2.5 用数字滤波器对加噪的语音信号进行滤波 9 洗手 心得体会 13 洗手 参考文献 14 洗手 洗手 1 基于 MATLAB 的语音信号滤波处理和程序设计 洗手 洗手 摘要 洗手 语音信号处理属于信息科学的一个重要分支 , 吃饭 大规模集成技术的高度发展和计算机技
2、术的飞速前进 , 吃饭 推动了这一技术的发展 。 洗手 Matlab 是一种数据分析和处理功能十分强大的计算机应用软件 ,信号处理是 Matlab 重要应用的领域之一 。 洗手 本设计是基于 Matlab 对语音信号进行处理 , 吃饭 先完成语音信号的采集 , 吃饭 利用 MATLAB 对所录制的信号进行时域和频域分析 ; b eef构建一个干扰信号 , 吃饭 把语音信号和干扰信号叠加 , 吃饭 利用 MATLAB 对干扰后的语音信号进行时域和频域分析 , 吃饭 对干扰后的信号进行滤波 , 吃饭 画出滤波后的信号的时域波形和频谱 , 吃饭 并对滤波前后的信号进行对比 , 吃饭 分析信号的变化
3、。 洗手 洗手 洗手 关键词 MATLAB 语音信号 干扰信号 滤波 信号叠加 洗手 洗手 洗手 洗手 洗手 洗手 洗手 洗手 洗手 洗手 洗手 2 洗手 1、 beef绪论 洗手 1.1 语音信号 分析 技术 洗手 语音信号分析是语音信号处理的前提和基础 , 吃饭 只有分析出可表示语音信号本质特征的参数 , 吃饭 才有可能利用这些参数进行高效的语音通信 、 beef语音合成和语音识别等处理 。 洗手 而且 ,吃饭 语音合成的音质好坏 , 吃饭 语音识别率的高低 , 吃饭 也都取决于对语音信号分桥的准确性和精确性 。 洗手 因此语音信号分析在语音信号处理应用中具有举足轻重的地位 。 洗手 洗手
4、 根据所分析出的参数的性质的不同 , 吃饭 可将语音信号分析分为时域分析 、 beef频域分析 、 beef倒领域分析等 ; beef时域分析方法具有简单 、 beef计算量小 、 beef物理意义明确等优点 , 吃饭 但由于语音信号最重要的感知特性反映在功率谱中 , 吃饭 而相位变化只起着很小的作用 , 吃饭 所以相对于时域分析来说频域分析更为重要 。 洗手 洗手 通过对大量语音信号的观察和分析发现 , 吃饭 语音信号主要有下面两个特点 : beef洗手 在频域内 , 吃饭 语音信号的频谱分量主要集中在 300 3400Hz 的范围内 。 洗手 利用这个特点 ,吃饭 可以用一个防混迭的带通滤
5、波器将此范围内的语音信号频率分量取出 , 吃饭 然后按 8kHz 的采样率对语音信号进行采样 , 吃饭 就可以得到离散的语音信号 。 洗手 洗手 在时域内 , 吃饭 语音信号具有“短时性”的特点 , 吃饭 即在总体上 , 吃饭 语音信号的特征是随着时间而变化的 , 吃饭 但在一段较短的时间间隔内 , 吃饭 语音信号保持平稳 。 洗手 在浊音段表现出周期信号的特征 , 吃饭 在清音段表现出随机噪声的特征 。 洗手 洗手 1.2 数字滤波技术 洗手 数字滤波是数字信号处理的重要基础 , 吃饭 数字信号处理主要是研究用数字或符号的序列来表示信号波形 , 吃饭 并用数字的方式去处理这些序列 , 吃饭
6、把它们改变成在某种意义上更希望的形式 , 吃饭 以便估计信号的特征参量 , 吃饭 或削弱信号中的多余分量和增强信号中的有用分3 量 。 洗手 数字滤波器在对信号的过滤 、 beef检测与参数估计等处理过程中 , 吃饭 是使用最为广泛的一种线性系统 。 洗手 洗手 数字滤波器( Digital Filter, 吃饭 简称为 DF)是指完成信号滤波处理功能的 、 beef用有限精度算法实现的离散时间线性非时变系统 。 洗手 数字滤波器的数学运算通常有两种实现方式 。洗手 一种是频域法 , 吃饭 即利用 FFT快速运算办法对输入信号进行离散傅立叶变换 , 吃饭 分析其频谱 ,吃饭 然后根据希望的频率
7、特性进行滤波 , 吃饭 再利用傅立叶反变换恢复出时域信号 。 洗手 这种方法具有较好的频域选择特性和灵活性 , 吃饭 并且由于信号频率与所希望的频谱特性是简单的相乘关系 , 吃饭 所以它比计算等价的时域卷积要快得多 。 洗手 另一种方法是时域法 , 吃饭 这种方法是通过对离散抽样数据作差分数学运算来达到滤波目的的 。 洗手 洗手 数字滤波器的输入是一组(由模拟信号取样和量化的)数字量 , 吃饭 其输出是经过数字变换的另一组数字量 。 洗手 数字滤波器具有稳定性高 、 beef精度高 、 beef灵活性大等突出优点 。 洗手 随着数字技术的发展 , 吃饭 用数字技术实现滤波器的功能愈来愈受到人们
8、的重视 , 吃饭 并得到了广泛的应用 。 洗手 洗手 数字信号处理学科的一项重大进展是关于数字滤波器设计方法的研究 。 洗手 60 年代中期 , 吃饭开始形成关于数字滤波器的一套完整的正规理论 。 洗手 这一时期 , 吃饭 提出了各种各样的数字滤波器结构 , 吃饭 有的以运算误差最小为特点 , 吃饭 有的则以运算速度高见长 ; beef出现了数字滤波器的各种逼近方法和实现方法 , 吃饭 对递归和非递归两类滤波器作了全面的比较 ; beef统一了数字滤波器的基本概念和理论 , 吃饭 对有限冲激响应( IIR)和无限冲激响应( FIR)的认识有了完整理论 。 洗手 70 年代后 , 吃饭 科学技术
9、蓬勃发展 , 吃饭 数字信号处理开始与大规模和超大规模集成电路技术 、 beef微处理技术等新工艺新技术结合起来 , 吃饭 并引进计算机辅助设计方法 , 吃饭 大大丰富了数字滤波器的分析与设计 , 吃饭 各种新的数字信号处理系统 , 吃饭 也都能用专用数字硬件实时加以实现 。 洗手 相信在未来 , 吃饭 随着电子仪器与电子技术应用系统朝着数字化 、 beef小型化 、 beef4 自动化以及多功能化等方向发展 , 吃饭 包括数字滤波器在内的数字信号处理技术会有以惊人的速度进行飞跃式发展 。 洗手 洗手 1.3 主要内容 和基本要求 洗手 主要内容 : beef洗手 要求用 Windows 下的
10、录音机 , 吃饭 录制一段自己的话语“大家好” 。 洗手 利用 MATLAB 对所录制的信号进行时域和频域分析 ; beef构建一个干扰信号 , 吃饭 把语音信号和干扰信号叠加 , 吃饭 利用 MATLAB对干扰后的语音信号进行时域和频域分析 , 吃饭 对干扰后的信号进行滤波 , 吃饭 画出滤波后的信号的时域波形和频谱 , 吃饭 并对滤波前后的信号进行对比 , 吃饭 分析信号的变化 。 洗手 洗手 基本要求 : beef洗手 掌握在 MATLAB 环境下语音信号的采集方法 。 洗手 洗手 构建的干扰信号为 f(t)=10sin(4000 t)。 洗手 洗手 掌握数字信号处理的基本概念 、 be
11、ef基本理论 、 beef基本方法 。 洗手 洗手 利用 MATLAB 设计滤波器对干扰的语音信号进行滤波 。 洗手 洗手 掌握 MATLAB 的程序设计方法 。 洗手 洗手 2、 beef实验内容 洗手 2.1 语音信号的采集 洗手 利用 Windows 下的录音机 ,录制一 句 自己的话 , 吃饭 保 存为“大家好 .wav”文件 。 洗手 然后在 Matlab软件平台下 ,利用函数 wavread 对语音信号进行采样 ,记住采样频率和采样点数 。 洗手 洗手 使用 y,fs,bits=wavread();beef读取音频文件 。 洗手 录制的音频文件为 wam 格式 , 吃饭 需转换为
12、wav格式的文件 。 洗手 洗手 2.2 语音信号的频谱分析 洗手 首先画出语音信号的时域波形 , 吃饭 然后对语音信号进行频谱分析 。 洗手 在 Matlab 中 ,可以利用5 函数 fft 对信号进行快速傅里叶变换 ,得到信号的频谱特性 。 洗手 洗手 程序 : beef洗手 y,fs,bits=wavread(C:UsersAdministratorDesktopmatlab 资料 大家好 .wav);beef洗手 n=length(y) 洗手 y_p=fft(y,n);beef %对 n点进行傅里叶变换到频域 洗手 f=fs*(0:n/2-1)/n;beef % 对应点的频率 洗手 f
13、igure(1)洗手 subplot(2,1,1);beef洗手 plot(y);beef %语音信号的时域波形图 洗手 title(原始语音信号时域波形 );beef洗手 xlabel(时间 )洗手 ylabel(幅 度 )洗手 subplot(2,1,2);beef洗手 plot(f,abs(y_p(1:n/2);beef %语音信号的频谱图 洗手 axis(0 20000 0 600);beef洗手 title(原始语音信号频谱图 );beef洗手 xlabel(频率 Hz);beef洗手 ylabel(幅度 );beef洗手 6 洗手 图 1 原始语音信号 波形 图 洗手 洗手 2.3
14、 构建干扰信号 洗手 构建的干扰信号为 f(t)=10sin(4000 t), 吃饭 此 信号 为正弦信号 。 洗手 洗手 程序 : beef洗手 y,fs,bits=wavread(C:UsersAdministratorDesktopmatlab 资料 大家好 .wav);beef洗手 n=1000 洗手 t=(0:n-1)/100000;beef洗手 f=fs*(0:n/2-1)/n;beef 洗手 y1=10*sin(2*pi*2000*t );beef洗手 y2=fft(y1,10*n);beef洗手 0 1000 2000 3000 4000 5000 6000 7000 8000
15、 9000 10000050010001500原始语音信号频谱图频率 Hz幅度0 1 2 3 4 5 6 7 8 9x 1 04-1- 0 . 500 . 51原始语音信号时域波形时间幅度7 subplot(2,1,1);beef洗手 plot(y1) %干扰信号的时域图 洗手 title(干扰信号时域图 );beef洗手 xlabel(时间 )洗手 ylabel(幅度 )洗手 subplot(2,1,2);beef洗手 plot(f,abs(y2(1:n/2);beef % 干扰信号的频谱图 洗手 title(干扰信号频谱图 );beef洗手 xlabel(频率 );beef洗手 ylabe
16、l(幅度 );beef洗手 洗手 图 2 干扰信号波形图 洗手 洗手 0 100 200 300 400 500 600 700 800 900 1000- 1 0-50510干扰信号时域图时间幅度0 0 . 5 1 1 . 5 2 2 . 5x 1 040200040006000干扰信号频谱图频率幅度8 2.4 信号合成 洗手 用 MATLAB 将干扰信号和原始信号进行合成 。 洗手 洗手 程序 : beef洗手 L=length(y) 洗手 t=(0:L-1)/30000;beef洗手 A=10;beef洗手 f=4000;beef洗手 noise=A*sin(f*pi*t);beef %
17、产生等长正弦干扰信号 洗手 y_z=y+noise noise ;beef %合成新的信号 洗手 sound(y_z,fs);beef %对加噪后的信号进行分析 洗手 n=length(y);beef 洗手 y_zp=fft(y_z,n);beef 洗手 f=fs*(0:n/2-1)/n;beef 洗手 figure(2)洗手 subplot(2,1,1);beef洗手 plot(y_z);beef %加噪语音信号的时域波形图 洗手 axis(0 50 -12 12);beef洗手 title(加噪信号时域波形 );beef洗手 xlabel(时间 )洗手 ylabel(幅度 )洗手 subp
18、lot(2,1,2);beef洗手 plot(f,abs(y_zp(1:n/2);beef %加噪语音信号的频谱图 洗手 9 axis(0 5000 0 1000);beef洗手 title(加噪信号频谱图 );beef洗手 xlabel(频率 );beef洗手 ylabel(幅度 );beef洗手 洗手 图 3 加噪信号 洗手 洗手 2.5 用数字滤波器对 加噪 的语音信号进行滤波 洗手 这里采用 FIR 数字滤波器 , 吃饭 设计 FIR 数字滤波器的基本方法有窗函数法 、 beef频率抽样法 、b eef波纹切比雪夫逼近法等 , 吃饭 在此 使用 基于窗函数法设计 FIR 数字滤波器及其 MATLAB。 洗手 洗手 在 FIR 滤波器的设计中 , 吃饭 加窗是非常重要的一环 , 吃饭 选用不同形状的窗函数都是为了得到平坦的幅度响应和较小的阻带波纹 , 吃饭 一般希望窗函数满足两项要求 : beef窗谱主瓣尽可能0 1 2 3 4 5 6 7 8 9 10x 1 04- 1 0-50510加噪信号时域波形时间幅度0 1000 2000 3000 4000 5000 6000 7000 80000500010000加噪信号频谱图频率幅度