语音信号采集与处理_第1页
语音信号采集与处理_第2页
语音信号采集与处理_第3页
语音信号采集与处理_第4页
语音信号采集与处理_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

1、中北大学课 程 设 计 说 明 书 2013/2014 学年第 2 学期学 院: 软件学院 专 业: 电子技术与信息处理软件应用开发 学 生 姓 名: 褚 瑞 学 号: 1121011634 学 生 姓 名: 王 枫 学 号: 1121010948 学 生 姓 名: 张民卿 学 号: 1121010923 课程设计题目: 信息处理实践 语音信号采集及处理 起 迄 日 期:2014年6月9日-2014年6月27日课程设计地点: 201,503,510实验室 指 导 教 师: 田秀荣 系 主 任: 桂志国 王浩全 2014 年 6 月 27 日中北大学课程设计任务书 2013/2014 学年第 2

2、 学期学 院: 软件学院 专 业: 电子技术与信息处理软件应用开发 学 生 姓 名: 褚 瑞 学 号: 1121011634 学 生 姓 名: 王 枫 学 号: 1121010948 学 生 姓 名: 张民卿 学 号: 1121010923 课程设计题目: 信息处理实践 语音信号采集及处理 起 迄 日 期:2014年6月9日-2014年6月27日课程设计地点: 201,503,510实验室 指 导 教 师: 田秀荣 系 主 任: 桂志国 王浩全 下达任务书日期: 2014 年 6 月 9 日课 程 设 计 任 务 书1设计目的:运用数字信号处理的理论知识进行频谱分析和滤波器设计,通过理论推导得

3、出相应结论,再利用 MATLAB 或C语言作为编程工具进行计算机仿真实现,从而加深对所学理论知识的理解,培养解决实际问题的能力。 2设计内容和要求(包括原始数据、技术参数、条件、设计要求等):课程设计内容(1) 掌握USB总线或PCI总线的基本结构,了解基于USB总线或PCI总线A/D卡的通用结构。写出关于基于USB总线或PCI总线A/D卡的报告,每个人不能相同。(2) 通过A/D卡,利用高级语言编写信号的采集、存储和显示程序。(3)录制一段语音信号,并对录制的信号进行频率估计;对信号采样,画出采样后信号的时域波形和频谱图;根据信号的频谱图,设定滤波器的性能指标,采用窗函数法或双线性变换设计滤

4、波器,并画出滤波器的频率响应;用所设计的滤波器对采集的语音信号进行滤波,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化;回放语音信号;用 MATLAB 设计一信号处理系统界面。(4)课程设计基本要求 掌握数字信号处理的基本概念、基本理论和基本方法;学会 MATLAB 的使用,掌握 MATLAB 设计 FIR 和 IIR 数字滤波器的方法; 掌握在 Windows 环境下语音信号采集的方法; 学会用 MATLAB 对信号进行分析和处理;要求四位同学各负责一部分工作,共同完成任务;如果对MATLAB仿真已熟悉,此题目也可以申请在510实验室里的试验箱中完成。3设计工作任

5、务及工作量的要求包括课程设计计算说明书(论文)、图纸、实物样品等:课程设计说明书一份程序仿真结果课 程 设 计 任 务 书4主要参考文献:l 要求按国标GB 771487文后参考文献著录规则书写,例:1 傅承义,陈运泰,祁贵中.地球物理学基础.北京:科学出版社,1985(5篇以上)5设计成果形式及要求:课程设计说明书仿真结果6工作计划及进度:2014年6月9日-2014年6月20日6月9日-6月13日 查找资料,编写程序;6月16日-6月20日 上机调试程序;6月23日-27日 写设计报告,并答辩。系主任审查意见: 签字: 年 月 日设计说明书应包括以下主要内容:   (1

6、)封面:课程设计题目、班级、姓名、指导教师、时间   (2)设计任务书   (3)目录   (4)设计方案简介   (5)设计条件及主要参数表   (6)设计主要参数计算   (7)设计结果   (8)设计评述,设计者对本设计的评述及通过设计的收获体会   (9)参考文献目 录1. 实践目的和要求.12实践原理.12.1 采样定理.12.2 采样频率.22.3 采样位数与采样频率.22.4 利用MATLAB对语音信号进行分析和处理.22

7、.5 语音信号的滤波示意图.23. 实践步骤.23.1 语音信号的采集与分析.33.2 利用余弦函数构造一个高频噪声.33.3 设计合适的滤波器,滤除高频噪声.44. 程序设计与仿真图.44.1 用Matlab对原始语音信号进行分析.44.2对加噪后的语音进行分析.64.3 滤除高频噪声,绘出滤波后的信号频域和时域波形.95. 心得体会.136. 参考文献.13语音信号采集与处理一、实践的目的和要求课程设计基本要求 学会MATLAB的使用,掌握MATLAB的程序设计方法; 掌握在Windows环境下语音信号采集的方法; 掌握数字信号处理的基本概念、基本理论和基本方法; 掌握MATLAB设计FI

8、R和IIR数字滤波器的方法; 学会用MATLAB对信号进行分析和处理。 课程设计实现 (1)语音信号的采集 利用windows下的录音机或其他软件,录制一段自己的话音,时间控制在1秒左右。然后在MATLAB软件平台下,利用函数wavread对语音信号进行采样,记住采样频率和采样点数。通过wavread函数的使用,要求理解采样频率、采样位数等概念。 wavread函数调用格式: y=wavread(file),读取file所规定的wav文件,返回采样值放在向量y中。 y,fs,nbits=wavread(file),采样值放在向量y中,fs表示采样频率(Hz),nbits表示采样位数。 y=wa

9、vread(file,N),读取前N点的采样值放在向量y中。 y=wavread(file,N1,N2),读取从N1点到N2点的采样值放在向量y中。 二、实践原理: 1、采样定理: 在进行模拟与数字信号的转换过程中,当采样大于最高频率的2倍时,则采样之后的数字信号完整的保留了原始信号中的信息,一般实际应用中保证采样频率为信号最高频率的510倍。2、采样频率: 采样频率是指计算机每秒钟采样多少个声音样本,是描述声音文件的音质、音频、衡量声卡、声音文件的质量标准。采样频率越高,即采样的时间间隔越短,则在单位时间内计算机得到的声音样本数据越多,对声音波形的表示也越准确。 3、采样位数与采样频率: 采

10、样位数即采样值或取样值,用来衡量声音波动变化的参数,是指声卡在采集和播放声音文件时所使用数字声音信号的二进制位数。采样频率是指录音设备在一秒钟内对声音信号的采样次数,采样频率越高声音的还原就越真实越自然。采样位数和采样率对于音频接口来说是最为重要的两个指标。无论采样频率如何,理论上来说采样的位数决定了音频数据最大的力度范围。采样位数越多则捕捉到的信号越精确。4、利用MATLAB对语音信号进行分析和处理:采集语音信号后,利用MATLAB软件平台进行频谱分析;并对所采集的语音信号加入干扰噪声,对加入噪声的信号进行频谱分析,设计合适的滤波器滤除噪声,恢复原信号。 5、语音信号的滤波示意图: +滤波器

11、Matlab频谱显示语音信号噪声扬声器三实践步骤1、语音信号的采集与分析(1)利用 PC机上的声卡和 WINDOWS操作系统可以进行数字信号的采集。将话筒插入计算机的语音输入插口上,启动录音机。按下录音按钮,对话筒说话“我想回家”,说完后停止录音,屏幕左侧将显示所录声音的长度。(2)以文件名 “2” 保存入C盘中。可以看到 ,文件存储器的后缀默认为.wav。要保存文件时,利用了计算机上的A/D转换器,把模拟的声音信号变成了离散的量化了的数字信号,放音时,它又通过D/A转换器,把保存的数字数据恢复为原来的模拟的声音信号。(3)在 Matlab软件平台下可以利用函数wavread对语音信号进行采样

12、,得到了声音数据变量x1,x1=wavread('C:22.wav');同时把x1的采样频率fs=22050Hz和数据位Nbits=16Bit放进了MATALB的工作空间。图figure 1为原始语音信号的时域图形。(4)从图中可以看出在时域环境下,信号呈现出4个不规则的信号峰值。通过freqz(x1)函数绘制原始语音信号的频率响应图figure 2 。(5)然后对语音信号进行频谱分析,在Matlab中可以利用函数y1=fft(x1,1024); plot(abs(y1(1:512)对信号行快速傅里叶变换,得到信号的频谱图figure 3,从图中可以看出对各个频点上的随机信号在

13、频域进行抽样 ,抽样频率为 22050Hz。2、利用余弦函数构造一个高频噪声1. 在Matlab中人为设计一固定频率5000Hz的噪声干扰信号。噪声信号通常为随机序列,在本设计中用余弦序列代替。干扰信号构建命令函数为d=Au*cos(2*pi*5000*t)';x1=wavread('C:22.wav');x2=x1+d;2. 给出的干扰信号为一个余弦信号,针对上面的语音信号,采集了其中一段。再对噪音信号进行频谱变换得到其频谱图, y2=fft(x2,1024);从图中可以看出干扰信号,在4000Hz和 6000Hz频点处有一高峰 ,其中 5000Hz 正是本设计所要利

14、用的。若带噪信号y(m)是纯净语音信号s(m)和平稳加性高斯白噪声n(m)构成的,即:y(m) =x(m) +n(m);则在频域中表示为Y()=X()+N();其中Y(),X(),N()分别是y(m),x(m),n(m)的傅里叶变换。X()=Y()-N();只要从带噪信号中减去噪声信号即可估计出语音信号,再进行傅里叶反变换就可得到增强的语音。3、设计合适的滤波器,滤除高频噪声由模拟滤波器变换为数字滤波器时,采用的是双线性变换法,它保留的是从模拟到数字域的系统函数表示。用双线性变换法设计低通滤波器。在MATLAB 中,可以利用函数 butterworth设计低通滤波器。数字巴特沃兹低通滤波器函数

15、:functionb,a=digital_lowpass_butter(wp,ws,Rp,As,Fs)N,wn=buttord(wp/pi,ws/pi,Rp,As)b,a=butter(N,wn); 时域低通滤波:x=wavread(2.wav);x为读取原语音文件的数据,一维数组 h=ones(1,220); h为低通滤波器的单位冲激响应 y=conv(x,h); 时域卷积,低通滤波 wavwrite(y,22050,su2.wav);将滤波后的数据保存为.wav文件用 MATLAB 中的函数freqz 画出各滤波器的频率响应。用设计好的带阻滤波器对含噪语音信号进行滤波,在Matlab中II

16、R滤波器利用函数filter对信号进行滤波。在一个窗口同时画出滤波前后的波形及频谱。从图中可以看出,5000Hz看到的高峰消失了,语音信号与开始的一样,滤波器成功的滤除了干扰信号。利用MATLAB对语音信号进行分析和处理,采集语音信号后,利用MATLAB软件平台进行频谱分析;并对所采集的语音信号加入干扰噪声,对加入噪声的信号进行频谱分析,设计合适的滤波器滤除噪声,恢复原信号。四、程序设计及仿真图1、用Matlab对原始语音信号进行分析,画出它的时域波形和频谱程序:fs=22050;%语音信号采样频率为22050 x,fs,Nbits =wavread('C:2.wav') ;%

17、读取语音信号t=0:1/22050:(length(x)-1)/22050; %将0到x1的长度减1后的值除以fs的值,且步长为1/fs的值,的序列的值,赋予tsound(x,fs) ; %对加载的语音信号进行回放figure(1)y=plot(x); %做原始语音信号的时域图形title('原始语音信号');xlabel('time n');ylabel('fuzhi n');figure(2)freqz(y) %绘制原始语音信号的频率响应图title('频率响应图')n=length(x); %求出语音信号的长度y1=fft(

18、x,n) ; %傅里叶变换y2=fftshift(y1); %对频谱图进行平移f=0:fs/n:fs*(n-1)/n; %得出频点figure(3) subplot(2,1,1); %2行 1列 左到右第一个位置plot(abs(y2) %做原始语音信号的FFT频谱图title('原始语音信号FFT频谱')subplot(2,1,2);plot(f,abs(y2); %绘制原始语音信号的频谱图title('原始语音信号频谱')时域波形和频谱:2. 给原始的语音信号加上一个高频余弦噪声,频率为(2Khz)。对加噪后的语音进行分析,并画出其信号时域和频谱图。程序:%

19、加噪声 k=1:1:n; %定义k 值,噪声与原始语音长度一致 c1=10*sin(2*pi*2000*k); %噪声信号的函数 figure(4) plot(k,c1) title('噪声信号时域图'); %绘制噪声信号的时域波形图 figure(5) freqz(c1) %绘制噪声信号的频率响应图 title('噪声信号频率响应图') s=length(c1); %噪声信号的长度 xc=fft(c1,s); %对噪声信号进行频谱变换 xcc=fftshift(xc); f=0:fs/s:fs*(s-1)/s;%得出频点 figure(6) %绘制噪声语音的F

20、FT频谱图 plot(f,abs(xcc) title('噪声信号的频谱图');%噪音与原始信号叠加for i=1:260096z(1,i)=x1(1.i)+c1(1,i); %一个一个点把原始声音和噪声叠加形成叠加声音end%z=x'+c1;y3=fft(z,s); %对叠加信号进行频谱变换y4=fftshift(y3); %对频谱图平移f=0:fs/s:fs*(s-1)/s; %得出频点figure(7)plot(f,abs(y4); %绘出加噪语音频谱图axis(0 8000 0 400); %控制坐标轴范围title('含噪语音信号的频谱');f

21、igure(8)subplot(2,1,1);plot(f,abs(y2) %做原始语音信号的FFT频谱图title('原始语音信号FFT频谱')subplot(2,1,2);plot(f,abs(y4) %做加噪语音信号的FFT频谱图title('加噪语音信号频谱')时域波形和频谱:与原始信号对比,区别:3. 设计合适的滤波器,滤除高频噪声,绘出滤波后的信号频域和时域波形:程序:%用双线性变换法设计巴特沃思低通滤波器wp=0.25*pi; %通带截止频率ws=0.3*pi; %阻带截止频率Rp=1; %通带最大衰减Rs=15; %阻带最小衰减Fs=22050;

22、Ts=1/Fs;wp1=2/Ts*tan(wp/2); %将模拟指标转换成数字指标ws1=2/Ts*tan(ws/2); N,Wn=buttord(wp1,ws1,Rp,Rs,'s'); %选择滤波器的最小阶数(估算得到Butterworth低通滤波器的最小阶数N和3dB截止频率Wc)Z,P,K=buttap(N); %创建butterworth模拟滤波器Bap,Aap=zp2tf(Z,P,K);%将零极点增益转换为普遍分子,分母b,a=lp2lp(Bap,Aap,Wn); %将普遍的分子和分母转换为以Wn为截止频率bz,az=bilinear(b,a,Fs); %用双线性变换

23、法实现模拟滤波器到数字滤波器的转换(模拟转换为数字)H,W=freqz(bz,az); %绘制频率响应曲线figure(9)plot(W*Fs/(2*pi),abs(H)grid %添加图格xlabel('频率Hz')ylabel('频率响应幅度')title('Butterworth')f1=filter(bz,az,z);figure(10)subplot(2,1,1)plot(t,z) %画出滤波前的时域图title('滤波前的时域波形');subplot(2,1,2)plot(t,f1); %画出滤波后的时域图title(

24、'滤波后的时域波形');sound(f1,22050); %播放滤波后的信号p=length(f1);F0=fft(f1,p);f=0:fs/p:fs*(s-1)/p;figure(11)y2=fft(z,1024); %对信号y2做1024点FFT变换subplot(2,1,1);plot(f,abs(y4); %画出滤波前的频谱图title('滤波前的频谱')xlabel('Hz');ylabel('fuzhi');subplot(2,1,2)F1=plot(f,abs(F0); %画出滤波后的频谱图title('滤波后的频谱')xlabel('Hz');ylabel('fuzhi');x=wavread('C:2.wav');% x为读取原语音文件的数据,一维数组h=ones(1,220); % h为低通滤波器的单位冲激响应 y=conv(x,h); %时域卷积,低通滤波 wavwrite(y,22050,'C:su2.wav');%

温馨提示

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

评论

0/150

提交评论