freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

matlab音頻信號的分析與合成程序(已修改)

2025-05-26 18:43 本頁面
 

【正文】 1 第二講 MATLAB的 2. 1 腳本文件和函數(shù)文件 2. 2 函數(shù)調(diào)用和參數(shù)傳遞 2. 3 MATLAB的程序結(jié)構(gòu)和控制流 2. 4 M文件的調(diào)試 2. 5 程序設(shè)計實(shí)例 2. 5. 1 音頻信號的分析與合成 2. 5. 2 音頻頻譜分析儀 2. 5. 3 幅度調(diào)制 程序設(shè)計 2 2. 1 腳本文件和函數(shù)文件 2. 1. 1 M腳本文件 ? 對于一些比較簡單的問題 ,在指令窗中直接輸入指令計算 。 ? 對于復(fù)雜計算,采用腳本文件( Script file) 最為合適 。 ? MATLAB只是按文件所寫的指令執(zhí)行 。 ? M腳本文件的特點(diǎn)是: ? 腳本文件的構(gòu)成比較簡單,只是一串按用戶意圖排列而成的(包括控制流向指令在內(nèi)的) MATLAB指令集合。 ? 腳本文件運(yùn)行后 ,所產(chǎn)生的所有變量都駐留在 MATLAB基本工作空間 ( Base workspace) 中 。 只要用戶不使用清除指令( clear), MATLAB指令窗不關(guān)閉,這些變量將一直保存在 基本工作空間 中 。 M文件有兩種形式 : 腳本文件( Script File) 和函數(shù)文件( Function File )。 這兩種文件的擴(kuò)展名,均為“ . m” 。 3 2. 1 腳本文件和函數(shù)文件( 續(xù) 1) 2. 1. 2 M函數(shù)文件 ? 與腳本文件不同 ,函數(shù)文件猶如一個“黑箱”,把一些數(shù)據(jù)送進(jìn)并經(jīng)加工處理,再把結(jié)果送出來。 ? MATLAB提供的函數(shù)指令大部分都是由函數(shù)文件定義的。 ? M函數(shù)文件的特點(diǎn)是: ? 從形式上看 ,與腳本文件不同 ,函數(shù)文件的笫一行總是以 “ function”引導(dǎo)的“函數(shù)申明行”。 ?從運(yùn)行上看 ,與腳本文件運(yùn)行不同 ,每當(dāng)函數(shù)文件運(yùn)行, MATLAB就會專門為它開辟一個臨時工作空間,稱為 函數(shù)工作空間 ( Function workspace) 。當(dāng)執(zhí)行文件最后一條指令時 ,就結(jié)束該函數(shù)文件的運(yùn)行,同時該臨時函數(shù)空間及其所有的中間變量就立即被清除。 ? MATLAB允許使用比 “標(biāo)稱數(shù)目 ”較少的輸入輸出宗量,實(shí)現(xiàn)對函數(shù)的調(diào)用 。 4 2. 1 腳本文件和函數(shù)文件( 續(xù) 2) 2. 1. 3 M文件的一般結(jié)構(gòu) ? 由于從結(jié)構(gòu)上看 ,腳本文件只是比函數(shù)文件少一個“函數(shù)申明行”,所以只須描述清楚函數(shù)文件的結(jié)構(gòu) 。 ? 典型 M函數(shù)文件的結(jié)構(gòu)如下 : ? 函數(shù)申明行:位于函數(shù)文件的首行,以關(guān)鍵字 functio 開頭,函數(shù)名以及函數(shù)的輸入輸出宗量都在這一行被定義。 ? 笫一注釋行:緊隨函數(shù)申明行之后以 %開頭笫一注釋行。該行供 lookfor關(guān)鍵詞查詢和 help在線幫助使用 。 ? 在線幫助文本區(qū) :笫一注釋行及其之后的連續(xù)以 %開頭的所有注釋行構(gòu)成整個在線幫助文本。 ? 編寫和修改記錄:與在線幫助文本區(qū)相隔一個“空”行,也以 %開頭,標(biāo)志編寫及修改該 M文件的作者和日期等 。 ? 函數(shù)體:為清晰起見,它與前面的注釋以“空”行相隔。 例 2_2_1: M函數(shù)文件示例。 5 2. 2 函數(shù)調(diào)用和參數(shù)傳遞 2. 2. 1 局部變量和全局變量 ? 局部( Local) 變量:它存在于函數(shù)空間內(nèi)部的中間變量,產(chǎn)生于該函數(shù)的運(yùn)行過程中,其影響范圍也僅限于該函數(shù)本身 。 ? 全局( Global) 變量:通過 global 指令, MATLAB也允許幾個不同的函數(shù)空間以及基本工作空間共享同一個變量,這種被共享的變量稱為全局變量。 2. 2. 2 函數(shù)調(diào)用 ? 在 MATLAB中,調(diào)用函數(shù)的常用形式是: [輸出參數(shù) 1,輸出參數(shù) 2,…] = 函數(shù)名 (輸入?yún)?shù) 1,輸入?yún)?shù) 2, …) ? 函數(shù)調(diào)用可以嵌套,一個函數(shù)可以調(diào)用別的函數(shù),甚至調(diào)用它自己 (遞歸調(diào)用)。 6 2. 2 函數(shù)調(diào)用和參數(shù)傳遞( 續(xù)) 2. 2. 3 參數(shù)傳遞 ? MATLAB在函數(shù)調(diào)用上有一個與眾不同之處 :函數(shù)所傳遞的參數(shù)具有可調(diào)性 。 ? 傳遞參數(shù)數(shù)目的可調(diào)性來源于如下兩個 MATLAB永久變量: ? 函數(shù)體內(nèi)的 nargin 給出調(diào)用該函數(shù)時的輸入?yún)?shù)數(shù)目。 ? 函數(shù)體內(nèi)的 nargout 給出調(diào)用該函數(shù)時的輸出參數(shù)數(shù)目。 ? 只要在函數(shù)文件中包括這兩個變量,就可以知道該函數(shù)文件調(diào)用時的輸入?yún)?shù)和輸出參數(shù)數(shù)目。 ? 值得注意: nargin、 nargout 本身都是函數(shù) , 不是變量,所以用戶不能賦值,也不能顯示。 ? “變長度”輸入輸出宗量: varargin 、 varrgout。 具有接受 “任意多輸入 ” 、返回 “任意多輸出 ”的能力 。 ? 跨空間變量傳遞: evalin。 (參考 : circle .m, ) 7 2. 3 MATLAB的程序結(jié)構(gòu)和控制流 2. 3. 1 程序結(jié)構(gòu) ? 循環(huán)結(jié)構(gòu): MATLAB提供兩種循環(huán)方式。 ? 順序結(jié)構(gòu) ? 分支結(jié)構(gòu): if—else—end 。 for—end 循環(huán)和 whileend循環(huán)。 2. 3. 2 程序流控制 ? 常用指令: return, echo, input, pause, keyboard, break。 ? switchcase 結(jié)構(gòu)。 ? trycatch 結(jié)構(gòu)。 ? 警示指令: error, warning 。 8 2. 3 MATLAB的程序結(jié)構(gòu)和控制流( 續(xù)) 2. 3. 3 圖形用戶界面( GUI) 編程 ? 現(xiàn)代的主流應(yīng)用程序已經(jīng)從命令行的交互方式轉(zhuǎn)變?yōu)橐詧D形界面為主的交互方式,這主要是由于它給用戶帶來了操作和控制的方便與靈活性。 (面向?qū)ο缶幊蹋? ? MATLAB能夠以比較簡單的方式實(shí)現(xiàn)一系列的圖形界面功能。通過對控件、菜單屬性的設(shè)置和 Callback 的編寫,就能夠滿足大多數(shù)用戶的需求。 ? 控件的 Callback 屬性 : Callback 屬性的取值是字符串,可以是某個 M文件名或一小段 MATLAB語句 。 當(dāng)用戶激活控件對象(例如 :在控件對象圖標(biāo)上單擊鼠標(biāo)左鍵 )時,應(yīng)用程序就運(yùn)行 Callback 屬性定義的子程序。 ? 菜單的 Callback 屬性 : Callback 屬性的取值是字符串,可以是某個 M文件名或一小段 MATLAB語句 。 當(dāng)用戶激活菜單對象時,若沒有子菜單就運(yùn)行 Callback 屬性定義的子程序。若有,先運(yùn)行 Callback 屬性定義的子程序,再顯示子菜單。 9 2. 4 M文件的調(diào)試 ? 編寫 M文件時,錯誤( Bug) 在所難免。錯誤有兩種:語法( Syntax) 錯誤和運(yùn)行( Runtime) 錯誤。 ? 語法錯誤是指變量名、函數(shù)名的誤寫,標(biāo)點(diǎn)符號的缺、漏等。對于這類錯誤,通常能在運(yùn)行時發(fā)現(xiàn),終止執(zhí)行,并給出相應(yīng)的錯誤原因以及所在行號。 ? 運(yùn)行錯誤是算法本身引起的,發(fā)生在運(yùn)行過程中。相對語法錯誤而言,運(yùn)行錯誤較難處理 。尤其是 M函數(shù)文件,它一旦運(yùn)行停止,其中間變量被刪除一空,錯誤很難查找。 ? 有兩種調(diào)試方法:直接調(diào)試法和工具調(diào)試法。 10 2. 4 M文件的調(diào)試( 續(xù) 1) ? 直接調(diào)試法:可以用下面方法發(fā)現(xiàn)某些運(yùn)行錯誤。 ? 在 M文件中,將某些語句后面的分號去掉, 迫使 M文件輸出一些中間計算結(jié)果,以便發(fā)現(xiàn)可能的錯誤。 ? 在適當(dāng)?shù)奈恢?,添加顯示某些關(guān)鍵變量值的語句(包括使用 disp 在內(nèi))。 ? 利用 echo 指令,使運(yùn)行時在屏幕上逐行顯示文件內(nèi)容。echo on 能顯示 M腳本文件; echo FunNsme on 能顯示名為FunNsme 的 M函數(shù)文件。 ? 在原 M腳本或函數(shù)文件的適當(dāng)位置,增添指令 keyboard 。 keyboard 語句可以設(shè)置程序的斷點(diǎn) 。 ? 通過將原 M函數(shù)文件的函數(shù)申明行注釋掉,可使一個中間變量難于觀察的 M函數(shù)文件變?yōu)橐粋€所有變量都保留在基本工作空間中的 M腳本文件。 11 2. 4 M文件的調(diào)試( 續(xù) 2) ? GUI 界面調(diào)試法: MATLAB 版提供了一個基于 GUI界面的調(diào)試。使用它,可以對函數(shù)進(jìn)行調(diào)試。 ? Debug菜單的使用: Continue: 恢復(fù)程序運(yùn)行至結(jié)束或另一個斷點(diǎn) 。 Single Step: 單步執(zhí)行函數(shù)。 Step In: 深入下層局部工作區(qū) 。 Quit Debugging: 退出調(diào)試狀態(tài)。 Set/Clear Breakpoint: 設(shè)置 /清除光標(biāo)處的斷點(diǎn) 。 Clear All Breakpoints: 清除程序中的所有斷點(diǎn) 。 Stop if Error: 運(yùn)行至出錯或結(jié)束。 Stop if Warning: 運(yùn)行至警告消息或結(jié)束。 Stop if NaN of Inf: 運(yùn)行至運(yùn)算結(jié)果出現(xiàn) NaN 或 Inf。 12 2. 5 程序設(shè)計實(shí)例 2. 5. 1 音頻信號的分析與合成 (韓利竹 , ) ? 采用 MATLAB分析 WAV文件。 ? 步驟一:選擇一個 WAV文件作為分析的對象 。( ) ? 步驟二:讀 WAV文件數(shù)據(jù)并畫時域圖形 。 ? 步驟三:進(jìn)行 FFT變換 并畫頻域圖形 。 ? 步驟四:進(jìn)行該聲波主要頻譜的分析 。
點(diǎn)擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號-1