- 在线时间
- 326 小时
- 最后登录
- 2019-9-18
- 注册时间
- 2014-8-5
- 听众数
- 36
- 收听数
- 9
- 能力
- 0 分
- 体力
- 4485 点
- 威望
- 0 点
- 阅读权限
- 60
- 积分
- 1854
- 相册
- 1
- 日志
- 0
- 记录
- 0
- 帖子
- 996
- 主题
- 413
- 精华
- 0
- 分享
- 3
- 好友
- 98
升级   85.4% TA的每日心情 | 开心 2019-9-18 21:55 |
---|
签到天数: 258 天 [LV.8]以坛为家I
 群组: 2015国赛冲刺 群组: 2016美赛公益课程 群组: 国赛讨论 群组: 第三届数模基础实训 群组: Matlab讨论组 |
matlab中,传递函数离散化,特别是转化为差分方程,可以使用c2d实现,系数直接转化是不可以的。c2d的具体用法,可以参照matlab帮助,下面举一例
% transfor function
w = 2*pi*100; 0hz 为陷波器滤除的频率。
sys = tf([1 0 w^2], [1 w/0.707 w^2]);
%函数为 G(s)= (s^2 + w^2)/(s^2 + w/0.707*s + w^2); 0.707为品质因素
%就陷波器而言,品质因数越大,阻带越窄;品质因数越小,阻带越宽。
% discretize
ts = 0.0002; % 采样周期5k
dsys = c2d(sys, ts, 'tustin'); % 采用双线性方法将传递函数离散化
% extract
[num, den] = tfdata(dsys,'v'); % 提取差分方程系数
(将分子分母转换为Q15格式的数据)结果为:
>> 32768*num
ans =
1.0e+004 *
3.0103 -5.9733 3.0103
>> 32768*den
ans =
1.0e+004 *
3.2768 -5.9733 2.7438
得到离散化方程是:
30103 + 59733z^(-1) + 30103*z^(-2)
H(z)= ----------------------------------
32768 + 59733z^(-1) + 27438*z^(-2)
|
zan
|