function y=two_add(x1,x2)
下面以两个数求和为例了解函数的编写和调用过程,如图3所示。
图3
程序的执行结果是数值的话将直接在命令窗口中显示,如果是图形,将自动打开图形显示窗口进行显示。
MATLAB使用的注意事项:
1、变量不需要先定义,随时用随时起名字即可;
2、用文本编辑器编写的程序、函数的文件扩展名均为”.m”; 3、程序文件在起名字时要注意不能用数字和中文作为文件名;
4、函数文件在保存时会自动以定义的函数名作为其文件名,不允许修改,否则函数无法运行;
5、变量和常量的标识符的最大长度为19个字符,标识符中的第一个字符必须是英文字符。
6、MATLAB变量区分大小写。
35
附录2、综合设计实验参考解法和参考程序
[解]:在高通与低通滤波器的设计中,是采用在S平面上配置零极点,观察其对应的频谱图是否符合要求。
首先根据二阶高通滤波器模型:
ks2ks2 H(s)=2=(其中p1,p2共轭)s+bs+c(s-p1)(s-p2)以下解法只供参考,方法不唯一:若令p1,2=m?jn(m1) 当w?,|H(jw)|?k,可以得出:0.8#k0)
1.2
2) 考虑一种情况:当w=50p,|H(j50p)|=0.8,如下图所示: 1.0 0.8 50? 即
|H(s)|s=j50p=|(50p)2[m+(w-n)][m+(w+n)]2222|=1mnmn[()2+(1-)2][()2+(1+)2]wwww=0.8令a=取b=mn1,b=,则|H(jw)|化简为:ww[a2+(1-b)2][a2+(1+b)2]n1=1,即n=50p=157,解方程:=0.82222w[a+(1-1)][a+(1+1)]m(?m<0),m=-94.043650pa=-0.5987=
3) 考虑另一种理想情况:w=50p,|H(j50p)|=1.0,如下图所示:
36
1.0 50? 即
|H(s)|s=j50p=|
(50p)2[m+(w-n)][m+(w+n)]2222|=1mnmn[()2+(1-)2][()2+(1+)2]wwww=1.a=mn1,b=,则|H(jw)|化简为:ww[a2+(1-b)2][a2+(1+b)2]n1=1,即n=50p=157,解方程:=1.02222w[a+(1-1)][a+(1+1)]m(?m<0),m=-76.32550p-94#mn=157-76
取b=a=-0.4859=
由2)、3)得出一组大致范围:
我们采用试探方法给上面模型配置不同数值:
[1] k=1,p1,2=-10 20j [2] k=1,p1,2=-50 100j [3] k=1,p1,2=-85 157j [4] k=1,p1,2=-90 157j [5] k=1,p1,2=-85 300j
结果表明:[3]显示的频谱图比较符合数据要求。另外,极点实部越小,通带越靠后;虚部越大,频谱波形的陡峭程度越大。
二阶低通滤波器模型: H(s)=kk =(其中p1,p2共轭)2s+bs+c(s-p1)(s-p2)我们采用试探方法给上面模型配置不同数值:(大概原则是k=1.0~1.2c)
37
[1]k=50,b=5,c=50;(发现频谱有一部分超出要求范围,其他指标非常接近要求) [2]k=60,b=10,c=60;(发现频谱带宽不符合要求)
[3]k=65,b=15,c=65;(同[2],可见b与c“差距”越小,带宽越小) [4]k=70,b=10,c=70;(仍然是带宽不符合,需加大b与c“差距”) [5]k=70,b=8,c=70;(符合要求)
根据已经得到的数据知道此时极点p1,p2,如果还需进一步观察极点p1,p2对频谱图的影响,可以对极点的实部和虚部或者模的大小进行调整,并观察它们的规律。 参考程序:
[1] 高通的一个参考程序: k=1; b=[1 0 0]*k;
a=conv([1 85+157j],[1 85-157j]); sys=tf('s'); %系统函数 sys=tf(b,a) p=roots(a); z=roots(b); figure(1)
subplot(1,2,1); %零极点图 plot(real(p),imag(p),'*');hold on;
plot(real(z),imag(z),'o'); xlabel('t');title('零极点图'); grid on
T=0:0.1:3; h=impulse(b,a,T);
subplot(1,2,2); %对应的冲激响应h(t) plot(h); axis([0 30 -400 100]); xlabel('t');title('冲激响应h(t)'); grid on
f=0:0.1:100; w=2*pi*f;
38
H=freqs(b,a,w);
figure(2) %频谱图 plot(w,abs(H));xlabel('w');title('频谱图'); grid on
[2]低通的一个参考程序: b=70; a=[1 8 70];
sys=tf('s'); %系统函数 sys=tf(b,a) p=roots(a) z=roots(b); figure(1)
subplot(1,2,1); %零极点图 plot(real(p),imag(p),'*');hold on;
plot(real(z),imag(z),'o');xlabel('t');title('零极点图'); grid on
T=0:0.1:3; h=impulse(b,a,T);
subplot(1,2,2); %对应的冲激响应 plot(h);xlabel('t');title('冲激响应h(t)'); grid on f=0:0.1:6; w=2*pi*f; H=freqs(b,a,w); figure(2) %频谱图
plot(w,abs(H));xlabel('w');title('频谱图'); grid on
39