暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MATLAB频率响应

IC学习笔记 2021-07-30
3485

作为一个MATLAB小白,每次遇到需要用MATLAB分析的问题,都抱着侥幸心理绕道而走。最近,避无可避,迟到的终究还是来了。频率响应的重要性不必多说,这里把用MATLAB做频率响应的方法简单记录一下。

首先是要在MATLAB中输入传递函数表达式。对于最常用的分式传递函数可以用tf()函数输入。然后直接用margin()函数可以直接得到频率响应。本例的传输函数如下图所示。

频率响应,显然是一个低通特性


第二种传输函数的输入方法是,用我们平时手算习惯用的拉普拉斯表达式,如图,两种方法的到的结果是一样的。

但是第二种方法适用于所有形式的传输函数,例如针对下例的传输函数

s项在指数里面,就没法用第一种传输函数的输入方法。

频率响应是频域特性,通常除了考查频率特性外,我们还要看时域特性。常用的有阶跃响应和冲击响应。MATLAB中用step()和impulse()函数可以直接得到结果。




另外,除了以上用MATLAB自带的函数求频率响应外,还可以用s=jw,再求模得到幅频响应。

得到的结果相同。


%源码%

h=tf([5e14],[1 1e7 5e14]); %第一种传输函数表达式,针对s的多次幂分式
h1=h                     %重新赋值h,可以在命令行窗口显示传输函数
figure(1)
margin(h);                 %频率响应

s=tf('s');
H=5e14/(s^2+1e7*s+5e14);   %第二种传输函数表达式,所有表达式都可用
figure(2)
margin(H);                  %两种表达式最后出来的结果一致

t=0:1e-8:1.5e-6;
figure(3)
step(H,t);                %阶跃响应
figure(4)
impulse(H,t);             %冲击响应

f=1:1e3:1e8;
w=2*pi*f;
F=5e14./((j*w).^2+1e7*(j*w)+5e14);  %也可以用s=jw,再求模得到幅频响应
figure(5)
semilogx(w,10*log(abs(F)));

hh=1e6*(1-exp(-s*1e-6))/s;
figure(6)
margin(hh);


文章转载自IC学习笔记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论