- 1、本文档共24页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
matlab声音
* * * * * * * * * * * * * * * * * * MATLAB 程式設計:音訊讀寫、錄製與播放 音訊讀寫、錄製與播放 方煒 台大生機系 音訊的基本介紹 聲音訊號簡稱音訊,泛指由人耳聽到的各種聲音的訊號。音訊的基本特質如下: 音量(Volume):聲音的大小稱為音量,又稱為力度、強度(Intensity)或是能量(Energy)。音量越大,音訊波形震幅越大。 音高(Pitch):聲音的基本頻率(Fundamental Frequency)越高,代表音高越高(例如女高音的歌聲);反之,聲音的基本頻率越低,代表音高越低(例如男低音的歌聲)。 音色(Timber):音訊波形在每個週期內的變化,就形成了此音訊的音色。不同的音色即代表不同的音訊內容,例如不同的字有不同的發音,不同的歌手有不同的特色,這些都是由於音色不同而產生。 WAV檔案的讀取 範例1 讀取檔案 welcome.wav,畫出音訊的波形並播放出此音訊。 範例1: readWave01.m [y, fs]=wavread(welcome.wav); sound(y, fs); % 播放此音訊 time=(1:length(y))/fs; % 時間軸的向量 plot(time, y); % 畫出時間軸上的波形 執行結果:歡迎光臨波形圖 WAV檔案的讀取 範例2 若要知道 welcome.wav 的取樣點是由多少個位元來表示,可使用 [y, fs, nbits] = wavread(‘welcome.wav’)。若要知道音訊長度,則可使用 length(y)/fs。 以下範例可以印出音訊檔 welcome.wav 的相關資訊。 範例2: readWave02.m fileName=welcome.wav; [y, fs, nbits]=wavread(fileName); fprintf(音訊檔案 %s 的資訊:\n, fileName); fprintf(音訊長度 = %g 秒\n, length(y)/fs); fprintf(取樣頻率 = %g 取樣點/秒\n, fs); fprintf(解析度 = %g 位元/取樣點\n, nbits); 範例2執行結果: 音訊檔案 welcome.wav 的資訊: 音訊長度 = 1.45134 秒 取樣頻率 = 11025 取樣點/秒 解析度 = 8 位元/取樣點 WAV檔案的讀取 範例3 wav 檔案的 8 位元是以 unsigned integer的方式來儲存,因此所能表示的數值是介於 0 和 255 之間,MATLAB 再將此值設定至變數 y 時,會自動將其數值調整至介於 –1 和 1 之間,因此若要將 MATLAB 讀出之數值轉回原先 8 位元所表示之數值,只要將變數 y 乘以 128,再加上 128,就可以得到原先的整數值。 範例3: readWave03.m difference = 0 fileName=welcome.wav; [y, fs, nbits]=wavread(fileName); y0=y*(2^nbits/2)+(2^nbits/2); % y0 是原先儲存在音訊檔案中的值 difference=sum(abs(y0-round(y0))) WAV檔案的讀取 範例4 wavread 也可以讀取雙聲道或立體聲(Stereo)的音訊檔案,此時傳回的變數為具有兩直行的陣列,每一直行代表一個聲道的音訊。 範例4: readWave04.m fileName=flanger.wav; [y, fs]=wavread(fileName); % 讀取音訊檔 sound(y, fs); % 播放音訊 left=y(:,1); % 左聲道音訊 right=y(:,2); % 右聲道音訊 subplot(2,1,1), plot((1:length(left))/fs, left); subplot(2,1,2), plot((1:length(right))/fs, right); WAV檔案的讀取 範例4 此範例會讀取雙聲道的音訊檔 flanger.wav,播放此雙聲道的音訊,並畫出兩個聲道的音訊波形如下: WAV檔案的讀取 範例5 如果音訊檔案很大,無法一次讀入記憶體,我們也可以使用 wavread 來讀出音訊檔的其中一部份。 範例5: readWave05.m [y,fs]=wavread(welcome.wav, [4001 5000]); % 讀取第4001至5000點 figure; plot(y) WAV檔案的讀取 範例5 畫出之圖形如下: WAV檔案的讀取 範例6 若要取得 wav 檔案的更多資訊,可
您可能关注的文档
- 第二十章圆教材分析2009年9月3日.doc
- 3D机械手应用 中国语2.pdf
- 第十一章 标高投影(二).ppt
- 虚拟设计环境建立与OpenGL 和VRML.pdf
- 工程制图-2-点的投影-新.ppt
- 建筑识图与制图ppt详解.ppt
- 第二讲 水工建筑中的常见曲面(二).ppt
- 凡事没有失败,只有暂时停止成功.ppt
- 工程图学课件 第二章.ppt
- Keil uVision使用说明(LKMCU).pdf
- 有限样本空间与随机事件-2024-2025学年高一数学人教A版2019必修第一册.pptx
- 2026届高考语文背诵补充篇目—《菩萨蛮》课件.pptx
- 2026年高考语文复习+信息类文本+迁移运用新观点.pptx
- 空间向量及其线性运算(培优教学课件)数学人教A版2019选择性必修第一册.pptx
- 第8课时 事件的相互独立性、条件概率与全概率公式-2026年高考数学一轮复习.pptx
- 第02讲+常用逻辑用语(复习课件)(全国通用).pptx
- 论述类文本+逻辑推断题+2026年高考语文备考.pptx
- 关于学校疫情期间活动方案.pptx
- 关于主题班会的策划设计方案.pptx
- 乳头过长的临床护理.pptx
文档评论(0)