Simulink对仿真数据进行FFT频谱分析

1 问题引入

在仿真阶段,经常会遇到有些仿真结果的数据需要进行频谱分析,如何快速便捷地操作,这里介绍其中一种简单的方法。主要利用 Simulink 中 Scope 显示的数据进行保存并进行 FFT 频谱分析,按下文操作即可。

2 实战

2.1 将信号导入到 MATLAB 工作区

  • 双击打开Scope窗口。
    • 在 Scope 上方的菜单中,点击 Configuration Properties。
  • 在弹出的设置窗口中,选择 Data History 标签,勾选 Save data to workspace。
  • 设置变量名称(例如 scopeData),并将保存格式设为 Structure with time

2.2 在 MATLAB 中对数据进行 FFT 分析

  • 导出数据后,可以在MATLAB的工作空间中看到刚刚仿真导出的数据

  • 运行以下 MATLAB 代码来计算和显示频谱

    matlab 复制代码
    % 假设 Scope 数据已保存到名为 scopeData 的变量
    signal = scopeData.signals.values; % 提取信号数据
    fs = 1000; % 采样频率,需根据实际系统设置
    
    % 计算 FFT
    L = length(signal);
    fft_result = fft(signal);
    P2 = abs(fft_result / L); % 双侧频谱
    P1 = P2(1:L/2+1); % 单侧频谱
    P1(2:end-1) = 2 * P1(2:end-1);
    
    % 频率轴
    f = fs * (0:(L/2)) / L;
    
    % 绘制频谱
    plot(f, P1)
    title('FFT of Signal')
    xlabel('Frequency (Hz)')
    ylabel('P1(f)')
    • fs 是信号的采样频率(根据您的系统设置)。
    • L 是信号的长度。
    • 最终绘制的图形将展示信号的单侧幅度频谱。

3 小结

这样即可在 Simulink 中方便地对 Scope 数据进行 FFT 分析,如果需要更多的数据操作,在以上代码基础上进行修改即可。

相关推荐
rit84324998 分钟前
链路预测(Link Prediction)MATLAB 实现
开发语言·matlab
yugi98783827 分钟前
MATLAB CNN道路特征提取实现
人工智能·matlab·cnn
yongui478341 小时前
基于稀疏低秩分解的图像去噪MATLAB实现
开发语言·matlab
gihigo19981 小时前
MATLAB实现光谱特征波长提取
开发语言·matlab
fie88892 小时前
matlab打靶法求解两点边值优化问题
开发语言·算法·matlab
hoiii1872 小时前
基于MATLAB实现Lamb波频散曲线求解
开发语言·matlab
yu85939584 小时前
MATLAB 分支定界法(Branch and Bound)实现
开发语言·matlab
吃好睡好便好5 小时前
矩阵秩的计算
人工智能·学习·线性代数·算法·机器学习·matlab·矩阵
listhi5206 小时前
基于雅克比迭代法的方腔流动 MATLAB 实现
开发语言·matlab
机器学习之心6 小时前
基于LSTM-Attention的轴承剩余寿命预测:从振动信号到RUL的端到端MATLAB实现
人工智能·matlab·lstm·轴承剩余寿命预测