跳到主要內容
脈
學習資源 · · HH · 8 分鐘閱讀 · 简体
16px

FFT 是什麼:脈診量化為什麼從這裡開始,又為什麼卡在這裡

目錄 13 節

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)王唯工理論的臟腑對應
C00 Hz(直流分量)
C11.2 Hz(基頻)
C22.4 Hz
C33.6 Hz
C1012 Hz

這張「各頻率的強度清單」就是諧波頻譜。王唯工理論的核心假設,是這些頻率分量可以對應中醫臟腑的共振能量。這個對應是否成立,是另一個問題——但不管對應成不成立,FFT 本身的數學性質已經決定了它能告訴你什麼、不能告訴你什麼。

注意:如果心率從 72 bpm 加快到 80 bpm,C1 的位置從 1.2 Hz 移到 1.33 Hz,所有諧波都跟著平移。同一個人,心率不同,諧波的頻率位置就不同。這讓跨時間點的比較變得複雜。


互動示範:波形是疊加,頻譜是拆解

下面的合成器做的事,是 FFT 的反方向——把分解後的諧波「加回去」,看它們如何疊成一條脈搏波形。這讓你親眼看到「頻率分解」的意思。

在你操作之前,先記住你要從這個示範理解的兩件事:

○ 複雜波形 = 多個正弦波的疊加 每條彩色細線是一個諧波(一個正弦波),白色粗線是它們全部加起來的總和。真實的脈搏波形就是這條白線。

○ 振幅決定頻譜,相位決定形狀——FFT 只看振幅 改變振幅(高度):白線形狀改變,頻譜柱也跟著高低變。 改變相位(左右平移):白線形狀大幅改變,但頻譜柱完全不動。 這是 FFT 的核心盲點:兩條看起來完全不同的脈搏波形,可能有完全相同的 FFT 頻譜。

試這三步:

  1. 點「純正弦波」:只有 C1 一條彩色線,白色總和與它完全重疊——最純粹的單頻率訊號
  2. 點「典型脈波」:C1–C8 同時出現,中段八條彩線各自振動,白線是它們的疊加總和——這就是多個諧波合成脈搏形狀的過程
  3. 把 C2 的「相位」滑桿向右拉:看白線形狀大幅改變——但下方頻譜的 C2 柱高度完全不動
脈波諧波合成器
上方白線 = 各色諧波加總 | 下方柱狀圖 = FFT 輸出(振幅)
心率 72 bpm

上方白線 = 合成脈波(各諧波之和) 中段彩線 = 各諧波獨立正弦波(每列獨立縮放,頻率差異為重點) 下方柱狀 = 頻譜(= FFT 振幅輸出)

諧波振幅(能量)— 拉動即更新頻譜與中段色線

諧波相位(時間偏移)— 改變波形但不改變頻譜

圖中各色細線是 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 是脈診量化的起點——它讓「把脈搏變成數字」第一次成為可能。但它也是一個有明確邊界的工具。帶著這張表,再去閱讀頻域諧波分析的研究文獻,你會更容易看出每篇研究的假設藏在哪裡,以及它的結論能走多遠。

頻域諧波能描述多少傳統脈象?這兩套語言的座標軸是否平行?這是下一個值得追問的問題。


延伸閱讀


本文為 TCMpulse 學習資源系列。如有勘誤或補充,歡迎透過 contact@tcmpulse.com 聯絡。

常見問題

FFT 是什麼?
FFT(Fast Fourier Transform,快速傅立葉轉換)是一種數學工具,能把一段隨時間變化的訊號分解成不同頻率的正弦波組合,並計算各頻率成分的能量大小。對脈搏訊號來說,FFT 能把每次心跳的波形壓縮成 C1、C2……C10 等諧波的能量數值,方便統計比較。
FFT 的頻率解析度是什麼意思?
頻率解析度 = 1 ÷ 訊號長度(秒)。截取 1 秒的脈搏,頻率解析度是 1 Hz——相差 1 Hz 以內的兩個頻率根本無法分辨。截取 10 秒,解析度提升到 0.1 Hz,才能清楚分辨 C1(1.2 Hz)與 C2(2.4 Hz)。但問題是:10 秒內心率往往已經變了,FFT 得到的只是這段時間的模糊平均。
把 FFT 用在脈搏訊號上,有什麼根本的限制?
FFT 可以用在脈搏訊號上,但有一個結構性的前提:它假設輸入訊號是平穩的(均值和統計特性不隨時間改變)。脈搏受呼吸、情緒、血管張力即時調控,每個心跳週期的波形都略有不同,是典型的非平穩訊號。對非平穩訊號做 FFT,得到的是時間平均的頻譜估計——不是脈搏在任一瞬間的頻率組成,而是整段測量期間的平均概況。這不是說 FFT 在這裡沒有用,而是說它能回答的問題比表面看起來窄一些。

本文為 TCMpulse.com 學習資源系列。如有勘誤,歡迎透過 contact@tcmpulse.com 聯絡。

訂閱 TCMpulse

新文章發布時收到通知,不漏接脈診科學的最新進展。

無垃圾郵件,隨時取消。

TCMpulse.com 沒有廣告,沒有付費牆。如果這些文章對你有幫助,就請我喝杯好茶吧!

Buy me a coffee