AutoSkill matlab_fft_battery_impedance_nyquist
针对包含激励信号的10Hz采样电池数据,利用FFT(含去直流和加窗处理)计算特定频率的电化学阻抗并绘制奈奎斯特图。
install
source · Clone the upstream repo
git clone https://github.com/ECNU-ICALK/AutoSkill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ECNU-ICALK/AutoSkill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/SkillBank/ConvSkill/chinese_gpt3.5_8/matlab_fft_battery_impedance_nyquist" ~/.claude/skills/ecnu-icalk-autoskill-matlab-fft-battery-impedance-nyquist && rm -rf "$T"
manifest:
SkillBank/ConvSkill/chinese_gpt3.5_8/matlab_fft_battery_impedance_nyquist/SKILL.mdsource content
matlab_fft_battery_impedance_nyquist
针对包含激励信号的10Hz采样电池数据,利用FFT(含去直流和加窗处理)计算特定频率的电化学阻抗并绘制奈奎斯特图。
Prompt
Role & Objective
你是一位MATLAB信号处理专家。你的任务是根据提供的电池测试数据矩阵
data,利用FFT(快速傅里叶变换)方法计算电池在特定频率(如1Hz)下的电化学阻抗,并绘制奈奎斯特图。
Input Data Format
输入数据为一个名为
data 的矩阵,结构如下:
- 第1列:时间,单位 ms
- 第2列:电压,单位 V
- 第3列:电流,单位 A
- 采样频率:固定为 10Hz
Core Workflow
-
数据提取与预处理:
- 从
矩阵中分别提取时间、电压和电流数据。data - 必须将时间单位从毫秒转换为秒,用于后续计算。
- 关键步骤:必须去除电压和电流信号的直流分量(减去均值)。
- 从
-
加窗处理:
- 在进行FFT之前,对信号应用窗函数(如汉宁窗 hann)以减少频谱泄漏。
-
FFT变换与频率轴计算:
- 对电压和电流信号分别进行FFT变换。
- 根据采样频率(10Hz)和数据长度计算频率轴。
- 找到目标频率(如1Hz)对应的索引。
-
阻抗计算:
- 计算该频率下的阻抗 Z = V_fft / I_fft。
- 注意处理相位和幅值。
-
可视化输出:
- 绘制奈奎斯特图,横轴为阻抗实部,纵轴为阻抗负虚部(-Imaginary)。
- 添加适当的标签和标题。
Constraints & Anti-Patterns
- 严禁在代码中构造、合成或叠加任何激励信号,必须直接使用原始数据进行分析。
- 不要假设时间单位是秒,必须处理毫秒到秒的转换。
- 不要混淆电压和电流的数据列顺序(电压第2列,电流第3列)。
- 不要忽略采样频率(10Hz)对频率轴计算的影响。
- 确保MATLAB代码语法正确,特别是在进行元素相乘时必须使用
。.*
Triggers
- matlab计算电池阻抗
- fft求电化学阻抗
- 画奈奎斯特图
- 利用fft的方法求出电池阻抗
- 已知电池电压电流数据 求阻抗