| Frequency in hertz (semitones above or below middle C) | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Octave→ Note↓ |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| C | 16.352 (−48) | 32.703 (−36) | 65.406 (−24) | 130.81 (−12) | 261.63 (0) | 523.25 (+12) | 1046.5 (+24) | 2093.0 (+36) | 4186.0 (+48) | 8372.0 (+60) |
| C♯/D♭ | 17.324 (−47) | 34.648 (−35) | 69.296 (−23) | 138.59 (−11) | 277.18 (+1) | 554.37 (+13) | 1108.7 (+25) | 2217.5 (+37) | 4434.9 (+49) | 8869.8 (+61) |
| D | 18.354 (−46) | 36.708 (−34) | 73.416 (−22) | 146.83 (−10) | 293.66 (+2) | 587.33 (+14) | 1174.7 (+26) | 2349.3 (+38) | 4698.6 (+50) | 9397.3 (+62) |
| D♯/E♭ | 19.445 (−45) | 38.891 (−33) | 77.782 (−21) | 155.56 (−9) | 311.13 (+3) | 622.25 (+15) | 1244.5 (+27) | 2489.0 (+39) | 4978.0 (+51) | 9956.1 (+63) |
| E | 20.602 (−44) | 41.203 (−32) | 82.407 (−20) | 164.81 (−8) | 329.63 (+4) | 659.26 (+16) | 1318.5 (+28) | 2637.0 (+40) | 5274.0 (+52) | 10548 (+64) |
| F | 21.827 (−43) | 43.654 (−31) | 87.307 (−19) | 174.61 (−7) | 349.23 (+5) | 698.46 (+17) | 1396.9 (+29) | 2793.8 (+41) | 5587.7 (+53) | 11175 (+65) |
| F♯/G♭ | 23.125 (−42) | 46.249 (−30) | 92.499 (−18) | 185.00 (−6) | 369.99 (+6) | 739.99 (+18) | 1480.0 (+30) | 2960.0 (+42) | 5919.9 (+54) | 11840 (+66) |
| G | 24.500 (−41) | 48.999 (−29) | 97.999 (−17) | 196.00 (−5) | 392.00 (+7) | 783.99 (+19) | 1568.0 (+31) | 3136.0 (+43) | 6271.9 (+55) | 12544 (+67) |
| G♯/A♭ | 25.957 (−40) | 51.913 (−28) | 103.83 (−16) | 207.65 (−4) | 415.30 (+8) | 830.61 (+20) | 1661.2 (+32) | 3322.4 (+44) | 6644.9 (+56) | 13290 (+68) |
| A | 27.500 (−39) | 55.000 (−27) | 110.00 (−15) | 220.00 (−3) | 440.00 (+9) | 880.00 (+21) | 1760.0 (+33) | 3520.0 (+45) | 7040.0 (+57) | 14080 (+69) |
| A♯/B♭ | 29.135 (−38) | 58.270 (−26) | 116.54 (−14) | 233.08 (−2) | 466.16 (+10) | 932.33 (+22) | 1864.7 (+34) | 3729.3 (+46) | 7458.6 (+58) | 14917 (+70) |
| B | 30.868 (−37) | 61.735 (−25) | 123.47 (−13) | 246.94 (−1) | 493.88 (+11) | 987.77 (+23) | 1975.5 (+35) | 3951.1 (+47) | 7902.1 (+59) | 15804 (+71) |
FFT頻譜分析原理
采樣定理:采樣頻率要大於信號頻率的兩倍。
N個采樣點經過FFT變換后得到N個點的以復數形式記錄的FFT結果。
假設采樣頻率為Fs,采樣點數為N。那么FFT運算的結果就是N個復數(或N個點),每一個復數就對應着一個頻率值以及該頻率信號的幅值和相位。第一個點對應的頻率為0Hz(即直流分量),最后一個點N的下一個點對應采樣頻率Fs。其中任意一個采樣點n所代表的信號頻率:
Fn=(n-1)*Fs/N。
這表明,頻譜分析得到的信號頻率最大為(N-1)*Fs/N,對頻率的分辨能力是Fs/N。采樣頻率和采樣時間制約着通過FFT運算能分析得到的信號頻率上限,同時也限定了分析得到的信號頻率的分辨率。
每一個復數的模值對應該點所對應的頻率值的幅度特性,具體的定量關系如下:
假設信號由以下周期的原始信號疊加而成:
Y = A1 + A2 Cos (2*PI*ω2*t + φ2 * PI/180) + A3 Cos (2*PI*ω3*t + φ3 * PI/180)
那么,在經過FFT分析后得到的第一個點的模值是A1的N倍,而且只有在FFT結果點對應的頻率在ω2,ω3時,其模值才明顯放大,在其他頻率點,模值接近於0。在這些模值明顯放大的點中,除第一個點之外的其它點模值是相應信號幅值的N/2倍。
每個復數的相位就是在該頻率值下信號的相位:φ2,φ3。
FFT結果有對稱性,通常我們只是用前半部分的結果,也就是小於采樣頻率一半的結果。同時也只有采樣頻率一半以內、具有一定幅值的信號頻率才是真正的信號頻率。
Python實踐FFT頻譜分析
假如信號S是有1個直流信號和4個周期信號疊加而成,如下公式所列(t為自變量,pi為圓周率值)現要對其進行FFT分析並繪制頻譜圖。
S = 2.0 + 3.0 * cos(2.0 * pi * 50 * t - pi * 30/180)
+ 1.5 * cos(2.0 * pi * 75 * t + pi * 90/180)
+ 1.0 * cos(2.0 * pi * 150 * t + pi * 120/180)
+ 2.0 * cos(2.0 * pi * 220 * t + pi * 30/180)
我們先使用Python繪制其1秒內的波形圖:
import numpy as np
import pylab as pl
import math
# 采樣步長
t = [x/1048.0 for x in range(1048)]
# 設計的采樣值
y = [2.0 + 3.0 * math.cos(2.0 * math.pi * 50 * t0 - math.pi * 30/180)
+ 1.5 * math.cos(2.0 * math.pi * 75 * t0 + math.pi * 90/180)
+ 1.0 * math.cos(2.0 * math.pi * 150 * t0 + math.pi * 120/180)
+ 2.0 * math.cos(2.0 * math.pi * 220 * t0 + math.pi * 30/180)
for t0 in t ]
pl.plot(t,y)
pl.show()
