MATLAB数字语音台设计_第1页
MATLAB数字语音台设计_第2页
MATLAB数字语音台设计_第3页
MATLAB数字语音台设计_第4页
MATLAB数字语音台设计_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

1、DSP课程设计报告 系 (部) 计算机应用技术 专 业 计算机科学与技术 姓 名 于* 班 号 0991121 指导教师 张彦飞、毕津滔 哈尔滨*2012年06月 22 日姓名:于*班级:0991121学号:*课题编号:2课题名称:数字调音台基本功能: 设计要求请任选一首你喜爱的歌曲(最好歌曲可以通过菜单选择),采用已经学过的信号处理知识,设计高通、带通、低通、带阻几种滤波器,对其进行数字信号滤波,观察信号的变化; 通过扬声器播放处理过的信号,听信号有什么变化。扩展功能:(1)、可以对语音信号进行调节,均衡器调节包括以下方面: 沉重(30),丰满(100),力度(200),明朗(500),透亮

2、(1K),尖锐(4K),清脆(8K),纤细(16K);(2)、在所设计的系统界面上可以选择滤波器的类型,输入滤波器的参数,显示滤波器的频率响应,选择信号等。总共提供了四种滤波器类型:1.巴特沃2.切比雪夫| 3.切比雪夫| 4.椭圆;(3)、可以将滤波后的语音文件直接保存起来。 成绩:评审老师:一、设计的目的和要求1. 设计目的:1)掌握数字信号处理的基本概念、基本理论和基本方法; 2)掌握MATLAB设计FIR和IIR数字滤波器的方法;3)掌握在Windows环境下语音信号采集以及时域、频域分析;4)学会MATLAB的使用,掌握MATLAB的程序设计方法; 5)学会用MATLAB对信号进行分

3、析和处理。2. 设计要求:要掌握MATLAB编程基础、数字信号处理知识、语音信号处理知识。二、设计原理:录制一段自己的语音信号,对录制的信号进行采样;画出采样后语音信号的时域波形和频谱图;给定滤波器的性能指标,采matlab设计数字滤波器,并画出滤波器的频率响应;然后用自己设计的滤波器对采集的信号进行滤波,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化;回放语音信号。三、具体设计步骤1语音信号的采集 录制一段自己的话音,或利用老师给的语音,在MATLAB软件平台下,利用函数wavread对语音信号进行采样,记住采样频率和采样点数。wavrecord(2*fs,fs)

4、 ;2语音信号的频谱分析 要求画出语音信号的时域波形;然后对语音号进行快速傅里叶变换,得到信号的频谱特性。3设计数字滤波器,画出其频率响应曲线 各滤波器的性能指标: (1)低通滤波器性能指标(2)高通滤波器性能指标(3)带通滤波器性能指标 (4)带阻滤波器性能指标4用滤波器对信号进行滤波,比较滤波前后语音信号的波形及频谱 要求用自己设计的各滤波器分别对采集的语音信号进行滤波,并在一个窗口同时画出滤波前后的波形及频谱。 IIR滤波器利用函数filter对信号进行滤波; FIR滤波器利用函数fftfilt对信号进行滤波。 回放语音信号 在MATLAB中,函数sound可以对声音进行回放。其调用格式

5、:sound(x,fs,bits);可以感觉滤波前后的声音有变化。 (选做)设计系统界面 为了使编制的程序操作方便,要求有能力的学生,设计处理系统的用户界面。在所设计的系统界面上可以选择滤波器的类型,输入滤波器的参数,显示滤波器的频率响应,选择信号等。四、程序实现及实验结果 function varargout = ch6(varargin)gui_Singleton = 1;gui_State = struct('gui_Name',mfilename, .'gui_Singleton',gui_Singleton, .'gui_OpeningFcn&

6、#39;,ch6_OpeningFcn, .'gui_OutputFcn',ch6_OutputFcn, .'gui_LayoutFcn', .'gui_Callback',);if nargin && ischar(varargin1)gui_State.gui_Callback = str2func(varargin1);endif nargoutvarargout1:nargout = gui_mainfcn(gui_State, varargin:);elsegui_mainfcn(gui_State, varargin:

7、);endfunction ch6_OpeningFcn(hObject, eventdata, handles, varargin)handles.output = hObject;handles.fband=20 100 200 500 1000 2000 4000 8000 16000;guidata(hObject, handles);function varargout = ch6_OutputFcn(hObject, eventdata, handles) varargout1 = handles.output;function WAVopen_Callback(hObject,

8、eventdata, handles)filename, pathname = uigetfile('*.wav', 'Pick an WAVE-file');if isequal(filename,0) disp('User selected Cancel')else set(handles.reading,'Visible','on'); set(handles.reading,'String','Reading.'); disp('User selected',

9、 fullfile(pathname, filename) handles.y handles.Fs bits=wavread(filename); handles.y=handles.y(:,1); guidata(hObject,handles);set(handles.reading,'String',sprintf('%dHz,%2.2fs',handles.Fs,length(handles./handles.Fs); set(handles.filt,'Enable','on'); set(handles.play,&

10、#39;Enable','on');endfunction play_Callback(hObject, eventdata, handles)if get(handles.addmode,'Value')=1 wavplay(handles.y,handles.Fs,'async');else set(handles.filt,'Enable','off'); pause(0.01); wavplay(handles.y,handles.Fs,'sync'); set(handles.fi

11、lt,'Enable','on');endfunction startrecord_Callback(hObject, eventdata, handles)set(handles.startrecord,'Enable','off');pause(0.01);Fs=str2double(get(handles.recordFs,'String');recordtime=str2double(get(handles.recordtime,'String');handles.Fs=Fs;handles

12、.y=wavrecord(recordtime*Fs,Fs,'int16');set(handles.startrecord,'Enable','on');set(handles.filt,'Enable','on');set(handles.play,'Enable','on');function save_Callback(hObject, eventdata, handles)filename, pathname = uiputfile('*.wav', 

13、9;WAVE-file');if isequal(filename,0) | isequal(pathname,0) disp('User selected Cancel')else set(handles.save,'Enable','off'); disp('User selected',fullfile(pathname,filename) wavwrite(handles.yy,handles.Fs,filename); set(handles.save,'Enable','on')

14、;endfunction fileinput_Callback(hObject, eventdata, handles)set(handles.WAVopen,'Enable','on');set(handles.AUopen,'Enable','on');set(handles.startrecord,'Enable','off');set(handles.recordFs,'Enable','off');set(handles.recordtime,'En

15、able','off');set(handles.genfrequence,'Enable','off');set(handles.genamp,'Enable','off');set(handles.gensquare,'Enable','off');function recordinput_Callback(hObject, eventdata, handles)set(handles.WAVopen,'Enable','off');set

16、(handles.AUopen,'Enable','off');set(handles.startrecord,'Enable','on');set(handles.recordFs,'Enable','on');set(handles.recordtime,'Enable','on');set(handles.genfrequence,'Enable','off');set(handles.genamp,'Enable'

17、;,'off');set(handles.gensquare,'Enable','off');function freq2_Callback(hObject, eventdata, handles)function freq2_CreateFcn(hObject, eventdata, handles)if ispc set(hObject,'BackgroundColor','white');else set(hObject,'BackgroundColor',get(0,'default

18、UicontrolBackgroundColor');endfunction lowpass_Callback(hObject, eventdata, handles)set(handles.freq2,'Enable','off');function highpass_Callback(hObject, eventdata, handles)set(handles.freq2,'Enable','off');function bandpass_Callback(hObject, eventdata, handles)set(handles.freq2,'Enable','on');function

温馨提示

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

最新文档

评论

0/150

提交评论