基于MATLAB的语音信号滤波处理
基于MATLAB的语音滤波实验设计
A e in fra dofl re p rme tb s d o d sg o u i i e x e i n a e n MAT AB t L
LEIXue tn —a g, XU o x Hu — i
( eto P yis ungn om l nvrt,H b i u nzo 30 0 h a D p.f hs ,H a gagN r a U i sy u e H aghu4 80 ,C i ) c ei n
维普资讯
! =! 堑
CNl l一2 3 / 04T
实
验
技
术
与
管
理
第2 4卷
第 4期
20 0 7年 4月
E p rme tlTe h o o y a d Ma a e n xe i n a c n l g n n g me t
Vo . 4 No 4 Ap .2 07 12 . r 0
基 于 MA L B的语 音 TA 滤 波 实验 设 计
雷学堂 ,徐 火希
( 冈师范学院 物 电系
要: 利用 MA L B的声音处理 函数作为数据接 口,并利 用多媒体播放 器作 为交互界面 ,设计 了一组 语 TA
音信号滤波实验 ,目的在于通过对比滤波前后 的语音效果来加深对数字信 号处理 的认识 。 关键词 :M T A A L B;数字信号处理 ;语音滤 波 中图分类号 : P9 T3 1 文献标识码 : B 文章 编号 :10 -9 6 2 0 )4 0 3 — 4 0 24 5 (0 7 0 — 0 8 0
理解数字信号处理中抽象数学运算的现实物理意义
很 有 帮助 。
1 语音信 号时域滤波实验的设计
由于 MA L B是 以 矩 阵 的 形 式 组 织 数 据 的 , TA 对 于单 声道 的语音 数据 在 MA L B中是一 维 数组 。 TA MA L B中有 2个 处 理 . a 式 语 音 的 函数 ,一 TA w y格 个 是将 . a 语 音 流 文件 转 换 为 数 组 格 式 数据 的 函 wy
如何利用Matlab进行语音降噪
如何利用Matlab进行语音降噪引言:随着科技的不断进步,语音处理技术得到了广泛应用。
在日常生活中,我们经常会遇到因环境噪音而影响语音质量的情况,比如通话中的噪音干扰、音频文件中的杂音等。
而语音降噪技术的出现,为我们解决这些问题提供了更加便捷和高效的方法。
本文将着重介绍如何利用Matlab进行语音降噪的方法和步骤。
一、了解语音降噪的原理在进行语音降噪之前,我们需要先了解语音降噪的原理。
语音降噪的核心目标是通过滤波等处理方法,尽可能减小或去除语音信号中的噪音成分,使得经过降噪处理后的语音信号更加纯净和清晰。
常用的语音降噪方法包括时域滤波法、频域滤波法等。
而在Matlab中,我们通常使用基于频域滤波的方法来实现语音降噪。
二、准备工作在使用Matlab进行语音降噪之前,首先需要准备好相关的工具和材料。
我们需要安装Matlab软件,并确保具备一定的编程能力和相关的信号处理知识。
此外,还需要一段包含噪音的语音信号作为我们的输入数据,方便我们进行处理和测试。
三、确定降噪算法在进行语音降噪之前,我们需要选择合适的降噪算法。
降噪算法的选择至关重要,直接影响到降噪效果的好坏。
常用的降噪算法有小波降噪、谱减法、模糊集合等。
在Matlab中,我们可以根据实际情况和特定需求选择适合的降噪算法。
四、准备输入数据在进行语音降噪之前,我们需要将相关的语音数据导入到Matlab中进行处理。
可以通过直接录制语音、导入.wav格式的音频文件等方式进行数据的准备。
在准备数据时,需要注意选择含有噪音的语音信号作为输入数据,以便进行后续的降噪处理。
五、实施降噪处理通过上述步骤的准备工作,我们可以开始进行语音降噪处理。
在Matlab中,我们可以根据选择的降噪算法,编写相应的代码进行处理。
具体实施过程中,可以结合Matlab提供的信号处理工具和函数,如fft、ifft、滤波器设计等进行降噪处理。
六、优化和调整在进行语音降噪处理之后,需要对结果进行优化和调整。
基于matlab的语音信号的基本处理
专题研讨四、信号与系统综合应用确定题目(根据个人兴趣、结合实际确定题目,可从下面参考题目中选择,也可自由确定):基于matlab的语音信号的基本处理参考题目:题目1:含噪信号滤波题目2:双音多频信号的产生与检测题目3:磁盘驱动系统仿真题目4:卡尔曼滤波器的应用题目5:应用反馈扩大放大器的带宽(以上只是本专题的部分题目)开题报告课题实施过程记录包括仿真程序、仿真结果、结果分析、方案完善等 ○1语音信号的制作及描述 1) 制作语音文件:用windows 录音机录制一小段语音文件"333.wav ”,内容为"信号与信息系统",由一同学播音. 2) 用matlab 播放”333.wav ”仿真程序:3) [y,Fs,bits]=wavread('333.wav'); sound(y,Fs);pause;4) 绘画出语音文件的时域和频域波形: 仿真程序:[y,Fs,bits]=wavread('333.wav'); plot(y);仿真结果:0123456789x 104-0.8-0.6-0.4-0.20.20.40.6结果分析:随着时间变化,声音能量图形 方案完善:1.时间轴有问题,与实际的时间不一样.2.语音信号的频域分析更清楚.仿真程序:[y,Fs,bits]=wavread('333.wav'); y=y(:,1);sLength=length(y); Y = fft(y,sLength);Pyy = Y.* conj(Y) / sLength; halflength=floor(sLength/2); f=Fs*(0:halflength)/sLength; figure;plot(f,Pyy(1:halflength+1));xlabel('Frequency(Hz)'); t=(0:sLength-1)/Fs; figure;plot(t,y);xlabel('Time(s)');仿真结果:0.51 1.52 2.5x 104Frequency(Hz)00.20.40.60.81 1.2 1.4 1.6 1.82-0.8-0.6-0.4-0.20.20.40.6Time(s)结果分析:频域分析是从另一个角度观察信号;语音信号的一般频域范围"200~2000"Hz ○2语音信号抽取及倍插仿真程序:[y,Fs,bits]=wavread('111.wav'); sound(y,Fs/2);pause;[y,Fs,bits]=wavread('111.wav'); sound(y,2*Fs);pause;仿真结果与分析:以Fs/2及2*Fs 播放的语音信号存在失真, 方案完善:需要做出波形,做更直观的观察. ○3语音信号的加噪1)语音信号加高频噪音及播放. 仿真程序:[y,Fs,bits]=wavread('333.wav'); y=y(:,1);sLength=length(y);t=(0:sLength-1)/Fs;f=50000;A=0.5;d=A*cos(2*pi*f*t)';y=y+d;sound(y,Fs);仿真结果:播放时伴有尖锐的”吱吱”声.结果分析:由于加入高频成分余弦信号,信号叠加后出现了尖锐的噪音.2)加噪后的语音信号的时域和频域波形.仿真程序:[y,Fs,bits]=wavread('333.wav');y=y(:,1);sLength=length(y);t=(0:sLength-1)/Fs;f=50000;A=0.05;d=A*cos(2*pi*f*t)';y1=y+d;sLength=length(y1);Y = fft(y1,sLength);Pyy = Y.* conj(Y) / sLength;halflength=floor(sLength/2);f=Fs*(0:halflength)/sLength;figure;plot(f,Pyy(1:halflength+1));xlabel('Frequency(Hz)');仿真结果:00.20.40.60.81 1.2 1.4 1.6 1.82-0.8-0.6-0.4-0.20.20.40.6Time(s)0.51 1.522.5x 10405101520253035404550Frequency(Hz)结果分析:时域波形跟加噪前没有什么明显的区别.在频域上我们发现有一个近6000Hz的高频成分,这是产生的噪音的根本所在.方案完善:运用subplot将加噪前和加噪后的时域和频域波形进行对比,效果会更好.○4数字滤波这一部分我们学习了函数BUTTER,进行了最简单的数字滤波.[b,a]=butter(N,wc);代表数字低通滤波器,wc代表归一化频率(0<wc<=1,等于一时为奈奎斯特频率);N为滤波器的阶数.y2=filter(b,a,y1);对信号y1进行巴特滤波,滤波器为[b,a]系统滤波后信号的效果播放.仿真程序:[y,Fs,bits]=wavread('333.wav');y=y(:,1);sLength=length(y);t=(0:sLength-1)/Fs;f=50000;A=0.05;d=A*cos(2*pi*f*t)';y1=y+d;N=2;wc=[0.01,0.07];[b,a]=butter(N,wc);y2=filter(b,a,y1);sound(y2,Fs);仿真结果:原先的噪声消失,语音信号变回原样.滤波器为低通滤波器,滤去高频成分.方案完善:1.画出滤波后的时域和频域波形2. 对滤波器进行系统分析1.画出滤波后的时域和频域波形仿真程序:[y,Fs,bits]=wavread('333.wav');y=y(:,1);sLength=length(y);t=(0:sLength-1)/Fs;f=50000;A=0.05;d=A*cos(2*pi*f*t)';y1=y+d;plot(t,y);xlabel('Time(s)');N=2;wc=[0.01,0.07];[b,a]=butter(N,wc);y2=filter(b,a,y1); sLength1=length(y2); Y1 = fft(y2,sLength1);Pyy = Y1.* conj(Y1) / sLength1; halflength1=floor(sLength1/2); f1=Fs*(0:halflength1)/sLength1; figure;plot(f,Pyy(1:halflength+1));xlabel('Frequency(Hz)'); t=(0:sLength-1)/Fs; figure;plot(t,y2);xlabel('Time(s)');仿真结果:00.51 1.52 2.5x 1040.511.522.53Frequency(Hz)00.20.40.60.81 1.2 1.4 1.6 1.82-0.8-0.6-0.4-0.20.20.40.6Time(s)结果分析:基本效果良好,有少许失真. 2. 对滤波器进行系统分析 仿真程序:w=linspace(0,6000,10000); wc=[0.01 0.07]; N=2;[b,a]=butter(N,wc); H=freqz(b,a,w); plot(w,abs(H)); axis([0 2500 0 1.5]);仿真结果:010002000300040005000600000.511.5○3RC 模拟滤波(物理形式熟悉) [y,Fs,bits]=wavread('333.wav');%¶Á³öÐźţ¬²ÉÑùÂʺͲÉÑùλÊý¡£y=y(:,1);sLength=length(y);t=(0:sLength-1)/Fs;f=50000;A=0.5;d=A*cos(2*pi*f*t)';y1=y+d;RC=0.001;b=1/RC;a=[1,1/RC];sys=tf(b,a);y2=lsim(sys,y1,t);sound(y2,Fs);结果:效果良好,声音恢复.RC 滤波器的波特图RC=0.001;w=linspace(0,2,1024);b=1/RC;a=[1,1/RC];g=tf(b,a);bode(g);xlabel('w');ylabel('H(jw)');-40-30-20-100M a g n i t u d e (d B)101102103104105H (j w ) (d e g )Bode Diagramw (rad/sec)总结报告摘要:利用所学的知识对实际语音信号进行时域,频域分析;体会信号的抽样定理,即信号的抽取和倍插;运用信号叠加对信号进新加噪(高频),并用数字滤波器butter 滤去高频成分去噪;课题原理框图:课题最终仿真程序:○1语音信号的制作及描述; [y,Fs,bits]=wavread('333.wav');sound(y,Fs);pause;[y,Fs,bits]=wavread('333.wav');y=y(:,1);sLength=length(y);Y = fft(y,sLength);Pyy = Y.* conj(Y) / sLength;halflength=floor(sLength/2);f=Fs*(0:halflength)/sLength;figure;plot(f,Pyy(1:halflength+1));xlabel('Frequency(Hz)');t=(0:sLength-1)/Fs;figure;plot(t,y);xlabel('Time(s)');○2语音信号抽取及倍插; [y,Fs,bits]=wavread('111.wav');sound(y,Fs/2);pause;[y,Fs,bits]=wavread('111.wav');sound(y,2*Fs);pause;○3语音信号的加噪;[y,Fs,bits]=wavread('333.wav');y=y(:,1);sLength=length(y);t=(0:sLength-1)/Fs;f=50000;A=0.05;d=A*cos(2*pi*f*t)';y1=y+d;N=2;wc=[0.01,0.07];[b,a]=butter(N,wc);y2=filter(b,a,y1);sound(y2,Fs);[y,Fs,bits]=wavread('333.wav');y=y(:,1);sLength=length(y);t=(0:sLength-1)/Fs;f=50000;A=0.05;d=A*cos(2*pi*f*t)';y1=y+d;sLength=length(y1);Y = fft(y1,sLength);Pyy = Y.* conj(Y) / sLength;halflength=floor(sLength/2);f=Fs*(0:halflength)/sLength;figure;plot(f,Pyy(1:halflength+1));xlabel('Frequency(Hz)');○4滤波器.[y,Fs,bits]=wavread('333.wav');y=y(:,1);sLength=length(y);t=(0:sLength-1)/Fs;f=50000;A=0.05;d=A*cos(2*pi*f*t)';y1=y+d;N=2;wc=[0.01,0.07];[b,a]=butter(N,wc);y2=filter(b,a,y1);sound(y2,Fs);[y,Fs,bits]=wavread('333.wav');y=y(:,1);sLength=length(y);t=(0:sLength-1)/Fs;f=50000;A=0.05;d=A*cos(2*pi*f*t)';y1=y+d;plot(t,y);xlabel('Time(s)');N=2;wc=[0.01,0.07];[b,a]=butter(N,wc);y2=filter(b,a,y1);sLength1=length(y2);Y1 = fft(y2,sLength1);Pyy = Y1.* conj(Y1) / sLength1;halflength1=floor(sLength1/2);f1=Fs*(0:halflength1)/sLength1;figure;plot(f,Pyy(1:halflength+1));xlabel('Frequency(Hz)');t=(0:sLength-1)/Fs;figure;plot(t,y2);xlabel('Time(s)');w=linspace(0,6000,10000);wc=[0.01 0.07];N=2;[b,a]=butter(N,wc);H=freqz(b,a,w);plot(w,abs(H));axis([0 2500 0 1.5]);[y,Fs,bits]=wavread('333.wav');%¶Á³öÐźţ¬²ÉÑùÂʺͲÉÑùλÊý¡£y=y(:,1);sLength=length(y);t=(0:sLength-1)/Fs;f=50000;A=0.5;d=A*cos(2*pi*f*t)';y1=y+d;RC=0.001;b=1/RC;a=[1,1/RC];sys=tf(b,a);y2=lsim(sys,y1,t);sound(y2,Fs);RC=0.001;w=linspace(0,2,1024);b=1/RC;a=[1,1/RC];g=tf(b,a);bode(g);xlabel('w');ylabel('H(jw)');课题成果:1)了解了语音信号matlab处理的基本过程及思路,重点复习了波形绘制,系统响应;2)体会到理论与实践的结合,语音信号的处理和实际生活接近,趣味性强.本课题还存在哪些问题?1)对matlab的一些函数比较模糊,比如信号的长度估计,butter滤波函数的运用2)对于信号的滤波只是在很理想的高频情形下,过于单一简单,对实际的噪声滤波还有很多需要完善的.研究性学习自我体会与评价通过研究性学习你在哪些方面有所收获?(如学习方法、合作精神、探索精神、创新意识等)。
MATLAB语音信号采集与处理
MATLAB课程设计报告课题:语音信号采集与处理目录一、实践目的 (3)二、实践原理: (3)三、课题要求: (3)四、MATLAB仿真 (4)1、频谱分析: (4)2、调制与解调: (5)3、信号变化: (8)快放: (8)慢放: (8)倒放: (8)回声: (8)男女变声: (9)4、信号加噪 (10)5、用窗函数法设计FIR滤波器 (11)FIR低通滤波器: (12)FIR高通滤波器: (13)FIR带通滤波: (14)一、实践目的本次课程设计的课题为《基于MATLAB的语音信号采集与处理》,学会运用MATLAB的信号处理功能,采集语音信号,并对语音信号进行滤波及变换处理,观察其时域和频域特性,加深对信号处理理论的理解,并为今后熟练使用MATLAB进行系统的分析仿真和设计奠定基础。
此次实习课程主要是为了进一步熟悉对matlab软件的使用,以及学会利用matlab对声音信号这种实际问题进行处理,将理论应用于实际,加深对它的理解。
二、实践原理:利用MATLAB对语音信号进行分析和处理,采集语音信号后,利用MATLAB软件平台进行频谱分析;并对所采集的语音信号加入干扰噪声,对加入噪声的信号进行频谱分析,设计合适的滤波器滤除噪声,恢复原信号。
语音信号的“短时谱”对于非平稳信号, 它是非周期的, 频谱随时间连续变化, 因此由傅里叶变换得到的频谱无法获知其在各个时刻的频谱特性。
如果利用加窗的方法从语音流中取出其中一个短断, 再进行傅里叶变换, 就可以得到该语音的短时谱。
三、课题要求:○1利用windows 自带的录音机或者其它录音软件,录制几段语音信号(要有几种不同的声音,要有男声、女声)。
○2对录制的语音信号进行频谱分析,确定该段语音的主要频率范围,由此频率范围判断该段语音信号的特点(低沉or 尖锐)。
○3利用采样定理,对该段语音信号进行采样,观察不同采样频率(过采样、欠采样、临界采样)对信号的影响。
基于Matlab的语音信号数字滤波
基 于语 音 的产 生 和语 音 感 知 的研 究 ; 二 是 将 语 音 信 号 作 为一 种 信 号 进 行 处 理 , 如利用数字滤波 、 快 速 傅 里 叶变换 等 方法 | 2 J 。笔 者 将利 用 Ma t l a b软件 , 设 计 数 字滤 波器 对语 音 信 号 做 降 噪处 理 , 达 到 提 高 语
内容 。 对语音 信 号处 理 的方 法 主 要 包 括 两 方 面 : 一 是
式中: ( ) , Y ( z ) 分 别 为输入 ( T t ) 和输 出 Y ( n ) 的z 在频 率域 内 , 输入 和输 出存 在下 列关 系
Y ( j 6 0 )=H( j ) X( j 6 0 ) ( 3 )
【 关键词 】M a t l a b ; 数字滤波器 ; 语音信号处理 ; 噪声 【 中图分类号 】T B 9 1 2 【 文献标 志码 】A
Di gi t a l Fi l t e r o f S pe e c h S i g na l Ba s e d o n M a t l ab
2 数 字滤 波 器 原 理 概 述及 设 计 方 法
2 . 1 数 字滤 波器 的 工作原 理
到各种噪声的干扰。例如 , 有线电话和无线通信中的 回波 噪声¨ J 、 工频 干 扰 和 一 些 随 机 噪声 。这些 噪声
严重影 响 了人们 的通话 质 量 。长期 在强 噪 声 的环境 下生活 和工作 , 还会 危害人 的身心健康 。
法设计 F I R 数 字 滤波 器 和 用 双 线性 变化 法 设 计 I I R 数 字 滤波 器 , 并对语音信号进行滤 波, 去 除 噪 声 。 通 过 分 析 滤 波 后 信 号 的频 谱 图 , 简 单 而 有效 地 阐述 了两种 数 字滤 波 器 在 信 号 处 理 中的 优 势 。
利用Matlab进行语音合成和音频增强处理
利用Matlab进行语音合成和音频增强处理引言人类语音是一种重要的交流工具,语音合成和音频增强处理是利用计算机技术来模拟和改善语音信号的质量和特征的方法。
在实际应用中,利用Matlab进行语音合成和音频增强处理可以帮助我们实现更好的语音识别、语音合成和音频处理效果。
本文将介绍如何利用Matlab进行语音合成和音频增强处理,并探讨其在实际应用中的潜在价值。
一、语音合成语音合成是指通过计算机技术将文本转化为与人类语音相似的声音信号。
利用Matlab可以通过多种方法进行语音合成,其中最常用的方法之一是基于合成过程的参数提取和重构。
在语音合成中,首先需要从文本中提取语音的特征参数,例如基频、共振峰频率等。
然后,根据这些参数和合成模型,可以通过数字信号处理技术将这些特征参数转化为声音信号。
最后,可以应用数字信号处理算法来改善合成声音的质量。
除了基于合成过程的方法,利用深度学习和神经网络等技术进行语音合成也是一种常见的方法。
这些方法可以通过训练模型来实现高质量的语音合成,但是需要大量的数据和计算资源。
二、音频增强处理音频增强处理是指通过算法和技术改善音频信号的质量和清晰度。
利用Matlab 可以进行多种音频增强处理,例如降噪、去混响、音频增益调整等。
降噪是一种常见的音频增强处理方法,它可以通过去除环境噪声和其他干扰声音来提升语音信号的清晰度。
利用Matlab可以应用数字滤波器和自适应滤波器等算法来实现降噪处理。
去混响是另一种常见的音频增强处理方法,它可以通过去除声音的反射和共振效应来改善音频信号的质量。
利用Matlab可以应用卷积混响模型和数字滤波器等算法来实现去混响处理。
除了降噪和去混响,音频增益调整也是一种常见的音频增强处理方法。
它可以通过调整音频信号的增益来改变音频信号的音量和动态范围。
三、实例应用利用Matlab进行语音合成和音频增强处理在实际应用中具有广泛的潜在价值。
下面举例说明几个应用场景:1. 语音合成应用于自动语音电话系统。
(完整版)基于MATLAB的FIR滤波器语音信号去噪
*****************实践教学******************兰州理工大学计算机与通信学院2013年春季学期《信号处理》课程设计题目:基于MATLAB的FIR滤波器语音信号去噪专业班级:姓名:学号:指导教师:成绩:摘要本次课程设计是基于MATLAB的FIR滤波器语音信号去噪,在设计过程中,首先录制一段不少于10秒的语音信号,并对录制的信号进行采样;其次使用MATLAB会出采样后的语音信号的时域波形和频谱图;然后在给原始的语音信号叠加上噪声,并绘出叠加噪前后的时域图及频谱图;再次设计FIR滤波器,针对语音信号的性质选取一种适合的窗函数设计滤波器进行滤波;最后对仿真结果进行分析。
设计出的滤波器可以满足要求。
关键词: FIR滤波器;语音信号;MATLAB仿真目录一 FIR滤波器设计的基本原理 (1)1.1滤波器的相关介绍 (1)1.1.1数字滤波器的概念 (1)1.1.2 IIR和FIR滤波器 (1)1.2利用窗函数法设计FIR滤波器 (1)1.2.1窗函数法设计FIR滤波器的基本思想 (1)1.2.2窗函数法设计FIR滤波器的步骤 (2)1.2.2窗函数法设计FIR滤波器的要求 (2)1.2.3常用窗函数的性质和特点 (3)1.2.4 语音处理中的采样原理 (3)二语音信号去噪实现框图 (5)三详细设计 (7)3.1 信号的采集 (7)3.2 语音信号的读入与打开 (7)3.3 语音信号的FFT变换 (8)3.4含噪信号的合成 (9)3.5 FIR滤波器的设计 (10)3.6 利用FIR滤波器滤波 (11)3.7 结果分析 (14)总结 (15)参考文献 (16)附录 (17)致谢 (21)一 FIR滤波器设计的基本原理1.1滤波器的相关介绍1.1.1数字滤波器的概念数字滤波器(Digital Filter,简称为DF)是指用来对输入信号进行滤波的硬件和软件。
所谓数字滤波器,是指输入、输出均为数字信号,通过一定运算关系改变输入信号所含频率成分的相对比例或者滤除某些频率成分的器件。
matlab对语音信号的处理及分析
Matlab对语音信号的处理及分析摘要:Matlab语言是一种数据分析和处理功能十分强大的计算机应用软件,它可以将声音文件变换为离散的数据文件,然后利用其强大的矩阵运算能力处理数据,如数字滤波,时域和频谱分析等,他的信号处理与分析工具箱为语音信号的处理和分析提供了十分丰富的功能函数,利用这些函数可以快捷而又方便地完成语音信号的处理和分析。
关键词:Matlab、语音信号、数字滤波、信号处理Matlab for speech signal processing and analysisZhu hao(College of Physics and Electronic Engineering Information Wenzhou university)Abstract:Matlab language is a data analysis and processing functions are very powerful computer application software, sound files which can be transformed into discrete data files, then use its powerful ability to process the data matrix operations, such as digital filtering,when domain and frequency domain analysis and so on. Its signal processing and analysis toolkit for voice signal analysis provides a very rich feature function, use of these functions can be quick and convenient features complete voice signal processing and analysis.Keywords: Matlab,Voice Signal,Digital filtering,The signal processing正文:1.引言随着社会文化的进步和科学技术的发展,人类开始进入了信息化时代,用现代手段研究语音处理技术,使人们能更加有效地产生、传输、存储、和获取语音信息,这对于促进社会的发展具有十分重要的意义,因此,语音信号处理正越来越受到人们的关注和广泛的研究。
数字信号处理课程设计--基于 MATLAB 的语音去噪处理
数字信号处理课程设计课程名称数字信号处理基于MATLAB 的语音去噪处理题目名称专业班级13级通信工程本一学生姓名学号指导教师二○一五年十二月二十七日引言滤波器设计在数字信号处理中占有极其重要的地位,FIR数字滤波器和IIR滤波器是滤波器设计的重要组成部分。
利用MATLAB信号处理工具箱可以快速有效地设计各种数字滤波器。
课题基于MATLAB有噪音语音信号处理的设计与实现,综合运用数字信号处理的理论知识对加噪声语音信号进行时域、频域分析和滤波。
通过理论推导得出相应结论,再利用MATLAB 作为编程工具进行计算机实现。
在设计实现的过程中,使用窗函数法来设计FIR数字滤波器,用巴特沃斯、切比雪夫和双线性变法设计IIR数字滤波器,并利用MATLAB 作为辅助工具完成设计中的计算与图形的绘制。
通过对对所设计滤波器的仿真和频率特性分析,可知利用MATLAB信号处理工具箱可以有效快捷地设计FIR和IIR数字滤波器,过程简单方便,结果的各项性能指标均达到指定要求。
关键词数字滤波器 MATLAB 窗函数法巴特沃斯切比雪夫双线性变换目录1 绪论 (4)2 课程设计内容 (5)3 课程设计的具体实现 (5)3.1 语音信号的采集 (4)3.2 语音信号的时频分析 (4)3.3 语音信号加噪与频谱分析 (6)3.4 利用双线性变换法设计低通滤波器 (8)3.5 用滤波器对加噪语音信号进行滤波 (9)3.6 分析滤波前后语音信号波形及频谱的变化 (10)3.7回放语音信号 (10)3.8小结 (11)结论 ···········································································错误!未定义书签。
(完整word版)基于matlab的语音信号分析与处理
基于matlab的语音信号分析与处理摘要:滤波器设计在数字信号处理中占有极其重要的地位,FIR数字滤波器和IIR 滤波器是滤波器设计的重要组成部分。
Matlab功能强大、编程效率高, 特别是Matlab具有信号分析工具箱,不需具备很强的编程能力,就可以很方便地进行信号分析、处理和设计。
基于MATLAB有噪音语音信号处理的设计与实现,综合运用数字信号处理的理论知识对加噪声语音信号进行时域、频域分析和滤波。
使用窗函数法来设计FIR数字滤波器,用巴特沃斯、切比雪夫和双线性变法设计IIR 数字滤波器,并利用MATLAB作为辅助工具完成设计中的计算与图形的绘制。
关键词:数字滤波器;MATLAB;切比雪夫Abstract:Filter design in digital signal processing plays an extremely important role, FIR digital filters and IIR filter is an important part of filter design. Matlab is powerful, programming efficiency, Matlab also has a particular signal analysis toolbox, it need not have strong programming skills can be easily signal analysis, processing and design. MATLAB based on the noise issue speech signal processing design and implementation of digital signal processing integrated use of the theoretical knowledge of the speech signal plus noise, time domain, frequency domain analysis and filtering. The corresponding results obtained through theoretical derivation, and then use MATLAB as a programming tool for computer implementation.Implemented in the design process, using the windowfunction method to design FIR digital filters with Butterworth, Chebyshev and bilinear Reform IIR digital filter design and use of MATLAB as a supplementary tool to complete the calculation and graphic design Drawing.Keywords:digital filter; MATLAB; Chebyshev语音信号处理是研究用数字信号处理技术和语音学知识对语音信号进行处理的新兴的学科,是目前发展最为迅速的信息科学研究领域的核心技术之一。
基于MATLAB语音信号检测分析及处理
第一章绪论Matlab是矩阵实验室(Matrix Laboratory)的简称,是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括Matlab和Simulink两大部分。
1.1 Matlab简介MATLAB是英文MATrix LABoratory(矩阵实验室)的缩写。
早期的MATLAB 是用FORTRAN语言编写的,尽管功能十分简单,但作为免费软件,还是吸引了大批使用者。
经过几年的校际流传,在John Little。
Cleve Moler和Steve Banger 合作,于1984年成立MathWorks公司,并正式推出MATLAB第一版版。
从这时起,MATLAB的核心采用C语言编写,功能越来越强大,除原有的数值计算功能外,还新增了图形处理功能。
MathWorks公司于1992年推出了具有划时代意义的4.0版;1994年推出了4.2版扩充了4.0版的功能,尤其在图形界面设计方面提供了新方法;1997年春5.0版问世,5.0版支持了更多的数据结构,使其成为一种更方便、更完善的编程语言;1999年初推出的MATLAB5.3版在很多方面又进一步改进了MATLAB语言的功能,随之推出的全新版本的最优化工具箱和Simulink3.0达到了很高水平;2000年10月,MATLAB6.0版问世,在操作页面上有了很大改观,为用户的使用提供了很大方便,在计算机性能方面,速度变的更快,性能也更好,在图形界面设计上更趋合理,与C语言接口及转换的兼容性更强,与之配套的Simulink4.0版的新功能也特别引人注目;2001年6月推出的MATLAB6.1版及Simulink4.1版,功能已经十分强大;2002年6月推出的MATLAB6.5版及Simulink5.0版,在计算方法、图形功能、用户界面设计、编程手段和工具等方面都有了重大改进;2004年,MathWorks公司推出了最新的MA TLAB7.0版,其中集成了最新的MATLAB7编译器、Simumlink6.0仿真软件以及很多工具箱。
掌握Matlab语音信号处理的基本原理
掌握Matlab语音信号处理的基本原理Matlab是一种流行的程序设计语言和工具,广泛应用于信号处理领域。
在音频处理中,Matlab可以帮助我们实现各种音频效果、音频分析和音频信号处理算法。
本文将介绍Matlab语音信号处理的基本原理和应用。
一、语音信号的数学表示语音信号是一种连续时间的信号,可以通过采样将其离散化。
在Matlab中,我们可以使用采样率(Sampling rate)来表示每秒采样的样本数。
通常情况下,语音信号的采样率为8000Hz、16000Hz或者更高。
我们可以使用Matlab的`audioread()`函数将音频文件读取为一个向量,并使用`sound(y, Fs)`函数将其播放。
二、语音信号的时域分析时域分析是一种描述信号在时间上变化的方法。
对于语音信号,我们可以使用Matlab的`plot`函数将其在时间轴上绘制出来。
通过查看语音信号的时域波形,我们可以观察到语音信号的持续时间、音调、强度等特征。
三、语音信号的频域分析频域分析是一种描述信号在频率上变化的方法。
对于语音信号,我们可以使用傅里叶变换将其从时域表示转换为频域表示。
在Matlab中,我们可以使用`fft`函数来计算信号的傅里叶变换,并使用`plot`函数将其绘制成频谱图。
频谱图可以帮助我们观察语音信号的共振峰、频率成分等特征。
四、语音信号的滤波处理滤波是一种常用的信号处理方法,可以用来增强或者改变信号的特征。
在语音信号处理中,滤波可以用于去除噪声、增强谐波等。
在Matlab中,我们可以使用`filter`函数来设计和应用各种数字滤波器。
滤波器的设计可以通过指定滤波器的系数或者用滤波器设计函数来自动完成。
五、语音信号的特征提取语音信号的特征提取是一种将语音信号转换为一组数学特征的方法。
这些特征可以用于语音识别、语音合成等应用。
在Matlab中,我们可以使用各种特征提取函数来计算音频信号的特征,如基频、共振峰频率等。
这些特征提取函数通常基于统计分析、傅里叶变换等算法进行计算。
基于MATLAB的语音信号去噪(完整版)
基于MATLAB的语音信号去噪基于MATLAB的语音信号去噪h(n)= hd(n)(n)( 1-2 )(4)验算技术指标是否满足要求。
1]1.2.2窗函数法设计FIR滤波器的要求在使用窗函数法设计FIR滤波器时要满足以下两个条件:(1)窗谱主瓣尽可能地窄,以获得较陡的过渡带;(2)尽量减少窗谱的最大旁瓣的相对幅度,也就是使能量尽量集中于主瓣,减小峰肩和纹波,进而增加阻带的衰减。
在实际工程中常用的窗函数有五种,即矩形窗(Retangular)、三角窗(Triangular)、汉宁窗(Hanning)、汉明窗(Haing)及凯塞窗(Kaiser)。
.2.3常用窗函数的性质和特点(1)矩形窗矩形窗属于时间变量的零次幂窗。
矩形窗使用最多,习惯上不加窗就是使信号通过了矩形窗。
这种窗的优点是主瓣比较集中,缺点是旁瓣较高,并有负旁瓣,导致变换中带进了高频干扰和泄露漏,甚至出现负谱现象。
(2)三角形窗三角形窗又称费杰窗,是幂窗的一次文形式。
与矩形窗比较,主瓣宽约等于矩形窗的两倍,但旁瓣小,而且无负旁瓣。
(3)汉宁窗汉宁窗又称升余弦窗,汉宁窗可以看作是3个矩形时间窗的频谱之和。
汉宁窗优于矩形窗,但汉宁窗主瓣加宽,相当于分析带宽加宽,频率分辨力下降。
(4)哈明窗哈明窗与汉宁窗都是余弦窗,只是加权系数不同,哈明窗加权的系数能使旁瓣达到更小,所以哈明窗又称为改进的升余弦窗。
它的能量更加集中在主瓣中主瓣的能量约占99.96%第一主瓣的峰值比主瓣小dB,但主瓣宽度和汉宁窗相同仍为8*π/N,哈明窗与汉宁窗都是很有用的窗函数。
(5)凯塞窗以上几种窗函数是各以一定主瓣加宽为代价,来换取某种程度的旁瓣抑制,窗函数的主瓣宽度和旁瓣峰值衰耗是矛盾的,一项指标的提高总是以另一项指标的下降为代价,窗口选择实际上是对两项指标作权衡。
而两项指标是跳变的,于是有人提出可调整窗,适当修改参数,可在这两项指标间作连续的选择。
常用的可调整窗是凯塞(Kaiser)窗。
基于MATLAB的音频信号处理与语音识别系统设计
基于MATLAB的音频信号处理与语音识别系统设计一、引言音频信号处理与语音识别是数字信号处理领域的重要研究方向,随着人工智能技术的不断发展,语音识别系统在日常生活中得到了广泛应用。
本文将介绍如何利用MATLAB软件进行音频信号处理与语音识别系统的设计,包括信号预处理、特征提取、模式识别等关键步骤。
二、音频信号处理在进行语音识别之前,首先需要对音频信号进行处理。
MATLAB提供了丰富的信号处理工具,可以对音频信号进行滤波、降噪、增益等操作,以提高后续语音识别的准确性和稳定性。
三、特征提取特征提取是语音识别中至关重要的一步,它能够从复杂的音频信号中提取出最具代表性的信息。
常用的特征包括梅尔频率倒谱系数(MFCC)、线性预测编码(LPC)等。
MATLAB提供了丰富的工具箱,可以方便地实现这些特征提取算法。
四、模式识别模式识别是语音识别系统的核心部分,它通过对提取出的特征进行分类和识别,从而实现对不同语音信号的区分。
在MATLAB中,可以利用支持向量机(SVM)、人工神经网络(ANN)等算法来构建模式识别模型,并对语音信号进行分类。
五、系统集成将音频信号处理、特征提取和模式识别整合到一个系统中是设计语音识别系统的关键。
MATLAB提供了强大的工具和函数,可以帮助我们将各个部分有机地结合起来,构建一个完整的语音识别系统。
六、实验与结果分析通过实际案例和数据集,我们可以验证所设计的基于MATLAB的音频信号处理与语音识别系统的性能和准确性。
通过对实验结果的分析,可以进一步优化系统设计,并提高语音识别系统的性能。
七、结论基于MATLAB的音频信号处理与语音识别系统设计是一个复杂而又具有挑战性的任务,但是借助MATLAB强大的功能和工具,我们可以更加高效地完成这一任务。
未来随着人工智能技术的不断发展,基于MATLAB的语音识别系统将会得到更广泛的应用和进一步的优化。
通过本文对基于MATLAB的音频信号处理与语音识别系统设计进行介绍和讨论,相信读者对该领域会有更深入的了解,并能够在实际应用中灵活运用所学知识。
基于MATLAB语音信号处理(语音信号处理的综合仿真)
---------------------------------------------------------------范文最新推荐------------------------------------------------------ 基于MATLAB语音信号处理(语音信号处理的综合仿真)摘要:针对目前在嘈杂的环境中手机接听电话时人声不清楚的缺点,本文介绍了一个基于MATLAB的算法来对语音信号进行处理。
该算法通过计算机录音系统来实现对语音信号的采集,并且利用MATLAB的计算和信号处理能力进行频谱分析和设计滤波器,最终通过仿真得到滤波前后的波形,从而达到保留语音信号中的大部分人声并且滤除掉嘈杂噪声的目的。
仿真实验表明,采用低通滤波器保留人声的效果显著,失真较少。
本算法具有操作简单,运行速度快等优点。
关键词:语音信号;MATLAB;滤波;低通;噪声Speech Signal Processing Based on MATLAB1 / 17Abstract: At present, in view of the shortcomings of that the voice is not clear when people answering the phone in a noisy environment, this paper introduces a algorithm for speech signal processing based on MATLAB. The algorithm realizes the acquisition of the speech signal through a computer recording system. And the software can realize the capabilities of frequency spectrum analysis and filter design by the use of calculation and signal processing capabilities of MATLAB. Finally it can get the waveform before and after filtering through the simulation. So that we can retain most of the voices in the speech signal and at the same time remove noisy noise through filter. Simulation results show that the low pass filter has a remarkable effect of keeping voices and the distortion is little. This algorithm has the advantages of simple to operate and fast.Key Words: Speech signal; MATLAB; Filtering; Low pass; Noise目录---------------------------------------------------------------范文最新推荐------------------------------------------------------ 摘要1引言11.研究意义及研究现状21.1研究意义21.2研究现状22. 语音信号处理的总体方案2.1 研究的主要内容本课题主要介绍的是的语音信号的简单处理,目的就是为以后在手机上的移植打下理论基础。
基于MATLAB的语音处理
基于MATLAB的语音滤波实验实验目的:1.在Matlab环境下对语音的频谱进行处理(数字滤波)并试听效果;2.在Matlab环境下对语音的抽样率进行处理(语音压缩)并试听效果实验步骤:一、音频文件的压缩(抽取)。
1.利用windows附件中的录音机功能录制8~10秒的.wav语音文件,并以lei为文件名保存到Matlab/work的文件夹中。
a.打开开始/程序/附件/娱乐/录音机;b.用windows media player播放一首音乐并用MIC对着耳机录音或自已说话录音(按键),到10秒时停止(按键);c.将录制的文件加存为C:/Matlab/work中,文件名为leii.wav;2.打开Matlab并新建一.m文件;3.在.m文件中用y=wavread(‘lei.wav’)命令读入语音文件。
4.语音压缩:在m命令窗中输入如下命令:5.运行sample2.m之后会在work文件夹中生成一个名为lei2的.wav文件,如下图:6.双击lei2音频文件,用耳机试听效果,并跟lei1的效果比较。
7.在sample2.m文件中改变抽取倍率s (必须为正整数),重复4、5、6步,观察在不同抽取倍率s下的音频质量,(注意:在运行sample2.m之前必须将work中名为lei2的.wav音频文件删除,或在.m文件中wavwrite()中的保存文件名改为其它的名字。
)二、音频信号的时域滤波(音频数据的时域卷积)。
(一)、低通滤波1.打开Matlab并新建一.m文件,在.m文件中用y=wavread(‘lei.wav’)命令读入语音文件。
2.在m命令窗中输入如下命令,并加存为sample3.m,运行该m文件。
3.双击lei3音频文件,用耳机试听效果,并跟lei1的效果比较。
4.再加一级h(n)的低通滤波,重复2、3步,如下图:(注意:在运行lei2.m之前必须将work中名为lei3的.wav音频文件删除,或在.m文件中wavwrite()中的保存文件名改为其它的名字。
基于MATLAB的IIR滤波器的设计
基于MATLAB的IIR滤波器的设计IIR (Infinite Impulse Response) 滤波器是一种数字滤波器,由其无限长的冲激响应函数所定义。
MATLAB中提供了强大而灵活的工具来设计和实现IIR滤波器。
在本文中,我们将探讨基于MATLAB的IIR滤波器设计的原理、步骤以及一些常见的应用实例。
IIR滤波器设计的原理:IIR滤波器设计的基本原理是将滤波器的传递函数表示为分子多项式和分母多项式的比值。
分母多项式是滤波器的极点,分子多项式是滤波器的零点。
通过选择合适的极点和零点,可以实现不同的滤波特性,如低通滤波、高通滤波、带通滤波等。
MATLAB中的IIR滤波器设计步骤:1.确定所需滤波器的规格:确定滤波器的类型(低通、高通、带通等),截止频率,衰减等级等。
2. 设计滤波器的理想传递函数:根据滤波器的规格,使用MATLAB中的相应函数(例如,butter、cheby1、cheby2等)设计滤波器的理想传递函数。
3. 转换理想传递函数为一阶和二阶部分:使用MATLAB中的函数(例如,tf2sos、zpk2sos等)将理想传递函数转换为一阶和二阶部分。
4.选择滤波器的实现方式:根据设计要求,选择IIR滤波器的直接形式、传输形式或级联形式等实现方式。
5. 将设计好的IIR滤波器进行实现:使用MATLAB中的函数(例如,filter、dfilt)来实现设计好的IIR滤波器。
IIR滤波器设计的应用实例:1.语音信号处理:IIR滤波器在语音信号处理中广泛应用,可以提取语音信号中的特定频率成分,如去除噪声、语音增强等。
2.图像处理:IIR滤波器可用于图像处理中的边缘检测、平滑处理、锐化处理等。
3.生物医学信号处理:IIR滤波器在生物医学信号处理中常用于心电图(ECG)滤波、脑电图(EEG)滤波等。
4.控制系统:IIR滤波器可以用于控制系统中的数模转换、滤波、模拟信号转数字信号等。
总结:MATLAB提供了强大而灵活的工具来设计和实现IIR滤波器。
matlab中fk滤波
matlab中fk滤波Matlab中的FK滤波是一种常见的信号处理方法,用于去除信号中的频率噪声。
FK滤波是一种基于频率谱的滤波方法,它利用信号的频谱特性来实现滤波操作。
在本文中,我将一步一步地回答关于FK滤波的主题,并详细介绍其原理、实现和应用。
FK滤波的原理:FK滤波的原理基于信号的频率谱特性。
它使用快速傅里叶变换(FFT)将时域信号转换为频域信号,并利用频谱特性对信号进行滤波。
具体来说,FK滤波根据信号频谱的不同区域进行滤波操作,通常将频谱中较低能量的成分滤除,以去除噪声。
FK滤波的实现步骤:1. 读取并预处理信号:首先,我们需要读取需要进行FK滤波的信号,并对其进行预处理。
预处理可以包括去除直流分量、归一化信号等操作。
2. 进行傅里叶变换:接下来,我们使用Matlab提供的fft函数对信号进行傅里叶变换,将其由时域转换为频域表示。
FFT返回的结果是一个复数数组,表示信号在频域中的频率和幅度信息。
3. 计算频谱能量:通过对频域信号的模平方计算,我们可以得到每个频率分量的能量大小。
这可以通过将频域信号的实部和虚部分别平方,并相加得到。
4. 滤波:根据信号的频谱能量大小,我们可以设定一个阈值来滤除能量较低的频率分量。
通常,我们将能量大小低于阈值的分量认为是噪声,并将其滤除。
5. 逆傅里叶变换:经过滤波操作后,我们需要将频域信号转换回时域表示。
这可以通过使用Matlab提供的ifft函数进行逆傅里叶变换来实现。
FK滤波的应用:FK滤波在许多领域中得到广泛应用,特别是在信号处理和图像处理领域。
以下是一些FK滤波的应用示例:1. 语音信号处理:FK滤波可以用于去除语音信号中的噪声,提高语音信号的质量和清晰度。
2. 图像去噪:FK滤波可以应用于图像去噪,特别是在频域中去除图像中的高频噪声。
3. 通信系统:FK滤波可用于提取和解码传输信号中的信息,并去除噪声和干扰。
4. 生物信号处理:FK滤波可用于处理生物信号,如心电图(ECG)信号和脑电图(EEG)信号,以提取有意义的信息并去除噪音。
用MATLAB实现语音信号降噪滤波
目录一、设计目的。
二、设计要求。
三、详细设计过程。
四、调试分析。
五、结果分析与体会。
六、附录或参考资料。
一、设计目的在Matlab 软件平台上,对录制的语音信号采样,综合运用数字信号处理的理论知识分析时域波形和频谱图。
根据降噪要求用双线性变化法设计低通数字滤波器,并运用所设计的滤波器对采集的信号进行滤波, 绘制滤波后信号的时域波形和频谱。
二、设计要求利用MATLAB中的函数wavread对语音信号采集,sound 函数播放语音,并且声音采用的是单声道。
采样频率Fs=22050Hz,Bits表示量化阶数,y为采样数据。
利用快速傅里叶变换对语音数据进行傅里叶变换,分析语音信号频谱。
人的语音信号频率一般集中在200 k Hz到4.5 k Hz之间,从声音频谱的包络来看, 分析频谱图可清楚地看到加噪前的样本声音的主要以低频为主,样本声音的能量集中在低频部分。
样本声音的能量集中在0.1pi(即1102.5Hz)以内, 0.4pi以外的高频部分很少。
所以信号宽度近似取为1.1k Hz, 由采样定理可得FS>2F0=2*1102.5=2205Hz,相对的小高频部分应该属于背景噪声。
是人为的在这段语音中加入的高频噪声,加噪后语音信号的频谱中在高频部分的能量有所增加。
下面将利用低通滤波器处理这段加噪语音,以达到去除高频噪声的目的。
IIR 滤波器设计是以模拟滤波器为基础进行的,椭圆滤波器的通带和阻带都有切比雪夫波纹,是等波纹的逼近方式,过渡带非常陡峭,在滤波器阶数N 给定的情况下,同样的性能指标要求的阶数是最小的,这使得在众多的模拟滤波器中椭圆滤波器设计是最优化的,性能是最好的,同时为了防止频率混叠,普遍采用双线性变换法, 实现模拟滤波器到数字滤波器的转换。
依据这样的设计思路,设定滤波器的参数。
三、详细设计过程(1)语音信号采集语音信号采集该实验以研究者本人的声音为分析样本。
1.准备音频线、麦克风,连接好电脑2.开启Windows中的录音机。
MatLab对语音信号进行频谱分析及滤波
数字信号处理综合实验报告综合实验名称:应用Matlab对语音信号进行频谱分析及滤波系:学生姓名:班级:通信学号:11成绩:指导教师:开课时间:2011-2012学年上学期一.综合实验题目应用MatLab对语音信号进行频谱分析及滤波二.主要内容录制一段个人自己的语音信号,并对录制的信号进行采样;画出采样后语音信号的时域波形和频谱图;给定滤波器的性能指标,采用窗函数法和双线性变换设计滤波器,并画出滤波器的频率响应;然后用自己设计的滤波器对采集的信号进行滤波,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化;回放语音信号;课程设计应完成的工作:1、语音信号的采集;2、语音信号的频谱分析;3、数字滤波器的设计;4、对语音信号进行滤波处理;5、对滤波前后的语音信号频谱进行对比分析;三.具体要求1、学生能够根据设计内容积极主动查找相关资料;2、滤波器的性能指标可以根据实际情况作调整;3、对设计结果进行独立思考和分析;4、设计完成后,要提交相关的文档;1)课程设计报告书(纸质和电子版各一份,具体格式参照学校课程设计管理规定),报告内容要涵盖设计题目、设计任务、详细的设计过程、原理说明、、频谱图的分析、调试总结、心得体会、参考文献(在报告中参考文献要做标注,不少于5篇)。
2)可运行的源程序代码(电子版)在基本要求的基础上,学生可以根据个人对该课程设计的理解,添加一些新的内容;四.进度安排五.成绩评定(1)平时成绩:无故旷课一次,平时成绩减半;无故旷课两次平时成绩为0分,无故旷课三次总成绩为0分。
迟到15分钟按旷课处理(2)设计成绩:按照实际的设计过程及最终的实现结果给出相应的成绩。
(3)设计报告成绩:按照提交报告的质量给出相应的成绩。
课程设计成绩=平时成绩(30%)+设计成绩(30%)+设计报告成绩(40%)应用MatLab对语音信号进行频谱分析及滤波第一章实验任务录制一段个人自己的语音信号,并对录制的信号进行采样;画出采样后语音信号的时域波形和频谱图;给定滤波器的性能指标,采用窗函数法和双线性变换设计滤波器,并画出滤波器的频率响应;然后用自己设计的滤波器对采集的信号进行滤波,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化;回放语音信号。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于MATLAB的语音信号滤波处理题目:基于MATLAB的语音信号滤波处理课程:数字信号处理学院:电气工程学院班级:学生:指导教师:二O一三年十二月目录CONTENTS摘要一、引言二、正文1.设计要求2.设计步骤3.设计内容4.简易GUI设计三、结论四、收获与心得五、附录一、引言随着Matlab仿真技术的推广,我们可以在计算机上对声音信号进行处理,甚至是模拟。
通过计算机作图,采样,我们可以更加直观的了解语音信号的性质,通过matlab编程,调用相关的函数,我们可以非常方便的对信号进行运算和处理。
二、正文2.1 设计要求在有噪音的环境中录制语音,并设计滤波器去除噪声。
2.2 设计步骤1.分析原始信号,画出原始信号频谱图及时频图,确定滤波器类型及相关指标;2.按照类型及指标要求设计出滤波器,画出滤波器幅度和相位响应,分析该滤波器是否符合要求;3.用所设计的滤波器对原始信号进行滤波处理,画出滤波后信号的频谱图及时频图;4.对滤波前的信号进行分析比对,评估所设计滤波器性能。
2.3 设计内容1.原始信号分析分析信号的谱图可知,噪音在1650HZ和3300HZ附近的能量较高,而人声的能量基本位于1000HZ以下。
因此,可以设计低通滤波器对信号进行去噪处理。
2.IIR滤波器设计用双线性变换法分别设计了巴特沃斯低通滤波器和椭圆低通滤波器和带阻滤波器:①巴特沃斯滤波器fp=800;fs=1300;rs=35;rp=0.5;程序代码如下:fp=800;fs=1300;rs=35;rp=0.5;Fs=44100;wp=2*Fs*tan(2*pi*fp/(2*Fs));ws=2*Fs*tan(2*pi*fs/(2*Fs));[n,wn]=buttord(wp,ws,rp,rs,'s');[b,a]=butter(n,wn,'s');[num,den]=bilinear(b,a,Fs);[h,w]=freqz(num,den,512,Fs);②椭圆低通滤波器fp=1300;fs=1600;rs=60;rp=0.5; 程序代码如下:fp=1300;fs=1600;rs=60;rp=0.5;Fs=44100;wp=2*Fs*tan(2*pi*fp/(2*Fs));ws=2*Fs*tan(2*pi*fs/(2*Fs)); [n,wn]=ellipord(wp,ws,rp,rs,'s');[b,a]=ellip(n,rp,rs,wn,'s');[num,den]=bilinear(b,a,Fs);[h,w]=freqz(num,den,512,Fs);③带阻滤波器fp1=800;fp2=2300;fs1=1300;fs2=1800;rs=30;rp=0.6 fp3=2800;fp4=4000;fs3=3200;fs4=3700;rs=30;rp=0.6 程序代码如下:fp1=800;fp2=2300;fs1=1300;fs2=1800;rs=30;rp=0.6;Fs=44100; fp=[fp1,fp2];fs=[fs1,fs2];wp=2*Fs*tan(2*pi*fp/(2*Fs));ws=2*Fs*tan(2*pi*fs/(2*Fs));[n,wn]=buttord(wp,ws,rp,rs,'s');[b,a]=butter(n,wn,'stop','s');[num,den]=bilinear(b,a,Fs);[h,w]=freqz(num,den,512,Fs);fp3=2800;fp4=4000;fs3=3200;fs4=3700;rs=30;rp=0.6;Fs=44100; fp1=[fp3,fp4];fs1=[fs3,fs4];wp1=2*Fs*tan(2*pi*fp1/(2*Fs));ws1=2*Fs*tan(2*pi*fs1/(2*Fs));[n1,wn1]=buttord(wp1,ws1,rp,rs,'s');[b1,a1]=butter(n1,wn1,'stop','s');[num1,den1]=bilinear(b1,a1,Fs);[h1,w1]=freqz(num1,den1,512,Fs);3.FIR滤波器①加hamming窗n=100;fp=1000;Fs=44100;b=fir1(n,fp/(Fs/2),Hamming(n+1)); [h,w]=freqz(b,1,512,Fs);②加hanning窗n=;fp=1000;Fs=44100;b=fir1(n,fp/(Fs/2),Hanning(n+1)); [h,w]=freqz(b,1,512,Fs);③加blackman窗n=100;fp=1000;Fs=44100;b=fir1(n,fp/(Fs/2),blackman(n+1));[h,w]=freqz(b,1,512,Fs);4.滤波前后比对①巴特沃斯低通滤波器滤波后②椭圆低通滤波器滤波后③带阻滤波器④加hamming窗⑤加hanning窗⑥加blackman窗2.4简易GUI界面设计为了便于操作和演示,设计了如下的简易GUI界面。
三、结论由以上谱图分析可知,经过滤波器滤波后,信号中的高频杂音明显被抑制,而人声成分大部分被保留,起到了预期的滤波作用。
对比所设计的两种滤波器,椭圆滤波器在过渡带相对较窄的情况下,能满足相对较高阻带衰减。
四、收获与心得本次设计大概进行了一周的时间,语音信号处理的是目前比较流行且十分有趣的,在编程实现的过程中还是遇到了很多困难。
在前期的准备工作中,查阅了大量资料,以完善我们的理论知识。
我们为了完成本次设计,我们通过查阅相关书籍以及matlab中的帮助,选用不同的matlab函数,尝试不同的参数。
经过接近一个礼拜的反复调试,最终基本的实现了设计任务。
虽然遇到了很多困难,但是我们在设计过程中都有收获很大。
本次设计将信号与系统课上学习的知识用于实践,让我们对对语音信号处理更深入的了解,也让我们加深了对滤波器相关内容的理解,同时也使得我们的Matlab能力有了很大的提高。
参考文献《应用matlab实现信号分析和处理》科学出版社附录1 巴特沃斯低通滤波器fp=800;fs=1300;rs=35;rp=0.5;Fs=44100; wp=2*Fs*tan(2*pi*fp/(2*Fs));ws=2*Fs*tan(2*pi*fs/(2*Fs));[n,wn]=buttord(wp,ws,rp,rs,'s');[b,a]=butter(n,wn,'s');[num,den]=bilinear(b,a,Fs);[h,w]=freqz(num,den,512,Fs);figure(1)%subplot(3,1,1)plot(w,abs(h));xlabel('频率/Hz');ylabel('幅值');title('巴特沃斯低通滤波器幅度特性');axis([0,5000,0,1.2])grid on;figure(2)%subplot(3,1,2)plot(w,20*log10(abs(h)));xlabel('频率/Hz');ylabel('幅值db');title('巴特沃斯低通滤波器幅度特性db'); axis([0,5000,-90,10]);grid on;figure(3)plot(w,180/pi*unwrap(angle(h))); xlabel('频率/Hz');ylabel('相位');title('巴特沃斯低通滤波器相位特性');axis([0,5000,-1000,10])grid on;[s1,Fs,bits]=wavread('D:\222.wav');x1=s1(:,1);sound(x1,Fs,bits);N1=length(x1);Y1=fft(x1,N1);f1=Fs*(0:N1-1)/N1;t1=(0:N1-1)/Fs;figure(4)plot(f1,abs(Y1))xlabel('频率/Hz');ylabel('幅度');title('原始信号频谱');grid on;axis([0 6000 0 400])y=filter(num,den,x1);sound(y,Fs,bits);N2=length(y);Y2=fft(y,N2);f2=Fs*(0:N2-1)/N2;t2=(0:N2-1)/Fs;figure(5)plot(f2,abs(Y2))xlabel('频率/Hz');ylabel('幅度');title('过滤后信号的频谱');grid on;axis([0 6000 0 100])2椭圆低通滤波器fp=1300;fs=1600;rs=60;rp=0.5;Fs=44100; wp=2*Fs*tan(2*pi*fp/(2*Fs));ws=2*Fs*tan(2*pi*fs/(2*Fs));[n,wn]=ellipord(wp,ws,rp,rs,'s');[b,a]=ellip(n,rp,rs,wn,'s');[num,den]=bilinear(b,a,Fs);[h,w]=freqz(num,den,512,Fs);figure(1)plot(w,abs(h));xlabel('频率/Hz');ylabel('幅值');title('椭圆低通滤波器幅度特性');axis([0,5000,0,1.2])grid on;figure(2)plot(w,20*log10(abs(h)));xlabel('频率/Hz');ylabel('幅值db');title('椭圆低通滤波器幅度特性db');axis([0,5000,-90,10]);grid on;figure(3)plot(w,180/pi*unwrap(angle(h)));xlabel('频率/Hz');ylabel('相位');title('椭圆低通滤波器相位特性');axis([0,5000,-1000,10])grid on;[s1,Fs,bits]=wavread('D:\222.wav');x1=s1(:,1);sound(x1,Fs,bits);N1=length(x1);Y1=fft(x1,N1); %对信号做N点FFT变换f1=Fs*(0:N1-1)/N1;t1=(0:N1-1)/Fs;figure(4)plot(f1,abs(Y1))xlabel('频率/Hz');ylabel('幅度');title('原始信号频谱');grid on;axis([0 6000 0 400])y=filter(num,den,x1);sound(y,Fs,bits);N2=length(y);Y2=fft(y,N2); %对信号做N点FFT变换f2=Fs*(0:N2-1)/N2;t2=(0:N2-1)/Fs;figure(5)plot(f2,abs(Y2))xlabel('频率/Hz');ylabel('幅度');title('过滤后信号的频谱');grid on;axis([0 6000 0 100])3.带阻滤波器fp1=800;fp2=2300;fs1=1300;fs2=1800;rs=30;rp=0.6;Fs=44100; fp=[fp1,fp2];fs=[fs1,fs2];wp=2*Fs*tan(2*pi*fp/(2*Fs));ws=2*Fs*tan(2*pi*fs/(2*Fs));%wap=2*tan(wp/2)/Ts[n,wn]=buttord(wp,ws,rp,rs,'s');[b,a]=butter(n,wn,'stop','s');[num,den]=bilinear(b,a,Fs);[h,w]=freqz(num,den,512,Fs);fp3=2800;fp4=4000;fs3=3200;fs4=3700;rs=30;rp=0.6;Fs=44100; fp1=[fp3,fp4];fs1=[fs3,fs4];wp1=2*Fs*tan(2*pi*fp1/(2*Fs));ws1=2*Fs*tan(2*pi*fs1/(2*Fs));%wap=2*tan(wp/2)/Ts[n1,wn1]=buttord(wp1,ws1,rp,rs,'s');[b1,a1]=butter(n1,wn1,'stop','s');[num1,den1]=bilinear(b1,a1,Fs);[h1,w1]=freqz(num1,den1,512,Fs);figure(1)plot(w,abs(h));xlabel('频率/Hz');ylabel('幅值');title('巴特沃斯带阻滤波器幅度特性');axis([0,5000,0,1.2])grid on;figure(2)plot(w,20*log10(abs(h)));xlabel('频率/Hz');ylabel('幅值db');title('巴特沃斯带阻滤波器幅度特性db');axis([0,5000,-90,10]);grid on;figure(3)plot(w,180/pi*unwrap(angle(h)));xlabel('频率/Hz');ylabel('相位');title('巴特沃斯带阻滤波器相位特性');axis([0,5000,-1000,10])grid on;figure(4)plot(w1,abs(h1));xlabel('频率/Hz');ylabel('幅值');title('巴特沃斯带阻滤波器幅度特性');axis([0,5000,0,1.2])grid on;figure(5)plot(w1,20*log10(abs(h1)));xlabel('频率/Hz');ylabel('幅值db');title('巴特沃斯带阻滤波器幅度特性db');axis([0,5000,-90,10]);grid on;figure(6)plot(w1,180/pi*unwrap(angle(h1)));xlabel('频率/Hz');ylabel('相位');title('巴特沃斯带阻滤波器相位特性');axis([0,5000,-1000,10])grid on;[s1,Fs,bits]=wavread('D:\222.wav'); x1=s1(:,1);sound(x1,Fs,bits);N1=length(x1);Y1=fft(x1,N1); %对信号做N点FFT变换f1=Fs*(0:N1-1)/N1;t1=(0:N1-1)/Fs;figure(7)plot(f1,abs(Y1))xlabel('频率/Hz');ylabel('幅度');title('原始信号频谱');grid on;axis([0 6000 0 400])y1=filter(num,den,x1);y=filter(num1,den1,y1);sound(y,Fs,bits);N2=length(y);Y2=fft(y,N2);f2=Fs*(0:N2-1)/N2;t2=(0:N2-1)/Fs;figure(8)plot(f2,abs(Y2))xlabel('频率/Hz');ylabel('幅度');title('过滤后信号的频谱');grid on;axis([0 6000 0 100])4.加hamming窗n=100;fp=1000;Fs=44100;b=fir1(n,fp/(Fs/2),Hamming(n+1)); [h,w]=freqz(b,1,512,Fs);a=num2str(a);[s1,Fs,bits]=wavread('D:\222.wav'); x1=s1(:,1);sound(x1,Fs,bits);N1=length(x1);Y1=fft(x1,N1);f1=Fs*(0:N1-1)/N1;y=fftfilt(b,x1);sound(y,Fs,bits);N2=length(y);Y2=fft(y,N2);f2=Fs*(0:N2-1)/N2;figure(4)subplot(2,1,1)plot(f1,abs(Y1))xlabel('频率/Hz');ylabel('幅度');title('原始信号频谱');grid on;axis([0 6000 0 400])subplot(2,1,2)plot(f2,abs(Y2));xlabel('频率/Hz');ylabel('幅度');title('过滤后信号的频谱');grid on;axis([0 6000 0 100])5.加hanning窗n=100;fp=1000;Fs=44100;b=fir1(n,fp/(Fs/2),Hanning(n+1)); [h,w]=freqz(b,1,512,Fs);a=num2str(a);[s1,Fs,bits]=wavread('D:\222.wav'); x1=s1(:,1);sound(x1,Fs,bits);N1=length(x1);Y1=fft(x1,N1);f1=Fs*(0:N1-1)/N1;y=fftfilt(b,x1);sound(y,Fs,bits);N2=length(y);Y2=fft(y,N2);f2=Fs*(0:N2-1)/N2;figure(4)subplot(2,1,1)plot(f1,abs(Y1))xlabel('频率/Hz');ylabel('幅度');title('原始信号频谱');grid on;axis([0 6000 0 400])subplot(2,1,2)plot(f2,abs(Y2));xlabel('频率/Hz');ylabel('幅度');title('过滤后信号的频谱');grid on;axis([0 6000 0 100])6.加blackman窗n=100;fp=1000;Fs=44100;b=fir1(n,fp/(Fs/2),blackman(n+1));[h,w]=freqz(b,1,512,Fs);a=num2str(a);[s1,Fs,bits]=wavread('D:\222.wav');x1=s1(:,1);sound(x1,Fs,bits);N1=length(x1);Y1=fft(x1,N1);f1=Fs*(0:N1-1)/N1;y=fftfilt(b,x1);sound(y,Fs,bits);N2=length(y);Y2=fft(y,N2);f2=Fs*(0:N2-1)/N2;figure(4)subplot(2,1,1)plot(f1,abs(Y1))xlabel('频率/Hz');ylabel('幅度');title('原始信号频谱');grid on;axis([0 6000 0 400])subplot(2,1,2)plot(f2,abs(Y2));xlabel('频率/Hz');ylabel('幅度');title('过滤后信号的频谱');grid on;axis([0 6000 0 100])7.巴特沃斯低通滤波时频分析clearFs=44100;[s1,Fs,bits]=wavread('D:\222.wav');x=s1(:,1);x1=x(40001:64576)l=length(x1);N=6;m=downsample(x1,N);%降抽样后 Fs=7350hzz=length(m);%4096[tfr, t, f] = tfrstft(m);figure(13)contour(t,(Fs/N)*(0:z/2-1)/z,abs(tfr(1:z/2,:)).^2); xlabel('时间t');ylabel('频率f');title('等高线图(滤波前)');grid on;figure(14)mesh(t,(Fs/N)*(0:z/2-1)/z,abs(tfr(1:z/2,:)).^2);xlabel('时间t');ylabel('频率f');zlabel('幅值A');title('三维图(滤波前)');grid on;fp=1300;fs=1600;rs=60;rp=0.5;Fs=44100;wp=2*Fs*tan(2*pi*fp/(2*Fs));ws=2*Fs*tan(2*pi*fs/(2*Fs)); [n,wn]=ellipord(wp,ws,rp,rs,'s');[b,a]=ellip(n,rp,rs,wn,'s');[num,den]=bilinear(b,a,Fs);[h,w]=freqz(num,den,512,Fs);y=filter(num,den,x);x1=y(40001:64576)l=length(x1);N=6;m=downsample(x1,N);%降抽样后 Fs=7350hzz=length(m);%4096[tfr,t,f] = tfrstft(m);figure(15)contour(t,(Fs/N)*(0:z/2-1)/z,abs(tfr(1:z/2,:)).^2); xlabel('时间t');ylabel('频率f');title('等高线图(滤波后)');grid on;figure(16)mesh(t,(Fs/N)*(0:z/2-1)/z,abs(tfr(1:z/2,:)).^2);xlabel('时间t');ylabel('频率f');zlabel('幅值A');title('三维图(滤波后)');grid on;。