国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于MATLAB·GUI的音頻文件播放器

2018-02-27 13:29:44王濤田述珍陳丁王志雄周慧
電腦知識與技術(shù) 2018年35期
關(guān)鍵詞:人機交互

王濤 田述珍 陳丁 王志雄 周慧

摘要:基于MATLAB GUI的音頻文件播放器的設(shè)計是隨著社會大數(shù)據(jù)化提出的,Matlab軟件是一種有效的分析工具,在數(shù)據(jù)分析時能使用一種快速、簡捷、高效的軟件進行數(shù)據(jù)處理工作。MATLAB如今已成為世界上最流行的科技應(yīng)用軟件之一,可以把使用者從繁雜、無聊的編程中解救出來,以便能夠有更多的時間來學(xué)習(xí)其他專業(yè)領(lǐng)域。該項目利用Matlab強大的仿真功能和數(shù)據(jù)分析功能,通過Matlab·GUI界面進行音頻播放器的設(shè)計。利用GUI界面設(shè)計的播放器具有音頻播放、暫停、變速、多音頻播放等功能。

關(guān)鍵詞:M文件;MATLAB/GUI;人機交互;數(shù)據(jù)分析處理

中圖分類號:TP37? ? ? 文獻標(biāo)識碼:A? ? ? 文章編號:1009-3044(2018)35-0207-02

Abstract: The design of the audio file player Based on MATLAB GUI is proposed with the big data of society. Matlab software is an effective analysis tool, and can use a fast, simple and efficient software for data processing when analyzing data. MATLAB has now become one of the most popular technology applications in the world, saving users from complicated and boring programming so that they can have more time to learn other professional fields. This project uses Matlab's powerful simulation function and data analysis function to design audio player through Matlab GUI interface. The player designed using the GUI interface has music playback, pause, fast forward, fast retreat, multiple audio playback and other functions.

Key words: M file; MATLAB/GUI; human-computer interaction; data analysis and processing

1 背景

MATLAB是一款商業(yè)數(shù)學(xué)軟件,主要用于算法開發(fā)、數(shù)據(jù)可視化、數(shù)據(jù)分析以及數(shù)值計算的高級技術(shù)計算語言和交互式環(huán)境,包括GUI和Simulink兩大部分,具有完備的圖形處理和仿真功能。

2 基于M文件的音頻設(shè)計

2.1 MATLAB播放音頻的前提

首先是獲取一段音頻,由于MATLAB自身內(nèi)存的局限性,獲取的音頻不能很大。那么如何來獲取一段音頻呢?我們通過錄音來獲取,然后將其進行保存。實現(xiàn)代碼如下:

開始錄音:

record(handles.recObj);

結(jié)束錄音:

stop(handles.recObj);

2.2 播放錄音

獲取錄音數(shù)據(jù)通過getaudiodata函數(shù)來實現(xiàn)雙通道的波形數(shù)據(jù),通過audioplayer函數(shù)來實現(xiàn)播放功能。

代碼如下:

handles.myRecording = getaudiodata(handles.recObj);

handles.playObj=audioplayer(handles.myRecording,handles.playSpeed*handles.recObj.SampleRate);

play(handles.playObj);

guidata(hObject, handles);

2.3 保存錄音

通過uiputfile函數(shù)來保存文件,而真正保存波形文件的是audiowrite函數(shù)。

代碼如下:

[file,path] = uiputfile(['soundDemo_Speed' num2str(handles.playSpeed) '.wav'],'Save recorded sound');

if file

audiowrite([path'\'file],handles.myRecording,handles.playSpeed*handles.recObj.SampleRate)

end

2.4 波形顯示

通過RecDisplay函數(shù)來實現(xiàn)波形顯示功能,通過getaudiodata函數(shù)獲取當(dāng)前錄音的波形數(shù)據(jù),然后用plot函數(shù)在畫布里面繪制波形圖,最后通過drawnow函數(shù)加速圖形刷新,設(shè)置刷新頻率較快時可以運用此函數(shù)。

代碼如下:

function RecDisplay(hObject, eventdata,handles)

%handles

handles.myRecording = getaudiodata(handles.recObj);

axes(handles.axes1)

plot((1:length(handles.myRecording))/handles.recObj.SampleRate,handles.myRecording)

drawnow;

3 基于GUI的音頻設(shè)計

在MATLAB提供的GUI上利用MATLAB語言構(gòu)建框架并編寫核心代碼是一種明智的選擇。不但減少了編寫代碼繁重的工程量,而且制作出的軟件具有界面良好和方便進行各種數(shù)據(jù)處理及圖像分析等特點。GUI程序是在圖形界面下創(chuàng)建于用戶交互的控件,使用戶可以通過操作這些交互控件實現(xiàn)特定的功能,并且可以返回顯示在程序界面相應(yīng)的結(jié)果顯示區(qū)域中。該項目通過GUI進行音頻的設(shè)計來說明GUI的功能和使用。

3.1 總體界面的設(shè)計

根據(jù)界面的顯示,通過GUI各功能鍵設(shè)計了運行界面,其總體設(shè)計包括錄音模塊、播放模塊、關(guān)閉模塊、變速、多頻播放模塊。如圖1、2、3、4、5、6。

3.2 部分按鈕代碼實現(xiàn)

3.2.1 多頻功能實現(xiàn)

通過設(shè)置一個radiobutton 鍵來實現(xiàn)多頻的功能,當(dāng)點擊該按鈕時,增加它的頻率分量,使其含有豐富的頻率分量。通過設(shè)置一個全局變量,當(dāng)選中該控件時,全局變量的值改變,程序代碼如下:

Global r;

r=get(handles.duopin,value);? ? %多頻的按鈕是否選中

3.2.2 主界面退出窗口

通過設(shè)置一個pushbutton鍵來實現(xiàn),在該鍵callback下,編寫回調(diào)函數(shù)。程序如下:

ss=questdlg('你真的要退出嗎?','退出信息窗口!','不,我還想看看!','是的,我要退出!','是的,我要退出!');

switch ss

case '是的,我要退出!'

delete(handles.figure1);

end

%當(dāng)按下退出按鈕時,得到一個退出信息窗口提示

4 結(jié)束語

Matlab不但具有強大的圖形顯示功能,而且具有豐富的人機交互界面設(shè)計的功能,通過Matlab中的GUI,可以進行已有的M文件的仿真,又能通過人機交互的方式顯示仿真結(jié)果。在GUI設(shè)計時,可以將設(shè)計的GUI界面保存為fig文件,與此同時生成相應(yīng)的M文件,便于用戶隨時進行編輯處理。利用Matlab/GUI進行界面設(shè)計可以為用戶提供友好、方便、形象的圖形顯示和數(shù)據(jù)分析處理,方便用戶使用。

參考文獻:

[1] 王肖霞,楊風(fēng)暴,袁華. 利用MATLAB創(chuàng)建用戶界面[J]. 腦開發(fā)與應(yīng)用, 2007(1).

[2] 鄭阿奇. Matlab實用教程[M]. 北京:北京電子工業(yè)出版社, 2012.

[3] 徐明遠(yuǎn),邵玉斌. Maatlab仿真在通信與電子工程中的應(yīng)用[M]. 西安:西安電子科技大學(xué)出版社, 2009.

[4] 施曉紅,周佳. 精通GUI圖形界面編程[M]. 北京:北京大學(xué)出版社, 2003.

[5] 馮建元. 音頻播放器的架構(gòu)分析與關(guān)鍵技術(shù)的實現(xiàn)[J].計算機與網(wǎng)絡(luò), 2009(20).

[6] 段鳳云. 基于ARM的數(shù)字音頻播放器的設(shè)計[J].實驗室科學(xué), 2010(6).

[7] 劉林濤,田慧珍. 基于Authorware的wave音頻播放器的設(shè)計[J].電腦知識與技術(shù), 2006(29).

[8] 仲麟. MATLAB仿真技術(shù)與應(yīng)用教程[M].北京: 國防工業(yè)出版社, 2004.

[9] 張亮, 王繼陽. MATLAB與C/C++混合編程[M].北京: 人民郵電出版社, 2008.

[10] Sanjit K Mitra.數(shù)字信號處理——基于計算機的方法[M]. 2版.孫洪, 余翔宇, 譯. 北京: 電子工業(yè)出版社, 2005.

[通聯(lián)編輯:謝媛媛]

猜你喜歡
人機交互
某型柴油機虛擬維修系統(tǒng)研究
基于虛擬現(xiàn)實技術(shù)的九江城市交通事故模擬系統(tǒng)設(shè)計
人機交互課程創(chuàng)新實驗
計算機教育(2016年7期)2016-11-10 09:01:27
人形交互式服務(wù)機器人研究現(xiàn)狀及發(fā)展趨勢
多點噪聲遠(yuǎn)程自動采集系統(tǒng)設(shè)計
一種靜態(tài)手勢數(shù)字識別的實現(xiàn)及應(yīng)用
赣榆县| 安多县| 延津县| 太康县| 裕民县| 宁乡县| 江油市| 舒兰市| 建德市| 竹北市| 民权县| 黄浦区| 乃东县| 读书| 通江县| 盐源县| 巍山| 萝北县| 沭阳县| 清徐县| 南城县| 吉安市| 全椒县| 嘉定区| 丰原市| 雷波县| 东至县| 廊坊市| 浦江县| 萝北县| 凤翔县| 隆子县| 鸡西市| 理塘县| 交口县| 乌恰县| 光山县| 石屏县| 彭水| 恩施市| 老河口市|