语音信号课设

上传人:飞*** 文档编号:42867373 上传时间:2018-06-04 格式:DOC 页数:22 大小:291KB
返回 下载 相关 举报
语音信号课设_第1页
第1页 / 共22页
语音信号课设_第2页
第2页 / 共22页
语音信号课设_第3页
第3页 / 共22页
语音信号课设_第4页
第4页 / 共22页
语音信号课设_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《语音信号课设》由会员分享,可在线阅读,更多相关《语音信号课设(22页珍藏版)》请在金锄头文库上搜索。

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

2、(5)学会用 MATLAB 对信号进行分析和处理。3.3.课程设计内容课程设计内容(1)选择一个语音信号作为分析对象,或录制一段语音信号;(2)对语音信号进行采样,画出采样后语音信号的时域波形和频谱图;(3)利用 MATLAB 中的随机函数产生噪声加入到语音信号中,使语音信号被污染,然后进行频谱分析;(4)设计 FIR 和 IIR 数字滤波器,并对被噪声污染的语音信号进行滤波,画出滤波前后信号的时域波形和频谱,并对滤波前后的信号进行比较,分析信号的变化;(5)回放语音信号。武汉理工大学专业课程设计24.4.课程设计实现课程设计实现4.14.1 整体设计思路整体设计思路Matlab 语言是一种数

3、据分析和处理功能十分强大的计算机应用软件 ,它可以将声音文件变换为离散的数据文件 , 然后利用其强大的矩阵运算能力处理数据 ,如数字滤波 、傅里叶变换 、时域和频域分析 、声音回放以及各种图的呈现等 , 信号处理是 Matlab 重要应用的领域之一 。本文是用 Matlab对含噪的的语音信号同时在时域和频域进行滤波处理和分析。整个设计思路的设计原理示意图如图 1 所示:4.24.2 整体实现过程整体实现过程4.2.14.2.1 语音信号的采集语音信号的采集我们可以利用windows自带的录音机录制语音文件,进行数字信号的采集。将话筒输入计算机的语音输入插口上,启动录音机。按下录音按钮,接着对话

4、筒说“语音信号处理课程设计”,说完后停止录音, 文件存储器的后缀默认为. Wav,如果是wma格式或其他格式,可以利用软件转换成wav格式。以文件名“xz”保存入D: MATLAB work 中。图2是基于PC机的语音信号采集过程:声音图2.语音采集过程Windows 自带录音机麦克风声卡滤波采样A/D 转换Wav武汉理工大学专业课程设计34.2.24.2.2 语音信号的读取语音信号的读取在 matlab 软件平台下,利用 wavread 函数对语音信号进行采样,记住采样频率和采样点数。通过使用 wavread 函数,理解采样频率、采样位数等概念。wavread 函数调用格式y=wavread

5、(file),读取 file 所规定的 wav 文件,返回采样值放在向量 y 中。y,fs,nbits=wavread(file),采样值放在向量 y 中,fs 表示采样频率(hz) ,nbits 表示采样位数。y=wavread(file,N) ,读取钱 N 点的采样值放在向量 y 中。y=wavread(file,N1,N2) ,读取从 N1 到 N2 点的采样值放在向量 y 中。对语音信号“zx.wav”进行采样其程序如下:y,fs,nbits=wavread(zx.wav)结果如下:可知该语音信号的采样频率fs = 8000Hz ,数据位nbits = 16Bit。武汉理工大学专业课程

6、设计44.2.34.2.3 语音信号的频谱分析语音信号的频谱分析首先画出语音信号的时域波形,然后对语音信号进行频谱分析。在 Matlab 中可以利用函数 fft 对信号行快速傅里叶变换,得到信号的频谱图其程序如下:y=wavread(zx.wav); %把语音信号进行加载入 Matlab 仿真软件平台中sound(y,fs,nbits); %对加载的语音信号进行回放Y=fft(y); %快速傅里叶变换subplot(2 ,1 ,1),plot(y);title(原始信号波形);subplot(2 ,1 ,2),plot(abs(Y);title(原始信号频谱);程序结果如下图 3:图 3 语音

7、信号的频谱4.2.44.2.4 噪声信号的构建噪声信号的构建利用 MATLAB 中的随机函数(rand 或 randn)产生噪声加入到语音信号中,模仿语音信号被污染,并对其进行频谱分析。1)Matlab 中的 rand 函数:均匀分布的随机数或矩阵Y = rand(n)武汉理工大学专业课程设计5Y = rand(m,n)Y = rand(m n)Y = rand(m,n,p,.)Y = rand(m n p.)Y = rand(size(A)2)rand 函数产生由在(0, 1)之间均匀分布的随机数组成的数组。Y = rand(n) 返回一个 n x n 随机矩阵。如果 n 不是数量,则返回错

8、误信息。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 ,1 ,1),plot(noise);title(噪声信号波形);subplot(2 ,1 ,2),plot(abs(z);title(噪声信号频谱);axi

9、s(0,250000,0,100);图 4 噪声信号的频谱武汉理工大学专业课程设计64.2.54.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 (滤波前的频域波形);axis(0,45000,0,200);图 5 加噪语音信号的频谱武汉理工大学专业课程设计74.2

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

11、ilter 的调用格式为 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 数据进行滤波。关于用

12、butter 函数求系统函数分子与分母系数的几种形式。b,a=butter(N,wc,high):设计 N 阶高通滤波器,wc 为它的 3dB 边缘频率,以 为单位,故 。b,a=butter(N,wc):当 wc 为具有两个元素的矢量 wc=w1,w2时,它设计 2N 阶带通滤波器,3dB 通带为 ,w 的单位为 。武汉理工大学专业课程设计8b,a=butter(N,wc,stop):若 wc=w1,w2,则它设计 2N 阶带阻滤波器,3dB 通带为 ,w 的单位为 。如果在这个函数输入变元的最后,加一个变元“s” ,表示设计的是模拟滤波器。这里不作讨论。为了设计任意的选项巴特沃斯滤波器,必

13、须知道阶数 N 和 3dB 边缘频率矢量 wc。这可以直接利用信号处理工具箱中的 buttord 函数来计算。N,wc=buttord(wp,ws,Rp,As)对于不同类型的滤波器,参数 wp 和 ws 有一些限制:对于低通滤波器,wpws;对于带通滤波器,wp 和 ws 分别为具有两个元素的矢量,wp=wp1,wp2和 ws=ws1,ws2,并且 ws1ws1*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(b

14、1,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(IIR 带通滤波器);grid;武汉理工大学专业课程设计20IIRIIR高通滤波器高通滤波器: :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=

15、lp2hp(b,a,wc);bz,az=bilinear(b1,a1,0.5);h,w=freqz(bz,az);plot(w*21000*0.5/pi,abs(h);title(IIR 高通滤波器);legend(cheby1 设计);axis(0 12000 0 1.5 );grid;武汉理工大学专业课程设计21FIRFIR带通滤波器带通滤波器: :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(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 带通滤波器);gr

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号