实验二-连续时间系统的频率响应

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验二连续时间系统的频率响应

37022613 张士龙

一、实验目的

1、加深对连续时间系统频率响应理解;

2 、掌握借助计算机计算任意连续时间系统频率响应的方法。

二、实验原理

连续时间系统的频率相应可以直接通过所得的表达式计算,也可以通过零极点图通过几何的方法来计算,而且通过零极点图可以迅速的判断系统的滤波特性。

1、在S平面上标出系统的另几点位置:

2、选择S平面的坐标原点为起点,沿虚轴向上移动,计算此时各极点和零点与该点的模和夹角:

3、与所有零点的模相乘,再除以各极点模,得到对应频率出的幅频特性值;

4、将所有零点的幅角相加,减去各极点的幅角,得到对应频率处的相角。

三、实验内容

1、流程图

2、源程序

#include

#include

main(){

double rz[100], iz[100], rp[100], ip[100], m[50], n[50], h[50], mol1[100], mol2[100];

double a[50],b[50],c[50],w[50],angle1[100],angle2[100];

double g=1.0;

int i,j,k;

int z=0,p=0;

float temp=0;

printf("please input the zero point's number:");

scanf("%d",&z);

printf("please input the zero point's real part:");

for(i=0;i

scanf("%f",&temp);

rz[i]=temp;

}

printf("please input the zero point's i part:");

for(i=0;i

scanf("%f",&temp);

iz[i]=temp;

}

printf("please input the polar point's number:");

scanf("%d",&p);

printf("please input the polar point's real part:");

for(i=0;i

scanf("%f",&temp);

rp[i]=temp;

}

printf("please input the polar point's i part:");

for(i=0;i

scanf("%f",&temp);

ip[i]=temp;

}

w=0.0;

for(i=1;i<=49;i++){

w[i]=w[i-1]+0.1;

}

printf("the mol is:");

for(i=0;i<50;i++){

if(i%5==0)

printf("\n");

printf("z=%d,",z);

g=1.0;

for(k=0;k

g*=sqrt(rz[k]*rz[k]+(w[i]-iz[k])*(w[i]-iz[k]));

}

m[i]=g;

g=1;

mol2[i]=1.0;

for(k=0;k

g=g*sqrt(rp[k]*rp[k]+(w[i]-ip[k])*(w[i]-ip[k]));

}

n[i]=g;

if(p>=1){

h[i]=(100*m[i])/(100*n[i]);

printf("h[%d]=%f \n ,",i[i]);

}

}

printf("the angle is:");

for(i=0;i<50;i++){

if(i%5==0)

printf("\n");

g=0;

for(k=0;k

angle1[k]=atan((iz[k]-w[i])/(rz[k]-0.000000001));

if(rz[k]>0){

if(w[i]>iz[k])

angle1[k]=angle1[k]+3.1415936;

else

angle1[k]=angle1[k]-3.1415936;

}

if(k>1)

g=g+angle1[k];

else

g=angle1[k];

}

a[i]=g;

g=0;

for(k=0;k

angle2[k]=atan((ip[k]-w[i])/(rp[k]+0.));

if(rp[k]>0){

if(w[i]>ip[k])

angle2[k]=angle2[k]+3.1415936;

else

angle2[k]=angle2[k]-3.1415936;

}

if(k>1)

g=g+angle2[k];

else

g=angle2[k];

b[i]=g;

}

b[i]=g;

c[i]=(a[i]-b[i])*57.3;

相关文档
最新文档