《生物医学信号处理大作业.pdf》由会员分享,可在线阅读,更多相关《生物医学信号处理大作业.pdf(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、生物医学信号处理大作业生物医学信号处理大作业题目:基于 matlab 的语音信号处理学生姓名:学生姓名:学学号:号:专专业:业:学学院:院:精密仪器与光电子工程学院作作业业要要求求录制自己的一段语音:“天津大学精密仪器与光电子工程学院,College of precisioninstrument and opto-electronics engineering,biomedical engineering”,时间控制在 15 秒到 30秒左右;利用 wavread 函数对自己的语音进行采样,记住采样频率。(1)求原始语音信号的特征频带(比如谱峰位置):可以分别对一定时间间隔内,求功率谱(傅里叶
2、变换结果取模的平方)并画出功率谱。(2)根据语音信号频谱特点,设计FIR 或 IIR 滤波器,分别画出滤波器幅频和相频特性曲线。说明滤波器特性参数。用设计的滤波器对信号滤波,画出滤波前后信号的频谱图。用 sound 函数回放语音信号,说明利用高通/低通/带通滤波后的效果,不同特征频带被滤除后分别有什么效果。(3)求出特征频段语音信号随时间变化的曲线(每隔一定时间求一次功率谱,连接成曲线,即短时 FFT)。(4)选做:语谱图:横轴为时间,纵轴为频率,灰度值大小表示功率谱值的大小。(提示,可以采用 spectrogram 函数)(5)选做:分析自己的语音频谱特点,比如中英文发音的区别。2基于 ma
3、tlab 的语音信号处理摘摘 要要:对录制的语音信号进行采样,分析其时域波形和频谱图。给定数字滤波器的性能指标,采用窗函数法和双线性变换法设计数字滤波器,并对语音信号进行滤波,得到滤波前后的信号幅频响应。通过对比高通、低通两种滤波处理结果,简单而有效地论证了两种数字滤波器在语音信号处理上的异同。并进一步求出特征频段语音信号随时间变化的曲线,分析自身语音信号的特点。关键词关键词:MATLAB数字滤波器语音信号Speech Signal Processing by Digital Filter Based on MA TLABAbstract:Time-domain waveform and fr
4、equency spectrum of the recorded speech signals areanalyzed by sampling.The performance indexes of digital filters are given.Two methods ofwindow function and bilinear transformation are used to design the digital filters.The speechsignal is filtered by the filters,and then magnitude-frequency respo
5、nses of the signal before andafter filtering are received.The advantages of two digital filters(filter low pass and filter highpass)in speech signal processing are demonstrated by comparing different methods for filteringsimply and effectively.For more,we are able to figure out the time curves of ch
6、aracteristic bandsof speech signaland then analyses the character of our own speech signals.Key words:MATLAB,digital filter,speech signal为了进一步观察和确定语音信号的频谱特征,首先分别画出每秒的频带特征。具体代码为了进一步观察和确定语音信号的频谱特征,首先分别画出每秒的频带特征。具体代码如下所示:如下所示:clearyfull,fs,nbits=wavread(D:meng);y=yfull(:,1);win=blackman(fs);yfft=zeros(
7、15,fs);ypower=zeros(15,fs);for ii=0:14 yfft(ii+1,1:fs)=abs(fft(y(1+ii*fs:(ii+1)*fs).*win,fs);ypower(ii+1,1:fs)=yfft(ii+1,1:fs).2;figure(ii+1);f=1:3000;5 plot(f,ypower(ii+1,1:3000);end由此得到十五秒中每一秒的强度分布(注:横坐标为频率,纵坐标为强度)3第 1 秒第 3 秒第 5 秒第 2 秒第 4 秒第 6 秒4第 7 秒第 9 秒第 11 秒第 13 秒第 8 秒第 10 秒第 12 秒第 14 秒5第 15 秒
8、FIR 滤波器的设计:FIR 滤波器的设计方法有窗函数法、频率取样法、最佳等波纹法等。我选用了窗函数法设计 FIR 滤波器,窗函数设计法是一种通过截短,用有限长脉冲响应序列来逼近无限长非因果序列。根据所要设计的数字滤波器的性能指标要求,采用窗函数设计根据所要设计的数字滤波器的性能指标要求,采用窗函数设计 FIRFIR 滤波器的步骤如下滤波器的步骤如下:(1)根据最小阻带衰减 As 要求,选择窗函数类型。(2)根据截止频率、滤波器的类型、最大通带衰减 Ap、最小阻带衰减 As 以及采样频率,利用 MATLAB 阶次估计函数获得窗函数的参数。(3)利用 MATLAB 设计加窗有限冲激响应滤波器函数
9、fir1 设计 FIR 数字滤波器。(4)通过计算数字滤波器的频率响应函数freqz 绘出 FIR 数字滤波器的频率响应曲线。常用窗函数的性能指标如表1 所示。其中,凯泽窗2是一种适应性较强的窗,窗函数中的B 是一个可自由选择的参数,它可以同时调整主瓣宽度与旁瓣电平。因而,改变 B 值就可对主瓣宽度与旁瓣衰减进行选择。由于滤波器指标中没有对主瓣宽度做要求,所以 B 值的确定由最小阻带衰减 As 决定。根据以上十五个图像可以看出所有图像在200Hz 至 1200Hz 处均有谱峰,因此选择这两个参数进行归一处理。并利用凯瑟窗(学号利用凯瑟窗(学号 2929 对应于凯瑟窗的设计)进行加窗处理设计滤波
10、对应于凯瑟窗的设计)进行加窗处理设计滤波器,并进行滤波。具体程序如下所示器,并进行滤波。具体程序如下所示:%-归一化频率-w1=200/fs*pi;w2=1200/fs*pi;%-凯瑟窗设计滤波器-N=40;beta=6;w=kaiser(N,beta);h=fir1(N-1,w1 w2,w);6h1,w3=freqz(h,1);figure(16);plot(w3/pi,20*log10(abs(h1);grid on;axis(0,1,-80,10);xlabel(归一化频率/pi);ylabel(幅度/dB);%-滤波-yfilt=filter(h,1,y);figure(17);f=0
11、:fs/778239:fs;plot(f,yfilt);得到如下所示的波形:下面分别用低通,高通(带通已在凯瑟窗的设计中实现)进行滤波,画出滤波前后信号下面分别用低通,高通(带通已在凯瑟窗的设计中实现)进行滤波,画出滤波前后信号的频谱图并进行相应的比较和分析。具体程序如下所示:的频谱图并进行相应的比较和分析。具体程序如下所示:%-低通滤波器的设计及滤波-Fl=400;Fh=800;wp=(Fl/fs)*2*pi;ws=(Fh/fs)*2*pi;OmegaP=2*fs*tan(wp/2);OmegaS=2*fs*tan(ws/2);n,Wn=buttord(OmegaP,OmegaS,1,25,
12、s);b,a=butter(n,Wn,s);%freqs(b,a)%设计模拟滤波器bz,az=bilinear(b,a,fs);%映射为数字滤波器参数hl,wl=freqz(bz,az);7fl=wl/pi*fs./2;figure(18);plot(fl,20*log10(abs(hl);title(低通滤波器)grid;yfiltlowpass=filter(bz,az,y);figure(19);plot(yfiltlowpass);title(通过低通滤波器后的波形);%-高通滤波器的设计及滤波-wc=2*fs*tan(2*pi*600/(2*fs);wr=2*fs*tan(2*pi*
13、200/(2*fs);Nh,wnh=cheb1ord(wc,wr,0.8,20,s);%估计滤波器阶数Bh,Ah=cheby1(Nh,0.8,wnh,high,s);numh,denh=bilinear(Bh,Ah,1000);hh,wh=freqz(numh,denh);fh=wh/pi*500;figure(20);plot(fh,20*log10(abs(hh);grid;xlabel(频率/Hz);ylabel(幅度/dB);8title(高通滤波器);yfilthighpass=filter(numh,denh,y);figure(21);plot(yfilthighpass);ti
14、tle(通过高通滤波器后的波形);通过试听可以发现,利用凯瑟窗设计的滤波器的效果最为理想,既达到了声音听起来更加清晰,又有效地保持了声音的特性,所有文字都可以清晰的听到。通过低通滤波器后,声音变得比较浑厚,听起来有些发闷,但是还是比较接近原声的,我认为原因是滤掉了高频成分,所以音调听起来比较低。而通过使用高通滤波器,声音明显变小变细,而且变化是极为明显的,无论怎样改变参数,声音都比较小,高通滤波后只能听到少许的杂音。接下来,求出特征频段语音信号随时间变化的曲线(每隔一定时间求一次功率谱,连接成曲线,即短时 FFT)。程序集图像如下图所示:%-短时傅里叶变换-yfiltfft=zeros(166
15、,44100);yfiltfftwidth300_350=zeros(1,166);yfiltfftwidth580_700=zeros(1,166);yfiltfftwidth1000_1050=zeros(1,166);for jj=0:165 yfiltfft(jj+1,1:44100)=abs(fft(yfilt(jj*4410+1:44100+jj*4410),44100);yfiltfftwidth300_350(1,jj+1)=mean(yfiltfft(jj+1,300:350)2;yfiltfftwidth580_700(1,jj+1)=mean(yfiltfft(jj+1,
16、580:700)2;yfiltfftwidth1000_1050(1,jj+1)=mean(yfiltfft(jj+1,1000:1050)2;9endfigure(22);plot(yfiltfftwidth300_350);figure(23);plot(yfiltfftwidth580_700);figure(24);plot(yfiltfftwidth1000_1050);对于选做题目,做出了语谱图对于选做题目,做出了语谱图%-语谱图-spectrogram(yfilt,hamming(fs),50,512,fs)10对于语谱图的相关知识:语谱图就是语音频谱图,一般是通过处理接收的时域
17、信号得到频谱图,因此只要有足够时间长度的时域信号就可。(时间长度为保证频率分辨率)专业点讲,那是频谱分析视图,如果针对语音数据的话,叫语谱图。语谱图的横坐标是时间,纵坐标是频率,坐标点值为语音数据能量。由于是采用二维平面表达三维信息,所以能量值的大小是通过颜色来表示的,颜色深,表示该点的语音能量越强。之所以采用二维平面来表示三维信息是由于一下原因:在数字技术发展以前,人们可视化研究语音数据的方法是把数据通过频率滤波器,然后各个频率的数据驱动相应的类似针式打印的设备按频率高低顺序记录在一卷纸上,信号的强弱由记录在纸上的灰度来表示。记录纸按照一定的速度旋转,即相当于在不同的时间里记录下语音数据。语
18、谱图还分为窄带语谱图和宽带语谱图。从语谱图上,我们也可以看出很多的信息:我们可以观察语音不同频段的信号强度随时间的变化情况。从以上的图中可以看到明显的、一条条横方向的条纹,我们称为“声纹”,有很多应用。条纹的地方实际是颜色深的点聚集的地方,随时间延续,就延长成条纹,也就是表示语音中频率值为该点横坐标值的能量较强,在整个语音中所占比重大,那么相应影响人感知的效果要强烈得多。而一般语音中数据是周期性的,所以,能量强点的频率分布是频率周期的,即存在300Hz 强点,则一般在n*300Hz 点也会出现强点,所以我们看到的语谱图都是条纹状的。尽管客观人发声器官的音域是有限度的,即一般人发声最高频率400
19、0Hz,但是,由于我们数字分析频率时,采用的是算法实现的,一般是FFT,所以其结果是由采样率决定的,即尽管是上限为4000Hz 的语音数据,如果采用16Khz 的采样率来分析,则仍然可以在 4000Hz 以上的频段发现有数据分布,则可以认为是算法误差,非客观事实。由我的语谱图可以很清楚的看到我说话的特点:开始的第一个音强度在整句话中大致是相同的,后面的语句随着不同的语言而有所差异,中间部分的语气是比较弱的。11进一步分析自身的语音频谱特点:总的来讲,我的中文发音和英文发音差距不是很大,只是英文的语调起伏相对较大(表现为纵坐标强度)。同时,我说话的频率基本集中在200Hz到 1200Hz 的区域
20、。接下来,可以再找一个声音信号(男生)分析男女生说话的差异、分析男声和女声的分析男女生说话的差异、分析男声和女声的差别,实验代码如下:差别,实验代码如下:y1=wavread(nansheng.wav);Y1=y1(:,1);Fs=44100;%采样频率%yt1=fft(y1);%傅里叶变换%df=Fs/length(yt1);Fx=df*(0:length(yt1)-1);%将横轴变为频率轴%subplot(1,1,1);%subplot 将图像画在一张图上%plot(y1);title(语音时域波形);%画语音信号的时域波形%subplot(1,1,1);plot(Fx,abs(yt1);
21、axis(0 5000 0 2000);title(频谱图);xlabel(frequency/Hz);%频谱图%y1=wavread(nvsheng.wav);Y1=y1(:,1);Fs=44100;%采样频率%yt1=fft(y1);%傅里叶变换%df=Fs/length(yt1);Fx=df*(0:length(yt1)-1);%将横轴变为频率轴%subplot(1,1,1);%subplot 将图像画在一张图上%plot(y1);title(语音时域波形);%画语音信号的时域波形%subplot(1,1,1);plot(Fx,abs(yt1);axis(0 5000 0 2000);t
22、itle(频谱图);xlabel(frequency/Hz);%频谱图%以下为所得图形:12由此可见,男生的声音信号强度比女生的大,而且大的十分明显。在频率方面,男生的由此可见,男生的声音信号强度比女生的大,而且大的十分明显。在频率方面,男生的音域要比女生的广。从男生、女生时域波形看出:男生说话时的杂音比较大,女生说话的音域要比女生的广。从男生、女生时域波形看出:男生说话时的杂音比较大,女生说话的声音更加清晰。声音更加清晰。同时,通过基于 MATLAB 和短时频域分析,并结合实际操作的分析,能够得出:一长窗具有较高的频率分辨率,但具有较低的时间分辨率。从一个周期到另一个周期,共振峰是要发生变化
23、的,这一点即使从语音波形上也能够看出来。然而,如果采用较长的窗,这种变化就模糊了,因为长窗起到了时间上的平均作用。二短窗的频率分辨率低,但具有较高的时间分辨率。采用短窗时,能够从短时频谱中提取出共振峰从一个周期到另一个周期所发生的变化。当然,激励源的谐波结构也从短时频谱上消失了。三在对语音信号进行短时傅里叶分析时,窗长需要折衷考虑。一方面,短窗具有较好的时间分辨率因而能够提取出语音信号中的短时变化;但另一方面,损失了频率分辨率。还应当注意到,语音信号的基音周期是有一个覆盖范围的(例如,女性和儿童的基音周期就比成年男性短得多),因此,窗宽的选择应当考虑到这个因素。四我所采用的凯瑟窗更接近于带通特性,对于处理本人的特性是比较合适的。13