实验二-连续时间系统的频率响应
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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;