FFT 是什麼:脈診量化為什麼從這裡開始,又為什麼卡在這裡
學習資源 | 頻域分析入門
為什麼脈診研究繞不開 FFT
過去三十年,幾乎所有試圖量化脈診的研究團隊,都選了同一個數學工具:快速傅立葉轉換(FFT)。王唯工用它、郭育誠用它、大多數脈診儀的訊號處理管線裡都有它。這不是偶然——FFT 是目前已知最高效的方式,把一段複雜的波形壓縮成一組數字,讓統計比較成為可能。
但工具的選擇不是中性的。每個工具都有它的假設,假設之外的東西,它結構性地看不見。理解 FFT 在做什麼、不做什麼,是判斷所有頻域諧波分析研究的起點。
稜鏡:從混合到分解
白光穿過稜鏡,分解成彩虹——許多頻率的光混在一起,稜鏡把它們拆開,讓你看到每種頻率各有多強。
FFT 對脈搏波做的事一模一樣。從這裡開始,你需要先熟悉一個詞:頻率。
頻率,就是「每秒重複幾次」。心跳每秒約 1.2 次,這個 1.2 Hz 就是脈搏的基本頻率。聲音也是如此:鋼琴中央 A 每秒振動 440 次,即 440 Hz。
FFT 的兩個端點:
- 輸入:一段在時間上起伏的訊號(感測器記錄到的脈搏波)
- 輸出:一張頻譜圖——這段訊號裡,每個頻率各佔多少比重
稜鏡分解光的顏色,FFT 分解波形裡的週期性振動成分。
正弦波:頻率的基本單位
這裡有一個問題值得停下來想:分解成什麼形狀?
答案是正弦波。不是三角波,不是方波,不是其他形狀。這不是數學的任意選擇,而是因為正弦波有一個獨特性質:它是唯一只含有單一頻率的波形。
其他所有形狀,本身就已經是多個頻率的混合。方波看起來簡單,但 FFT 分析後,它其實是 1 Hz + 3 Hz + 5 Hz + 7 Hz + ……無窮多個奇數倍頻的疊加。鋸齒波也一樣。只有正弦波,FFT 只看到一根柱。
這就是為什麼用正弦波來做分解:它是頻率的「原子」,最小的純粹單位。把複雜波形拆成正弦波的組合,等於找出它「由哪些頻率建造」。
一個具體的例子:
用長笛和小提琴同時演奏 A4(440 Hz)。時域波形看起來完全不同——長笛接近平滑的正弦波,小提琴鋸齒狀粗糙。但兩者的 FFT 都會在 440 Hz 出現一根高柱。差別在於:長笛幾乎只有 440 Hz,小提琴還有 880 Hz、1320 Hz、1760 Hz……一排泛音(harmonics)。相同的音高,不同的音色,正是來自泛音比例的不同。
心跳波形和小提琴一樣,不是純正弦波,所以 FFT 分解後會出現基頻的整數倍——這些就是王唯工所說的 C1、C2、C3……諧波。
諧波:心跳波形的頻率組成
心率 72 bpm 時,基頻約 1.2 Hz。FFT 把脈搏波分解成基頻的整數倍:
| 諧波 | 頻率(72 bpm) | 王唯工理論的臟腑對應 |
|---|---|---|
| C0 | 0 Hz(直流分量) | — |
| C1 | 1.2 Hz(基頻) | 肝 |
| C2 | 2.4 Hz | 腎 |
| C3 | 3.6 Hz | 脾 |
| … | … | … |
| C10 | 12 Hz | — |
這張「各頻率的強度清單」就是諧波頻譜。王唯工理論的核心假設,是這些頻率分量可以對應中醫臟腑的共振能量。這個對應是否成立,是另一個問題——但不管對應成不成立,FFT 本身的數學性質已經決定了它能告訴你什麼、不能告訴你什麼。
注意:如果心率從 72 bpm 加快到 80 bpm,C1 的位置從 1.2 Hz 移到 1.33 Hz,所有諧波都跟著平移。同一個人,心率不同,諧波的頻率位置就不同。這讓跨時間點的比較變得複雜。
互動示範:波形是疊加,頻譜是拆解
下面的合成器做的事,是 FFT 的反方向——把分解後的諧波「加回去」,看它們如何疊成一條脈搏波形。這讓你親眼看到「頻率分解」的意思。
在你操作之前,先記住你要從這個示範理解的兩件事:
○ 複雜波形 = 多個正弦波的疊加 每條彩色細線是一個諧波(一個正弦波),白色粗線是它們全部加起來的總和。真實的脈搏波形就是這條白線。
○ 振幅決定頻譜,相位決定形狀——FFT 只看振幅 改變振幅(高度):白線形狀改變,頻譜柱也跟著高低變。 改變相位(左右平移):白線形狀大幅改變,但頻譜柱完全不動。 這是 FFT 的核心盲點:兩條看起來完全不同的脈搏波形,可能有完全相同的 FFT 頻譜。
試這三步:
- 點「純正弦波」:只有 C1 一條彩色線,白色總和與它完全重疊——最純粹的單頻率訊號
- 點「典型脈波」:C1–C8 同時出現,中段八條彩線各自振動,白線是它們的疊加總和——這就是多個諧波合成脈搏形狀的過程
- 把 C2 的「相位」滑桿向右拉:看白線形狀大幅改變——但下方頻譜的 C2 柱高度完全不動
諧波振幅(能量)— 拉動即更新頻譜與中段色線
諧波相位(時間偏移)— 改變波形但不改變頻譜
圖中各色細線是 C1–C8 各自的正弦波,白色粗線是它們的總和——也就是脈搏波形。FFT 做的事正好相反:從已知的白色波形,反推每條細線的高度(振幅)和左右位移(相位)。振幅對應頻譜柱的高度;相位決定波形細節形狀,卻不出現在 FFT 的輸出裡。
頻率解析度:截多長的訊號,決定你能分辨多細
FFT 有一個基本的數學限制:頻率解析度 = 1 ÷ 訊號長度(秒)。
這意味著什麼?
| 截取長度 | 頻率解析度 | 能分辨 C1 和 C2 嗎? |
|---|---|---|
| 1 秒 | 1 Hz | × 無法(C1 和 C2 相差 1.2 Hz,在 1 Hz 解析度下幾乎糊在一起) |
| 5 秒 | 0.2 Hz | △ 勉強 |
| 10 秒 | 0.1 Hz | ○ 清晰 |
看起來應該截愈長愈好。但這裡有一個脈診特有的困境:
10 秒的錄音裡,心率可能已經從靜息的 1.2 Hz 緩慢升到 1.3 Hz。C1 的位置在這 10 秒裡持續漂移,FFT 會把這個漂移疊加成一個展寬的模糊峰,而不是一根清晰的柱。訊號截愈長,頻率解析度理論上提高,但如果訊號本身不穩定,實際看到的頻譜反而更模糊。
這個矛盾——解析度需要長訊號,但長訊號讓非穩態問題惡化——是頻域脈診的核心工程困境之一,換更好的感測器解決不了它。
FFT 結構性地看不見什麼
FFT 有一個不可迴避的數學前提:它假設你分析的那段訊號,在整個觀測區間裡是穩定的、重複的。 它計算的是「這段時間裡,平均而言,各頻率成分各有多強」——本質上是一台時間平均機器。
這個前提帶來三個盲點,每一個都直接影響脈診的量化能力:
瞬時事件被平均掉
30 秒錄音裡有一次漏搏(心跳偶爾停了一拍),FFT 把這個瞬時異常均攤到整段時間,在頻譜上幾乎看不見。但中醫脈學的「結、代、促」脈——定義恰恰是瞬時的節律突變。FFT 對這類訊號結構性地失明。
波形的幾何形狀消失
每次心搏的波形有獨特的形狀:上升多快、主峰多寬、有沒有重搏切跡、下降多緩。如你在示範中看到的,改變相位不改變頻譜——這意味著 FFT 輸出相同頻譜的兩段波形,可能有截然不同的形狀細節。傳統脈象的弦、滑、細、澀,描述的恰恰是觸覺經驗中的「形狀」與「質地」。
分析的是整段,不是每一拍
FFT 輸出「這段錄音」的頻譜,不是「第 7 拍」或「深呼吸後那幾拍」的頻譜。如果你想知道某個特定瞬間的脈象變化,FFT 只能告訴你整段的平均。
錯位:脈搏不是 FFT 最適合的訊號
問題不是 FFT 本身壞——對穩定週期訊號,它是最好的工具之一。問題是脈搏不是穩定週期訊號。每一搏都受神經、體液、情緒的即時調節,是非線性的、動態的、逐拍變化的。FFT 假設它是穩定的、均質的。
這個錯位不是工程問題。換更好的感測器、收更大的樣本、提高採樣率——都不會讓 FFT 開始看見它數學上看不見的東西。
更準確地說,選擇用 FFT 來分析脈搏,本身就是一個理論決定——你假設脈搏的本質可以用「頻率成分的強弱」來描述。這不是中性的觀察,而是一種理論投射:把一個多維的生理現象(形狀、節律、深淺、質地),壓縮到頻率空間裡的一組數字。投射過程中丟失的資訊,不是分析精度能補回來的——那些資訊從數學上就不存在於 FFT 的輸出中。
小結
| FFT 的假設 | 脈搏的實際性質 | |
|---|---|---|
| 穩定性 | 訊號在觀測區間內平穩 | 逐拍變化,受即時調節 |
| 週期性 | 嚴格的週期重複 | 有節律但非嚴格週期 |
| 輸出維度 | 頻率能量分布(一維) | 形狀、質地、深淺、節律(多維) |
| 時間解析度 | 整段平均 | 臨床關注瞬時事件 |
| 相位資訊 | 存在但通常不報告 | 決定波形形狀細節 |
FFT 是脈診量化的起點——它讓「把脈搏變成數字」第一次成為可能。但它也是一個有明確邊界的工具。帶著這張表,再去閱讀頻域諧波分析的研究文獻,你會更容易看出每篇研究的假設藏在哪裡,以及它的結論能走多遠。
頻域諧波能描述多少傳統脈象?這兩套語言的座標軸是否平行?這是下一個值得追問的問題。
延伸閱讀
- 頻域諧波與傳統脈象:兩套描述系統的根本差異——即使 FFT 完全精確,諧波能量和浮沉弦滑之間的座標軸也不平行
- 頻域脈診的三個物理瓶頸——FFT 應用於脈診的結構性問題,從物理層面展開
- 血液循環共振理論(二):三十年的文獻,為什麼沒有成為科學脈診的主軸?——40 篇研究的文獻整理,這條路走到哪裡
- 頻域諧波分析常見問答——演算法、AI、臟腑對應、臨床定位的 12 個核心問題
本文為 TCMpulse 學習資源系列。如有勘誤或補充,歡迎透過 contact@tcmpulse.com 聯絡。