基于MATLAB的语音信号的时、频域分析课程设计_第1页
基于MATLAB的语音信号的时、频域分析课程设计_第2页
基于MATLAB的语音信号的时、频域分析课程设计_第3页
基于MATLAB的语音信号的时、频域分析课程设计_第4页
基于MATLAB的语音信号的时、频域分析课程设计_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、郑州轻工业学院matlab课程设计说明书摘 要用matlab对于语音信号进行分析和处理,采集语音信号后,在matlab软件平台进行频谱分析;并对所采集的语音信号加入干扰噪声,对加入噪声的信号进行频谱分析,设计合适的滤波器滤除噪声,恢复原信号。本次设计介绍了基于matlab的对语音信号的采集,处理及滤波器的设计,并使之实现的过程。关键词:matlab;语音信号;滤波器;加噪;除噪目 录摘要11 设计原理11.1 理论原理11.1.1采样频率11.1.2采样位数11.1.3采样定理11.1.4时域信号的fft分析21.1.5数字信号的滤波器原理和方法21.1.6 各种不同类型滤波器的性能比较31.

2、1.7离散傅立叶变换32 信号采集及读取43 构造受干扰信号并对其进行fft频谱分析.64 数字滤波器设计84.1 用窗函数法设计iir带通滤波器84.2 用窗函数法设计fir低通滤波器105信号处理125.1 iir带通滤波125.2 fir低通滤波146心得体会167 参考文献:1621设计原理1.1 理论原理1.1.1采样频率也称为采样速度或者采样率,定义了每秒从连续信号中提取并组成离散信号的采样个数,它用赫兹(hz)来表示。采样频率只能用于周期性采样的采样器,对于非周期性采样的采样器没有规则限制。通俗的讲采样频率是指计算机每秒钟采集多少个声音样本,是描述声音文件的音质、音调,衡量声卡、

3、声音文件的质量标准。采样频率越高,即采样的间隔时间越短,则在单位时间内计算机得到的声音样本数据就越多,对声音波形的表示也越精确。1.1.2采样位数即采样值或取样值,用来衡量声音波动变化的参数,是指声卡在采集和播放声音文件时所使用数字声音信号的二进制位数。1.1.3采样定理在进行模拟/数字信号的转换过程中,当采样频率fs.max大于信号中最高频率fmax的2倍时(fs.max=2fmax),采样之后的数字信号完整地保留了原始信号中的信息,一般实际应用中保证采样频率为信号最高频率的510倍;采样定理又称奈奎斯特定理。1.1.4时域信号的fft分析信号的频谱分析就是计算信号的傅立叶变换。连续信号与系

4、统的傅立叶分析显然不便于用计算机进行计算,使其应用受到限制。而fft是一种时域和频域均离散化的变换,适合数值运算,成为用计算机分析离散信号和系统的有力工具。对连续信号和系统,可以通过时域采样,应用dft进行近似谱分析。1.1.5数字信号的滤波器原理和方法iir数字滤波器系统函数:h(z)=(1.1)其中h(z)称为n阶iir数字滤波器系统函数。iir滤波器设计方法有间接和直接法,间接法是借助于模拟滤波器的设计方法进行的。其步骤是:先设计过度模拟滤波器得到系统函数ha(s),然后将ha(s)按某种方法转换成数字滤波器的系统函数h(z)。利用有限脉冲响应(fir)设计滤波器。有限脉冲响应滤波器在保

5、证幅度特性满足技术要求的同时,很容易做到有严格的线性相位特性。用n表示fir滤波器单位脉冲响应h(n)的长度,其系统函数h(z)为(1.2)h(z)是z-1的n-1次多项式,它在z平面上有n-1个零点,在原点z=0处有一个n-1重极点。因此,h(z)永远稳定。稳定和线性相位是fir滤波器最突出的优点。1.1.6 各种不同类型滤波器的性能比较巴特沃斯滤波器具有单调下降的幅频特性;切比雪夫滤波器的幅频特性在通带或阻带有波纹特性,可以提高选择性;贝塞尔滤波器通带内有较好的线性相位特性;椭圆滤波器的选择性相对前三种是最好的,但通带和阻带内均呈现等波纹幅频特性,线性特性的非线性稍重。iir数字滤波器最大

6、的优点是给定一组指标时,它的阶数要比相同组的fir滤波器低得多。iir数字滤波器的设计方法是利用模拟滤波器成熟的理论及设计图进行的,因而保留了一些典型模拟滤波器优良的幅度特性。但设计中只考虑了幅度特性,没考虑相位特性,所设计的滤波器一般是某种确定的非线性相位特性。为了得到线性相位特性,对iir滤波器必须另外增加相位校正网络。fir滤波器在保证幅度特性满足技术要求的同时,很容易做到有严格的线性相位特性。稳定和线性相位是fir滤波器最突出的优点。1.1.7离散傅立叶变换 1.3其中,n为dft变换的区间长度。2 信号采集及读取用录音工具录一段自己的声音,转化为wav格式的文件,然后保存到matla

7、b的文件夹下的work文件夹中。在matlab软件平台下,利用wavread函数对语音信号进行采样,记住采样频率和采样点数。wavread函数调用格式:y=wavread(file),读取file所规定的wav文件,返回采样值放在向量y中。y,fs,nbits=wavread(1.wav);把语音信号进行载matlab仿真软件平台中,采样值放在向量y中,fs表示采样频率(hz),nbits表示采样位数。sound(y,fs,nbits);回放语音信号n=length(y);求出语音信号的长度y=fft(y,n);傅立叶变换调用函数y为被变换的时域系列向量,n是dft变换区间长度,当n大于y的长

8、度时,fft函数自动在y后面补零,函数返回y的n点dft变换结果向量y。当n小于y的长度时,fft函数计算y的前面n个元素构成的n点dft,忽略y后面的元素。首先画出语音信号的时域波形,然后对语音信号进行频谱分析。在matlab中利用fft对新号进行快速傅立叶变换,得到信号的频谱特性。subplot(2,1,1);plot(y);title(原始信号波形);subplot(2,1,2);plot(abs(y);title(原始信号频谱);程序如下:y,fs,nbits=wavread(1.wav);sound(y,fs,nbits);n=length(y);y=fft(y,n);subplot

9、(2,1,1);plot(y);title(原始信号波形);xlabel(时间);ylabel(幅度);subplot(2,1,2);plot(abs(y);title(原始信号频谱);xlabel(时间);ylabel(幅度);程序结果如下图:3构造受干扰信号并对其进行fft频谱分析程序如下:y,fs,nbits=wavread (1.wav);n = length (y) ; %求出语音信号的长度noise=0.2*randn(n,1); %随机函数产生噪声si=y+noise; %语音信号加入噪声 sound(si);subplot(2,1,1);plot(si);title(加噪语音信

10、号的时域波形);xlabel(时间);ylabel(幅度);s=fft(si); %傅里叶变换subplot(2,1,2);plot(abs(s); title(加噪语音信号的频域波形); xlabel(时间);ylabel(幅度);程序结果如下图:4 数字滤波器设计4.1 用窗函数法设计iir带通滤波器程序如下:wp=0.2*pi; ws=0.3*pi; %性能指标wdelta=ws-wp; %过渡带宽度m=ceil(3.32*pi/wdelta); %滤波器长度,朝正无穷方向舍入n=2*m+1; %窗口长度wc=(ws+wp)/2; %截止频率win=hamming(n); %因为衰减不小

11、于50db,所以选择海明窗,这里得到海明窗的时域响应b=fir1(n-1,wc/pi,win);n=0:1:n;hi t=impz(b,1,n);%得到脉冲响应hf w=freqz(b,1,512); %得到频率响应subplot(3,1,1); stem(n,hi);xlabel(n); ylabel(幅度); title(脉冲响应);subplot(3,1,2); plot(w/pi,20*log10(abs(hf);xlabel(频率(hz); ylabel(幅度(db);title(频率响应);subplot(3,1,3); plot(w/pi,180/pi*unwrap(angle(

12、hf);xlabel(频率(hz); ylabel(相位(degrees);title(频率响应);程序结果如下图:4.2 用窗函数法设计fir低通滤波器程序如下:ft=8000;fp=1000;fs=1200;wp=2*fp/ft;ws=2*fs/ft;rp=1;rs=50;p=1-10.(-rp/20);s=10.(-rs/20);fpts=wp,ws;mag=1,0;dev=p,s;n21,wn21,beta,ftype=kaiserord(fpts,mag,dev);b21=fir1(n21,wn21,kaiser(n21+1,beta);h,w=freqz(b21,1);plot(w

13、/pi,abs(h);title(fir低通滤波器);grid;其程序结果如下图:5信号处理用设计好的数字滤波器对含噪声的语音信号进行滤波,在matlab中fir滤波器利用函数fftfilt对信号进行滤波,iir滤波器利用函数filter对信号进行滤波,在一个窗口同时画出滤波前后的波形及频谱如下图。5.1 iir带通滤波程序如下:y,fs,nbits=wavread(1.wav);n=length(y);noise=0.2*randn(n,1);si=y+noise; %语音信号加入噪声 nn=0:1:50;y=filter(b,1,si);subplot(2,1,1); stem(si);x

14、label(n); ylabel(幅度);title(滤波前信号频谱); axis(0 50 -2 2);subplot(2,1,2); stem(out);xlabel(n); ylabel(幅度);title(滤波后信号频谱); axis(0 50 -1 1);sound(y);程序结果如下图:5.2 fir低通滤波程序如下:y,fs,nbits=wavread(1.wav);n = length (y) ; noise=0.2*randn(n,1); si=y+noise; s=fft(si);z21=fftfilt(b21,si);sound(z21);m21=fft(z21);sub

15、plot(2,2,1);plot(abs(s),g);title(滤波前信号的频谱);xlabel(时间);ylabel(幅度);grid;subplot(2,2,2);plot(abs(m21),r);title(滤波后信号频谱);xlabel(时间);ylabel(幅度);grid;subplot(2,2,3);plot(s);title(滤波前信号波形);xlabel(时间);ylabel(幅度);grid;subplot(2,2,4);plot(z21);title(滤波后信号波形);xlabel(时间);ylabel(幅度);grid;程序结果如下图:6心得体会通过这次课程设计,我学到了很多东西。进一步加深了对matlab的了解。在设计的过程中我遇到了不少的问题,比如刚开始要处理的是wav格式的语音信号,可是我发现不是所有的wav文件都可以用wavread函数读取,通过软件转化了才可以使用。在编写程序的时候遇到了很多错误,最后经过查找一些资料和自己的理解都一一纠正了。总的来说,通过这次的课程设计我对语音信号有的更

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论