4. 数据导入与预处理:测量数据格式(MDM, CSV, DAT)、数据清洗、异常值剔除、数据可视化

在BSIMProPlus统计建模流程中,测量数据的质量直接决定参数提取的准确性与模型的可信度。原始测量数据通常包含噪声、系统误差、格式不一致等问题,必须经过严格的导入、清洗与预处理,才能用于后续的统计建模与SPICE参数提取。本章将系统讲解BSIMProPlus支持的三种主流数据格式、数据清洗的核心步骤、异常值剔除的统计方法以及数据可视化的关键技巧。

4.1 测量数据格式解析

BSIMProPlus支持多种测量数据格式,其中最常见的是MDM(Measurement Data Model)、CSV(Comma-Separated Values)和DAT(Data Table)。不同格式在数据结构、元数据承载能力和兼容性方面存在显著差异。

格式 扩展名 数据结构 元数据支持 典型应用场景
MDM .mdm 分层树状结构,包含器件类型、测试条件、变量定义 完整(测试日期、设备ID、温度、偏置条件) BSIMProPlus原生格式,自动关联参数提取模板
CSV .csv 二维表格,第一行为列名,后续为数据行 有限(仅列名可携带单位信息) 通用数据交换,从探针台或测试仪器导出
DAT .dat 固定宽度或分隔符文本,多列数据 极少(通常需外部说明文件) 老式测试系统、自定义测试脚本输出
最佳实践: 优先使用MDM格式进行数据存储,因为它保留了完整的测试元数据(如温度、偏置电压、器件尺寸),这些信息在后续的统计建模中至关重要。如果只能获得CSV或DAT格式,建议在导入BSIMProPlus后立即补充元数据标签。

4.1.1 MDM格式详解

MDM是BSIMProPlus的原生数据格式,采用分层结构组织数据。一个典型的MDM文件包含以下层级:

  • 根节点: 项目名称、创建日期、版本号
  • 器件组: 按器件类型分组(NMOS、PMOS、BJT等)
  • 测试条件: 温度、偏置电压、测量模式(DC/CV/脉冲)
  • 变量定义: 自变量(Vgs、Vds、Vbs)和因变量(Ids、Ig、Cgg)
  • 数据矩阵: 实际测量值,按自变量扫描顺序排列
MDM导入命令示例:
# BSIMProPlus Tcl命令导入MDM文件


import_data -format mdm -file "nmos_25C.mdm" -device_type "NMOS" -temperature 25

4.1.2 CSV格式导入规范

CSV格式因其通用性而被广泛使用,但导入时需注意列名约定。BSIMProPlus要求CSV文件的第一行必须包含标准列名,以便自动映射到内部变量。

标准列名 单位 说明
Vgs V 栅源电压
Vds V 漏源电压
Vbs V 衬底偏压
Ids A 漏极电流
Ig A 栅极漏电流
Temp °C 测试温度(可选)
CSV导入命令示例:
# 导入CSV文件,指定列映射


import_data -format csv -file "ids_vgs_25C.csv" \


            -map "Vgs:Vgs, Vds:Vds, Ids:Ids" \


            -temperature 25

4.1.3 DAT格式兼容处理

DAT格式通常来自老式测试系统,数据列之间使用空格或制表符分隔。BSIMProPlus提供了灵活的解析选项:

  • 分隔符: 空格、制表符、逗号均可配置
  • 列索引: 按列位置指定变量映射
  • 跳过行: 忽略文件头部的注释行
DAT导入命令示例:
# 导入DAT文件,指定列索引和分隔符


import_data -format dat -file "measurement.dat" \


            -delimiter "tab" \


            -skip_lines 3 \


            -map "col1:Vgs, col2:Vds, col3:Ids"

4.2 数据清洗流程

数据清洗是确保统计建模可靠性的关键步骤。BSIMProPlus提供了一套完整的数据清洗工具,包括缺失值处理、重复数据删除、数据格式标准化等。

常见陷阱: 在清洗过程中,不要盲目删除“看起来异常”的数据点。某些异常值可能对应物理效应(如自热效应、击穿现象),删除它们会导致模型无法捕捉这些效应。

4.2.1 缺失值处理

测量数据中常见的缺失值类型包括:

缺失类型 表现形式 处理方法
完全缺失 整行数据为空 直接删除该行
部分缺失 某列数据为空 插值填充或删除该行
NaN/Inf 数值溢出或未定义 替换为边界值或删除
超出量程 数值超出仪器测量范围 标记为无效并剔除
缺失值处理命令示例:
# 删除包含NaN的行


clean_data -remove_nan true





# 对缺失值进行线性插值


clean_data -interpolate missing -method linear





# 设置有效数据范围,超出则标记为无效


clean_data -set_range "Ids" -min 1e-12 -max 1e-3

4.2.2 重复数据检测

重复数据可能由测试系统误触发或数据合并错误引起。BSIMProPlus通过比较自变量组合来检测重复:

  • 精确重复: 所有自变量值完全相同,取平均值或保留第一条
  • 近似重复: 自变量值在容差范围内,取中位数或加权平均
重复数据处理命令:
# 检测并删除精确重复数据


clean_data -remove_duplicates exact





# 对近似重复数据取中位数


clean_data -remove_duplicates approximate -tolerance 0.001 -method median

4.2.3 数据格式标准化

不同测试仪器输出的数据格式可能不一致,需要进行标准化:

标准化项 原始格式 标准化后
单位转换 mA, uA, nA 统一为A(安培)
符号约定 PMOS电流为正 统一为值
温度单位 K, °F 统一为°C
电压极性 Vds为负 统一为正值(PMOS)

4.3 异常值剔除方法

异常值剔除是数据预处理中最敏感的操作。BSIMProPlus提供了多种统计方法,用户需要根据数据特性选择合适的方法。

异常值剔除方法决策流程 依据样本量与分布特性选择统计方法(第 4.3 节) 原始测量数据 数据量 是否充足? 是 否 MAD / 箱线图法 小样本 · 分布未知 3σ / IQR 方法 大样本 · 近似正态 执行异常值检测与标记 是否影响 模型拟合? 是 否 保留并标记 剔除异常值 清洗完成的数据集 注:由物理效应(如自热、击穿)引起的偏离不应视为异常值,须保留并标记

4.3.1 3σ 方法

适用于数据量较大(通常 > 100个样本)且近似正态分布的情况。以均值 μ 为中心,标准差 σ 为尺度,超出 μ ± 3σ 范围的数据点被视为异常值。

3σ 方法实现:
# 计算均值和标准差


set mean [expr {[statistics -variable Ids -operation mean]}]


set std [expr {[statistics -variable Ids -operation stddev]}]





# 标记异常值


clean_data -mark_outliers -method sigma -threshold 3.0 \


           -variable Ids -mean $mean -std $std

4.3.2 IQR 方法

基于四分位距(Interquartile Range)的方法,对数据分布没有严格要求,适用于偏态分布。异常值定义为超出 Q1 - 1.5×IQR 或 Q3 + 1.5×IQR 的数据点。

参数 定义 典型值
Q1 第一四分位数(25%分位) 数据排序后第25%位置的值
Q3 第三四分位数(75%分位) 数据排序后第75%位置的值
IQR 四分位距 = Q3 - Q1 数据中间50%的跨度
下界 Q1 - 1.5 × IQR 异常值下限
上界 Q3 + 1.5 × IQR 异常值上限
IQR 方法实现:
# 计算四分位数


set q1 [expr {[statistics -variable Ids -operation quartile -value 0.25]}]


set q3 [expr {[statistics -variable Ids -operation quartile -value 0.75]}]


set iqr [expr {$q3 - $q1}]





# 标记异常值


clean_data -mark_outliers -method iqr -multiplier 1.5 \


           -variable Ids -q1 $q1 -q3 $q3

4.3.3 MAD 方法

中位数偏差(Median Absolute Deviation)方法对异常值本身不敏感,适用于小样本数据。MAD = median(|Xi - median(X)|)。异常值定义为超出 median ± 3 × MAD 的数据点。

方法选择建议:
  • 大样本、正态分布: 优先使用3σ方法,计算简单且物理意义明确
  • 小样本、分布未知: 使用MAD方法,鲁棒性最强
  • 偏态分布、有离群点: 使用IQR方法,不受极端值影响
  • 物理效应导致的“异常”: 不要剔除,应保留并标记为特殊区域

4.4 数据可视化

数据可视化是数据预处理中不可或缺的环节。通过可视化,可以直观地发现数据中的异常模式、分布特征和潜在问题。BSIMProPlus内置了丰富的可视化工具,支持多种图表类型。

4.4.1 散点图与曲线图

散点图是最常用的数据可视化方式,用于观察变量之间的关系。在BSIMProPlus中,可以绘制Ids-Vgs、Ids-Vds等特性曲线。

Ids–Vgs 特性曲线(Vds = 0.05V / 1.0V) Vds = 0.05 V Vds = 1.0 V 0 0.5 1.0 1.5 2.0 0 2e-4 4e-4 6e-4 Vgs (V) Ids (A) Vgs≈0.8V 异常跳变 Vgs≈1.2V 异常凸起 • 蓝色曲线在 Vgs≈0.8V 处出现垂直跳变(橙色高亮段):电流突增后沿新趋势上升 • 红色曲线在 Vgs≈1.2V 处出现异常凸起:局部隆起后回落,偏离正常饱和趋势

4.4.2 箱线图

箱线图用于展示数据的分布特征,包括中位数、四分位数和异常值。在BSIMProPlus中,可以按器件、温度或批次分组绘制箱线图。

阈值电压 Vth 箱线图(按批次分组) Vth (V) 0.30 0.35 0.40 0.45 0.50 批次1 批次2 批次3 箱体表示Q1~Q3,中间红线为中位数,须线表示1.5×IQR范围,圆点为异常值

4.4.3 分布直方图

直方图用于观察数据的概率分布,帮助判断数据是否服从正态分布,以及是否存在多模态分布。

Vth 分布直方图与正态拟合检验 plot -type histogram -variable Vth -bins 22 300 200 100 0 频数(样本数) μ = 0.415 V 0.30 0.35 0.40 0.45 0.50 阈值电压 Vth (V) 观测频数(22 个分箱) 正态拟合 μ = 0.415 V,σ = 0.036 V 次峰 ≈ 0.465 V 偏离正态拟合,疑似多模态 分布近似对称:主峰两侧衰减趋势与正态拟合基本吻合;右尾次峰提示需按批次分组复核
可视化命令示例:
# 绘制Ids-Vgs曲线


plot -type curve -x Vgs -y Ids -group Vds \


     -title "Ids vs Vgs at Different Vds" \


     -xlabel "Gate Voltage (V)" -ylabel "Drain Current (A)"





# 绘制箱线图


plot -type boxplot -variable Vth -group "Batch" \


     -title "Vth Distribution by Batch"





# 绘制直方图


plot -type histogram -variable Vth -bins 20 \


     -title "Vth Histogram" -xlabel "Threshold Voltage (V)"

4.5 数据预处理工作流

← 上一章 📖 返回目录 下一章 →