5D Library › 神经递质与内分泌的动力系统 · English
第五章 迷走神经、心率变异性与呼吸谐振
心跳并不均匀
健康人静息时,相邻两次心跳之间的间隔(RR 间期)不断变化。吸气时心率略快,呼气时略慢,这叫呼吸性窦性心律不齐(RSA)。它主要由迷走神经对窦房结的作用随呼吸周期变化造成,所以常被用来间接反映心脏迷走神经的活动;但它也受呼吸频率和深度的影响,并不是迷走「张力」的纯粹测量 (Grossman and Taylor 2007)。
心率变异性(HRV)有许多指标。最常用的两个:SDNN 是一段时间内所有 RR 间期的标准差,反映各种快慢波动的总和;RMSSD 是相邻 RR 间期之差的均方根,主要反映快速的、逐拍的变化,被认为是迷走神经影响心脏的较好的时域指标 (Shaffer and Ginsberg 2017; Laborde et al. 2017)。
为什么是每分钟六次
证据
瓦西洛(Vaschillo)等人发现,当人以大约每分钟 6 次(约 0.1 赫兹)的频率呼吸时,心率的波动幅度达到最大,远大于自然呼吸时;最大值所在的确切频率因人而异。他们用压力反射回路的共振来解释这一现象 (Vaschillo et al. 2006)。
证据
莱勒(Lehrer)与格维尔茨(Gevirtz)的解释是:心率与血压通过压力反射形成闭环。心率升高使血压升高,压力感受器感知后,经过几秒的延迟使心率降低;这个回路有固有的延迟,因而有固有的共振频率,约在 0.1 赫兹。以这个频率呼吸,呼吸对心率的推动与压力反射的修正同相,波动被放大 (Lehrer and Gevirtz 2014)。
推导
压力反射回路的简化模型:呼吸推动心率;血压以 2 秒的血管时滞跟随心率;压力反射在 3.5 秒延迟后以增益 0.8 反向修正心率。用频率响应解析计算心率波动的放大倍数,并用逐步数值模拟核对。参数为示意值。
# Why slow breathing near 6 breaths/min enlarges heart-rate oscillations: a delayed negative-feedback
# loop (simplified model of the baroreflex, after the resonance account of Vaschillo et al. 2006).
# Breathing pushes heart rate (respiratory sinus arrhythmia); blood pressure follows heart rate with a
# vascular lag; the baroreflex corrects heart rate after a delay. When the loop's total lag equals half a
# breathing cycle, the correction arrives in step with the next push and the swings add up.
import cmath, math
G, DELAY, TAU_V = 0.8, 3.5, 2.0 # loop gain, reflex delay (s), vascular lag (s): illustrative values
def gain(f):
w = 2 * math.pi * f
loop = G * cmath.exp(-1j * w * DELAY) / (1 + 1j * w * TAU_V)
return abs(1 / (1 + loop))
def simulate(f, seconds=300, dt=0.01):
"""Euler simulation of the same loop; returns peak-to-peak heart-rate swing in the last minute."""
n_delay = int(DELAY / dt)
hist = [0.0] * n_delay
p, lo, hi = 0.0, 1e9, -1e9
for k in range(int(seconds / dt)):
t = k * dt
h = math.sin(2 * math.pi * f * t) - G * hist[k % n_delay] # pressure from DELAY seconds ago
hist[k % n_delay] = p
p += dt * (h - p) / TAU_V
if t > seconds - 60:
lo, hi = min(lo, h), max(hi, h)
return hi - lo
print("breaths/min frequency (Hz) heart-rate swing (x of the breathing push alone)")
for bpm in (4, 5, 6, 7, 8, 10, 12, 15):
f = bpm / 60
print(f"{bpm:8d} {f:6.3f} {gain(f):4.2f} (simulation {simulate(f) / 2:4.2f})")
best = max((b / 10 for b in range(30, 200)), key=lambda b: gain(b / 60))
print(f"peak of the loop: {best:.1f} breaths/min ({best / 60:.3f} Hz)")
# breaths/min frequency (Hz) heart-rate swing (x of the breathing push alone)
# 4 0.067 1.20 (simulation 1.20)
# 5 0.083 1.73 (simulation 1.73)
# 6 0.100 1.99 (simulation 1.99)
# 7 0.117 1.64 (simulation 1.64)
# 8 0.133 1.28 (simulation 1.28)
# 10 0.167 0.92 (simulation 0.92)
# 12 0.200 0.81 (simulation 0.80)
# 15 0.250 0.82 (simulation 0.82)
# peak of the loop: 5.8 breaths/min (0.097 Hz)当回路的总延迟恰好等于呼吸周期的一半时,修正到达的时刻正好与下一次推动方向一致。在这个模型里,以每分钟 6 次呼吸,心率波动约为呼吸单独作用的两倍;以每分钟 12 至 15 次的常见频率呼吸,修正部分抵消了推动,波动反而小于单独推动。
测哪个指标
这里有一个容易被忽略的地方:慢呼吸放大的是慢的波动。
推导
用上面的放大倍数生成 5 分钟的 RR 间期序列(呼吸每分钟 12 次与 6 次),计算 SDNN 和 RMSSD。
# RMSSD and SDNN from a simulated series of heartbeat (RR) intervals while breathing at 6 or 12 per minute.
# The respiratory swing is taken from the loop model above (about 2.0 x at 6/min, 0.8 x at 12/min).
import math, random, statistics
def rr_series(bpm, swing, minutes=5, mean_rr=850.0, base_amp=25.0, noise=12.0, seed=2):
random.seed(seed)
t, rr = 0.0, []
while t < minutes * 60:
x = mean_rr + base_amp * swing * math.sin(2 * math.pi * bpm / 60 * t) + random.gauss(0, noise)
rr.append(x)
t += x / 1000
return rr
def rmssd(rr):
d = [b - a for a, b in zip(rr, rr[1:])]
return math.sqrt(sum(x * x for x in d) / len(d))
for bpm, swing in ((12, 0.81), (6, 1.99)):
rr = rr_series(bpm, swing)
print(f"breathing {bpm:2d}/min: {len(rr)} beats, SDNN {statistics.pstdev(rr):5.1f} ms, RMSSD {rmssd(rr):5.1f} ms")
print("Slow breathing nearly doubles the slow swing (SDNN) but changes RMSSD much less, because")
print("RMSSD looks at beat-to-beat differences, and a slow wave changes little from one beat to the next.")
# breathing 12/min: 354 beats, SDNN 19.0 ms, RMSSD 22.9 ms
# breathing 6/min: 354 beats, SDNN 36.2 ms, RMSSD 25.0 ms
# Slow breathing nearly doubles the slow swing (SDNN) but changes RMSSD much less, because
# RMSSD looks at beat-to-beat differences, and a slow wave changes little from one beat to the next.SDNN 几乎翻倍,RMSSD 只略有增加。原因很简单:RMSSD 看的是相邻两拍之差,而一个 10 秒周期的慢波在一拍到下一拍之间变化很小。所以在慢呼吸进行时测量 RMSSD,会低估共振的效果;如果想知道几周的练习是否改变了静息时的迷走活动,应该在练习之外、自然呼吸、固定姿势和时刻下测量 RMSSD。第八章的试验据此设计。
证据
莱勒等人的系统综述与元分析发现,心率变异性生物反馈(通常即以个人共振频率慢呼吸)对焦虑、抑郁、愤怒和运动或艺术表现等多种结局有小到中等的效应;对照组为不做任何事时效应较大,对照组为其他积极干预时效应较小但仍显著;许多结局只有少数研究 (Lehrer et al. 2020)。扎卡罗(Zaccaro)等人的系统综述发现,慢呼吸与自主神经、中枢神经和心理指标的变化有关,但纳入研究的方法学质量参差不齐 (Zaccaro et al. 2018)。
注
慢呼吸的要点是慢,不是深。吸气约 4 秒、呼气约 6 秒,用平常的力度即可。如果感到头晕、手指或嘴唇发麻,说明换气过度,应停下来恢复自然呼吸。有心律失常、心衰、慢性阻塞性肺病、哮喘或惊恐障碍的人,开始练习前请先咨询医生。本书不把慢呼吸当作任何疾病的治疗。
假说 · 尚未验证
尚未确立。 用一次 15 分钟的扫频(每分钟 7、6.5、6、5.5、5、4.5 次各 2 分钟)找到的个人共振频率,在 4 周后再测时仍在 ±0.5 次/分钟之内的人,占至少 70%;也就是说,个人共振频率是一个稳定的特征,而不只是一次测量的噪声。如果重测一致的比例低于 50%,假说就被推翻,「个人共振频率」作为练习的依据就需要重新考虑。
小结
慢呼吸之所以特别,不在于它是某种神秘的频率,而在于心血管系统本身是一个带延迟的反馈回路,有自己的共振频率。了解这一点,也就知道该测什么、不该测什么。下一章把前几章的信号放在一起,问一个更根本的问题:有没有一个「最佳状态」?
参考文献
Fan, Y. (2026). Dynamical Systems of Neurotransmitters and Endocrinology: Dopamine Reward Prediction Error, Serotonergic Homeostasis, HPA-Axis Allostatic Load and the Challenge Hypothesis, Read Beside East Asian Classics of Mind Regulation [神经递质与内分泌的动力系统] (Version 1.0.0). 5D Library. https://doi.org/10.5281/zenodo.23738782 · Licensed under Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0).