matlab快速入門(18):項目 音頻頻率


介紹:

 

 (1)C 和弦錄音存儲在一個名為 Cchord.mat 的文件中。此文件包含兩個變量:

  • y:錄音信號
  • fs:采樣頻率


此任務使用 numel 函數返回數組中的元素數目。

任務:加載文件  Cchord.mat。創建一個名為  n 的變量,表示  y 中的元素數目。然后使用  n 創建等間距向量  t,該向量以  0 開頭,以  n-1 結尾,元素之間的間距為  1

 

 (2)t 現在有正確的點數,但它需要表示音頻信號的采樣時間。您可以使用采樣頻率 fs 將向量轉換為時間(以秒為單位)。

任務:將  t 除以  fs。將輸出賦給同一個變量  t。然后繪制  y 對  t 的圖。

 (3)在繪圖中,請注意 y 是周期性的,但它不是簡單的正弦波。它由具有不同頻率的多個正弦波組成。傅里葉變換將返回信號的頻譜信息。主頻的位置將顯示和弦中包含的音符。

可以使用 fft 函數來計算向量的離散傅里葉變換。

fft(y)

fft 的輸出值為復數。您可以使用 abs 函數來獲得幅值。

任務: 創建一個名為 yfft 的變量,表示 y 的離散傅里葉變換的絕對值。

 (4)在任務 1 和 2 中,您已計算了信號 y 的時間向量 t。同樣,您需要為您的 FFT 向量 yfft 計算頻率向量 f

任務: 創建等間距向量 f,該向量以 0 開頭,以 n-1 結尾,元素之間的間距為 1

 

 (5)向量 f 現在包含 n 個點。要將這些點轉換為頻率,您可以將整個向量乘以采樣頻率 (fs),然后除以點數 (n)。

f 將包含從 0 到 fs 的頻率。主頻位於 f 的開頭位置。您可以使用 xlim 函數放大所關注的區域。

xlim([xmin xmax])
任務: 將 f 乘以 fs/n。將輸出賦給同一個變量 f 使用 x 的限值 0 和 1000 繪制 yfft 對 f 的圖

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM