介紹:
(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
的圖