语音数字信号处理

  • 格式:doc
  • 大小:1.27 MB
  • 文档页数:30
[y,FS,nbits]=wavread(filename);
播放
global player;
global y;
global FS;
global fs;
global fc;
global val;
val=get(handles.slider1,'value');
fs=get(handles.slider2,'value');
2.综合运用专业及基础知识,解决实际工程技术问题的能力;
3.学习资料的收集与整理,学会撰写课程设计报告。
实验
环境
1.微型电子计算机(PC);
2.安装Windows 2000以上操作系统,MATLAB等开发工具。
任务
要求
1.录制一段个人自己的语音信号,并对录制的信号进行采样;画出采样后语音信号的时域波形和频谱图;给定滤波器的性能指标,采用窗函数法和双线性变换设计滤波器,并画出滤波器的频率响应;然后用自己设计的滤波器对采集的信号进行滤波,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化;回放语音信号;最后设计一个信号处理系统界面。
[Bz,Az]=impinvar(B,A)
其中,B、A分别为模拟滤波器的分子和分母多项式系数向量;Fs为采样频率(Hz),缺省值Fs=1Hz;Bz、Az分别为数字滤波器分子和分母多项式系数向量。
(2)双线性变换法
平面和z平面的单值双线性映射关系由于s平面和z平面的单值双线性映射关系为s= ,其中T为采样周期。因此,若已知模拟滤波器的传递函数,将上式代入即可得到数字滤波器的系统函数H(z)。
2.3
在一个相对安静的环境下,录下自己的声音信号,然后对声音进行采样,画出其时域波形、频谱图和语谱图,利用程序编写一个噪声信号加载在原声音信号里面,将这个加噪信号通过相应的滤波器,把通过滤波后的信号进行抽样再和原是信号进行比较。
首先,我们要针对所要达到的应用效果创建简单清晰的图形用户界面;其次,在各控件中编写对应的回调函数及所要实现的功能的相关代码;最后,将应用子函数与主函数连接实现本次设计所需实现的功能。
[y,fs,nbits]=wavread(file),采样值放在向y中, 表示采样频率( ),nbits表示采样位数。
(2)函数sound的调用
函数sound可以对声音进行回放。其调用格式为:Sound(x,fs,bits)
(3)randn函数调用
rand产生的是[0,1]上的均匀分布的随机序列,randn产生均值为0,方差为1的高斯随机序列,也就是白噪声序列;
也就是说,可以直接使用上面两个函数对原始信号添加噪声,调用格式:y=x+rand(length(x),1)或者y=x+randn(length(x),1)
2.1.
IIR滤波器常用的一类设计方法是借助于模拟滤波器的设计方法进行的。通过模拟滤波器得到传输函数Ha(s)后,再将Ha(s)按某种方法转换成数字滤波器的系统函数H(z)。转换方法有脉冲响应不变法和双线性变换法。
prompt={'输入录音时间(s)'};%弹出式对话框,用来输入录音时间
sample={' '};
x=inputdlg(prompt,'录音时间',1,sample);
duration=str2num(x{1});
b=['Recording......'];
msgbox(b,'提示')
y=wavrecord(duration*fs,fs); %duration*fs是总的采样点数
序号
起止日期
工作内容
1
2013.12.9~2013.12.9
在预设计的基础上,进一步查阅资料,完善设计方案。
2
2013.12.10~2009.12.11
设计总体方案,构建、绘制流程框图,编写代码,上机调试。
3
2013.12.12~2009.12.13
测试程序,完善功能,撰写设计报告。
4
2013.12.13
淮阴工学院
数字信号处理课程设计报告
题目:语音信号分析与处理
系(院):计算机工程学院
专业:
班级:
学号:
姓名:
指导教师:
学年学期:2013~2014学年第1学期
2013年12月日
设计任务书
课题
名称
语音信号处理系统设计
设计
目的
1.巩固所学的数字信号处理理论知识,理解信号的采集、处理、传输、显示和存储过程;
2.利用课余时间去图书馆或上网查阅课题相关资料,深入理解课题含义及设计要求,注意材料收集与整理;
3.在第14周末之前完成预设计,并请指导教师审查,通过后方可进行下一步工作;
4.结束后,及时提交设计报告(含纸质稿、电子稿),要求格式规范、内容完整、结论正确,正文字数不少于3000字(不含代码)。
工作进度计划
20世纪60年代中期形成的一系列数字信号处理的理论和算法,如数字滤波器、快速傅立叶变换(FFT)等是语音信号数字处理的理论和技术基础。随着信息科学技术的飞速发展,语音信号处理取得了重大的进展:进入70年代之后,提出了用于语音信号的信息压缩和特征提取的线性预测技术(LPC),并已成为语音信号处理最强有力的工具,广泛应用于语音信号的分析、合成及各个应用领域,以及用于输入语音与参考样本之间时间匹配的动态规划方法;80年代初一种新的基于聚类分析的高效数据压缩技术—矢量量化(VQ)应用于语音信号处理中;而用隐马尔可夫模型(HMM)描述语音信号过程的产生是80年代语音信号处理技术的重大发展,目前HMM已构成了现代语音识别研究的重要基石。近年来人工神经网络(ANN)的研究取得了迅速发展,语音信号处理的各项课题是促进其发展的重要动力之一,同时,它的许多成果也体现在有关语音信号处理的各项技术之中。
set(handles.edit1,'string',V);
player=audioplayer(val*y,FS);
play(player);
加速
global y;
global FS;
global player;
fs=get(handles.slider2,'value');
f=round(fs);
关键词:语音信号;滤波;处理;分析;MATLAB
1
1.1
语音信号处理包括语音通信、语音合成、语音识别和说话人识别等方面。只有通过语音信号的数字处理,语音信号的好坏、语音识别率的高低,都取决于语音信号处理的好坏。因此,语音信号处理是一项非常有意义的研究课程。
1.2
语音,作为一种典型的非平稳随机信号,是人来交流最自然、最有效、最方便的手段,在人类文明和社会进步中起着重要的作用。现在随着时代的发展,人类已开始进入了信息化时代,用现代手段研究语音信号,使人们能更加有效地产生、传输、存储、获取和应用语音信息,这对于促进社会的发展具有十分重要的意义。随着电子通信业的出现和计算机技术的发展,人们开始可以从数字信号处理的角度来了解语音。随着计算机技术和信息技术的发展,语音已经成为人机交互的必要手段,而语言信号的采集和处理是人机交互的前提和基础。在MATLAB环境中,可以通过数据分析和处理功能十分强大的工程实用软件,它的信号处理与分析工具箱为语音分析提供了十分丰富的功能函数,可利用这些功能函数快捷而方便地完成语音信号的处理和分析以及信号的可视化,使人机交互更加便捷。
set(handles.edit2,'String',f);
player=audioplayer(y*val,FS);
减速
global y;
global FS;
global player;
fc=get(handles.slider3,'value');
f=round(fc);
set(handles.edit3,'string',f);
设计FIR数字滤波器最简单的方法是窗函数法。
2.2
由于涉及很多控件及滤波器也有多种,而要求实现的功能也有多种,如果把各项功能单一列出来会使本次设计变得复杂,因此我们需要把各控件及功能联系起来形成一个整体,需要设计几个程序调用的函数,这时要会使用全局变量的调用,并编写条件语句来满足选择的实现条件,这样就可以简单清晰的将课题的每个部分都实现。
图3.3.1加噪原理
3.4
滤波器的设计有IIR和FIR,在IIR里可以通过脉冲响应不变法和双线性法来设计,在FIR里可以通过窗体的选择来进行滤波。在实现滤波的过程中,我们会用到低通、高通、带通和带阻滤波器。由于选择的方式不同,滤波的效果也是不相同的。
图3.4.1滤波器实现流程
4
4.1
fs = 44100;
c=['Finished recording.'];
msgbox(c,'提示')
wavwrite(y,fs,' record.wav');
4.2
打开文件
clear all;
global y;
global FS;
H={'*.wav'};
[filename,pathname]=uigetfile(H,'请选择语音');
global player;
pause(player);
继续
global player;
pause(player);
清除所有声音
Clearall
4.3
音量调节
global y;
global FS;
global player;
val=get(handles.slider1,'value')
V=round(val);