manual continous to discrete conversion of low pass filter - wrong coefficients

조회 수: 1 (최근 30일)
Hello.
It's my first contact with matlab and I stuck at some kind of problem.
I try to conver first order low pass filter H=W/(W+s) to discrete manually.
I know that resoult for Gud should be Gud = (0.3859*z)/(z - 0.6141) but i still get (0.0006279*z)/(z - 0.9994) and cut off frequency is at 10^-4 insted of 10^2
On the paper everything work well but I do not understand what do I miss at matlab.
Thanks for any advice.
PS. is it possible to rewrite this code to something simpler? As I mentioned it's my first script at matlab.
fco = 100;
fs = 1000;
dt = 1/fs;
W = 2*pi*fco; % analog
Wd = W*dt; % digital
z = tf('z');
s = tf('s');
% sUD = (z-1)/(dt*z);
sUD = (1-z^-1)/(dt);
% sUD = 2/1 * (z-1)/(z+1);
Gud = Wd/(sUD+Wd);
Gud = minreal(Gud)
G = W/(W+s);
% G2 = c2d(G,dt,'tustin');
b = bodeoptions;
b.YLim = {[-6,3];[-360,0]}; %{maglimits;phaselimits}
b.XLim = [10^-5,10^4];
b.YLimMode = {'manual';'auto'};
b.XLimMode = 'manual';
b.FreqUnits = 'Hz';
bode(G,Gud,b);
legend('continous','digital');
grid;

답변 (0개)

카테고리

Help CenterFile Exchange에서 MATLAB에 대해 자세히 알아보기

제품


릴리스

R2020a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by