发布时间 : 星期三 文章C语言实验报告-正弦信号模拟采样及特征参数分析软件设计更新完毕开始阅读a31e3d1f0b4e767f5acfce59
南昌航空大学实验报告
2012 年 12 月 13 日
课程名称: C语言实验 实验名称:正弦信号模拟采样及特征参数分析软件设计 班级: xxxxx班 xx号 姓名: XXX 地点:
指导教师评定: 签名: 一、实验目的
1. 了解正弦信号采样的基本原理;
2. 了解正弦信号采样的离散处理方法;
3. 进一步掌握C语言输入输出语句的使用和编程方法;
4. 进一步掌握C语言顺序结构、选择结构和循环结构程序的编写;
5. 进一步掌握C语言函数的定义和调用,数组、结构体及文件的使用及编程方法; 6. 进一步培养把实际问题转化为C语言模型和模块化程序设计的能力。 二、实验要求
1. 生成模拟信号Y(n)=Acos(2πft+ψ)+B;其中A(幅度值)、f(频率)、ψ(初相角)、
B(直流分量)由键盘输入; 2. 对该信号在一个周期内分别等间隔采样32、64点,并把采样的值分别存放在不同
的数组中;
注:第n点的采样值为 Y(n)=Acos(2πn/N+ψ)+B 3. 分别计算信号的有效值、峰峰值、平均值,并在频幕上显示;
其中有效值计算公式为:
峰峰值计算公式为:Y峰-峰=Yn max-Yn min
平均值计算公式为:Y平= ∑Y(n)/ N
4. 完成对信号的幅度值、频率、初相角、有效值、峰峰值、平均值的显示并以文件形
式储存(选做部分)
三、实验内容
该试验要求对一输入正弦信号进行离散处理并对该信号的基本特征进行定量分析。采用不同的抽样频率分别求出该信号的有效值、峰峰值、平均值。 四、程序流程图
分别等间隔采样32点、64点 请输入A、f、、B 开始
五、实验源程序及注释
#include
float a,b,c,f,Upp,Up;
double Y32[32],Y64[64],n1,m1,n2,m2,U1,Up1,U2,U,Upp1,Upp2,Up2,max,min; int i;
printf(\πft+ψ)+B\\n\printf(\请分别输入A,f,ψ,B的值\\n\printf(\幅度值A=\scanf(\for(;f<=0;) {
printf(\频率f=\scanf(\
if(f<=0) printf(\ 有效值: 峰峰值: 第n点采样值为: 平均值: ∑Y(n)/ N Yn max-Yn min 输出有效值、峰峰值、平均值 结束 }
printf(\初相角ψ=\scanf(\
printf(\直流分量B=\
scanf(\
printf(\等间隔32点采样\\n\
for(i=0,n1=0,m1=0,max=c-a,min=a+c;i<32;i++)
{ }
printf(\
Y32[i]=a*cos(6.28*i/32+b)+c; printf(\n1=Y32[i]*Y32[i]+n1; m1=Y32[i]+m1;
if(Y32[i]>=max) max=Y32[i]; if(Y32[i]<=min) min=Y32[i];
U1=sqrt(n1/32); Upp1=max-min; Up1=m1/32;
printf(\有效值U1=%lf\\n\
printf(\峰峰值Upp1=%lf\\n\printf(\平均值Up1=%lf\\n\printf(\等间隔64点采样\\n\
for(i=0,n2=0,m2=0,max=c-a,min=a+c;i<64;i++) { printf(\
Y64[i]=a*cos(6.28*i/64+b)+c; printf(\n2=Y64[i]*Y64[i]+n2; m2=Y64[i]+m2;
if(Y64[i]>=max) max=Y64[i]; if(Y64[i]<=min) min=Y64[i];
}
U2=sqrt(n2/64);
Upp2=max-min; Up2=m2/64;
printf(\有效值U2=%lf\\n\printf(\峰峰值Upp2=%lf\\n\printf(\平均值Up2=%lf\\n\U=sqrt(a*a/2+c*c); Upp=2*a;
Up=c;
printf(\各项参数理论值为:\\n\
printf(\幅度值A=%f\\n频率f=%f\\n初相角ψ=%f\\n直流分量B=%f\\n有效值
U=%lf\\n峰峰值Upp=%f\\n平均值Up=%f\\n\ }
六、结果分析