实验二 连续时间系统的频率响应39022622 龚小川一.实验目的:1. 进一步加深对连续时间系统频率响应理解;2.掌握借助计算机计算任意连续时间系统频率响应的方法。
二.实验原理1.本实验的基本内容就是将系统函数的幅频特性曲线以及相频特性曲线给画出来。
而系统函数∏∏==--=ni imj j p s z s K s H 11))(()(,令jw s =,则∏∏==--=ni imj j p jw z jw K jw H 11))(()(∑∑∏∏∏∏======-==⇒=∑∑=⇒=-=-==ni imj jni imj jw j ni j i mj j j j i i j j j w MNKjw H e jw H eM eN Kjw H e M p jw eN z jw ni i mj j ij1111)(1][1][)(,)()()(,11θψϕϕθψθψ即(1)计算所有零点模之积及极点模之积,两者之商即为)(s H 的幅度; (2)计算所有零点相角之和及极点相角之和,两者之差即为)(s H 的相角。
2.通过零极点图通过几何的方法来计算,而且通过零极点图可以迅速地判断系统的滤波特性。
通过零极点图进行计算的方法是: (1)在S 平面上标出系统的零极点位置;(2)选择S 平面的坐标原点为起始点,沿虚轴向上移动,计算此时各极点和零点与该点的膜和夹角;(3)将所有零点的模相乘,再除以各极点的模,得到对应频率处的幅频特性的值; (4)将所有零点的幅角相加,减去各极点的幅角,得到对应频率处的相角。
三.实验流程图j>m, 否是输出temp1,即为零点模之积令j=0,temp1=1i>n ?,否是输出temp2,即为极点模之积令i=0,temp2=1输出temp1/temp2,极为H(s)之幅度四.实验代码#include "stdio.h" #include "math.h" #include "graphics.h"float atannew(float t1,float t2); int main() { float z[10][2],p[10][2],out[100][3],f[50]; int a,iout; int i,itemp,k,ktemp,j,m,n; float w,temp1,temp2,prew,pretemp1,pretemp2,ptemp,h,fout; int gdriver,gmode=0; char s[10]; gdriver=0; /**/ for(i=0;i<=10;i++) { a=scanf("%f %fj",&z[i][0],&z[i][1]); if(a!=0); else { fflush(stdin);/*清空输入缓冲区,使得第二个scanf 不被忽略*/ for(k=0;k<=10;k++)j>m否是输出temp1,即为零点相角之和令j=0,temp1=0i>n ?否是输出temp2,即为极点相角之和令i=0,temp2=0输出temp1-temp2,极为H(s)之相角{a=scanf("%f %fj",&p[k][0],&p[k][1]);if(a!=0);elsebreak;}break;}}/**/initgraph(&gdriver,&gmode, "e:\\tc\\bgi"); setbkcolor(10);setcolor(4);setlinestyle(1,0,1);rectangle(50,20,600,420);for(ptemp=20;ptemp<=420;ptemp=ptemp+50) line(50,ptemp,600,ptemp);for(ptemp=50;ptemp<=600;ptemp=ptemp+50) line(ptemp,20,ptemp,420);setlinestyle(0,0,1);setcolor(1);line(200,20,200,420);line(50,420,600,420);line(200,20,190,30);line(200,20,210,30);outtextxy(210,30,"A");line(600,420,590,410);line(600,420,590,430);outtextxy(600,430,"w");for(iout=0;iout<=5;iout++){sprintf(s,"%d",iout);outtextxy(iout*50+200,430,s);}for(fout=1.0;fout<=8;fout=fout+1){sprintf(s,"%.1f",fout/10);outtextxy(170,420-fout*50,s);}setcolor(4);/*printf("w 幅度相角\n");*/for(w=0,j=0;w<=5.0;j++){temp1=1;for(itemp=0;itemp<=i-1;itemp++)temp1=temp1*sqrt(z[itemp][0]*z[itemp][0]+(z[itemp][1]-w)*(z[itemp][1]-w));for(ktemp=0;ktemp<=k-1;ktemp++)temp1=temp1/sqrt(p[ktemp][0]*p[ktemp][0]+(p[ktemp][1]-w)*(p[ktemp][1]-w));out[j][0]=w;out[j][1]=temp1;if(j>0)line(prew*40+200,420-pretemp1*500,w*40+200,420-temp1*500);prew=w;pretemp1=temp1;w=w+0.1;}for(m=0;m<=50;m++){if(out[m][1]>out[m+1][1])break;}printf("%.4f,%f",out[m][1],out[m][0]);line(100,420-out[m][1]/sqrt(2)*500,500,420-out[m][1]/sqrt(2)*500);getch();closegraph();initgraph(&gdriver,&gmode, "e:\\tc\\bgi");setbkcolor(10);setcolor(4);setlinestyle(1,0,1);rectangle(50,20,600,420);for(ptemp=20;ptemp<=420;ptemp=ptemp+50)line(50,ptemp,600,ptemp);for(ptemp=50;ptemp<=600;ptemp=ptemp+50)line(ptemp,20,ptemp,420);for(w=0,j=0;w<=5;j++){temp2=0;for(ktemp=0;ktemp<=k-1;ktemp++)temp2=temp2-atannew(-p[ktemp][0],w-p[ktemp][1]);for(itemp=0;itemp<=i-1;itemp++)temp2=temp2+atannew(-z[itemp][0],w-z[itemp][1]);if(temp2>=180)temp2=temp2-360;else if(temp2<=-180)temp2=temp2+360;out[j][2]=temp2;if(j>0)line(prew*50+200,180+pretemp2,w*50+200,180+temp2);prew=w;pretemp2=temp2;w=w+0.1;}getch();closegraph();for(j=0;j<=50;j++)printf("%.2f,%.4f,%.2f***",out[j][0],out[j][1],out[j][2]);printf("\n\n");for(n=0,j=0;n<=50;n++)f[n]=fabs(out[m][1]/sqrt(2)-out[n][1]);for(n=0,h=f[0],j=0;n<=m;n++){if(h>f[n]){h=f[n];j=n;}}printf("Fl=%.1f\n",out[j][0]);for(n=m,h=f[0],j=0;n<=50;n++){if(h>f[n]){h=f[n];j=n;}}printf("Fh=%.1f",out[j][0]);getch();return 0;}float atannew(float t1,float t2){if(t1>0&&t2>0)return atan(t2/t1)/3.14*180;else if(t1<0&&t2<0)return 180+atan(t2/t1)/3.14*180;else if(t1<0&&t2>0)return 180+atan(t2/t1)/3.14*180;else if(t1>0&&t2<0)return atan(t2/t1)/3.14*180;else if(t1==0&&t2>0)return 90;else if(t1==0&&t2<0)return -90;else if(t1==0&&t2==0)return 0;else if(t1>0&&t2==0)return 180;else if(t1<0&&t2==0)return -180;}五.实验数据及所绘图形横线3dB线。
Fl=0.7,Fh=2.7.零点z1=2+1.5j,z2=2-1.5j;极点p1=-0.5-0.7j,p2=-0.5+0.7j,p3=-2.5-2j,p4=-2.5+2j0.0 0.823995 197.606976 2.5 0.125927 -30.168391 0.1 0.827748 188.753095 2.6 0.117968 -34.228230 0.2 0.838357 179.054798 2.7 0.110810 -38.136293 0.3 0.853583 168.286633 2.8 0.104336 -41.899355 0.4 0.868832 156.232443 2.9 0.098449 -45.523151 0.5 0.876442 142.775678 3 0.093071 -49.012709 0.6 0.866588 128.047702 3.1 0.088137 -52.372588 0.7 0.830997 112.553808 3.2 0.083592 -55.607056 0.8 0.769583 97.107608 3.3 0.079392 -58.7202040.9 0.691002 82.523335 3.4 0.075499 -61.7160311.0 0.607503 69.308133 3.5 0.071880 -64.598482 1.1 0.528568 57.596395 3.6 0.068509 -67.371483 1.2 0.458892 47.275738 3.7 0.065362 -70.038943 1.3 0.399643 38.134987 3.8 0.062418 -72.604758 1.4 0.350120 29.9547293.9 0.059661 -75.072798 1.5 0.308962 22.544718 4 0.057073 -77.446896 1.6 0.274727 15.7524114.1 0.054642 -79.730837 1.7 0.246120 9.459839 4.2 0.052356 -81.928340 1.8 0.222060 3.577246 4.3 0.050202 -84.0430451.9 0.201673 -1.963215 4.4 0.048172 -86.0785052.0 0.184259 -7.212759 4.5 0.046255 -88.038170 2.1 0.169266 -12.210079 4.6 0.044446 -89.925384 2.2 0.156252 -16.984488 4.7 0.042735 -91.743374 2.3 0.144867 -21.558279 4.8 0.041115 -93.495252 2.4 0.134834 -25.9485194.9 0.039582 -95.184004此系统为低通滤波器,横线为3dB线。