第一篇:基于+MATLAB+的语音信号分析与处理的课程设计
目
录
1.课程设计目的………………………………………………………………(1)
2.课程设计基本要求……………………………………………...………….(1)
3.课程设计内容………………………………………..……………………..(2)
4.课程设计实现……………………………………………………..…..……………(3)
(1)语音信号的采集……………………………………………………..(5)
(2)语音信号的频谱分析………………………………………………..(6)
(3)设计滤波器和画出频率响应………………………………………..(6)
(4)用滤波器对信号进行滤波…………………………………………..(9)
(5)比较滤波前后语音信号的波形及其频谱…………………………..(9)
(6)回放语音信号………………………………………………………..(11)
(7)设计系统界面………………………………………………………..(13)
5、心得体会……………………………………………..……………………..(14)
6、参考文献…………………………………….……………………………..(14)
第二篇:《信号与系统》课程设计——语音信号的分析和处理
《信号与系统》课程设计——语音信号的分析和处理
【设计题目】基于时频域的分析方法对语音信号进行分析和处理 【设计目标】尝试对语音信号进行时频域分析和处理的基本方法 【设计工具】MATLAB 【设计原理】
通过MATLAB的函数wavread()可以读入一个.wav格式的音频文件,并将该文件保存到指定的数组中。例如下面的语句(更详细的命令介绍可以自己查阅MATLAB的帮助)中,将.wav读入后存放到矩阵y中。y = wavread('SpecialEnglish.wav');
对于单声道的音频文件,y只有一行,即一个向量;对于双声道的音频文件,y有两行,分别对应了两个声道的向量。我们这里仅对一个声道的音频进行分析和处理即可。注意:.wav文件的采样频率为44.1KHz,采样后的量化精度是16位,不过我们不用关心其量化精度,因为在MATLAB读入后,已将其转换成double型的浮点数表示。
在获得了对应音频文件的数组后,我们可以对其进行一些基本的分析和处理。可以包括:
1、对语音信号进行频域分析,找到语音信号的主要频谱成分所在的带宽,验证为何电话可以对语音信号采用8KHz的采样速率。
2、分析男声和女声的差别。我们知道男声和女声在频域上是有些差别的,一般大家都会认为女声有更多高频的成分,验证这种差别。同时,提出一种方法,能够对一段音频信号是男声信号、还是女声信号进行自动的判断。
3、语音与乐器音频的差别。比较语音信号与乐器音频信号的差别,尤其是在频域上的差别。
4、.wav文件的采样速率为44.1KHz,仍然远远高于我们通常说的语音信号需要的频谱宽度,例如在电话对语音信号的采样中,我们仅仅使用8KHz的采样速率。对读入的音频数据进行不同速率的降采样,使用wavplay()命令播放降采样后的序列,验证是否会对信号的质量产生影响。降采样的方法很简单,例如命令y = wavread('SpecialEnglish.wav');将语音文件读入后保存在向量y中,这时对应的采样频率为44.1KHz。使用y1 = y(1:2:length(y))命令,就可以将原序列y每隔1个采样后放入序列y1中,这时y1序列对应的采样频率即为22KHz。
5、自己下载获得一段中文语音信号(可以使用诸如“千千静听”等工具将.mp3文件转换成.wav文件),对中文语音与英文语音进行比较。以下对提供的语音信号进行说明:
SpecialEnglish.mp3:原始的语音信号,.mp3格式 Q2.wav:男声信号
Q3.wav、Q5.wav:女声信号
Q4.wav、Q6.wav:带有乐器伴奏的男声歌声信号 Q7.wav:音乐信号
【MATLAB参考命令】
绘图命令:plot、stem等 求频谱、频率响应:fft、freqz等 卷积、滤波:conv、deconv、filter等
声音文件读写:wavread、wavwrite、wavplay等
具体使用方法可以查阅MATLAB的帮助或者MATLAB参考书的基本使用。
第三篇:语音信号处理课程设计指导剖析
数字信号处理课程设计报告
学院:电子信息学院
班级:通信131
姓名:*** 2016年 月 日
语音信号处理
目录
一、设计目的.................................2
二、设计要求及任务...........................2 2.1 语音信号的采集........................2 2.2 语音信号的频谱分析;..................2
三、课程设计平台.............................3
四、设计原理与计算方法.......................3 4.1卷积运算..............................3 4.2 采样定理..............................3
五、设计内容.................................4 5.1利用带阻滤波器的进行滤波的具体步骤....4 5.1.1语音信号的录入与提取..............4 5.1.2加入噪声信号......................6 5.1.3 语音信号和噪声信号相加...........8 5.1.4滤波器设计........................9 5.1.5对信号进行滤波...................11 5.2利用低通滤波器进行滤波...............12 六:总结....................................14
语音信号处理
一、设计目的
1、学会MATLAB的使用,掌握MATLAB程序设计方法;
2、掌握在Windows环境下语言信号采集的方法;
3、掌握数字信号处理的基本概念、基本理论和基本方法;
4、掌握MATLAB设计IIR数字滤波器的方法;
5、学会用MATLAB对信号进行分析和处理;
二、设计要求及任务
2.1 语音信号的采集
本设计利用计算机Windows下的录音机录入一句语音信号,然后在Matlab软件平台下,利用函数waveread对语音信号进行采样,记住采样频率和采样点数。
2.2 语音信号的频谱分析;
在Matlab中,可以利用函数FFT对信号进行快速傅里叶变换,得到信号的频谱特性,然后加入一干扰信号,要求画出语音信号干扰前后的时域波形,并对其频谱进行分析。
1、设计数字滤波器,给出性能指标(参考指标);
(1)低通滤波器的性能指标:fp=1000Hz,fs=1200Hz,As=100dB,Ap=1dB(2)高通滤波器的性能指标:fs=4800Hz,fp=5000Hz,As=100dB,Ap=1dB(3)带通滤波器的性能指标:fp1=1200Hz,fp2=3000Hz,fs1=1000Hz, fps2=3200Hz,As=100dB,Ap=1dB;
采用双线性变换法设计上面一种类型的数字滤波器,要求使用切比雪夫II型滤波器。
2、用滤波器对信号进行滤波
语音信号处理
画出滤波后信号的时域波形及频谱,并对滤波前后的信号进行对比,分析信号的变化。
3、回放语音信号,分析滤波前后的语音变化。
在熟悉数字信号处理课程理论的基础上,通过MATLAB仿真实现语音信号的采集与处理,进一步加深对数字信号处理理论和技术的掌握。
三、课程设计平台
计算机、MATLAB6.5以上
四、设计原理与计算方法
4.1卷积运算
卷积和乘积运算在频域和时域是一一对应的,两个信号在时域的卷积可以转化为求两者在频域的乘积后再反变换,同理在频域的卷积等时域的乘积。而信号的频域求解有快速傅里叶FFT算法。
卷积与傅里叶变换有着密切的关系。利用这一点性质,即两函数的傅里叶变换的乘积等于它们卷积后的傅里叶变换,能使傅里叶分析中许多问题的处理得到简化。
由卷积得到的函数f*g 一般要比f 和g 都光滑。特别当g 为具有紧支集的光滑函数,f 为局部可积时,它们的卷积f * g 也是光滑函数。利用这一性质,对于任意的可积函数f,都可以简单地构造出一列逼近于f 的光滑函数列,这种方法称为函数的光滑化或正则化。
卷积的概念还可以推广到数列、测度以及广义函数上去。4.2 采样定理
采样定理,又称香农采样定理,奈奎斯特采样定理,是信息论,特别是通讯与信号处理学科中的一个重要基本结论。E.T.Whittaker(1915年发表的统计理论), 3
语音信号处理
克劳德·香农与Harry Nyquist都对它作出了重要贡献。另外,V.A.Kotelnikov也对这个定理做了重要贡献。
采样是将一个信号(即时间或空间上的连续函数)转换成一个数值序列(即时间或空间上的离散函数)。采样定理指出,如果信号是带限的,并且采样频率高于信号带宽的两倍,那么,原来的连续信号可以从采样样本中完全重建出来。带限信号变换的快慢受到它的最高频率分量的限制,也就是说它的离散时刻采样表现信号细节的能力是有限的。采样定理是指,如果信号带宽不到采样频率的一半(即奈奎斯特频率),那么此时这些离散的采样点能够完全表示原信号。高于或处于奈奎斯特频率的频率分量会导致混叠现象。大多数应用都要求避免混叠,混叠问题的严重程度与这些混叠频率分量的相对强度有关。
五、设计内容
5.1利用带阻滤波器的进行滤波的具体步骤
5.1.1语音信号的录入与提取
用电脑所带的录音工具录制一段录音,并将声音保存,因为录入的声音不是wav格式,因此用格式工厂软件将其进行转换位wav格式。
利用Matlab对语音信号进行FFT分析,并画出源语音信号的时域波形和频域波形。实验代码:
[x,fs]=wavread('c1.wav');%利用wavread函数对语音信号进行提取 figure(1)subplot(2,1,1);N=length(x);T=1/fs;
t=0:T:(N-1)*T;%时间间隔
plot(t,x)%以时间为横轴,x为纵轴画图 title('原语音信号时域分析')%图形命名 xlabel('t(s)')ylabel('x')
以上为时域分析,接下来为频域分析
语音信号处理
f=(0:N-1)*fs/N;X=fft(x);subplot(2,1,2)plot(f,abs(X))axis([0 25000 0 60]);title('原语音信号频域分析')xlabel('f(Hz)')ylabel('X')
语音信号图形:
语音信号处理
5.1.2加入噪声信号
在此选择余弦函数作为噪声信号,因为正弦和余弦函数的频域为两条竖直的线,便于滤波
实验代码:
y=0.003*sin(50000*t);
y1=[y' y'];%对噪音信号进行转换,便于信号相加(见下图有说明)Y=fft(y);figure(2)subplot(2,1,1)plot(t,y)
title('干扰信号时域波形')xlabel('t(s)')
ylabel('y=0.003*sin(50000*t)')Y=fft(y);subplot(2,1,2)plot(f,abs(Y))
axis([0 25000 0 60]);%取在语音信号范围内的噪声信号 title('干扰信号频域波形')xlabel('f(Hz)')ylabel('Y')
语音信号处理
通过图中划线的部分可以看出,通过y1=[y' y']此句可以将x和y这两个变量类型统一,以便噪声与语音信号的相加
语音信号处理
噪声信号图形:
5.1.3 语音信号和噪声信号相加
实验代码:
x1=wavread('c1.wav');x2=x1+y1;figure(3)subplot(2,1,1)plot(t,x2)
title('加入噪声信号时域波形')xlabel('t(s)')ylabel('x')X2=fft(x2);subplot(2,1,2)plot(f,abs(X2))
axis([0 25000 0 60]);title('加入噪声信号频域波形')
语音信号处理
xlabel('f(Hz)')ylabel('Y')
两信号相加图形:
5.1.4滤波器设计
fp1=0.5*10^4;fp2=4*10^4;fs1=0.6*10^4;fs2=3.7*10^4;Rp=1;As=100;Fs=80000;
wp11=2*pi*fp1/Fs;wp22=2*pi*fp2/Fs;ws11=2*pi*fs1/Fs;
语音信号处理
ws22=2*pi*fs2/Fs;
OmegaP11=2*Fs*tan(wp11/2);OmegaP22=2*Fs*tan(wp22/2);OmegaS11=2*Fs*tan(ws11/2);OmegaS22=2*Fs*tan(ws22/2);OmegaP=[OmegaP11,OmegaP22];OmegaS=[OmegaS11,OmegaS22];%预畸变化
[N,OmegaC]=cheb2ord(OmegaP,OmegaS,Rp,As,'s');[b,a]=cheby2(N,As,OmegaS,'stop','s');[bz,az]=bilinear(b,a,Fs);%AD转换 [H,w]=freqz(bz,az);db=20*log10(abs(H));figure(4)plot(w/pi,db)title('带阻滤波器')xlabel('w/pi')ylabel('Db')
滤波器图形:
语音信号处理
5.1.5对信号进行滤波
实验代码:
H=filter(bz,az,x2);figure(5)subplot(211)plot(t,H)
title('滤波后时域')xlabel('t(s)')ylabel('x')subplot(212)H1=fft(H);plot(f,abs(H1));axis([0 25000 0 60]);title('滤波后频域')xlabel('f(Hz)')
语音信号处理
ylabel('Y')
滤波后图形:
对比原图源信号已经被滤出来了 5.2利用低通滤波器进行滤波
前三步和上面带阻滤波器一样便不再重复叙述,从低通滤波器的设计开始 低通滤波器实验代码: fp1=0.25*10^4;fs1=0.5*10^4;Rp=1;As=100;Fs=30000;
wp11=2*pi*fp1/Fs;ws11=2*pi*fs1/Fs;
OmegaP=2*Fs*tan(wp11/2);OmegaS=2*Fs*tan(ws11/2);%频率预畸
语音信号处理
[N,OmegaC]=cheb2ord(OmegaP,OmegaS,Rp,As,'s');%为了得到N C [z0,p0,k0]=Cheb2ap(N,As);%归一化原型低通滤波器零极点 a0=real(poly(p0));b0=k0*real(poly(z0));
[b,a]=lp2lp(b0,a0,OmegaC);%将归一化原型低通转换成低通滤波器
[bz,az]=bilinear(b,a,Fs);%双线性变换AF到DF [H,w]=freqz(bz,az);db=20*log10(abs(H));figure(4)plot(w/pi,db)title('低通滤波器')xlabel('w/pi')ylabel('Db')
此处设计低通滤波器时与上面方法不同,此处先求出了归一化原型低通滤波器,在利用归一化原型低通滤波器转换成低通滤波器 低通滤波器图形:
语音信号处理
滤波后图形:
从图中可以看出,利用低通滤波器也还原出了源语音信号,并且比带阻的效果稍好一点
六、总结
这次课程设计虽然遇到了很多问题,很多困难,但是也学到了很多东西。不仅学到了书本上的东西,而且学到了很多课本上没有的东西,很多程序里的东西,特别是程序语法,总是有错误,但是总是不知道错在哪里,在细心的检查下,终于找出了错误和警告,排除困难后,程序编译就通过了,心里终于舒了一口气。还有各种各样问题,通过查网络和请教同学来弄明白,这个过程是痛苦的,有时候有些问题不能马上解决,感到很头痛,真想放弃这个问题,但是坚持下来,并且解决这些问题的时候,真的有种苦尽甘来的感觉。
应用MATLAB进行语音信号的处理是与我们所学课程及专业紧密相连的,有着很强的实践性。做这个课程设计的时候,并不是非常的顺利,我也有遇到很多困难。刚开始,我用自己的mp3录制的一个音频文件做语音信号处理,程序始终现实如下错误提示:
语音信号处理
??? Error using ==> wavread Error using ==> wavread Data compression format(IMA ADPCM)is not supported.我在查阅了很多资料,在网上也查阅相关信息,最后发现只有WAV格式的音频信号才能被wavread函数识别,这只是其中的一个小困难,当然后来也出现了许多错误,不过在我们的精心调试下,代码终于运行成功 通过这次设计,进一步加深了对数子信号处理的了解,让我对它有了更加浓厚的兴趣。通过这次课设使我懂得,平时的理论知识只有通过自己动手做一个课题,从做这个课题的过程中发现问题,解决问题,这个学习的过程,会比我们平时在课堂上听到的知识更加的生动立体,更能让人记忆深刻。
总的来说,通过这次的课程设计我对语音信号有了全面的认识,对数字信号处理又有了深刻的理解,让我们感受到只有在充分理解课本知识的前提下,才更更好的应用这个工具。同时我相信,matlab会对我以后的学习中起到更大的帮助
参考文献
[1] 高西全、丁玉美编著,数字信号处理。西安:西安电子科技大学出版社,2008.[2]丁玉美、高西全编著,数字信号处理学习指导。西安:西安电子科技大学出版社,2001.[3]郑君里等编,信号与系统。北京:高等教育出版社,2000.[4]刘树棠译,数字信号处理——使用MATLAB。西安:西安交通大学出版社,2002.[5]导向科技编著,MATLAB程序设计与实例应用。北京:中国铁道出版社,2001.[6]罗军辉等编著,MATLAB7.0在数字信号处理中的应用。北京:机械工程出版社,2005.[7]陈怀琛等编著,MATLAB及在电子信息课中的应用。北京:电子工业出版社,2002.[8]胡广书编组,数字信号处理——理论、算法与实现。北京:清华大学出版社,2002.[9]梁虹等编,信号与线性系统分析——机遇MATLAB的方法与实现。北京:高等教育出版社,2006.语音信号处理
[10]刘卫国主编,MATLAB程序设计与应用(第二版)。北京:高等教育出版社,2006.
第四篇:实验二语音信号分析与处理2010
实验一语音信号分析与处理
学号姓名注:1)此次实验作为《数字信号处理》课程实验成绩的重要依据,请同学们认真、独立完成,不得抄袭。
2)请在授课教师规定的时间内完成;
3)完成作业后,请以word格式保存,文件名为:学号+姓名
4)请通读全文,依据第2及第3 两部分内容,认真填写第4部分所需的实验数据,并给出程序内容。
1.实验目的(1)学会MATLAB的使用,掌握MATLAB的程序设计方法
(2)掌握在windows环境下语音信号采集的方法
(3)掌握MATLAB设计FIR和IIR滤波器的方法及应用
(4)学会用MATLAB对语音信号的分析与处理方法
2.实验内容
录制一段自己的语音信号,对录制的语音信号进行采样,画出采样后语音信号的时域波形和频谱图,确定语音信号的频带范围;使用MATLAB产生白噪声信号模拟语音信号在处理过程中的加性噪声并与语音信号进行叠加,画出受污染语音信号的时域波形和频谱图;采用双线性法设计出IIR滤波器和窗函数法设计出FIR滤波器,画出滤波器的频响特性图;用自己设计的这两种滤波器分别对受污染的语音信号进行滤波,画出滤波后语音信号的时域波形和频谱图;对滤波前后的语音信号进行时域波形和频谱图的对比,分析信号的变化;回放语音信号,感觉与原始语音的不同。
3.实验步骤
1)语音信号的采集与回放
利用windous下的录音机或其他软件录制一段自己的语音(规定:语音内容为自己的名字,以wav格式保存,如wql.wav),时间控制再2秒之内,利用MATLAB提供的函数wavread对语音信号进行采样,提供sound函数对语音信号进行回放。
[y,fs,nbits]=wavread(file),采样值放在向量y中,fs表示采样频率nbits表示采样位数。Wavread的更多用法请使用help命令自行查询。
2)语音信号的频谱分析
利用fft函数对信号进行频谱分析
3)受白噪声干扰的语音信号的产生与频谱分析
①白噪声的产生:
N1=sqrt(方差值)×randn(语音数据长度,2)(其中2表示2列,是由于双声道的原因)然后根据语音信号的频谱范围让白噪声信号通过一个带通滤波器得到一个带限的白噪声信号N2;
带通滤波器的冲激响应为:
hB(n)=c2
sinc(c2
(n))c1
sinc(c1
(n))其中ωc1为通带滤波器的下截止频率,ωc2为通带滤波器的上截止频率。其中下截止频率由每个人的语音信号的最高频率确定 滤波器的长度N由滤波器的过渡带确定,一般不宜太小(大于1000),α=(N-1)/2; ②信号y通过低通滤波器,得到信号为x1
低通滤波器的冲激响应为:
hL(n)c1sinc(c1
(n))其中的ωc1与上面的带通滤波器的下截止频率一致,滤波器的长度N也于上面的带通滤波器一致,α=(N-1)/2
③将N1加上x1得到一个受到噪声污染的声音信号
4)据语音信号的频带情况,设计FIR和IIR两种滤波器
5)用滤波器对受污染语音信号进行滤波
FIR滤波器fftfilt函数对信号进行滤波,IIR滤波器用filter函数对信号进行滤波
6)比较滤波前后信号的波形与频谱
7)回放滤波后的语音信号
4.实验数据及实验程序
实验数据
1)原始语音信号的时域波形和频谱图及语音信号的频带范围
2)带限白噪声信号的时域波形和幅频特性
3)受污染语音信号的时域波形和幅频谱图
4)滤波器的频响特性图
FIR滤波器的幅频响特性图
IIR滤波器的幅频响特性图
5)滤波后语音信号的时域波形和频谱图
6)滤波前后的语音信号时域波形对比图和幅频谱对比图
7)将实验的资料的电子文档交给班长(建立一个文件夹,里面包括:①实验报告的电子版;②采集的语音信号电子文件;③受污染的语音信号及滤波后的语音信号存在文件名为“姓名+学号.mat”文件的文件中)
实验程序:
1)实验主程序
2)FIR滤波器子程序
3)IIR滤波器子程序
第五篇:语音信号处理与识别
信号系统课程设计报告
欧阳光亮
2012029020025
语音信号处理与识别
目的:理解时域和频域尺度变换基本概念,掌握信号时频域分析方法,正确理解采样定理,准确理解滤波器的概念。内容:
(1)使用Matlab中wavrecord命令录制一段3秒的语音信号,使用wavplay命令播放,录制命令和播放命令中的采样频率设置成相同和不同两种情况,对观察到的现象进行分析并结合课本中的知识对该现象进行解释;(2)使用不同的采样频率录制一段3秒的语音信号,画出信号的时域波形和频谱;找到语音信号的主要频谱成分所在的带宽;观察并分析不同采样频率对波形和频谱的影响;寻找声音信号不出现明显失真的最低采样频率;(3)录制一段男生的语音信号和一段女生的语音信号,对两段音频信号进行混合,设计滤波器将混合的语音信号分开成单独的男声和女声信号,如果分离效果不好,对原因进行解释。
Matlab命令:wavrecord, wavplay, wavwrite, wavread, save, load, fft, fftshift, filter, plot, subplot, figure.过程:(1)相同:
fs1=16000;
%取样频率 fs2=16000;
%播放频率 duration=5;
%录音时间
fprintf('Press any key to start %g seconds of recording...n',duration);
pause;
fprintf('Recording...n');
y=wavrecord(duration*fs1,fs1);
%duration*fs 是总的采样点数
fprintf('Finished recording.n');
fprintf('Press any key to play the recording...n');
pause;
wavplay(y,fs2);wavwrite(y,fs1,'E:matlabrecord3.wav
不同:
fs1=16000;
%取样频率 fs2=8000;
%播放频率 duration=5;
%录音时间
fprintf('Press any key to start %g seconds of recording...n',duration);
pause;
fprintf('Recording...n');
y=wavrecord(duration*fs1,fs1);
%duration*fs 是总的采样点数
fprintf('Finished recording.n');
fprintf('Press any key to play the recording...n');
pause;
wavplay(y,fs2);wavwrite(y,fs1,'E:matlabrecord3.wav');现象:第二次播放时,声音明显失真。
理由:采样频率和播放频率不一样时声音信号会失真。(2)
fs1=16000;
%取样频率 fs2=16000;
%播放频率 duration=5;
%录音时间
fprintf('Press any key to start %g seconds of recording...n',duration);
pause;
fprintf('Recording...n');
y=wavrecord(duration*fs1,fs1);
%duration*fs 是总的采样点数
fprintf('Finished recording.n');
fprintf('Press any key to play the recording...n');
pause;
wavplay(y,fs2);wavwrite(y,fs1,'E:matlabrecord3.wav');
wav=wavread('E:matlabrecord3.wav');Fs=16000;n=length(wav);f=(0:n-1)*16000/n;mag=abs(fft(wav));subplot(2,1,1);plot(wav);subplot(2,1,2);plot(f,mag)
采样频率为1600010.5y/幅度0-0.5-101234x/t采样频率为16000567x 1084600500400y/幅度***400060008000x/f***16000
fs1=8000;
%取样频率 fs2=8000;
%播放频率 duration=5;
%录音时间
fprintf('Press any key to start %g seconds of recording...n',duration);
pause;
fprintf('Recording...n');
y=wavrecord(duration*fs1,fs1);
%duration*fs 是总的采样点数
fprintf('Finished recording.n');
fprintf('Press any key to play the recording...n');
pause;wavplay(y,fs2);wavwrite(y,fs1,'E:matlabrecord3.wav');
wav=wavread('E:matlabrecord3.wav');Fs=8000;n=length(wav);f=(0:n-1)*16000/n;mag=abs(fft(wav));subplot(2,1,1);plot(wav);subplot(2,1,2);plot(f,mag)wavplay(wav,8000)
采样频率为8000hz1 0.5y/幅度0-0.5-1 00.511.52x/s采样频率为8000hz2.533.5x ***0500y/幅度***00x/hz***16000
由图可知:语音信号的主要频谱成分所在的带宽为(0—1200hz),带宽为1200hz。
当采样频率较小时,频谱图上显示带宽较大,波形较稀松。
最低采样频率应为,声音信号的最高频率的两倍,由图可知为2400hz。(3)女声:
wav1=wavread('E:matlabrecord1.wav');wav2=wavread('E:matlabrecord2.wav');wav=wav1+wav2;fp1=800;fp2=1500;fp=[fp1,fp2];fr1=650;fr2=1900;fr=[fr1,fr2];Fs=16000;ap=1;as=40;[n,fn]= buttord(fp/(Fs/2),fr/(Fs/2),ap,as,'z');[b,a]=butter(n,fn);Y1=filter(b,a,wav);Y=fft(Y1);mag=abs(Y);n=length(wav);f=(0:n-1)*16000/n;subplot(3,1,1);mag1=abs(fft(wav));plot(f,mag1)subplot(3,1,2);plot(f,mag);subplot(3,1,3);plot(Y1);wavplay(Y1,16000)
混合400300y/幅度***060008000x/频率女声***16000400300y/幅度 2001000 ***00f/hz***160000.20.1y/幅度0-0.1-0.201234x/t567x 1084
男声:
wav1=wavread('E:matlabrecord1.wav');wav2=wavread('E:matlabrecord2.wav');wav=wav1+wav2;fp1=200;fp2=600;fp=[fp1,fp2];fr1=100;fr2=1000;fr=[fr1,fr2];Fs=16000;ap=3;as=40;[n,fn]= buttord(fp/(Fs/2),fr/(Fs/2),ap,as,'z');[b,a]=butter(n,fn);Y1=filter(b,a,wav);Y=fft(Y1);mag=abs(Y);n=length(wav);f=(0:n-1)*16000/n;subplot(3,1,1);mag1=abs(fft(wav));plot(f,mag1)subplot(3,1,2);plot(f,mag);subplot(3,1,3);plot(Y1);wavplay(Y1,16000)
混合频谱图200150y/幅度***30004000x/hz男声频谱图***040y/幅度***8000x/hz男声时域图***160000.040.02y/幅度0-0.02-0.0401234x/s567x 1084
分离效果不佳,原因:男女声频率有很多重叠的地方。