【控制之美】利用fft求解bode图-matlab

方法一:基于 frd 对象转换数据

生成频率向量和响应数据:使用 logspace 函数生成频率向量 freq ,并计算对应的频率响应数据 resp 。示例代码如下:

freq = logspace(1, 2); % 生成从10^1到10^2的对数间距频率向量

resp = 0.05 * (freq).* exp(1i * 2 * freq); % 计算频率响应数据

创建 frd 模型:使用 frd 函数将频率响应数据 resp 和频率向量 freq 创建成 frd 模型 sys 。示例代码如下:

sys = frd(resp, freq);

绘制Bode图:使用 bode 函数绘制 frd 模型 sys 的Bode图。示例代码如下:

bode(sys);

方法二:直接处理FFT结果

定义系统和输入输出数据:定义系统的传递函数的分子分母,生成输入输出数据。示例代码如下:

num = [0 1]; % 传递函数分子

den = [1 -0.8]; % 传递函数分母

u = randn(100,1); % 输入信号

t = 1:length(u);

ym,\~,\~\] = lsim(tf(num, den), u, t); % 系统输出 计算FFT:对输入输出数据进行FFT计算,并计算对应的频率向量。示例代码如下: ts = 1; fs = 1/ts; l = length(ym); nfft = 2\^nextpow2(l); % 取大于等于l的最小2的幂次方 h2 = fft(ym, nfft)./fft(u, nfft); f = fs/2\*linspace(0, 1, nfft/2 + 1); ww = f\*2\*pi; figure semilogx(ww, 20\*log10(abs(h2(1:nfft/2 + 1)))); % 幅值Bode图 figure semilogx(ww, (180/pi)\*angle(h2(1:nfft/2 + 1))); % 相位Bode图

相关推荐
551只玄猫1 天前
【数学建模 matlab 实验报告1】
开发语言·数学建模·matlab·课程设计·实验报告
机器学习之心1 天前
扩散模型(Diffusion Model)数据生成+BP神经网络回归预测,Matlab完整代码
神经网络·matlab·回归·扩散模型·bp神经网络回归预测
bu_shuo1 天前
MATLAB图片的所有导出格式
开发语言·matlab·图片
极创信息1 天前
企业信创产品认证全流程:从信创适配到信创认证的实操指南(2026版)
java·数据库·spring boot·mysql·matlab·mybatis·软件工程
机器学习之心1 天前
【DOA估计】基于MLE的无网格波达方向估计(结构化协方差恢复与SBL网格细化)附MATLAB代码
matlab·doa估计
飞舞哲1 天前
漂浮基空间3自由度机械臂PD控制仿真
matlab·机器人·漂浮基
551只玄猫1 天前
【数学建模 matlab 实验报告3】
开发语言·数学建模·matlab·课程设计·实验报告
551只玄猫2 天前
【数学建模 matlab 实验报告2】
开发语言·数学建模·matlab·课程设计·实验报告
yong99902 天前
带挂载的四轴飞行器模型预测控制(MPC) MATLAB实现
开发语言·matlab
yongui478342 天前
MATLAB小波变换图像融合
opencv·计算机视觉·matlab