MATLAB數(shù)字語音臺設計_第1頁
MATLAB數(shù)字語音臺設計_第2頁
MATLAB數(shù)字語音臺設計_第3頁
MATLAB數(shù)字語音臺設計_第4頁
MATLAB數(shù)字語音臺設計_第5頁
已閱讀5頁,還剩5頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、DSP課程設計報告 系 (部) 計算機應用技術 專 業(yè) 計算機科學與技術 姓 名 于* 班 號 0991121 指導教師 張彥飛、畢津滔 哈爾濱*2012年06月 22 日姓名:于*班級:0991121學號:*課題編號:2課題名稱:數(shù)字調音臺基本功能: 設計要求請任選一首你喜愛的歌曲(最好歌曲可以通過菜單選擇),采用已經學過的信號處理知識,設計高通、帶通、低通、帶阻幾種濾波器,對其進行數(shù)字信號濾波,觀察信號的變化; 通過揚聲器播放處理過的信號,聽信號有什么變化。擴展功能:(1)、可以對語音信號進行調節(jié),均衡器調節(jié)包括以下方面: 沉重(30),豐滿(100),力度(200),明朗(500),透亮

2、(1K),尖銳(4K),清脆(8K),纖細(16K);(2)、在所設計的系統(tǒng)界面上可以選擇濾波器的類型,輸入濾波器的參數(shù),顯示濾波器的頻率響應,選擇信號等??偣蔡峁┝怂姆N濾波器類型:1.巴特沃2.切比雪夫| 3.切比雪夫| 4.橢圓;(3)、可以將濾波后的語音文件直接保存起來。 成績:評審老師:一、設計的目的和要求1. 設計目的:1)掌握數(shù)字信號處理的基本概念、基本理論和基本方法; 2)掌握MATLAB設計FIR和IIR數(shù)字濾波器的方法;3)掌握在Windows環(huán)境下語音信號采集以及時域、頻域分析;4)學會MATLAB的使用,掌握MATLAB的程序設計方法; 5)學會用MATLAB對信號進行分

3、析和處理。2. 設計要求:要掌握MATLAB編程基礎、數(shù)字信號處理知識、語音信號處理知識。二、設計原理:錄制一段自己的語音信號,對錄制的信號進行采樣;畫出采樣后語音信號的時域波形和頻譜圖;給定濾波器的性能指標,采matlab設計數(shù)字濾波器,并畫出濾波器的頻率響應;然后用自己設計的濾波器對采集的信號進行濾波,畫出濾波后信號的時域波形和頻譜,并對濾波前后的信號進行對比,分析信號的變化;回放語音信號。三、具體設計步驟1語音信號的采集 錄制一段自己的話音,或利用老師給的語音,在MATLAB軟件平臺下,利用函數(shù)wavread對語音信號進行采樣,記住采樣頻率和采樣點數(shù)。wavrecord(2*fs,fs)

4、 ;2語音信號的頻譜分析 要求畫出語音信號的時域波形;然后對語音號進行快速傅里葉變換,得到信號的頻譜特性。3設計數(shù)字濾波器,畫出其頻率響應曲線 各濾波器的性能指標: (1)低通濾波器性能指標(2)高通濾波器性能指標(3)帶通濾波器性能指標 (4)帶阻濾波器性能指標4用濾波器對信號進行濾波,比較濾波前后語音信號的波形及頻譜 要求用自己設計的各濾波器分別對采集的語音信號進行濾波,并在一個窗口同時畫出濾波前后的波形及頻譜。 IIR濾波器利用函數(shù)filter對信號進行濾波; FIR濾波器利用函數(shù)fftfilt對信號進行濾波。 回放語音信號 在MATLAB中,函數(shù)sound可以對聲音進行回放。其調用格式

5、:sound(x,fs,bits);可以感覺濾波前后的聲音有變化。 (選做)設計系統(tǒng)界面 為了使編制的程序操作方便,要求有能力的學生,設計處理系統(tǒng)的用戶界面。在所設計的系統(tǒng)界面上可以選擇濾波器的類型,輸入濾波器的參數(shù),顯示濾波器的頻率響應,選擇信號等。四、程序實現(xiàn)及實驗結果 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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論