介紹:
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5yNlZ2Y5gjMlBDOhJjMhVWOiJWO0MWOlRjYlFWO0QTZz8CX5d2bs92Yl1iclB3bsVmdlR2LcNWaw9CXt92Yu4GZjlGbh5yYjV3Lc9CX6MHc0RHaiojIsJye.png)
(1)C 和弦錄音存儲在一個名為 Cchord.mat 的檔案中。此檔案包含兩個變量:
y:錄音信号
fs:采樣頻率
此任務使用 numel 函數傳回數組中的元素數目。
任務:加載檔案 Cchord.mat。建立一個名為 n 的變量,表示 y 中的元素數目。然後使用 n 建立等間距向量 t,該向量以 0 開頭,以 n-1 結尾,元素之間的間距為 1。
t
現在有正确的點數,但它需要表示音頻信号的采樣時間。您可以使用采樣頻率 fs
将向量轉換為時間(以秒為機關)。
任務:将
t
除以 fs
。将輸出賦給同一個變量 t
。然後繪制 y
對 t
的圖。 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
将包含從
到
fs
的頻率。主頻位于
f
的開頭位置。您可以使用
xlim
函數放大所關注的區域。
xlim([xmin xmax])
任務: 将
f
乘以
fs/n
。将輸出賦給同一個變量
f
。 使用 x 的限值
和
1000
繪制
yfft
對
f
的圖