[{"content":" 网页地址 Quality control (QC) reports with mne.Report — MNE 1.12.0 documentation 前言 质量控制（Quality Control, QC）是指系统性地检查分析各阶段的M/EEG数据，包括原始数据、中间预处理步骤和衍生结果的过程。\n尽管QC经常开始于对原始数据的初步检查，但同样重要的是验证信号在滤波、伪迹矫正、分段和平均参考等操作后是否仍然“看起来合理”。任何阶段引入或遗漏的问题都可能向下传递，使后续的分析失效。\n本教程演示如何使用mne.Report创建单一叙述性QC报告，重点关注应检查的事项及结果的解释方式，而非详尽地讲述API。\n为了清晰和可重复性，以下示例重点介绍分析流程代表性阶段常用的质量控制检查。每当应用新的处理步骤时，同样的报告方法可以且应该被重复使用。\n我们使用MNE样本数据集进行演示。并非所有QC部分都适用于所有数据集（例如连续头位跟踪），本教程明确处理了此类情况。\n导入样例数据集 创建QC报告 数据浏览 原始数据检查 事件与刺激事件 分段与拒绝统计 诱发反应 ICA做伪迹去除 MEG–MRI coregistration（略） MRI and BEM surfaces（略） 查看最终报告 测试功能 粗体文字 斜体文字 代码 代码块测试 css\r1 2 3 4 5 6 .post-content pre, code { font-family: \u0026#34;JetBrains Mono\u0026#34;, monospace; font-size: 1rem; line-height: 1.2; } https://gohugo.io/content-management/syntax-highlighting/\n【Hugo】进阶篇：PaperMod主题美化 | 乱话三千\n公式测试 $$ y_{i+1} $$$$ \\boldsymbol{x}_{i+1}+\\boldsymbol{x}_{i+2}=\\boldsymbol{x}_{i+3} $$Hugo博客添加LaTeX语法支持 | 🚀 田少晗的个人网站\n图片测试 Admonition测试 This is a tip A tip banner Or\nThis is a tip A tip banner [Theme Documentation - Extended Shortcodes - LoveIt]\n在PaperMod中引入侧边目录和阅读进度显示 | 周鑫的个人博客\n","permalink":"https://three-fire-s.github.io/notes/mne-qc/","summary":"\u003cdiv class=\"details admonition info open\"\u003e\n        \u003cdiv class=\"details-summary admonition-title\"\u003e\n            \u003ci class=\"icon fas fa-info-circle fa-fw\"\u003e\u003c/i\u003e网页地址\u003ci class=\"details-icon fas fa-angle-right fa-fw\"\u003e\u003c/i\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"details-content\"\u003e\n            \u003cdiv class=\"admonition-content\"\u003e\u003ca href=\"https://mne.tools/stable/auto_tutorials/preprocessing/14_quality_control_report.html\"\u003eQuality control (QC) reports with mne.Report — MNE 1.12.0 documentation\u003c/a\u003e\u003c/div\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n\u003ch1 id=\"前言\"\u003e前言\u003c/h1\u003e\n\u003cp\u003e质量控制（Quality Control, QC）是指系统性地检查分析各阶段的M/EEG数据，包括原始数据、中间预处理步骤和衍生结果的过程。\u003c/p\u003e","title":"mne学习-数据质量检查报告"},{"content":" 网页地址 Background information on filtering — MNE 1.12.0 documentation 提示 该部分将会深入探讨滤波器的数学原理和设计方法，以进一步选择滤波器。\n如果仅仅是想要直到如何在MNE-Python中使用默认滤波器的话，请移步至Filtering and resampling data — MNE 1.12.0 documentation\n关于数字滤波器的实际应用可以参考Parks \u0026amp; Burrus (1987) [1] 和Ifeachor \u0026amp; Jervis (2002) [2] 关于在M/EEG上的使用可以参考Widmann et al. (2015) [3] 问题描述 对电生理信号滤波会产生的实际问题可参考Widmann et al. (2012)\r[4]\r，其中推导出下面的陈述。\nVanRullen (2011)\r[5]\r表明滤波会导致信号时序（和幅度）的失真，因此，滤波不应该被随意使用。然而，若能谨慎考虑滤波效果并尽可能减小滤波伪迹，就可以对滤波后电生理信号的时间动态特征做出可靠解读；同时，滤波还能检测到不进行滤波就会遗漏的信号。\n换句话说，滤波可以提高信噪比（SNR），但是如果不审慎使用的话，会使数据失真。希望能介绍一些滤波基础使读者更好地理解滤波中的权衡和MNE-Python选择特定默认参数的原因。\n滤波基础 在频域，数字滤波器有如下的转移函数：\n$$\\begin{align*} H(z) \u0026= \\frac{b_0 + b_1 z^{-1} + b_2 z^{-2} + \\dots + b_M z^{-M}}{1 + a_1 z^{-1} + a_2 z^{-2} + \\dots + a_N z^{-N}} \\\\ \u0026= \\frac{\\sum_{k=0}^{M} b_k z^{-k}}{1 + \\sum_{k=1}^{N} a_k z^{-k}} \\end{align*}$$在时域，$y(n)$可以由$x(n)$和$y(n-1),\\cdots$组成\n$$\\begin{align*} y(n) \u0026= b_0 x(n) + \\dots + b_M x(n-M) - a_1 y(n-1) - \\dots - a_N y(n-N) \\\\ \u0026= \\sum_{k=0}^{M} b_k x(n-k) - \\sum_{k=1}^{N} a_k y(n-k) \\end{align*}$$在该差分方程中，$y(n)$由两部分组成：\n滑动平均部分（moving average, MA）：输入部分，$\\sum_{k=0}^{M} b_k x(n-k) $ 自回归部分（autoregression，AR）：过往的输出，$\\sum_{k=1}^{N} a_k y(n-k)$ 可视为ARMA模型。\n根据这些系数（$b_k, a_k$），滤波器可以分为两大类：FIR滤波器（有限冲激响应）和IIR滤波器（无限冲激响应）。FIR滤波器使用有限的分子系数$b_k(a_k=0,\\forall k)$，因此$y(n)$只依赖于前$M$个输入值；IIR滤波器依赖于之前的输入和输出，因此其单位冲激响应在理论上是无限长的。\n在Parks \u0026amp; Burrus (1987)\r[1]\r中列出了FIR和IIR的优缺点;\n一个因果（causal）FIR滤波器是线性相位的。即，所有频率上的信号有相同的时延，这是因果IIR滤波器做不到的。FIR 滤波器的相位特性与群延迟特性通常也更优。 同阶IIR滤波器通常比FIR更陡峭 IIR 滤波器通常数值稳定性更差，部分原因是递归计算会导致误差不断累积。 在MNE-Python中，默认使用FIR滤波，正如在Widmann et al. (2015)\r[3]\r指出的：\n尽管 IIR 滤波器通常被认为计算效率更高，但仅在需要高吞吐量和陡峭截止特性时才推荐使用（Ifeachor and Jervis, 2002\r[2]\r, p. 321）。\nFIR 滤波器更易于控制，始终稳定，具有明确的通带，无需额外计算即可校正为零相位，并且可以转换为最小相位。\n因此，在电生理数据分析的大多数应用中，我们推荐使用 FIR 滤波器。\n当设计一个滤波器时（FIR或IIR），总是要考虑一些权衡，包括但不限于：\n通带纹波（Ripple in the pass-band）：通带内幅度响应的起伏大小 阻带衰减（Attenuation of the stop-band） 衰减陡峭度（Steepness of roll-off） 滤波器阶数，即FIR滤波器长度 时域振铃（Time-domain ringing）：信号经过滤波器后，在阶跃、脉冲边缘出现不该有的上下震荡拖尾 具体参数解释参考陈后金《数字信号处理（第三版）》P124。\n总之，频域越窄，时域就越宽，反之亦然。这是一个基本的时频权衡关系，在下文内容中会有所体现。\n参考文献 [1]\r(1,2)\rThomas W. Parks and C. Sidney S. Burrus. Digital Filter Design. Topics in Digital Signal Processing. Wiley, New York, 1987. ISBN 978-0-471-82896-9.\r[2]\r(1,2)\rEmmanuel C. Ifeachor and Barrie W. Jervis. Digital Signal Processing: A Practical Approach. Pearson, 2 edition, 2002.\r[3]\r(1,2)\rAndreas Widmann, Erich Schröger, and Burkhard Maess. Digital filter design for electrophysiological data – a practical approach. Journal of Neuroscience Methods, 250:34–46, 2015. doi:10.1016/j.jneumeth.2014.08.002.\r[4]\r(1)\rAndreas Widmann and Erich Schröger. Filter effects and filter artifacts in the analysis of electrophysiological data. Frontiers in Psychology, 2012. doi:10.3389/fpsyg.2012.00233.\r[5]\r(1)\rRufin VanRullen. Four common conceptual fallacies in mapping the time course of recognition. Frontiers in Psychology, 2011. doi:10.3389/fpsyg.2011.00365.\r[6]\rGuillaume A. Rousselet. Does filtering preclude us from studying ERP time-courses? Frontiers in Psychology, 2012. doi:10.3389/fpsyg.2012.00131.\r[7]\rDavid J. Acunzo, Graham MacKenzie, and Mark C.W. van Rossum. Systematic biases in early ERP and ERF components as a result of high-pass filtering. Journal of Neuroscience Methods, 209(1):212–218, 2012. doi:10.1016/j.jneumeth.2012.06.011.\r[8]\rDarren Tanner, Kara Morgan-Short, and Steven J. Luck. How inappropriate high-pass filters can produce artifactual effects and incorrect conclusions in ERP studies of language and cognition: high-pass filtering and artifactual ERP effects. Psychophysiology, 52(8):997–1009, 2015. doi:10.1111/psyp.12437.\r[9]\rEmily S. Kappenman and Steven J. Luck. The effects of electrode impedance on data quality and statistical significance in ERP recordings. Psychophysiology, 2010. doi:10.1111/j.1469-8986.2010.01009.x.\r[10]\rBurkhard Maess, Erich Schröger, and Andreas Widmann. High-pass filters and baseline correction in M/EEG analysis. Commentary on: \u0026ldquo;How inappropriate high-pass filters can produce artefacts and incorrect conclusions in ERP studies of language and cognition\u0026rdquo;. Journal of Neuroscience Methods, 266:164–165, 2016. doi:10.1016/j.jneumeth.2015.12.003.\r[11]\rDarren Tanner, James J.S. Norton, Kara Morgan-Short, and Steven J. Luck. On high-pass filter artifacts (they\u0026rsquo;re real) and baseline correction (it\u0026rsquo;s a good idea) in ERP/ERMF analysis. Journal of Neuroscience Methods, 266:166–170, 2016. doi:10.1016/j.jneumeth.2016.01.002.\r[12]\rBurkhard Maess, Erich Schröger, and Andreas Widmann. High-pass filters and baseline correction in M/EEG analysis-continued discussion. Journal of Neuroscience Methods, 266:171–172, 2016. doi:10.1016/j.jneumeth.2016.01.016.\r测试功能 粗体文字 斜体文字 代码 代码块测试 css\r1 2 3 4 5 6 .post-content pre, code { font-family: \u0026#34;JetBrains Mono\u0026#34;, monospace; font-size: 1rem; line-height: 1.2; } https://gohugo.io/content-management/syntax-highlighting/\n【Hugo】进阶篇：PaperMod主题美化 | 乱话三千\n公式测试 $$ y_{i+1} $$$$ \\boldsymbol{x}_{i+1}+\\boldsymbol{x}_{i+2}=\\boldsymbol{x}_{i+3} $$Hugo博客添加LaTeX语法支持 | 🚀 田少晗的个人网站\n图片测试 Admonition测试 This is a tip A tip banner Or\nThis is a tip A tip banner [Theme Documentation - Extended Shortcodes - LoveIt]\n在PaperMod中引入侧边目录和阅读进度显示 | 周鑫的个人博客\n","permalink":"https://three-fire-s.github.io/notes/mne-tutorial-filterbackground/","summary":"\u003cdiv class=\"details admonition info open\"\u003e\n        \u003cdiv class=\"details-summary admonition-title\"\u003e\n            \u003ci class=\"icon fas fa-info-circle fa-fw\"\u003e\u003c/i\u003e网页地址\u003ci class=\"details-icon fas fa-angle-right fa-fw\"\u003e\u003c/i\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"details-content\"\u003e\n            \u003cdiv class=\"admonition-content\"\u003e\u003ca href=\"https://mne.tools/stable/auto_tutorials/preprocessing/25_background_filtering.html\"\u003eBackground information on filtering — MNE 1.12.0 documentation\u003c/a\u003e\u003c/div\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n\u003cdiv class=\"details admonition tip open\"\u003e\n        \u003cdiv class=\"details-summary admonition-title\"\u003e\n            \u003ci class=\"icon fas fa-lightbulb fa-fw\"\u003e\u003c/i\u003e提示\u003ci class=\"details-icon fas fa-angle-right fa-fw\"\u003e\u003c/i\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"details-content\"\u003e\n            \u003cdiv class=\"admonition-content\"\u003e\u003cp\u003e该部分将会深入探讨滤波器的数学原理和设计方法，以进一步选择滤波器。\u003c/p\u003e\n\u003cp\u003e如果仅仅是想要直到如何在MNE-Python中使用默认滤波器的话，请移步至\u003ca href=\"https://mne.tools/stable/auto_tutorials/preprocessing/30_filtering_resampling.html#tut-filter-resample\"\u003eFiltering and resampling data — MNE 1.12.0 documentation\u003c/a\u003e\u003c/p\u003e","title":"mne学习-滤波的背景信息"},{"content":"Hi，我是三火。\n这是我的个人网页，我想发布一些关于EEG处理学习以及一些碎碎念，所以这里被命名为“三火的精神自留地”。\n希望我的内容能对你有所帮助。\n","permalink":"https://three-fire-s.github.io/about/","summary":"\u003cp\u003eHi，我是三火。\u003c/p\u003e\n\u003cp\u003e这是我的个人网页，我想发布一些关于EEG处理学习以及一些碎碎念，所以这里被命名为“三火的精神自留地”。\u003c/p\u003e\n\u003cp\u003e希望我的内容能对你有所帮助。\u003c/p\u003e","title":"关于我"},{"content":"EEG处理平台 EEG预处理-处理的主流平台是EEGLAB和MNE-Python。\nEEGLAB有用户友好的GUI界面和包罗万象的插件库，对于入门EEG处理的新手小白来说，为了避开代码关卡，选用EEGLAB是一个很不错的选择，可以面向分析和讨论，而不必困于代码实现。用户也可以用EEGLAB的函数制作自动化处理的脚本。 MNE-Python基于Python语言，调用函数比较方便，有比较成熟和易于查询的教程文档，也有很不错的交流社区。 参考教程 Tutorials — MNE 1.12.0 documentation MNE Forum Tutorials - EEGLAB Wiki 在使用上，笔者基于MATLAB软件使用EEGLAB，基于Jupyter Notebook使用MNE。具体安装教程和使用方法读者可自行在网络上查询。\nEEG参考书籍 《脑电信号处理与特征提取》可以作为一本入门书，特点是几乎概览了现有的处理方法，难度较深，讲解较全但不够细，可在此书的基础上继续详细调研了解。\n链接 通过网盘分享的文件：脑电信号处理与特征提取（中文+英文+代码数据） 链接: https://pan.baidu.com/s/1m0vN9n6f1znCKLgbzVBhHg?pwd=e9i5 提取码: e9i5https://eeglab.org/tutorials/) 脑电信号处理与特征提取_哔哩哔哩_bilibili EEG预处理流程 参考 [1] BÖTTCHER A, WENDIGGENSEN P, MÜCKSCHEL M, 等, 2026. Standardizing EEG preprocessing for cross-site integration - the CLEAN pipeline[J/OL]. NeuroImage, 328: 121812. DOI:10.1016/j.neuroimage.2026.121812.\n[2] Preprocessing — MNE 1.12.0 documentation\n[3] Makoto\u0026rsquo;s preprocessing pipeline - SCCN\n[4] SCCN: Independent Component Labeling\nEEG处理方法 微状态分析 参考 [1] POULSEN A T, PEDRONI A, LANGER N, 等, 2018. Microstate EEGlab toolbox: An introductory guide[A/OL]. Neuroscience[2026-02-28]. http://biorxiv.org/lookup/doi/10.1101/289850. DOI:10.1101/289850. ","permalink":"https://three-fire-s.github.io/notes/resources-for-eeglearn/","summary":"\u003ch2 id=\"eeg处理平台\"\u003eEEG处理平台\u003c/h2\u003e\n\u003cp\u003eEEG预处理-处理的主流平台是EEGLAB和MNE-Python。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEEGLAB有用户友好的GUI界面和包罗万象的插件库，对于入门EEG处理的新手小白来说，为了避开代码关卡，选用EEGLAB是一个很不错的选择，可以面向分析和讨论，而不必困于代码实现。用户也可以用EEGLAB的函数制作自动化处理的脚本。\u003c/li\u003e\n\u003cli\u003eMNE-Python基于Python语言，调用函数比较方便，有比较成熟和易于查询的教程文档，也有很不错的交流社区。\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"details admonition Note open\"\u003e\n        \u003cdiv class=\"details-summary admonition-title\"\u003e\n            \u003ci class=\"icon fas fa-pencil-alt fa-fw\"\u003e\u003c/i\u003e参考教程\u003ci class=\"details-icon fas fa-angle-right fa-fw\"\u003e\u003c/i\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"details-content\"\u003e\n            \u003cdiv class=\"admonition-content\"\u003e\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://mne.tools/stable/auto_tutorials/index.html\"\u003eTutorials — MNE 1.12.0 documentation\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://mne.discourse.group/\"\u003eMNE Forum\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://eeglab.org/tutorials/\"\u003eTutorials - EEGLAB Wiki\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/div\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n\u003cp\u003e在使用上，笔者基于MATLAB软件使用EEGLAB，基于Jupyter Notebook使用MNE。具体安装教程和使用方法读者可自行在网络上查询。\u003c/p\u003e","title":"参考资料一览-EEG学习"},{"content":" 网页地址 Makoto\u0026rsquo;s preprocessing pipeline - SCCN 插值坏道（2021.6.14更新） 在平均参考和ICA之前插值坏道的主要原因如下：\n最小化半球偏差。假设你有64个通道，你去掉了16个右半球的通道，直接做平均参考时，左半球的比例/权重会更高。 平均参考后的IC地形图是零均值的，这样的地形图很容易去评估。否则，你的地形图会是全红/全蓝的（尽管如此，你可以重新定义颜色映射的尺度）。 如果你在ICA之后插值，你没有办法插值ICA权重EEG.icaweights或ICA空间EEG.icasphere，这会导致后续处理中的问题。就比如说，你可能需要在Cz 电极处计算组水平独立成分（IC）的反向投影。但如果部分被试的 Cz 电极已被剔除，就无法进行该计算。 EEGLAB默认插值方法是球面样条插值，但会引入秩问题：因为非线性插值后的数据不会导致明显的秩亏损，相反，它会增加一个额外的维度，该维度的特征值近乎为0，就比如$\u0026lt;10^8$。换句话说，条件数（condition number）很高，这意味着矩阵是病态的。这样一个小的特征值数值上近似于0，但对我们的ICA算法实际上是0，因此会产生“幽灵IC”的问题，等等。\n平均重参考 若脑电信号由皮层中偶极电流分布产生且不存在外源，则根据电荷守恒定律，在任意时刻，电位的正负变化总量相等。因此，头皮电位地形图的总和应为零。通过重参考至平均通道值，我们假设不存在电荷产生，即不存在单极源与汇。在实际应用中，平均参考会使所有 ICA 头皮地形图的总电位为零（即红色区域与蓝色区域始终相互平衡）。\n（2016 年 8 月 24 日更新）\n另外需要注意的是，平均参考通常对抑制工频噪声非常有效。据笔者经验，某些工频噪声无法通过 CleanLine 去除，原因是工频噪声频段的振幅包络波动时间常数较短（你可以对数据仅做工频带通滤波，观察其时程曲线来直观确认这一点），而这类噪声可通过平均参考消除。笔者推测这与共模抑制有关。无论如何，建议先进行平均参考，再运行 CleanLine。\n去除线噪声 CleanLine plugin，并不是一个标准的频率滤波器，但使用了一个滑动窗去自适应地评估需要减去地正弦信号幅度，它不会在EEG频谱上产生一个凹坑。\n关于参数设置，步长设为和窗口大小相等，其他默认。参考Nima\u0026rsquo;s PREP paper，在跑这个函数之前，数据地非平稳性应该经过高通滤波器来解决。\n也有一些CleanLine不能充分抑制线噪声的例子。大多数情况下，原因是线噪声是非平稳的。可以看下面的截图。F4 通道的包络宽度在时间上保持恒定，这表明该通道数据具有平稳性，CleanLine 算法在该通道上应能表现良好。\n但请注意，其他大多数通道的 60Hz 包络存在明显波动，且其时间常数短于 CleanLine 典型滑动窗长（默认 4 秒）。这说明数据不满足平稳性假设，CleanLine 在这些通道上效果不佳（我曾调整过参数，但始终未能改善）。你可以在自己的数据上轻松验证这一点，例如在 EEGLAB 中设置滤波参数为 “低频截止 = 高频截止 = 60Hz”。如果不幸出现上述情况，你需要改用传统陷波滤波器，或使用低通滤波器在工频频率之前进行截断。\n图1 CLEAN流程图 补充说明：如果观察到谐波（如 60Hz 和 120Hz），这类信号在时域上并非恒定 60Hz 与 120Hz 正弦波的简单叠加，而是表现为 60Hz 信号伴随尖锐的波峰和 / 或波谷。换句话说，120Hz 分量仅以相位耦合的形式偶尔出现。在这种情况下，我认为SIFT（Source Information Flow Toolbox，做源域因果分析） 的假设不再成立，算法将失效。即使你在功率谱密度图上看到 120Hz（或其他谐波峰值）有所降低，也不代表相位耦合的谐波被特异性去除了 ——SIFT 并不是以这种方式工作的。\n开始写作 这是我的第一篇笔记内容！\n哈哈哈哈哈哈，于2026/3/19，胡汉三成功地调试出了自己的博客网站，希望能继续努力，写出自己的第一篇博客！\n测试功能 粗体文字 斜体文字 代码 代码块测试 css\r1 2 3 4 5 6 .post-content pre, code { font-family: \u0026#34;JetBrains Mono\u0026#34;, monospace; font-size: 1rem; line-height: 1.2; } https://gohugo.io/content-management/syntax-highlighting/\n【Hugo】进阶篇：PaperMod主题美化 | 乱话三千\n公式测试 $$ y_{i+1} $$$$ \\boldsymbol{x}_{i+1}+\\boldsymbol{x}_{i+2}=\\boldsymbol{x}_{i+3} $$Hugo博客添加LaTeX语法支持 | 🚀 田少晗的个人网站\n图片测试 Admonition测试 This is a tip A tip banner Or\nThis is a tip A tip banner [Theme Documentation - Extended Shortcodes - LoveIt]\n在PaperMod中引入侧边目录和阅读进度显示 | 周鑫的个人博客\n","permalink":"https://three-fire-s.github.io/notes/makotos-pipeline/","summary":"\u003cdiv class=\"details admonition Note open\"\u003e\n        \u003cdiv class=\"details-summary admonition-title\"\u003e\n            \u003ci class=\"icon fas fa-pencil-alt fa-fw\"\u003e\u003c/i\u003e网页地址\u003ci class=\"details-icon fas fa-angle-right fa-fw\"\u003e\u003c/i\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"details-content\"\u003e\n            \u003cdiv class=\"admonition-content\"\u003e\u003ca href=\"https://eeglab.ucsd.edu/wiki/Makoto%27s_preprocessing_pipeline#Interpolate_all_the_removed_channels_%2806/14/2021_updated%29\"\u003eMakoto\u0026rsquo;s preprocessing pipeline - SCCN\u003c/a\u003e\u003c/div\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n\u003ch2 id=\"插值坏道2021614更新\"\u003e插值坏道（2021.6.14更新）\u003c/h2\u003e\n\u003cp\u003e在平均参考和ICA之前插值坏道的主要原因如下：\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e最小化半球偏差。假设你有64个通道，你去掉了16个右半球的通道，直接做平均参考时，左半球的比例/权重会更高。\u003c/li\u003e\n\u003cli\u003e平均参考后的IC地形图是零均值的，这样的地形图很容易去评估。否则，你的地形图会是全红/全蓝的（尽管如此，你可以重新定义颜色映射的尺度）。\u003c/li\u003e\n\u003cli\u003e如果你在ICA之后插值，你没有办法插值ICA权重\u003ccode\u003eEEG.icaweights\u003c/code\u003e或ICA空间\u003ccode\u003eEEG.icasphere\u003c/code\u003e，这会导致后续处理中的问题。就比如说，你可能需要在\u003cstrong\u003eCz 电极\u003c/strong\u003e处计算组水平独立成分（IC）的反向投影。但如果部分被试的 Cz 电极已被剔除，就无法进行该计算。\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eEEGLAB默认插值方法是球面样条插值，但会引入秩问题：因为非线性插值后的数据不会导致明显的秩亏损，相反，它会增加一个额外的维度，该维度的特征值近乎为0，就比如$\u0026lt;10^8$。换句话说，条件数（condition number）很高，这意味着矩阵是病态的。这样一个小的特征值数值上近似于0，但对我们的ICA算法实际上是0，因此会产生“幽灵IC”的问题，等等。\u003c/p\u003e","title":"预处理流程-Makoto's preprocessing pipeline"},{"content":" 参考文献 [1] BÖTTCHER A, WENDIGGENSEN P, MÜCKSCHEL M, 等, 2026. Standardizing EEG preprocessing for cross-site integration - the CLEAN pipeline[J/OL]. NeuroImage, 328: 121812. DOI:10.1016/j.neuroimage.2026.121812. 论文背景与介绍 应用面向：数据集成(data integration)\n做法：统一预处理流程(harmonize EEG preprocessing)\n支持机构：the German Center for Child and Adolescent Health (DZKJ)\n论文内容 Introduction 标准化预处理的目的是保证数据质量和跨研究间的可复现性（reproducibility）。\nEEG分析方法进步飞速（源定位、脑区相关；机器学习），然而，分析结果强依赖于预处理，但预处理仍然是神经生理数据分析中最欠缺标准化的步骤之一，预处理方法的不同会导致不一致性。\n“The preprocessing of EEG data remains one of the least standardized steps in neurophysiological data analysis.” 。(Böttcher 等, 2026, p. 2)\n“Differences in the applied filters, artifact correction methods with varying impact on the data, and different quality control criteria lead to inconsistencies across studies and research sites” (Böttcher 等, 2026, p. 2)\nreproducibility replicability 同一数据+同一方法 新数据+同一方法 之后介绍了本文目的，简单介绍CLEAN-EEG preprocessing pipeline。\nDataset 介绍本文使用的样例数据\n数据：健康青少年，N=10，5男5女，年龄$11.7\\pm 2.8$，Go/Nogo任务\n条件记录：采样率500Hz，BrainAmp DC放大器，BrainCap脑电采集帽（60个Ag/AgCl电极，参考电极是Fpz，结点电极位置在$\\theta=58,\\phi=78$），没有采集眼电。\nData availiability 代码链接：https://gitlab.mn.tu-dresden.de/actionlab/clean-eeg-preprocessing-pipeline/\n数据链接：http://doi.org/10.5281/zenodo.16739024\nRequirements EEGLAB（MATLAB 2020a之后的版本）\nthe CLEAN pipeline CLEAN流水线利用了一系列后续的MATLAB脚本。所有脚本都使用共享配置文件，其中可以定义最关键的参数和设置。每个脚本都会生成一个日志文件，保存在输出路径中，存储与脚本相关的所有参数，并按照开放科学的最佳实践指南记录相应脚本的工作流程（Pernet 等，2020,2021）。以下详细说明了各项预处理步骤及作者提出的参数。\n数据秩（rank）：提供了数据线性独立成分的个数，与通道数有关。数据桥连、重参考或线性插值坏道导致秩亏（rank deficiency）。秩亏会导致ICA分解结果出现“幽灵”成分。\n图1 CLEAN流程图 Configuration 关于配置文件中参数调整的说明\nLogfiles 双数据结构分层记录 日志记录采用 “被试专属 + 全被试汇总” 的双层结构，确保数据追溯的精准性与全面性：\n单被试级记录：每一步预处理操作都会写入被试专属的 EEGLAB 数据结构 EEGTMP 的 .comments 字段中。这一步实现了单被试处理流程的精细化溯源，能精准定位每个被试的独立操作细节。 全被试级汇总：所有被试的全部预处理步骤会被统一整合到 MATLAB 表格 logtbl 中。该表格为每个预处理脚本分配独立条目，实现跨被试的流程横向对比与整体汇总。 文件输出与命名规范 日志文件以 MATLAB 格式保存，配置了严格的命名规则与存储路径：\n存储格式：保存为 MATLAB 格式化数据文件，后缀为 .mat。 命名规则：文件名遵循固定模板 —— log_\u0026lt;SCRIPT\u0026gt;_\u0026lt;DATETIME\u0026gt;.mat。其中 \u0026lt;SCRIPT\u0026gt; 指代对应预处理脚本的文件名，\u0026lt;DATETIME\u0026gt; 为脚本开始运行时的当前日期与时间字符串。 存储路径：logtbl 被保存至输出文件夹（output folder），与处理后的 EEG 数据文件同目录，便于后续关联查阅。 Main processing 处理步骤 描述 EEG数据格式 本文例子中使用的是Brain Vision data(插件 bva-io，函数pop_loadbv() )。 数据集选择和输出文件 用EXCEL文件保存关键信息 降采样 推荐：250Hz（低频段分析，$\\theta - \\beta$）,为避免混叠，滤波频率应该i小于奈奎斯特频率（$f_{cut-off}\u0026lt;\\frac{f_{sample}}{2}$） 滤波 ERP/TFT可以用默认的滤波器参数，连接性分析（conectivity analysis）需要更严格的参数控制。run_firfilt()-\u0026gt;pop_firws(), Kaiser窗FIR滤波器。\n过渡带影响：越窄，阶数越高，频率选择性越高，但会导致计算时间长、时域失真（引入边缘伪迹）；越宽，不感兴趣频段的能量无法被充分衰减。\n为避免边缘效应，应该在连续数据/长片段上滤波\n1.CLEAN流程中使用了截止频率为0.5Hz，过渡带宽因子为2，过渡带宽为1Hz的高通滤波器-\u0026gt;限制基线漂移，慢波需要更低的截止频率。ICA对低频漂移（主导了数据的方差结构，原因如出汗）很敏感，推荐在ICA使用临时高通滤波器（截止频率在1-2Hz）\n2.低通滤波器的陡峭度（steepness）决定高频噪声被去除的程度。CLEAN中默认截止频率为40Hz，过渡带宽因子为0.25，过渡带宽10Hz。连接性分析需要更更宽的过渡带宽和中等的过滤器陡峭度。陡峭的过滤器会导致时域失真（相位失真-\u0026gt;连接性分析有问题） 线噪声去除 50Hz，伴有100Hz谐波。传统陷波滤波器（窄阻带的带阻滤波器）会使频谱上出现一个凹坑，这会导致依赖于精确相位关系的分析出现问题。除此之外，陷波滤波器经常会导致频谱失真、边缘剧变、振铃伪影，不能适用于工频噪声的非平稳变化或通道间的差异。\n现有流程中，两阶段自适应方法：\n1.Zapline Plus clean_data_with_zapline_plus()，ZapLine Plus将频谱峰值检测和空间滤波器结合，去除窄带、非平稳的线噪声成分。\n2.Cleanline插件pop_cleanline(),Cleanline使用多窗谱回归评估并减去正弦噪声成分，去除空间滤波后残留的振荡成分。有使用条件：Zapline Plus显示噪声抑制不足（残留噪声能量与周围频谱的比值超过某个预设值，clean_data_with_zapline_plus()会返回清理后的噪声比例，也可以使用compute_noiseratio()）。阈值设置：变量conf.linenoise.max_rationoise，默认为1.1\n去除线路噪声的决定应考虑分析带宽、滤波器特性以及记录数据的频谱分布。 坏道检测 坏道：平坦通道（flat）和异常通道(deviant)\nflat channels: detect_flatchan()，推荐时间窗5s，阈值1E-6。但较为平坦的短段可能无法被检测到，应该在后续基于分段的伪迹去除中被去掉（直接删除整个数据段）。\ndeviant channels: clean_channels()，推荐使用默认参数。评估通道间相关性和线噪声水平。\n有图（Bad channels plot）输出（数据质量检查） ASR去除伪迹 ASR在ICA之前衰减不规则、高幅值的瞬态伪迹，同时不丢弃数据段。高幅值的瞬态伪迹会严重扭曲数据的协方差结构，影响后续的预处理步骤，尤其是ICA分解。ASR处理一定要小心，避免过度清理。\n在CLEAN流程中，ASR使用函数clean_asr()（clean_rawdata EEGLAB plugin）。\n参数推荐：爆发检测的标准差阈值（值越大，越宽松），适度起始值 SD=20，推荐根据数据量调整该值。ASR目的不在于重建大部分数据集，在中等干净的数据集中，SD值取20-30，ASR通常能重建约5-15%。推荐对超过30%ASR修正率的数据进行手动检查，这些数据要么噪声不常见要么参数设置比较激进。 通道插值 球面样条插值pop_interp()，关于插值顺序，建议不同。EEGLAB默认的插值方法依赖于球面样条，会给后续ICA处理引入秩的问题，为避免这一问题，插值应在ICA之后；然而，如果缺失多个通道，在重参考前进行插值可能是有利的，因为通道缺失导致的分布不均可能会在平均参考时引入半球偏置。\nCLEAN流程支持两种方法。默认按照EEGLAB/Makoto 预处理流程。\n关于通道插值引入秩亏：ICA表现依赖于有效秩和数据协方差矩阵的数值情况，尽管由于浮点数精度和空间平滑，球面样条插值没有创建直接线性关系，但它产生了近共线的通道，这回产生病态条件的数据矩阵（协方差矩阵的最小特征值接近0）-\u0026gt;有效秩缺损。这样的病态条件会降低ICA分解的稳定性和成分分解质量。 重参考 为了减少重参考电极上噪声、神经活动对其他电极的影响。方法一：转换至其他电极，如双侧乳突/双侧耳垂参考，但问题是没有一个脑电帽会专门记录乳突的信号。\n方法二：全平均参考AVGR，能减少位置偏差，适合做源分析（可以减少模型误差）。当电极数有限（$\\leq 32$）或电极分布不均匀时，要避免使用AVGR，因为AVGR会使参考电位（所有通道电位均值）失真。\n方法三：REST(Reference Electrode Standardization Technique)，通过数学方法将数据变换为使用头模型近似无穷远的参考，对源分析和连接性分析很有用，对中等电极密度也适合。重要的是，为了优化性能，REST需要一个精确的头模型（CSD，电流源模型，严格来说并不算是）。\n在CLEAN流程中，推荐AVGRpop_refef()，MATLAB不能在大规模自动预处理中灵活调用REST算法。为了避免秩亏，在重参考前会插入一个零值通道，之后去除。 保存数据和日志 命名和保存，详情需下载代码查看。 ICA and component selection Script B执行IC分解并保存成分，Script C执行成分选择和重建。\n两个途径：伪迹去除和IC提取（降维）。\n有效秩问题：为弥补插值导致的有效秩缺失，ICA会被计算在一个维度和数据协方差矩阵的评估有效秩维度相同的子空间。\nICA preparations 载入数据-\u0026gt;随机数生成器：设为默认能产生稳定成分，但对糟糕的或不充分的ICA分解，改变生成器可能有用。\n在临时数据上做了一些预处理来提高ICA性能（不会在最终的数据上）：\n对基线漂移敏感（会改变数据的方差结构，来自出汗或是电极阻抗变化），因为ICA希望处理的是平稳数据（数据均值和方差不要随时间有剧烈变化）-\u0026gt;使用高通滤波器，截止频率在1-2Hz 去除不规律伪迹（已经在ASR步骤中去除过了）说明：ICA会将所有的数据点都进行处理，数据是分段的还是连续的无关紧要。分段成1s的小片段-\u0026gt;去趋势detrend()-\u0026gt;拒段pop_jointprob() 数据尽可能多，ICA性能会提高。不过，建议排除与研究问题无关的较长时间活动，如休息或引导。并没有明确的规定决定多少数据量是足够的，但有EEG社区推断出的经验法则：\n对$N$个稳定成分，推荐每个通道有$kN^2$样本点，$N$是通道数，$k$是乘积因子，推荐$k=20(N\\leq 64);k=30(N\u0026gt;64)$。采样率要在100-500Hz。更高的采样率尽管能提供更多的数据点，但并不能增加频带信息。 一种不那么保守的方法是确定每个秩的样本数量。这里的建议是至少准备20个，最好是50个样本。这两个数值都会在日志文件中报告。？？？ Artifact rejection approach 半自动的：IClabel+人眼筛选。IC算法Extended Infomax ICA\nComponent extraction approach 全自动方法提取IC。ICA算法AMICA。有排除标准。使用了dipfit插件（dipole拟合需要导入头模型，默认是10-05，否的话自行导入头模型文件）\n提取IC成分的目的是什么？\nSubsequent steps 数据分段pop_epoch()和分段后的基线校正pop_rmbase()/伪迹去除pop_jointprob()。\n分段是一个比较复杂的任务，依赖于实验设计和标记，鼓励使用者去调整ta们自己的后续处理方法。\nOutput structure 文件类型和保存路径。\nQuality assessment RMS（root mean square，均方根）\nvariance heatmap，每个通道的方差图\n坏道检测-The number of bad channels, including deviant and flat channels\n通道插值-the ratio of residual noise power to the surrounding spectrum\nASR-the percentage of reconstructed data points，5%-15%比较合适\nICA处理-the Percentage of Total Variance Explained by Artifacts ($Var_{Art}$)\n使用者要根据提供的日志文件和自动生成的数据质量图 小心回顾每一不预处理。\nDiscussion 促进用户主动交互，而不是依赖被动的自动化流程。\n一些自动化处理脚本，比如Automagic，很方便使用、数据质量也比较好。但是，好的预处理是需要对每个数据集的了解的。\n“Transparency and reproducibility have the highest priority in empirical research” (Böttcher 等, 2026, p. 12)\n关于秩的问题：EEG束形成（beamforming，一种源定位方法）和连接性分析需要数据是最小秩亏损的。\n“As there is no ground truth of data in neurophysiology, creating the ‘perfect’ pipeline is impossible.” (Böttcher 等, 2026, p. 13)\nelse 恭喜你阅读完啦。\n补充 频谱泄露和拖尾现象\n","permalink":"https://three-fire-s.github.io/notes/clean-pipeline/","summary":"\u003cdiv class=\"details admonition abstract open\"\u003e\n        \u003cdiv class=\"details-summary admonition-title\"\u003e\n            \u003ci class=\"icon fas fa-list-ul fa-fw\"\u003e\u003c/i\u003e参考文献\u003ci class=\"details-icon fas fa-angle-right fa-fw\"\u003e\u003c/i\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"details-content\"\u003e\n            \u003cdiv class=\"admonition-content\"\u003e[1] BÖTTCHER A, WENDIGGENSEN P, MÜCKSCHEL M, 等, 2026. Standardizing EEG preprocessing for cross-site integration - the CLEAN pipeline[J/OL]. NeuroImage, 328: 121812. DOI:\u003ca href=\"https://doi.org/10.1016/j.neuroimage.2026.121812\"\u003e10.1016/j.neuroimage.2026.121812\u003c/a\u003e.\u003c/div\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n\u003ch2 id=\"论文背景与介绍\"\u003e论文背景与介绍\u003c/h2\u003e\n\u003cp\u003e应用面向：数据集成(data integration)\u003c/p\u003e","title":"预处理流程-CLEAN pipeline"},{"content":"阅读提示 建议读者直接从ICA介绍开始阅读，当你遇到问题时，希望前文给出的一些数学基础可以帮助你，也推荐读者自行搜索，摸清ICA框架下的细节。\n背景 ICA是一种经常用于EEG信号伪迹去除的方法，方法来源是盲源问题的分析，经典例子是鸡尾酒会问题。\n笔者使用了EEGLAB中关于ICA的插件，发现在使用过程中无需在乎ICA的各种逻辑，just do it! 逻辑十分的简单粗暴，参数也几乎不用动，在这个过程中，笔者常常怀疑结果是否合理，为什么会合理。因此，笔者学习了一些关于ICA的底层原理和逻辑，希望能为自己未来的科研生涯做点好事。\n但行好事，无问前程。这句话写给今天为实习、为毕业很焦虑的我自己。\n数学基础：奇异值分解（SVD） 前言 所谓“基础”，仅仅是指进入一个领域或者了解一个方法的基石，并不代表内容本身很轻松很容易。这是一块让我自己也觉得头大的介绍内容，因为我在学习线性代数的时候并没有学过，“奇异值分解”的应用广泛性甚至让我质疑自己是否真正学过线代。Anyway，我想这部分的内容是很必要的，我想一边学一边完成对它的介绍。\n同时，由于我在本科阶段的数学物理学习过程中常常只关注了如何证明出来，常常对理论的意义认识不清、应用困难。回想起来，虽应对了考试，当常常面对拓展题一筹莫展，日后应用时，除了知道自己证过该理论，该理论合理，但根本不会用，不由得生出一种“丢了西瓜捡了芝麻”的感受。升入高年级后，也基本没有再证过某个理论了，手生也让我对曾学过的东西敬而远之。\n正因此，吸取教训，本文旨在让自己建立对知识的直观认识，无意于复杂的证明、逻辑推导等方面。\n定义 假设$M$是一个$m\\times n$阶矩阵，其中的元素全部属于域$K$，也就是实数域或复数域。如此则存在一个分解使得\n$$M=U\\Sigma V^H $$其中，$U$是$m\\times m$阶酉矩阵；$\\Sigma$是半正定$m\\times n$阶对角矩阵；而$V^H$即$V$的共轭转置，是$n\\times n$阶酉矩阵。\n这样的分解就称作$M$的奇异值分解，$\\Sigma$对角线上的元素$\\Sigma_i$即为$M$的奇异值。\n来自：奇异值分解_百度百科\n定义带给人的直接感受是：一个任意的矩阵都可以分解，分解成特定的矩阵乘积。定义中也出现了很多陌生的名词，找找百科逐一理顺。\n共轭转置 $A$的共轭转置矩阵用$A^H$来表示，与转置矩阵$A^T$的关系是$A^H=\\overline{A^T}$。对于$A=(a_{ij})$，用$\\overline{a}$表示$a$的共轭复数，$A^H=(\\overline{a_{ji}})$\n酉矩阵 幺正矩阵，Unitary matrix\n若一$n$行$n$列的复数矩阵$U$满足\n$$U^H U=UU^H=I_n$$其中$I_n$为n阶单位矩阵，则$U$成为酉矩阵，也即$U^{-1}=U^H$。若酉矩阵的元素都是实数，其即为正交矩阵。\n正定矩阵与半正定矩阵 对于二次型$f(x_1,x_2,\\cdots,x_n)$和与之对应的对称矩阵$A$，如果对于任意的$x=(x_1,x_2,\\cdots,x_n)^T\\in R^n$，都有$f(x)\\geq 0$\n当且仅当$x=0$时$f(x)=0$，那么称$f$为正定二次型，称$A$为正定矩阵 存在$x\\neq 0$时$f(x)=0$，那么称$f$为半正定二次型，称$A$为半正定矩阵 半正定矩阵的判定条件\n所有主子式非负 所有特征值非负 else，参考半正定矩阵_百度百科 看了定义，我们好像懂了，又好像没懂。有一种感觉是：你说了这么多，有什么用呢。真是一个好问题哈哈哈。精彩继续，马上回来。\n其实是我也不知道哈哈哈，好陌生的一个名词，没有接触过耶。不妨从特征分解开始吧。\n特征分解 相似矩阵 设$A$，$B$为$n$阶矩阵，若存在可逆矩阵$P$，使得$P^{-1}AP=B$，则称$A$与$B$是相似的，记作$A\\sim B$\n来自：《线性代数（第三版）》陈建龙等，定义4.1\n有什么用呢？这里插入书中的例子吧。\n设数列$\\lbrace x_n \\rbrace$，$\\lbrace y_n \\rbrace$满足$\\begin{cases} x_n = 3x_{n-1} - y_{n-1} \\ \\cr y_n = -x_{n-1} + 3y_{n-1} \\end{cases} $，其中$x_0=y_0=1$，求$x_n$，$y_n$\n在这个例子中，构造了$A=\\begin{pmatrix} 3 \u0026amp; -1 \\cr -1 \u0026amp; 3 \\end{pmatrix} $，问题转换成求$A^n$，并假想存在可逆矩阵$P$，使得$P^{-1}AP=D$。由此引出了相似矩阵。\n总结书中提到的相似矩阵的性质如下：\n性质4.1 等价 性质4.2 多项式相似 性质4.3 行列式相等 性质4.4 秩相同 性质4.6 迹相同 为进一步引出特征值和特征向量，书中抛出了这样的一个问题：每个$n$阶矩阵均相似于对角阵吗？\n定理4.1\n$n$阶矩阵$A$相似于对角阵的充分必要条件是存在$n$个线性无关的列向量$\\xi_1,\\xi_2,\\cdots ,\\xi_n$和$n$个数$\\lambda_1,\\cdots ,\\lambda_n$使得$A\\xi_i=\\lambda_i\\xi_i(i=1,\\cdots ,n)$。此时，若令$P=(\\xi_1,\\xi_2,\\cdots ,\\xi_n)$，$\\Lambda=\\begin{bmatrix} \\lambda_1 \u0026amp; \\cdots \u0026amp; 0 \\cr \\vdots \u0026amp; \\ddots \u0026amp; \\vdots \\cr 0 \u0026amp; \\cdots \u0026amp; \\lambda_n \\end{bmatrix} $，则$P^{-1}AP=\\Lambda$\n该定理提出了一个定义可相似对角化，但是显而易见，这个概念太严格了，$A$必须是满秩矩阵。如果无所谓秩呢？\n特征值和特征向量 基于定理4.1，引出了特征值和特征向量的定义。\n定义4.3\n设$A$为$n$阶矩阵，若存在数$\\lambda$和非零向量$\\xi$，满足$A\\xi=\\lambda\\xi$，则称$\\lambda$为$A$的一个特征值，称$\\xi$为$A$的属于特征值$\\lambda$的特征向量。\n求$A$的特征值与特征向量的步骤如下：\n计算$A$的特征多项式$|\\lambda E-A|$ 计算$|\\lambda E-A|=0$的全部根，这些根就是$A$的全部特征值 对每一个特征值$\\lambda_i,i=1,2,\\cdots ,n$，求线性方程组$(\\lambda_i E-A)x=0$的一个基础解系$\\eta_1,\\cdots ,\\eta_t$，于是$A$的属于$\\lambda_i$的全部特征向量为$k_1\\eta_1+\\cdots +k_t\\eta_t$，其中$k_1,\\cdots, k_t$为任意不全为零的数 现在我们学了很多了，然后呢，不知道，那就问问AI吧。\n豆包说特征分解用处\n提取一下信息：把复杂矩阵拆成简单部分，让计算更快、结构更清晰\n简化矩阵高次幂运算 线性变换的本质：特征向量方向上，只伸缩，不旋转、不扭曲 数据降维：PCA ICA else 看起来，计算或许就比较符合我们想要的意义了。但看起来从特征分解到奇异值分解，好像还有一段距离，是什么呢？或许我们更想说的是，看看ICA吧。\n补充 如果是第一次读到这里，为避免复杂的公式让你感到疲惫，不如先跳过这一部分；如果你刚从独立成分分析-求解跳转到这里，那我们就可以默认为你已经有了一些好奇心了，你想知道矩阵被分解后的每一部分都将怎么求解。抱着这样的好奇心，我搜寻到了一些参考资料，由于个人局限性，这一部分的内容无法做详尽的展开，我想你可以点开下面的参考资料，尤其推荐台湾学者周志成的线性代数网站奇异值分解专题 | 线代启示录，从这个网站中，你一定能和我一样收获良多。\n奇异值分解参考资料 奇异值分解（Singular Value Decomposition， SVD）笔记 - Clay-Technology World\n奇异值分解专题 | 线代启示录\n奇异值分解 （SVD） | 线代启示录\n线性代数基本定理 （四） | 线代启示录\nSVD 于矩阵近似的应用 | 线代启示录\n線性變換觀點下的奇異值分解 | 線代啟示錄\n特殊矩阵 （6）：正定矩阵 | 线代启示录\n特殊矩阵 （14）：Gramian 矩阵 | 线代启示录\n下面的内容只是很少的一部分摘要，建议读者移步奇异值分解专题 | 线代启示录。\nSVD定义\n假设$A$是一个$m\\times n$阶矩阵，其中的元素全部属于域$K$，也就是实数域或复数域。如此则存在一个分解使得\n$$A=U\\Sigma V^H $$其中，$U$是$m\\times m$阶酉矩阵；$\\Sigma$是半正定$m\\times n$阶对角矩阵；而$V^H$即$V$的共轭转置，是$n\\times n$阶酉矩阵。\n这样的分解就称作$M$的奇异值分解，$\\Sigma$对角线上的元素$\\Sigma_i$即为$M$的奇异值。\n来自：奇异值分解_百度百科\n直观理解SVD 图1 奇异值分解结构 其中，上图的 $r$ 代表矩阵 $A$ 的秩（Rank），即矩阵 $A$ 中线性独立行或列的最大数目，同时也是奇异值矩阵$\\Sigma$ 中非零奇异值的数量，表示着矩阵 $A$ 中所包含的独立信息。$\\Sigma$中只有左上角$r\\times r$区块对角线元素非零。\n如何计算SVD 计算SVD，遵循以下步骤：\n计算$A^TA$和$AA^T$ 求解$V$和$\\Sigma$：对$A^TA$做特征值分解，特征值的平方根为奇异值，用来建构$\\Sigma$，正规化后的特征向量组成$V$。 求解$U$，对$AA^T$做特征值分解，正规化后的特征向量组成$U$ 组合$U,\\Sigma,V^T$ 数学基础：概率统计的一些概念 协方差矩阵 【数学】方差、协方差、协方差矩阵 - LENMOD - 博客园\n独立成分分析（ICA） 参考文献 [1] SHLENS J, 2014. A tutorial on independent component analysis[A/OL]. arXiv[2025-10-22]. http://arxiv.org/abs/1404.2986. DOI:10.48550/arXiv.1404.2986. 盲源分离问题 ICA来源于盲源分离问题，为了更清楚地理解接下来的内容，我们需要陈述一下盲源分离问题。\n假设有原始信号组$s$，经过线性组合$A$，有观察信号$x$，即$x=As$。我们想做的事情是，已知$x$，是否能反推出$s$。很明显这是一个欠约束问题，就类似于$6=2\\times 3=1\\times 6,s=?$。\n而ICA的解决方法是用$x$的统计学信息提供更多的约束，毕竟实际中我们的$x$往往是空间$\\times$时间的矩阵呢，没理由放弃更多的信息。那到底该怎么做呢？\n求解 求解策略是“分而治之”的思想，专注于求$A$，并且考虑将$A$也分解成更简单更易求的部分，这就是SVD出现的地方。嘿，这个时候，难道不对“更易求”产生疑问吗？可能我们需要补充了一下SVD的知识了，怎么求这些“部分”呢？我将返回SVD部分继续学习补充。\nSVD-补充\n见者哀，闻者泪。很抱歉地告诉你的是，当你翻过了奇异值分解这座大山之后，你发现在ICA的数学推导中发挥最大作用的居然是概率统计。嗯……我知道这有一些离谱，明明学了这么多知识了。但还好的是，统计学的定理总要比矩阵好理解一点（maybe）。\n这两天也是波折不断，身体不适，心情烦躁。人真的只有在自己身体不舒服的时候才能意识到有一个健康、不拖后腿的身体有多么重要。\n言归正传，我们继续论文里的内容。\n0.假设 在ICA算法中，有以下假设：\n源信号和观察信号间有线性关系，即$x=As$ 源信号是白化信号，有$\\langle ss^T\\rangle=I$。用$\\langle \\cdot \\rangle$表示信号的均值，$\\langle ss^T\\rangle$表示$s$的协方差矩阵。 源信号之间互相独立 这三个假设增加了约束关系，也使得求解成为可能。\n1.矩阵分解 采用“分而治之”的思想，将矩阵$A$做奇异值分解。\n$$ A=U\\Sigma V^T \\tag{1-1} $$其中，$U^T=U^{-1}$，$V^T=V^{-1}$，$\\Sigma$为类对角矩阵。\n2.求$U$，$ \\Sigma$ 使用假设2“$\\langle ss^T\\rangle=I$”\n$$ \\begin{aligned} \\langle xx^T\\rangle \u0026= \\langle (As)(As)^T\\rangle \\\\ \u0026=\\langle (U\\Sigma Vs)(U\\Sigma Vs)^T\\rangle \\\\\u0026=U\\Sigma V\\langle ss^T\\rangle V^T \\Sigma U^T \\\\\u0026=U\\Sigma^2 U^T\\end{aligned} $$协方差矩阵是实对称矩阵，实对称矩阵可以相似对角化，即\n$$ \\langle xx^T\\rangle =EDE^T$$其中，$D$为对角矩阵，对角线上值为$\\langle xx^T\\rangle$的特征值，$E$为正交矩阵，每一列为对应的特征向量。\n联立我们的假设和实对称矩阵可相似对角化的定理，我们可以得到$U$、$\\Sigma$，即令$U=E$，$\\Sigma=D^{\\frac{1}{2}}$\n3.理解“白化”（whitening） 取$W$作为$A^{-1}$的估计。有$\\hat{s}=Wx$\n$$W=A^{-1}=(U\\Sigma V^T)^{-1}=V \\Sigma^{-1} U^T=VD^{-\\frac{1}{2}}E^T$$$$\\hat{s}=V(D^{-\\frac{1}{2}}E^Tx)=Vx_{w}$$在这里，用$x_w$表示“白化”（whitening）后的数据，$x_w=D^{-\\frac{1}{2}}E^Tx$。\n$$x \\xrightarrow{\\text{映射到主成分空间}} E^Tx\\xrightarrow{\\text{尺度（方差）归一化}}D^{-\\frac{1}{2}}E^Tx $$4.求V $V$的求解是所有ICA算法的核心，利用的是假设3“源信号之间互相独立”。也就是说，我们的$V$应该使得源信号的估计$\\hat{s}=Vx_w$尽可能独立。用什么样的指标来评估独立决定了目标函数的形式。在论文中，举例了以多信息（multi-information）作为评估函数，并进行简化，优化得到目标函数的过程。\n这里建议读者阅读论文原文，有不懂的可以询问AI，自己试着代一代公式，我们就不再赘述这一过程了。\n$$V = \\underset{V}{\\arg\\min} \\sum_i H\\left[ \\left( V x_w \\right)_i \\right]$$其中，$ H\\left[\\cdot \\right]$表示熵（entropy），$H[\\boldsymbol{y}] = -\\int P(\\boldsymbol{y}) \\log_2 P(\\boldsymbol{y}) d\\boldsymbol{y}$\n很明显，接下来要解的是一个最优化问题，由于问题的复杂性，我们无法得到解析解，我们只能通过各种算法（梯度下降、启发式）迭代求近似解。读者可以移步至胡理老师的《脑电信号处理与特征提取》第六章 第三节中关于ICA算法稳定性的讨论，这里附上对应英文版书籍的链接EEG Signal Processing and Feature Extraction | Springer Nature Link，读者可自行查阅。\n结语 写于2026-3-26\n书至这里，本人的第一篇博客就算是完成了，后续应该还会有很多需要补充的内容。希望作者本人能在不断学习中精进自己的理解和认识，为读者呈现上更好的内容。\n感谢陪伴。\n附 写于2026-3-26\n好开心啊哈哈哈，在此留文庆祝喵喵上岸啦。感谢她告诉我这个好消息，已经断联好几个月了，好开心，又要哭了真的。好感动，喵喵超级超级厉害，祝喵喵以后的人生也能顺顺利利的。\n","permalink":"https://three-fire-s.github.io/notes/icaintroduction/","summary":"\u003ch2 id=\"阅读提示\"\u003e阅读提示\u003c/h2\u003e\n\u003cp\u003e建议读者直接从\u003ca href=\"/notes/icaintroduction/#%e7%9b%b2%e6%ba%90%e5%88%86%e7%a6%bb%e9%97%ae%e9%a2%98\"\u003eICA介绍\u003c/a\u003e开始阅读，当你遇到问题时，希望前文给出的一些数学基础可以帮助你，也推荐读者自行搜索，摸清ICA框架下的细节。\u003c/p\u003e\n\u003ch2 id=\"背景\"\u003e背景\u003c/h2\u003e\n\u003cp\u003eICA是一种经常用于EEG信号伪迹去除的方法，方法来源是盲源问题的分析，经典例子是鸡尾酒会问题。\u003c/p\u003e\n\u003cp\u003e笔者使用了EEGLAB中关于ICA的插件，发现在使用过程中无需在乎ICA的各种逻辑，just do it! 逻辑十分的简单粗暴，参数也几乎不用动，在这个过程中，笔者常常怀疑结果是否合理，为什么会合理。因此，笔者学习了一些关于ICA的底层原理和逻辑，希望能为自己未来的科研生涯做点好事。\u003c/p\u003e","title":"ICA数学原理介绍"},{"content":" 论文目录 A tip banner 开始写作 这是我的第一篇笔记内容！\n哈哈哈哈哈哈，于2026/3/19，胡汉三成功地调试出了自己的博客网站，希望能继续努力，写出自己的第一篇博客！\n测试功能 粗体文字 斜体文字 代码 代码块测试 css\r1 2 3 4 5 6 .post-content pre, code { font-family: \u0026#34;JetBrains Mono\u0026#34;, monospace; font-size: 1rem; line-height: 1.2; } https://gohugo.io/content-management/syntax-highlighting/\n【Hugo】进阶篇：PaperMod主题美化 | 乱话三千\n公式测试 $$ y_{i+1} $$$$ \\boldsymbol{x}_{i+1}+\\boldsymbol{x}_{i+2}=\\boldsymbol{x}_{i+3} $$Hugo博客添加LaTeX语法支持 | 🚀 田少晗的个人网站\n图片测试 Admonition测试 This is a tip A tip banner Or\nThis is a tip A tip banner [Theme Documentation - Extended Shortcodes - LoveIt]\n在PaperMod中引入侧边目录和阅读进度显示 | 周鑫的个人博客\n","permalink":"https://three-fire-s.github.io/notes/my-first-note/","summary":"\u003cdiv class=\"details admonition Note open\"\u003e\n        \u003cdiv class=\"details-summary admonition-title\"\u003e\n            \u003ci class=\"icon fas fa-pencil-alt fa-fw\"\u003e\u003c/i\u003e论文目录\u003ci class=\"details-icon fas fa-angle-right fa-fw\"\u003e\u003c/i\u003e\n        \u003c/div\u003e\n        \u003cdiv class=\"details-content\"\u003e\n            \u003cdiv class=\"admonition-content\"\u003eA \u003cstrong\u003etip\u003c/strong\u003e banner\u003c/div\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n\u003ch2 id=\"开始写作\"\u003e开始写作\u003c/h2\u003e\n\u003cp\u003e这是我的第一篇笔记内容！\u003c/p\u003e\n\u003cp\u003e哈哈哈哈哈哈，于2026/3/19，胡汉三成功地调试出了自己的博客网站，希望能继续努力，写出自己的第一篇博客！\u003c/p\u003e","title":"我的第一篇笔记"}]