当前位置:
文档之家› 时域波形的参数测量实验报告s
时域波形的参数测量实验报告s
{
int Sum=0;
int i;
for (i=0; i<Length;/*input your code*/ i++)
{
Sum += *pBuffer;/*input your code*/
pBuffer++;
}
return Sum/Length;/*input your code*/
}
float GetRMS(short *pBuffer, int Length, int ZeroValue)
(3)对正弦波、三角波而言,其顶值、低值就是最大和最小值。
【注意:每次完成实验后,按上面的格式手写并上交实验报告。】
int GetRising(short *pBuffer, int Length, int yPer10, int yPer90, int *pxPer10, int *pxPer90)
{
int Index=0;
while (Index < Length && pBuffer[Index] > yPer10 /*input your code*/ )
(1)在Statistic.c文件中的参数统计算法:
int GetAverage(short *pBuffer, int Length)
{
int Sum=0;
int i;
for (i=0; i<Length;/*input your code*/ i++)
{
Sum += *pBuffer;/*input your code*/
{
float Sum=0;
int i;
for (i=0; i<Length; i++)
{
long temp;
temp =pBuffer[i] - ZeroValue;/*input your code*/
temp *= temp ;/*input your code*/
Sum += temp;
}
Sum /= Length;
*pxFirst= SecondMid;
ThirdMid=(Third10 + Third90) / 2 + FirstR90;
}
else
{
GetRising(pBuffer+FirstF10, Length-FirstF10, yPer10, yPer90, &Third10, &Third90);
二、实验内容
1.学习Visual DSP++的开发设计流程。
2.编写程序测量波形参数。
3.编写程序对波形参数进行统计运算。
三、实验步骤
1、计算并显示示波器幅度参数:平均值、有效值。打开Ypara.c源文件,填充缺少的代码。
int GetAverage(short *pBuffer, int Length)
ThirdMid=(Third10 + Third90) / 2 + FirstF10;
}
*pxLast = ThirdMid;
return 1;
/*input your code*/
*pxFirst= 50;
*pxLast = 100;
return 1;
}
int GetAmplitude(short *pBuffer, int Length)
int Third10, Third90, ThirdMid;
if (FirstMid > SecondMid)
{
GetFalling(pBuffer+FirstR90, Length-FirstR90, yPer10, yPer90, &Third10, &Third90);
*pxFirst= SecondMid;
FirstMid=(FirstR10 + FirstR90) / 2;
int FirstF10, FirstF90, SecondMid;
GetFalling(pBuffer, Length, yPer10, yPer90, &FirstF10, &FirstF90);
SecondMid=(FirstF10 + FirstF90) / 2;
输入波形
平均值
均方根值
上升时间
1KHz正弦波(偏移1V,幅度600mV)
1.1v
1.64v
142us
1KHz方波(偏移100mV,幅度600mV)
82mv
680mv
18us
1KHz三角波(偏移0V,幅度1.2V)
12mv
1.22v
284us
四、实验思考题
1、如何提高波形测量的精度?
答:主要有两种方法,其一是减少测频量化误差,即增加测量时间(主门时间)的方法;其二是减小侧周量化误差,即采用多周期测量法,在这里不再赘述。此外,为了提高测量的准确度,比较常用的方法还有游标法、内插法、平均测量技术、多周期同步测量法、相检宽带测频技术以及量化时沿法。
}while(i<midpoint);
//修正
if (tmpbuffer[basepoint]<Length*0.05)
basepoint= GetMin();
return basepoint;
/*input your code*/
//n 1;
}
3、计算并显示示波器时间类参数:上升时间。打开Xpara.c源文件,填充缺少的代码。
GetRising(pBuffer, Length, yPer10, yPer90, &FirstR10, &FirstR90);
FirstMid=(FirstR10 + FirstR90) / 2;
int FirstF10, FirstF90, SecondMid;
GetFalling(pBuffer, Length, yPer10, yPer90, &FirstF10, &FirstF90);
midpoint=GetAverage(pBuffer,Length);
toppoint= GetMax();
i=toppoint;
GetCount(*pBuffer, Length);
do
{
i--;
if (tmpbuffer[i]>tmpbuffer[toppoint])
toppoint=i;
}while(i>midpoint);
{
return GetTop(pBuffer, Length)-GetBase(pBuffer, Length);
}
五、实验结果分析与总结
(1)系统的噪声水平、和被测信号的信噪比对波形参数测量的精度有直接的影响,通过参数统计功能可以减小噪声对参数测量的影响。
(2)脉冲波形的顶值、低值非常重要,幅度、上升时间、脉宽等其他波形参数的都依赖于顶值和低值。
pBuffer++;
}
return Sum/Length;/*input your code*/
}
int GetPeriod(short *pBuffer, int Length, int yPer10, int yPer90, int *pxFirst, int *pxLast)
{
int FirstR10, FirstR90, FirstMid;
SecondMid=(FirstF10 + FirstF90) / 2;
int Third10, Third90, ThirdMid;
if (FirstMid > SecondMid)
{
GetFalling(pBuffer+FirstR90, Length-FirstR90, yPer10, yPer90, &Third10, &Third90);
时域测试技术综合实验报告书
实验名称时域波形的参数测量实验
班级一班学号201422070125姓名杨梅
实验时间:年月日得分:
一、实验目的
1.学习VISUAL DSP++开发流程。
2.掌握波形时域参数(周期、上升时间等)的测量方法。
3.掌握波形幅度参数(幅度、平均值、均方根值等)的测量方法。
4.掌握参数统计的一般实现方法。
ThirdMid=(Third10 + Third90) / 2 + FirstR90;
}
else
{
GetRising(pBuffer+FirstF10, Length-FirstF10, yPer10, yPer90, &Third10, &Third90);
*pxFirst= FirstMid;
//修正
if (tmpbuffer[toppoint]<Length*0.05)
toppoint= GetMax();
return toppoint;/*input your code*/
//return 1;
}
int GetBase(short *pBuffer, int Length)
{
short midpoint, basepoint, i;
Index++;
int xPer90=0;
if (Index < Length)
xPer90 = Index;
*pxPer90 = xPer90;
*pxPer10 = xPer10;
return 1;
}
3、对代码进行测试(打开参数测量功能),并填写如下表格: