資源簡介
這是關于智能傳感器設計的MATLAB的仿真程序,主要包括差值法、最小二乘法以及神經網絡法,非常有借鑒意義哦!

代碼片段和文件信息
function?filter()
i?=?input(‘請輸入濾波方法?1為向后差分法?2為雙線性法?3為頻率預曲折雙線性法?4為PID控制算法(5?10?0.2):‘);
W?=?input(‘請輸入輸入信號x(t)的系數W:‘);
T?=?input(‘請輸入采樣時間T:‘);
a?=?0.1;
n?=?1:1000;
x?=sin(W*n*T);
%x=1:1000;
y(1)?=?0;
switch?i
????case?1
????????for?n=2:1000;
????????y(n)?=?T/(T+1/a)*x(n)+(1/a)/(T+1/a)*y(n-1);
????????end
????????plot(0:999y)
????case?2
????????for?n=2:1000;
????????y(n)?=?a*T/(2.0+a*T)*(x(n)+x(n-1))-(2.0-a*T)/(2.0+a*T)*y(n-1);
????????end
????????plot(0:999y)
????case?3
????????for?n=2:1000;
????????????y(n)?=?tan(a*T/2.0)/(1+tan(a*T/2.0))*(x(n)+x(n-1))-tan(a*T/2.0-1)/(1+tan(a*T/2.0))*y(n-1);
????????end
????????plot(0:999y)
????case?4
????????Kp?=?input(‘請輸入比例系數Kp:‘);
????????Ki?=?input(‘請輸入積分系數Ki:‘);
????????Kd?=?input(‘請輸入微分系數Kd:‘);
????????e(1)?=?1;
????????e(2)?=?1;
????????m(1)?=?1;
????????m(2)?=?1;
????????y(2)?=?T/(T+1/a)*x(2)+(1/a)/(T+1/a)*y(1);
????????for?k=3:500;
????????????y(k)?=?T/(T+1/a)*m(k-1)+(1/a)/(T+1/a)*y(k-1);
????????????e(k)?=x(k)-y(k);
????????????m(k)?=?(Kp+Ki+Kd)*e(k)+m(k-1)-(Kp+2*Kd)*e(k-1)+Kd*e(k-2);
????????end
????????plot(0:499m)
end
end
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????1162??2010-03-31?18:18??濾波器程序\MATLAB\filter.m
?????文件??????24365??2010-04-01?15:49??濾波器程序\MATLAB\filter1.mdl
?????文件???????1575??2010-03-26?12:24??濾波器程序\查表法、最小二乘法Matlab程序\1.m
?????目錄??????????0??2010-04-04?19:10??濾波器程序\MATLAB
?????目錄??????????0??2010-04-04?19:10??濾波器程序\查表法、最小二乘法Matlab程序
?????目錄??????????0??2010-04-04?19:12??濾波器程序
-----------?---------??----------?-----??----
????????????????27102????????????????????6
評論
共有 條評論