信息工程实验报告3.docx
- 文档编号:5891920
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:32
- 大小:21.17KB
信息工程实验报告3.docx
《信息工程实验报告3.docx》由会员分享,可在线阅读,更多相关《信息工程实验报告3.docx(32页珍藏版)》请在冰豆网上搜索。
信息工程实验报告3
实验18
0)这块具体忘了怎么按题分的了,大家自己研究一下吧
#include
#include
#defineNUM20
doublefunc1(doublet,double*fs)
{returnsin(8*atan
(1)*50*t/fs[0]+0.3);}
main()
{
inti,n,h,w,key,kv;
dcomplexx[20],X[20];
doublepi,sumx,sumy,AX[300],AY[300];
doublefs=50,dy;
charbuf[20],sbuf[30];
intdecpt,sign;
pi=4*atan
(1);
for(n=0;n x[n].r=sin(2*pi*50*n/fs+0.3); x[n].i=0; line2(n*1.0,0.0,n*1.0,x[n].r); } dft_ccc(x,X,NUM,1); getch(); } initgd(""); window2("dfgt",-1.0,1.0,(double)NUM,-1.0,"t","f",WHITE,BLUE); plotxy2(RED,func1,&fs); setcolor(BLUE); getch(); closegraph(); } setviewport(0,h+10,2*w,2*h+10,1); setcolor(WHITE); rectangle(scrr,scrt,scrl,scrb); setfillstyle(SOLID_FILL,YELLOW); floodfill(scrr+2,scrt+2,WHITE); window2(-1.0,50.0,(double)NUM,-2.0,WHITE,BLUE);setcolor(RED); for(sumx=0,sumy=0,n=0;n y=X[n].i*X[n].i+X[n].r*X[n].r; sumx=sumx+x[n].r*x[n].r; sumy=sumy+y; y=sqrt(y); AX[n]=n*1.0; AY[n]=y; line2(n*1.0,0.0,n*1.0,y);} insPoly(AX+(int)(50*NUM/fs-5),AY+(int)(50*NUM/fs-5),10,50*NUM/fs,&y,&dy); setcolor(GREEN); line2(0.0,0.0,50*NUM/fs,0.0); line2(50*NUM/fs,0.0,50*NUM/fs,y); setviewport(0,2*h+20,2*w,3*h+30,1);*****/ printf("%f,,%f=%f$$$%f",fs,sumx,sumy/NUM,2*y*y/NUM); outtextxy(10,0,"fs=");outtextxy(10+8*8,0,gcvt(fs,10,buf)); outtextxy(200,0,"M50=f*NUM/fs=");outtextxy(200+8*14,0,gcvt(50*NUM/fs,10,buf)); outtextxy(400,0,"NUM=");outtextxy(400+8*8,0,gcvt(NUM,10,buf)); outtextxy(10,20,"sumx2=");outtextxy(10+8*8,20,gcvt(sumx,10,buf)); outtextxy(10,40,"sumX2=");outtextxy(10+8*8,40,gcvt(sumy/NUM,10,buf)); outtextxy(10,60,"X50=");outtextxy(10+8*8,60,gcvt(2*y*y/NUM,10,buf)); outtextxy(200,30,"leak=");outtextxy(200+8*8,30,gcvt(sumx-2*y*y/NUM,10,buf)); setcolor(WHITE); outtextxy(200,60,"q: tobalustereffection,+: fsincrease,-: fsdecrease"); key=getch(); if(key=='+')kv=5; elseif(key=='-')kv=-5; elsekv=0; } cleardevice(); setviewport(0,0,2*w,h,1);window2(-1.0,1.0,(double)256,-1.0,WHITE,BLUE); plotf_a2(RED,func1,&fs); setcolor(GREEN); for(n=0;n<250;n++){ x[n].r=sin(2*pi*50*n/fs+0.3); x[n].i=0; line2(n*1.0,0.0,n*1.0,x[n].r);} dft_ccc(x,X,250,1); setviewport(0,h+10,2*w,2*h+10,1); window2(-1.0,50.0,(double)250,-2.0,WHITE,BLUE);setcolor(RED); for(sumx=0,sumy=0,n=0;n<250;n++){ y=X[n].i*X[n].i+X[n].r*X[n].r; y=sqrt(y); line2(n*1.0,0.0,n*1.0,y);} for(n=250;n<256;n++) {x[n].r=0;x[n].i=0;} fft_ccc(x,256,1); setviewport(0,2*h+20,2*w,3*h+30,1); window2(-1.0,50.0,(double)256,-2.0,WHITE,BLUE);setcolor(RED); for(sumx=0,sumy=0,n=0;n<256;n++){ y=x[n].i*X[n].i+x[n].r*x[n].r; y=sqrt(y); line2(n*1.0,0.0,n*1.0,y);} 1) #include #include #defineNUM100 #definePI4*atan (1) main() { inti,n; dcomplexx[NUM],X[NUM]; /*doublepi;*/ doublefs=100; doublesumT,sumF; doubleEt,Ef; /*pi=4*atan (1);*/ for(n=0;n { x[n].r=sin(2*PI*50*n/fs+0.5); x[n].i=0; } initgd(""); window2("draw1DFTdatagraph",-1,-2,10,2,"n","x[n]",BLUE,GREEN); setcolor(RED); for(n=0;n /*for(n=0;n getch(); dft_ccc(x,X,NUM,1); dft_ccc(X,x,NUM,-1); setcolor(GREEN); for(n=0;n /*for(n=0;n getch(); initgd(""); window2("draw1DFTdatagraph",-1,50,100,-2,"n","x5[n]",BLUE,GREEN); setcolor(RED); for(n=0;n /*for(n=0;n getch(); closegraph(); for(sumT=0,sumF=0,Et=0,Ef=0,n=0;n { sumT=sumT+x[n].r*x[n].r; sumF=sumF+X[n].r*X[n].r+X[n].i*X[n].i; if(n==50) { Et=2*x[50].r*x[50].r; Ef=2*(X[50].r*X[50].r+X[50].i*X[50].i)/(NUM); } } printf("sumT=%f,sumF=%f\n",sumT,sumF/(NUM)); printf("Et=%f,Ef=%f\n",Et,Ef); getch(); } 2) #include #include #defineNUM100 #definePI4*atan (1) main() { inti,n; dcomplexx[NUM],X[NUM]; doublefs=110; doublesumT,sumF; doubleEt,Ef; for(n=0;n { x[n].r=sin(2*PI*50*n/fs+0.5); x[n].i=0; } initgd(""); window2("draw2DFTdatagraph",-1,-2,100,5,"n","x[n]",BLUE,GREEN); setcolor(RED); for(n=0;n /*for(n=0;n getch(); dft_ccc(x,X,NUM,1); dft_ccc(X,x,NUM,-1); setcolor(GREEN); for(n=0;n /*for(n=0;n getch(); initgd(""); window2("draw2DFTdatagraph",-1,50,100,-2,"n","x5[n]",BLUE,GREEN); setcolor(RED); for(n=0;n /*for(n=0;n getch(); closegraph(); for(sumT=0,sumF=0,Et=0,Ef=0,n=0;n { sumT=sumT+x[n].r*x[n].r; sumF=sumF+X[n].r*X[n].r+X[n].i*X[n].i; if(n==50) { Et=2*x[50].r*x[50].r; Ef=2*(X[50].r*X[50].r+X[50].i+X[50].i)/NUM; } } printf("sumT=%f,sumF=%f\n",sumT,sumF/(NUM)); printf("Et=%f,Ef=%f\n",Et,Ef); getch();} 3) #include #include #defineNUM100 #definePI4*atan (1) main() { inti,n; dcomplexx[NUM],X[NUM]; doublefs=200; doublesumT,sumF; doubleEt,Ef; for(n=0;n { x[n].r=sin(2*PI*50*n/fs+0.5); x[n].i=0; } initgd(""); window2("draw3DFTdatagraph",-1,-2,100,5,"n","x[n]",BLUE,GREEN); setcolor(RED); for(n=0;n /*for(n=0;n getch(); dft_ccc(x,X,NUM,1); dft_ccc(X,x,NUM,-1); setcolor(GREEN); for(n=0;n /*for(n=0;n getch(); initgd(""); window2("draw3DFTdatagraph",-1,50,100,-2,"n","x5[n]",BLUE,GREEN); setcolor(RED); for(n=0;n /*for(n=0;n getch(); closegraph(); for(sumT=0,sumF=0,Et=0,Ef=0,n=0;n { sumT=sumT+x[n].r*x[n].r; sumF=sumF+X[n].r*X[n].r+X[n].i*X[n].i; if(n==50) { Et=2*x[50].r*x[50].r; Ef=2*(X[50].r*X[50].r+X[50].i*X[50].i)/NUM; } } printf("sumT=%f,sumF=%f\n",sumT,sumF/(NUM)); printf("Et=%f,Ef=%f\n",Et,Ef); getch(); } 4) #include #include #defineNUM100 #definePI4*atan (1) main() { inti,n; dcomplexx[NUM],X[NUM]; doublefs=230; doublesumT,sumF; doubleEt,Ef; for(n=0;n { x[n].r=sin(2*PI*50*n/fs+0.5); x[n].i=0; } initgd(""); window2("draw4DFTdatagraph",-1,-2,100,5,"n","x[n]",BLUE,GREEN); setcolor(RED); for(n=0;n /*for(n=0;n getch(); dft_ccc(x,X,NUM,1); dft_ccc(X,x,NUM,-1); setcolor(GREEN); for(n=0;n /*for(n=0;n getch(); initgd(""); window2("draw4DFTdatagraph",-1,50,100,-2,"n","x[n]",BLUE,GREEN); setcolor(RED); for(n=0;n /*for(n=0;n getch(); closegraph(); for(sumT=0,sumF=0,Et=0,Ef=0,n=0;n { sumT=sumT+x[n].r*x[n].r; sumF=sumF+X[n].r*X[n].r+X[n].i*X[n].i; if(n==50) { Et=2*x[50].r*x[50].r; Ef=2*(X[50].r*X[50].r+X[50].i*X[50].i)/NUM; } } printf("sumT=%f,sumF=%f\n",sumT,sumF/(NUM)); printf("Et=%f,Ef=%f\n",Et,Ef); getch(); } 5) #include #include #defineNUM100 #definePI4*atan (1) main() { inti,n; dcomplexx[NUM],X[NUM]; doublefs=250; doublesumT,sumF; doubleEt,Ef; for(n=0;n { x[n].r=sin(2*PI*50*n/fs+0.5); x[n].i=0; } initgd(""); window2("draw5DFTdatagraph",-1,-2,100,5,"n","x[n]",BLUE,GREEN); setcolor(RED); for(n=0;n /*for(n=0;n getch(); dft_ccc(x,X,NUM,1); dft_ccc(X,x,NUM,-1); setcolor(GREEN); for(n=0;n /*for(n=0;n getch(); initgd(""); window2("draw5DFTdatagraph",-1,50,100,-2,"n","x[n]",BLUE,GREEN); setcolor(RED); for(n=0;n /*for(n=0;n getch(); closegraph(); for(sumT=0,sumF=0,Et=0,Ef=0,n=0;n { sumT=sumT+x[n].r*x[n].r; sumF=sumF+X[n].r*X[n].r+X[n].i*X[n].i; if(n==50) { Et=2*x[50].r*x[50].r; Ef=2*(X[50].r*X[50].r+X[50].i*X[50].i)/NUM; } } printf("sumT=%f,sumF=%f\n",sumT,sumF/(NUM)); printf("Et=%f,Ef=%f\n",Et,Ef); getch();} 实验19和21 19 #include voidconvol(double*x,intN,double*h,intM,double*y,intL) /*y[0]..y[L-1],x[0]..x[N-1],h[0]..h[M-1];general: L=M+N-1; as: 0<=k<=M+N-2,0<=n-k<=M-1,0<=k<=N-1 so: K>=0,K>=n-M+1; k<=N-1,K<=n;*/ { intn,k,kk; for(n=0;n for(k=(n>=M)? n-M+1: 0,kk=(N>n)? n: N-1,y[n]=0;k<=kk;k++) y[n]+=x[k]*h[n-k]; } doubleyuanshi(doublet,doubley[],intL) {if(t>=0&&t<=L)returny[(int)t]; elsereturn0; } doubledaifushu(doublet,dcomplex*y,intL) {if(t>=0&&t<=L)returnsqrt(y[(int)t].r*y[(int)t].r+y[(int)t].i*y[(int)t].i); elsereturn0; } main() { intN=5,M=3,L=10,i,a;/*n,gd=VGA,gm=1,w,key,kv;*/ doublex[8]={1,2,3,4,5},h[8]={3,2,1},y[20]; dcomplexf[8]={1,0,2,0,3,0,4,0,5,0}; dcomplexr[8]={3,0,2,0,1,0,0,0}; initgd("C: \xxgc"); /***step1***/ window2("functionconvolution", -1,100,30,0, "t","f",RED,BLUE); printf(" (1)directlyconvolution...\n"); convol(h,M,x,N,y,L); for(i=0;i plotxy2(RED,yuanshi,y,L); getch(); clearviewport(); clrscr(); /***step2***/ window2("functionconvolution", -1,100,30,0, "t","f",RED,BLUE); printf(" (2)fftconvolution\n"); for(i=M+N-1,L=1;i! =0;){i=i>>1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 信息 工程 实验 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)