logo资料库

基于Matlab的对语音信号采集处理及滤波器的设.doc

第1页 / 共25页
第2页 / 共25页
第3页 / 共25页
第4页 / 共25页
第5页 / 共25页
第6页 / 共25页
第7页 / 共25页
第8页 / 共25页
资料共25页,剩余部分请下载后查看
摘要
1 课程设计实现
1.1整体设计思路
1.2 整体实现过程
1.2.1 信号的采样
1.2.2 语音信号的读取
1.2.3 语音信号的频谱分析
1.2.4 噪声信号的构建
1.2.5 加入噪声的语音信号的频谱
2 数字滤波器的设计
2.1 滤波器的设计原理
2.2 滤波器的性能指标
在设计一个滤波器之前,必须首先根据工程实际的需要确定滤波器的技术指标。在很多实际应用中,数字滤波器常
2.3 IIR数字滤波器设计
2.4 FIR数字滤波器设计
2.5 滤波器对信号滤波
2.6 语音信号回放
3 心得体会
4 主要参考资料
附录
目录 摘要...................................................................................................................... 2 1 课程设计实现................................................................................................ 3 1.1 整体设计思路............................................................................................3 1.2 整体实现过程..........................................................................................3 1.2.1 信号的采样....................................................................................... 3 1.2.2 语音信号的读取............................................................................... 5 1.2.3 语音信号的频谱分析....................................................................... 6 1.2.4 噪声信号的构建............................................................................... 7 1.2.5 加入噪声的语音信号的频谱........................................................... 8 2 数字滤波器的设计........................................................................................ 9 2.1 滤波器的设计原理.................................................................................... 9 2.2 滤波器的性能指标................................................................................10 2.3 IIR 数字滤波器设计..............................................................................10 2.4 FIR 数字滤波器设计..............................................................................12 2.5 滤波器对信号滤波................................................................................. 13 2.6 语音信号回放......................................................................................... 17 3 心得体会...................................................................................................... 17 4 主要参考资料.............................................................................................. 18 附录.................................................................................................................... 20 1
摘要 MATLAB 语言是一种数据分析和处理功能十分强大的计 算机应用软件 ,它可以将声音文件变换为离散的数据文件 , 然后利用其强大的矩阵运算能力处理数据 ,如数字滤波 、傅里 叶变换 、时域和频域分析 、声音回放以及各种图的呈现等 , 信号处理是 MATLAB 重要应用的领域之一 。 本课程设计介绍了基于 Matlab 的对语音信号采集、处理 及滤波器的设计,并使之实现的过程。理解与掌握课程中的基 本概念、基本原理、基本分析方法,用 Matlab 进行数字语音信 号处理,并阐述了课程设计的具体方法、步骤和内容。综合运 用本课程的理论知识进行频谱分析以及滤波器设计,通过理论 推导得出相应结论,并利用 MATLAB 作为工具进行实现,从而复 习巩固课堂所学的理论知识,提高对所学知识的综合应用能力, 并从实践上初步实现对数字信号的处理。 关键词: MATLAB 工具 信号语音采集 滤波器 2
1 课程设计实现 1.1 整体设计思路 Matlab 语言是一种数据分析和处理功能十分强大的计算机应用软 件 ,它可以将声音文件变换为离散的数据文件 , 然后利用其强大的矩阵 运算能力处理数据 ,如数字滤波 、傅里叶变换 、时域和频域分析 、声音 回放以及各种图的呈现等 , 信号处理是 Matlab 重要应用的领域之一 。 本文是用 Matlab对含噪的的语音信号同时在时域和频域进行滤波处理和 分析。整个设计思路的设计原理示意图如图 1 所示: 1.2 整体实现过程 1.2.1 信号的采样 采 样 器 的 作 用 是 把 连 续 信 号 变 为 脉 冲 或 数 字 序 列 。 图 中 示 出 了 一 个 连 续 信 号 f ( t ) 经 采 样 器 采 样 后 变 为 离 散 信 号 的 过 程 3
图 2 连 续 信 号 f ( t ) 经 采 样 器 采 样 后 变 为 离 散 信 号 图 中 f ( t ) 为 被 采 样 的 连 续 信 号 , S ( t ) 为 周 期 性 窄 脉 冲 信 号 , f s ( t ) 为 采 样 后 的 离 散 信 号 , 它 用 下 式 来 表 征 : f s ( t ) = f ( t ) s ( t ) 采 样 信 号 的 频 率 特 性 为 : 如 果 | F* ( jω) | 中 各 个 波 形 不 重 复 搭 接 ,相 互 间 有 一 定 的 距 离 ( 频 率 ) 即 若 即 采 样 定 理 可 叙 述 如 下 :如 果 采 样 周 期 满 足 下 列 条 件 , 即 : 式 中 ω m a x 为 连 续 信 号 f(t) 的 最 高 次 谐 波 的 角 频 率 。 则 采 样 信 号 f* ( t ) 就 可 以 无 失 真 地 再 恢 复 为 原 连 续 信 号 f(t) 。需 要 指 出 的 是 , 采 样 定 理 只 是 在 理 论 上 给 出 了 信 号 准 确 复 现 的 条 件 。 我们可以利用windows自带的录音机录制语音文件,进行数字信号的采 集。(开始—程序—附件—娱乐—录音机,文件—属性—立即转换—8000KH z,8位,单声道)或其他软件,将话筒输入计算机的语音输入插口上, 4
启动录音机,录制一段自己的话音。然后在MATLAB软件平台下,利用函数 wavread对语音信号进行采样,记住采样频率和采样点数。通过wavread函 数的使用进一步理解采样频率、采样位数等概念。图2是基于PC机的语音信 号采集过程: 声音 麦克风 声卡 滤波 采样 A/D 转换 Wav Windows 自带录音机 图3 语音采集过程 1.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 点的采样值放在向量 y 中。 y=wavread(file,[N1,N2]),读取从 N1 到 N2 点的采样值放在向 量 y 中。 对语音信号“zx.wav”进行采样其程序如下: [y,fs,nbits]=wavread('zx.wav') 5
结果如下: 可知该语音信号的采样频率fs = 8000Hz ,数据位nbits = 16Bit。 1.2.3 语音信号的频谱分析 首先画出语音信号的时域波形,然后对语音信号进行频谱分析。在 Matlab 中可以利用函数 fft 对信号行快速傅里叶变换,得到信号的频谱 特性,从而加深对频谱特性的理解。 其程序如下: [y,fs,nbits]=wavread ('yuyin.wav '); % 把 语 音 信 号 进 行 加 载 入 Matlab 仿真软件平台中 sound(y,fs,nbits); %回放语音信号 n = length (y) ; %求出语音信号的长度 Y=fft(y,n); %快速傅里叶变换 6
subplot(2,1,1);plot(y);title('原始信号波形'); subplot(2,1,2);plot(abs(Y));title('原始信号频谱') 程序结果如下图 3: 图 4 语音信号的频谱 1.2.4 噪声信号的构建 利用 MATLAB 中的随机函数(randn)产生噪声加入到语音信号中,模 仿语音信号被污染,并对其进行频谱分析。程序如下: 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('噪声信号频谱'); 7
axis([0,250000,0,100]); 图 5 噪声信号的频谱 1.2.5 加入噪声的语音信号的频谱 matlab 程序如下: y=wavread(' yuyin.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]); 8
分享到:
收藏