
由此程式碼驗證得知 "快速傅立葉轉換" 再進行 "快速傅立葉反轉換" 後的數據 (音波) 將保持不變。
y = wavread('E:\2.音樂\onj001.wav');
s = fft(y); % 快速傅立葉轉換
f = abs(s); % 取絕對值
黃彥霖 發表在 痞客邦 留言(1) 人氣(15,792)

本範例使用外部 wav 音樂檔來進行 FFT (快速傅立葉轉換)
y = wavread('E:\2.音樂\onj001.wav');
s = abs(fft(y));
subplot(2,1,1), plot(s); % 顯示頻譜
subplot(2,1,2), plot(y); % 顯示波形
黃彥霖 發表在 痞客邦 留言(1) 人氣(13,268)

1. 最簡單的寫法 (單引號 的地方為 wav 路徑,而 44100 代表頻率):
y = wavread('E:\2.音樂\onj001.wav');
sound(y, 44100);
2. 自動取得頻率寫法:
[y, hz] = wavread('E:\2.音樂\onj001.wav');
sound(y, hz);
3. 畫波形 (未設定 X 軸時間):
[y, hz] = wavread('E:\2.音樂\onj001.wav');
sound(y, hz);
plot(y);
4. 畫波形 (設定 X 軸時間為 "秒" 單位):
[y, hz] = wavread('E:\2.音樂\onj001.wav');
sound(y, hz);
time = (1 : length(y) ) / hz;
plot(time, y);
黃彥霖 發表在 痞客邦 留言(0) 人氣(5,330)
以下為 迴圈 跑 5 次 的 範例程式,fprintf 用法就像 C 語言 的 printf 用法一樣
,所以中間的 %d 也是代表 "整數" 的意思。
1 : 5 代表 1 累加到 5 間,累加數量為 1 (預設)
1 : 0.5 : 5 代表 1 累加到 5 間,累加數量為 0.5 (自訂)
程式碼:
for i = 1 : 5
fprintf ('現在執行第 %d 次 \n', i);
end
輸出結果:
黃彥霖 發表在 痞客邦 留言(1) 人氣(13,727)