C语言实习论文陈俊宏.pdf

上传人:g****s 文档编号:85910054 上传时间:2023-04-13 格式:PDF 页数:10 大小:432.39KB
返回 下载 相关 举报
C语言实习论文陈俊宏.pdf_第1页
第1页 / 共10页
C语言实习论文陈俊宏.pdf_第2页
第2页 / 共10页
点击查看更多>>
资源描述

《C语言实习论文陈俊宏.pdf》由会员分享,可在线阅读,更多相关《C语言实习论文陈俊宏.pdf(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、 课程设计总结论文 课程名称:高级语言编程课程设计 专业:电子信息工程 班级:132 学号:13424036 姓名:陈俊宏 指导教师:李泽光 2014年 7 月 9 号 目录 (一)1、数字滤波器的设计与应用 2、数字滤波器的设计与应用流程图及程序(二)1、离散傅立叶变换的应用 2、离散傅立叶变换的应用相应流程图及程序 (三)本次实训,所获心得体会,以及自身不足 (一)数字滤波器的设计与应用 1.1 设计题目:基于正交双通道算法的正弦信号相位差的计算。1.2 设计目的:通过该题的训练,使学生掌握连续信号的离散化处理、数字滤波器的设计与应用、卷积运算及其应用等许多数字信号处理技术,为工程实践打好

2、基础。1.3 设计目标:编写程序计算出结果并与预先所设的值比较,要求做到误差最小。1.4 设计原理:两路被测同频正弦信号 u(t)和 i(t)各自经过两个乘法器,两个乘法器的另外两个输入端分别是互为正交的正弦本振信号 SI(t)和 SQ(t)。4 个乘法器的输出信号经过低通滤波器处理后得到 4 个低频或直流信号 HI1(t)、HQ1(t)、HI2(t)、HQ2(t)。通过计算,可以得到有功功率:P=2HI1(t)*HI2(t)+HQ1(t)*HQ2(t)=(UmImcos)/2 无功功率:Q=2HQ1(t)*HI2(t)-HI1(t)*HQ2(t)=(UmImsin)/2 视在功率:S=22Q

3、P=UmIm/2 功率因子:cos=P/S 相位差:=arccos(P/S)2.1 流程图:开始PI=3.1415926,N=1025,fc=1000,HI1=HQ1=HI2=HQ2=0,输入f0,f1,fs,U,I,xX=xPI/180,n=0Nn?a=2PIf0n/fsb=2PIf1n/fsun=Ucos(a)in=Icos(a+x)SIn=cos(b)SQn=sin(b)n=n+1Yn=0Nn?UIn=unSInUQn=unSQnIIn=inSInIQn=inSQnn=n+1YNn=0NNn?n=(N-1)/2?Yhdn=2fc/fsc=2PIfc(n-(N-1)/2)/fshdn=2f

4、csin(c)/(fsc)YNwn=0.54-0.46cos(2PIn/(N-1)hn=hdnwnn=n+1n=0NNn?HI1=HI1+UInhnHQ1=HQ1+UQnhnHI2=HI2+IInhnHQ2=HQ2+IQnhnn=n+1YP=2(HI1HI2+HQ1HQ2)Q=2(HQ1HI2-HI1HQ2)S=UI/2y=P/SN输出P,Q,S,y结束 2.2 程序:#include#include#define PI 3.14156926#define N 1025#define fc 1000 void main()int n;float a,b,c,d,x,y,f0,f1,fs,HI1

5、,HQ1,HI2,HQ2,U,I,P,Q,S;float uN,iN,SIN,SQN,UIN,UQN,IIN,IQN,hdN,hN,wN;HI1=HQ1=HI2=HQ2=0;printf(请输入被测信号的频率:n);scanf(%f,&f0);printf(请输入本振信号的频率:n);scanf(%f,&f1);printf(请输入采样频率:n);scanf(%f,&fs);printf(请输入电压最大值:n);scanf(%f,&U);printf(请输入电流最大值:n);scanf(%f,&I);printf(请输入相位差:n);scanf(%f,&x);x=x*PI/180;for(n=

6、0;nN;n+)a=2*PI*f0*n/fs;b=2*PI*f1*n/fs;un=U*cos(a);in=I*cos(a+x);SIn=cos(b);SQn=sin(b);for(n=0;nN;n+)UIn=un*SIn;UQn=un*SQn;IIn=in*SIn;IQn=in*SQn;for(n=0;nN;n+)if(n!=(N-1)/2)c=2*PI*fc*(n-(N-1)/2)/fs;hdn=2*fc*sin(c)/(fs*c);else hdn=2*fc/fs;wn=0.54-0.46*cos(2*PI*n/(N-1);for(n=0;nN;n+)hn=hdn*wn;for(n=0;n

7、n?fscanf(fp,%f,&xn)n=n+1Yfclose(fp)Nn=0Nn?m=m+xnn=n+1Ym=m/Nn=0NNn?xn=xn-mn=n+1YXmax=|x0|n=1NNn?|xn|Xmax?YXmax=|xn|n=n+1YNn=0NNn?xn=xn/Xmaxn=n+1Yn=0NNn?Jf=jf+xnxnn=n+1YJf=jf/NJf=sqrt(jf)n=0NNn?Xq=Xq+xnxnxnxnn=n+1YXq=Xq/(Njfjfjfjf)Xp=|x0|n=0NNn?|xn|Xp?YXp=|xn|n=n+1YNN c=Xp/jf输出最大值Xmax,峰值Xp,均方根值jf,峭度c,

8、峰值因子Xqn=0Nn?xn=xn(0.54-0.46cos(2PIn/(N-1)n=n+1Yn=0NNn?Xrn=0X1n=0k=0YNk?Xrn=Xrn+xkcos(2PInk/N)X1n=X1n-xksin(2PInk/N)k=k+1Yn=n+1Nk=0NNk?yk=log10(XrkXrk+X1kX1k)k=k+1Yn=0NNn?Yrn=0Y1n=0k=0YNk?Yrn+=ykcos(2PInk/N)Y1n+=yksin(2PInk/N)k=k+1YYrn=Yrn/NY1n=Y1n/Nn=n+1Nn=0NNn?yn=1000sqrt(YrnYrn+Y1nY1n)n=n+1Yfp=fop

9、en(c:zh.dat,w)=NULL?N打印:不能打开该文件exit(1)Yn=0NNn?fprintf(fp,n=%-6d%fn,n,yn)n=n+1Y结束N 2.2 程序:#include#include#include#define N 2048#define PI 3.1415926 void main()FILE*fp;float xN,yN,Xmax,m=0,Xp,a,jf=0,c,Xq=0,XrN,X1N,YrN,Y1N;int i,k,n;if(fp=fopen(c:6310.dat,r)=NULL)printf(不能打开文件.n);exit(1);if(!feof(fp)f

10、or(n=0;nN;n+)fscanf(fp,%f,&xn);fclose(fp);for(n=0;nN;n+)m+=xn;m/=N;for(n=0;nN;n+)xn-=m;Xmax=fabs(x0);for(i=1;iXmax)Xmax=fabs(xi);for(n=0;nN;n+)xn/=Xmax;for(n=0;nN;n+)jf+=xn*xn;jf/=N;jf=sqrt(jf);for(n=0;nN;n+)Xq+=xn*xn*xn*xn;Xq/=N*jf*jf*jf*jf;a=fabs(x0);for(i=0;ia)a=fabs(xi);Xp=a;c=Xp/jf;printf(最大值=%

11、fn 峰值=%fn 均方根值=%fn 峭度=%fn 峰值因子=%fn,Xmax,Xp,jf,c,Xq);for(n=0;nN;n+)xn=xn*(0.54-0.46*cos(2*PI*n/(N-1);for(n=0;nN;n+)Xrn=0;X1n=0;for(k=0;kN;k+)Xrn+=xk*cos(2*PI*n*k/N);X1n+=-xk*sin(2*PI*n*k/N);for(k=0;kN;k+)yk=log10(Xrk*Xrk+X1k*X1k);for(n=0;nN;n+)Yrn=0;Y1n=0;for(k=0;kN;k+)Yrn+=yk*cos(2*PI*n*k/N);Y1n+=yk

12、*sin(2*PI*n*k/N);Yrn/=N;Y1n/=N;for(n=0;nN;n+)yn=1000*sqrt(Yrn*Yrn+Y1n*Y1n);if(fp=fopen(c:zh.dat,w)=NULL)printf(不能打开该文件n);exit(1);for(n=0;nN;n+)fprintf(fp,n=%-6d%fn,n,yn);(三)本次实训,所获心得体会,以及自身不足 通过这次实训,让我知道了 C 语言在我们电信专业上所能起到的作用是非常巨大的,因为这些所有电子设备的硬件都需要有软件来让它运行,必须要有软件的支持才能实现人们需要让它去实现的功能。而我们之前学习的 C 语言只是最基础

13、的语法规则等等,虽然我们已经掌握了 C 语言的语法规则,但是这并不意味着我们能用它来实现一些我们在现实中需要实现的功能,我们之前也只会用 C语言编写一些数学上的计算,一些统计啊什么的,但是这却不是 C 语言这个工具真正的主要的用途。它其实是一个工具,和我们用来写字的笔没有什么大的区别,也只是为了让我们能用它来解决一些现实生活中实际的问题。虽然 C 语言的语法和基本规则我都了解,但是却也不能在没看书上的算法之前也不可能把程序编写出来,这也证明了要想用 C 语言编写出实际能应用的程序,知道原理,理清思路,画好流程图是必不可少的,因为只要你的流程图画好了,也就意味着解决问题的步骤也知道了,剩下的需要做的就只是把这些数学语言和汉字描述转换成 C 语言,也就是计算机能识别的语言就行了。毕竟计算机和我们人类不一样,它没有人类的大脑,只有程序师给它设计的适合与它的语言,我们需要做的就是把我们人类的语言转化成计算机能听懂的语言,这样它才能按照我们给它的任务来实现我们想要实现的功能。所以我也发现了我的不足,不能只满足与学习C 语言本身,因为它本身其实是没有什么用的,我还应该多应用它来解决实际的问题,必须要真正的解决实际的问题,才能提高,而这也是 C 语言这门课的真正的意思所在。我们要把学习和实际结合起来,这样才不会成为书呆子,才有可能成为社会需要的人才。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 文案大全

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁