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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

语音信号课设.docx

1、语音信号课设1.课程设计目的为了巩固所学的数字信号处理理论知识,对信号的采集、处理、传输、显示和存储等系统的掌握和理解,综合运用数字信号处理的理论知识进行频谱分析和滤波器设计,通过理论推导得出相应结论,再利用 MATLAB 作为编程工具进行计算机实现,从而加深对所学知识的理解,建立概念。2.课程设计要求(1)学会 MATLAB 的使用,掌握 MATLAB 的程序设计方法。(2)掌握在 Windows 环境下语音信号采集的方法。(3)掌握数字信号处理的基本概念、基本理论和基本方法。(4)掌握 MATLAB 设计 FIR 和IIR 数字滤波器的方法。(5)学会用 MATLAB 对信号进行分析和处理

2、。3.课程设计内容(1)选择一个语音信号作为分析对象,或录制一段语音信号;(2)对语音信号进行采样,画出采样后语音信号的时域波形和频谱图;(3)利用MATLAB中的随机函数产生噪声加入到语音信号中,使语音信号被污染,然后进行频谱分析;(4)设计FIR和IIR数字滤波器,并对被噪声污染的语音信号进行滤波,画出滤波前后信号的时域波形和频谱,并对滤波前后的信号进行比较,分析信号的变化;(5)回放语音信号。4.课程设计实现4.1整体设计思路Matlab 语言是一种数据分析和处理功能十分强大的计算机应用软件 ,它可以将声音文件变换为离散的数据文件 , 然后利用其强大的矩阵运算能力处理数据 ,如数字滤波

3、、傅里叶变换 、时域和频域分析 、声音回放以及各种图的呈现等 , 信号处理是 Matlab 重要应用的领域之一 。本文是用 Matlab对含噪的的语音信号同时在时域和频域进行滤波处理和分析。整个设计思路的设计原理示意图如图 1 所示:4.2 整体实现过程4.2.1 语音信号的采集我们可以利用windows自带的录音机录制语音文件,进行数字信号的采集。将话筒输入计算机的语音输入插口上,启动录音机。按下录音按钮,接着对话筒说“语音信号处理课程设计”,说完后停止录音, 文件存储器的后缀默认为. Wav,如果是wma格式或其他格式,可以利用软件转换成wav格式。以文件名“xz”保存入D: MATLAB

4、 work 中。图2是基于PC机的语音信号采集过程:Windows自带录音机麦克风声卡滤波采样A/D转换Wav声音图2.语音采集过程4.2.2 语音信号的读取在matlab软件平台下,利用wavread函数对语音信号进行采样,记住采样频率和采样点数。通过使用wavread函数,理解采样频率、采样位数等概念。wavread函数调用格式y=wavread(file),读取file所规定的wav文件,返回采样值放在向量y中。y,fs,nbits=wavread(file),采样值放在向量y中,fs表示采样频率(hz),nbits表示采样位数。y=wavread(file,N),读取钱N点的采样值放在

5、向量y中。y=wavread(file,N1,N2),读取从N1到N2点的采样值放在向量y中。对语音信号“zx.wav”进行采样其程序如下:y,fs,nbits=wavread(zx.wav)结果如下:可知该语音信号的采样频率fs = 8000Hz ,数据位nbits = 16Bit。4.2.3 语音信号的频谱分析首先画出语音信号的时域波形,然后对语音信号进行频谱分析。在Matlab 中可以利用函数fft 对信号行快速傅里叶变换,得到信号的频谱图其程序如下:y=wavread(zx.wav); %把语音信号进行加载入Matlab 仿真软件平台中sound(y,fs,nbits); %对加载的语

6、音信号进行回放Y=fft(y); %快速傅里叶变换subplot(2 ,1 ,1),plot(y);title(原始信号波形);subplot(2 ,1 ,2),plot(abs(Y);title(原始信号频谱);程序结果如下图3:图3 语音信号的频谱4.2.4 噪声信号的构建利用MATLAB中的随机函数(rand或randn)产生噪声加入到语音信号中,模仿语音信号被污染,并对其进行频谱分析。1)Matlab中的rand函数:均匀分布的随机数或矩阵Y = rand(n)Y = rand(m,n)Y = rand(m n)Y = rand(m,n,p,.)Y = rand(m n p.)Y =

7、rand(size(A)2)rand函数产生由在(0, 1)之间均匀分布的随机数组成的数组。Y = rand(n) 返回一个n x n随机矩阵。如果n不是数量,则返回错误信息。Y = rand(m,n) 或 Y = rand(m n) 返回一个m x n的随机矩阵。Y = rand(m,n,p,.) 或 Y = rand(m n p.) 产生随机数组。Y = rand(size(A) 返回一个和A有相同尺寸的随机矩阵。3)程序如下:N=length(y); %求出语音信号的长度noise=rand(N,2)/20; %噪声信号的函数z=fft(noise); %快速傅里叶变换subplot(2

8、 ,1 ,1),plot(noise);title(噪声信号波形);subplot(2 ,1 ,2),plot(abs(z);title(噪声信号频谱);axis(0,250000,0,100);图4 噪声信号的频谱4.2.5 加入噪声的语音信号的频谱matlab程序如下: y=wavread(zx.wav);N=length(y);noise=rand(N,2)/20;s=y+noise; %噪声信号的叠加Subplot(2,1,1);plot(s);title (滤波前的时域波形);S=fft(s);Subplot(2,1,2);plot(abs(S);title (滤波前的频域波形);a

9、xis(0,45000,0,200);图5 加噪语音信号的频谱4.2.6数字滤波器的设计 滤波器的设计原理 设计数字滤波器的任务就是寻求一个因果稳定的线性时不变系统,并使系统函数H(z)具有指定的频率特性。数字滤波器从实现的网络结构或者从单位冲激响应分类,可以分成无限长单位冲激响应(IIR)数字滤波器和有限长单位冲激响应(FIR)数字滤波器。MATLAB中提供了几个函数,分别用于实现IIR滤波器和FIR滤波器。1)卷积函数conv卷积函数conv的调用格式为 c=conv(a,b)该格式可以计算两向量a和b的卷积,可以直接用于对有限长信号采用FIR滤波器的滤波。2) 函数filter函数fil

10、ter的调用格式为 y=filter(b,a,x)该格式采用数字滤波器对数据进行滤波,既可以用于IIR滤波器,也可以用于FIR滤波器。其中向量b和a分别表示系统函数的分子、分母多项式的系数,若a1,此时表示FIR滤波器,否则就是IIR滤波器。该函数是利用给出的向量b和a,对x中的数据进行滤波,结果放入向量y。3) 函数fftfilt函数fftfilt的调用格式为y=fftfilt(b,x)该格式是利用基于FFT的重叠相加法对数据进行滤波,这种频域滤波技术只对FIR滤波器有效。该函数是通过向量b描述的滤波器对x数据进行滤波。关于用butter函数求系统函数分子与分母系数的几种形式。b,a=but

11、ter(N,wc,high):设计N阶高通滤波器,wc为它的3dB边缘频率,以 为单位,故 。b,a=butter(N,wc):当wc为具有两个元素的矢量wc=w1,w2时,它设计2N阶带通滤波器,3dB通带为 ,w的单位为 。b,a=butter(N,wc,stop):若wc=w1,w2,则它设计2N阶带阻滤波器,3dB通带为 ,w的单位为 。如果在这个函数输入变元的最后,加一个变元“s”,表示设计的是模拟滤波器。这里不作讨论。为了设计任意的选项巴特沃斯滤波器,必须知道阶数N和3dB边缘频率矢量wc。这可以直接利用信号处理工具箱中的buttord函数来计算。 N,wc=buttord(wp,

12、ws,Rp,As)对于不同类型的滤波器,参数wp和ws有一些限制:对于低通滤波器,wpws;对于带通滤波器,wp和ws分别为具有两个元素的矢量,wp=wp1,wp2和ws=ws1,ws2,并且ws1wp1wp2ws2;对于带阻滤波器wp1ws1ws2ws1*ws2;w=wp1*wp2/ws2;bw=wp2-wp1;wp=1;ws=(wp1*wp2-w.2)/(bw*w);N,wc=buttord(wp,ws,1,50,s);b1,a1=butter(N,wc,s);b,a=lp2bp(b1,a1,sqrt(wp1*wp2),bw);bz,az=bilinear(b,a,0.5);h,w=fre

13、qz(bz,az);plot(w*8000*0.5/pi,abs(h);Legend(用butter设计);title(IIR带通滤波器);grid;IIR高通滤波器:Ft=8000;Fp=4000;Fs=3500;wp1=tan(pi*Fp/Ft);ws1=tan(pi*Fs/Ft);wp=1;ws=wp1*wp/ws1;N,wc=cheb1ord(wp,ws,1,50,s);b,a=cheby1 (N,1,wc,s);b1,a1=lp2hp(b,a,wc);bz,az=bilinear(b1,a1,0.5);h,w=freqz(bz,az);plot(w*21000*0.5/pi,abs(

14、h);title(IIR高通滤波器);legend(cheby1设计);axis(0 12000 0 1.5 );grid;FIR带通滤波器:Fp1=1200;Fp2=3000;Fs1=1000;Fs2=3200;Ft=8000;wp1=tan(pi*Fp1/Ft);wp2=tan(pi*Fp2/Ft);ws1=tan(pi*Fs1/Ft);ws2=tan(pi*Fs2/Ft);wp1*wp2ws1*ws2;w=wp1*wp2/ws2;bw=wp2-wp1;wp=1;ws=(wp1*wp2-w.2)/(bw*w);N,wc=buttord(wp,ws,1,50,s);b1,a1=butter(

15、N,wc,s);b,a=lp2bp(b1,a1,sqrt(wp1*wp2),bw);bz,az=bilinear(b,a,0.5);h,w=freqz(bz,az);plot(w*8000*0.5/pi,abs(h);Legend(用butter设计);title(FIR带通滤波器);grid;FIR高通滤波器:Ft=8001;Fp=4000;Fs=3500;wp=2*Fp/Ft;ws=2*Fs/Ft;rp=1;rs=50;p=1-10.(-rp/20); %通带阻带波纹s=10.(-rs/20);fpts=ws wp;mag=0 1;dev=p s;n23,wn23,beta,ftype=kai

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

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