c语言关于离散化程序编写,C语言实习论文-陈俊宏.doc

C语言实习论文-陈俊宏

课程设计总结论文

课程名称:高级语言编程课程设计

专业:电子信息工程

班级:132

学号姓名:陈俊宏

指导教师:李泽光

2014年7月9号

目录

(一)1、数字滤波器的设计与应用

2 、数字滤波器的设计与应用流程图及程序

(二)1 、离散傅立叶变换的应用

2、离散傅立叶变换的应用相应流程图及程序

(三 )本次实训,所获心得体会,以及自身不足

(一)数字滤波器的设计与应用

1.1 设计题目:基于正交双通道算法的正弦信号相位差的计算。

1.2 设计目的:通过该题的训练,使学生掌握连续信号的离散化处理、数字滤波器的设计与应用、卷积运算及其应用等许多数字信号处理技术,为工程实践打好基础。

1.3 设计目标:编写程序计算出结果并与预先所设的值比较,要求做到误差最小。

1.4 设计原理:两路被测同频正弦信号u(t)和i(t)各自经过两个乘法器,两个乘法器的另外两个输入端分别是互为正交的正弦本振信号SI(t)和SQ(t)。4个乘法器的输出信号经过低通滤波器处理后得到4个低频或直流信号HI1(t)、HQ1(t)、HI2(t)、HQ2(t)。通过计算,可以得到有功功率:

P=2[HI1(t)*HI2(t)+HQ1(t)*HQ2(t)]=(UmImcosθ)/2

无功功率:

Q=2[HQ1(t)*HI2(t)-HI1(t)*HQ2(t)]=(UmImsinθ)/2

视在功率:

S==UmIm/2

功率因子:

cosθ=P/S

相位差:

Θ=arccos(P/S)

2.1 流程图:

2.2 程序:

#include

#include

#define PI 3#define N 1025

#define fc 1000

void main()

{

int n;

float a,b,c,d,x,y,f0,f1,fs,HI1,HQ1,HI2,HQ2,U,I,P,Q,S;

float u[N],i[N],SI[N],SQ[N],UI[N],UQ[N],II[N],IQ[N],hd[N],h[N],w[N];

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=0;n

{

a=2*PI*f0*n/fs;

b=2*PI*f1*n/fs;

u[n]=U*cos(a);

i[n]=I*cos(a+x);

SI[n]=cos(b);

SQ[n]=sin(b);

}

for(n=0;n

{

UI[n]=u[n]*SI[n];

UQ[n]=u[n]*SQ[n];

II[n]=i[n]*SI[n];

IQ[n]=i[n]*SQ[n];

}

for(n=0;n

{

if(n!=(N-1)/2)

{

c=2*PI*fc*(n-(N-1)/2)/fs;

hd[n]=2*fc*sin(c)/(fs*c);

}

else hd[n]=2*fc/fs;

w[n]=0.54-0.46*cos(2*PI*n/(N-1));

}

for(n=0;n

{

h[n]=hd[n]*w[n];

}

for(n=0;n

{

HI1=HI1+UI[n]*h[n];

HQ1=HQ1+UQ[n]*h[n];

HI2=HI2+II[n]*h[n];

HQ2=HQ2+IQ[n]*h[n];

}

P=2*(HI1*HI2+HQ1*HQ2);

Q=2*(HQ1*HI2-HI1*HQ2);

S=U*I/2;

y=P/S;

printf("有功功率为:%.6f\n",P);

printf("无功功率为:%.6f\n",Q);

printf("视在功率为:%.6f\

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值