ImageVerifierCode 换一换
格式:DOCX , 页数:10 ,大小:103.83KB ,
资源ID:2942067      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/2942067.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数字信号处理开放实验.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数字信号处理开放实验.docx

1、数字信号处理开放实验数字信号处理开放实验MATLAB语音信号处理一、实验的目的和要求:学会运用MATLAB的信号处理功能,采集语音信号,根据给出的示例程序,对语音信号进行滤波及变换处理,观察其时域和频域特性,并回放语音信号,加深对语音信号处理理论的理解,并为今后熟练使用MATLAB进行系统的分析仿真和设计奠定基础。二、实验内容:掌握语音信号的采集;掌握语音信号的时频分析处理;设计各种FIR和IIR数字滤波器包括低通、带通和高通滤波器分别对语音信号进行滤波;掌握回放语音信号处理;拓展练习MATLAB界面设计(选做)。三、实验平台: MATLAB集成系统四、设计流程:此处写个人自己的设计流程五、程

2、序清单:此处写程序内容六、调试和测试结果:此处写程序的执行结果和实验过程中的调试经过、出现的错误和对应的解决方法七、教师评语与成绩评定此处由老师填写 八、上机操作:MATLAB语音信号处理实验步骤8.1 语音信号的采集MATLAB中语音信号采集。录制一段自己的话音,时间在3秒左右,然后在Matlab软件平台下,利用函数wavread对语音信号进行采样,记录采样频率和采样点数,采样率8000Hz,单通道,格式*.wav。8.2 语音信号的时频分析画出语音信号的时域波形,再对语音信号进行频谱分析。利用MATLAB中的“wavread”命令来读入(采集)语音信号,将它赋值给某一向量。再对其进行采样,

3、记住采样频率和采样点数。下面介绍Wavread函数几种调用格式。(1) y=wavread (file)功能说明:读取file所规定的wav文件,返回采样值放在向量y中。(2) y, fs, nbits=wavread(file)功能说明:采样值放在向量y中,fs表示采样频率(hz),nbits表示采样位数。(3) y=wavread (file,N)功能说明:读取N点的采样值放在向量y中。(4) y=wavread (file, NI, N2)功能说明:读取从N1到N2点的采样值放在向量y中。接下来,对语音信号进行采样。然后,画出语音信号的时域波形,再对语音信号进行频谱分析。MATLAB提供

4、了快速傅里叶变换算法FFT计算DFT的函数fft,其调用格式如下:Xk=fft (xn,N)参数xn为被变换的时域序列向量,N是DFT变换区间长度,当N大于xn的长度时,fft函数自动在xn后面补零。当N小于xn的长度时,fft函数计算xn的前N个元素,忽略其后面的元素。在本次设计中,我们利用fft对语音信号进行快速傅里叶变换,可以得到信号的频谱特性。具体程序如下:global x1;global Fs;global derta_Fs;global nbits;load handel.mat audio_data = handel.wav;wavwrite(y, Fs, audio_data)

5、clear y Fs % Read the data back into MATLAB, and listen to audio.x1, Fs, nbits, readinfo = wavread(audio_data);sound(x1,Fs,nbits);%播放声音figure(1);subplot(211);plot(x1); %做原始语音信号的时域图形title(原始语音信号);xlabel(时间 n);ylabel(音量 n);y1=fft(x1); %做length(x1)点的FFTy1=fftshift(y1);%平移,是频率中心为0derta_Fs = Fs/length(x1

6、);%设置频谱的间隔,分辨率 。subplot(212);plot(-Fs/2:derta_Fs: Fs/2-derta_Fs,abs(y1);%画出原始语音信号的频谱图,这里保证了x轴的点数必须和y轴点数一致title(原始语音信号的频谱); grid on;程序结果如下图:上图:原始语音信号的时域图形下图:原始语音信号的频谱图形8.3 设计FIR和IIR数字滤波器对语音信号进行滤波仿照以下FIR低通滤波器设计过程,完成其他各滤波器设计。IIR滤波器和FIR滤波器的设计方法完全不同。IIR滤波器设计方法有间接法和直接法,间接法是借助于模拟滤波器的设计方法进行的。其设计步骤是:先设计过渡模拟滤

7、波器得到系统函数H (s),然后将H(s)按某种方法转换成数字滤波器的系统函数H(z)。FIR滤波器比斡采用间接法,常用的方法有窗函数法、频率采样发和切比雪夫等波纹逼近法。对于线性相位滤波器,经常采用FIR滤波器。对于数字高通、带通滤波器的设计,通用方法为双线性变换法。可以借助于模拟滤波器的频率转换设计一个所需类型的过渡模拟滤波器,再经过双线性变换将其转换策划那个所需的数字滤波器。具体设计步骤如下:(1)确定所需类型数字滤波器的技术指标。(2)将所需类型数字滤波器的边界频率转换成相应的模拟滤波器的边界频率,转换公式为Q =2/T tan(0.5w)(3)将相应类型的模拟滤波器技术指标转换成模拟

8、低通滤波器技术指标。(4)设计模拟低通滤波器。(5)通过频率变换将模拟低通转换成相应类型的过渡模拟滤波器。(6)采用双线性变换法将相应类型的过渡模拟滤波器转换成所需类型的数字滤波器。我们知道,脉冲响应不变法的主要缺点是会产生频谱混叠现象,使数字滤波器的频响偏离模拟滤波器的频响特性。为了克服之一缺点,可以采用双线性变换法。下面我们总结一下利用模拟滤波器设计IIR数字低通滤波器的步骤:(1)确定数字低通滤波器的技术指标:通带边界频率、通带最大衰减,阻带截止频率、阻带最小衰减。(2)将数字低通滤波器的技术指标转换成相应的模拟低通滤波器的技术指标。(3)按照模拟低通滤波器的技术指标设计及过渡模拟低通滤

9、波器。(4)用双线性变换法,模拟滤波器系统函数转换成数字低通滤波器系统函数。如前所逑,IIR滤波器和FIR滤波器的设计方法有很大的区别。下面我们着重介绍用窗函数法设计FIR滤波器的步骤。如下:(1)根据对阻带衰减及过渡带的指标要求,选择串窗数类型(矩形窗、三角窗、汉宁窗、哈明窗、凯塞窗等),并估计窗口长度N。先按照阻带衰减选择窗函数类型。原则是在保证阻带衰减满足要求的情况下,尽量选择相同阶数下主瓣窄的窗函数。(2)构造希望逼近的频率响应函数。(3)计算h(n)。(4)加窗得到设计结果。给定滤波器的性能指标如下:(1)低通滤波器的性能指标:fb=1000Hz,fc=1200Hz,As=100dB

10、,Ap=1dB.(2)高通滤波器的性能指标:fb=2700Hz, fc=3000Hz,As=100dB,Ap=1dB.(3)带通滤波器的性能指标:fb1=1200Hz, fb2=3000Hz, As=100dB,Ap=1dB.fc1=1000Hz, fc2=3200Hz,As=100dB, Ap=1dB.由以上指标查表得满足阻带衰减为指标中的100dB的窗可以选择凯泽窗。在Matlab中,可以利用函数fir1设计FIR滤波器,利用函数butter,chebyl和ellip设计IIR滤波器,利用Matlab中的函数freqz画出各滤波器的频率响应。hn=frI(M,wc,window),可以指定

11、窗函数向量window。如果缺省window参数,则firl默认为哈明窗。这里我们可以选择window= kaiser(N,beta)以实现凯泽窗。N为窗的点数,N=M+1,其中M为滤波器阶,可由过渡带带宽BW和阻带衰减分贝值As估算得到,公式为M=(As-7.95)/(2.286*BW)+1; beta参数决定凯泽窗,可由公式beta=0.1102*(As1-8.7)确定; (若是矩形窗公式为BW=1.8pi/M,得出M)MATLAB信号处理工具箱函数buttp buttor butter是巴特沃斯滤波器设计函数,其有5种调用格式,本课程设计中用到的是N,wc=butter(N,wc,Rp,

12、As,s),该格式周于计算巴特沃斯模拟滤波器的阶数N和3dB截止频率wc。MATLAB信号处理工具箱函数cheblap,cheblord和cheebyl是切比雪夫I型滤波器设计函数。我们用到的是cheebyl函数,其调用格式如下:B,A=chebyI(N,Rp,wpo,Rypr)B,A=chebyI(N,Rp,wpo,ttypr,s)函数butter,chebyl和ellip设计IIR滤波器时都是默认的双线性变换法,所以在设计滤波器时只需要代入相应的实现函数即可。用自己设计的各滤波器分别对语音信号进行滤波,在Matlab中,滤波器利用函数filter对信号进行滤波。函数filter的调用格式:

13、yn=filter(B,A.xn),它是按照直线型结构实现对xn的滤波。其中xn是输入信号向量,yn输出信号向量。下面我们将给出FIR数字滤波器对语音信号滤波的主要程序和结果:% - FIR低通滤波函数.fs=Fs;fp1=1000;fs1=1200;As1=100;wp1=2*pi*fp1/fs; %ws1=2*pi*fs1/fs; %BF1=ws1-wp1;wc1=(wp1+ws1)/2;M1=ceil(As1-7.95)/(2.286*BF1)+1;%按凯泽窗计算滤波器阶数N1=M1+1;beta1=0.1102*(As1-8.7);Window=(kaiser(N1,beta1); %

14、求凯泽窗窗函数b1=fir1(M1,wc1/pi,Window);% wc1/pi为归一化,窗函数法设计函数figure(2);freqz(b1,1,512);title(FIR低通滤波器的频率响应);x1_low = filter(b1,1, x1);%对信号进行低通滤波sound(x1_low,Fs,nbits);figure(3);subplot(211);plot(x1_low);title(信号经过FIR低通滤波器(时域);subplot(212);plot(-Fs/2:derta_Fs: Fs/2-derta_Fs,abs(fftshift(fft(x1_low);title(信号

15、经过FIR低通滤波器(频域));信号经过FIR低通滤波器频域图信号经过FIR低通滤波器时域图仿照FIR低通滤波器设计过程,完成其他滤波器设计。8.4 回放语音信号使用函数sound对声音进行回放。经过以上的处理后,可在Matlab中用函数sound对声音进行回放。其调用格式:sound(y,Fs),sound(y)和sound(y,Fs,bits)。可以察觉滤波前后的声音有明显的变化。8.5 MATLAB界面设计参考以下的示例,练习自己编辑MATLAB界面。8.5.1系统界面设计工具-GUI概述图形用户界面(graphical user interfaces,GUI)则是由窗口、光标、按键、菜单、文字说明等对象(objects)构成的一个用户界面。用户通过一定的方法(如鼠标或键盘)选择、激活这些图形对象,使计算机产生某种动作或变化,比如实现计算、绘图等。在MAlLAB中GUI是一中包含多种对象的图形窗口,并为GUI开发提供一个方便高效的集成开发环境GUIDE。GUIDE主要是一个界面设计工具集,MAYLAB将所有G

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1