㈠ 单片机如何测量波形的频率和占空比
1、首先要确定波形是否有毛刺等干扰?
2、其次要确定波形的频率大概范围?
3、还要确定波形是周期波?还是任意波?
只有知道这些基本的参数,才可以进行单片机的选型、晶振选型、软件定时中断的周期选择,然后给出相应的思路和方法。
如果波形比较理想,没有毛刺,测频率一般采取过零点;
如果波形有毛刺,可以考虑先把毛刺过滤掉,过滤电路或软件视具体情况而定。
如果频率比较高,可以设置一个较长定时,比如100ms,500ms,1s等,根据波形频率选择,然后在此定时内,统计有多少个过零点,进而得出频率;
如果频率比较低,可以设置一个计数器,统计波形两次过零点之间的计数器的计数值,进而得出频率。
占空比思路和上面类似,根据统计幅度为0的时长,以及非0的时长,进而求出占空比。
㈡ 如何计算出一个波形的面积的算法
我有一种思路,那就是用积分中值定理来近似计算一个区间的面积.在计算机中离散的计算两点或多点间的面积,然后在一段时间内做平均就可以出来波形的面积.
积分中值定理:f(x)在a到b上的积分等于(a-b)f(c),其中c满足a<c<b。
积分中值定理公式的c怎么取?这个在数字化波形中,,我们可以用两点或多点之间取均值、中位数、范围内随机数等方法来选取函数在c点的函数值,也就是f(c)=均值、中位数、范围内随机数等.
传感器实时采集回来的数据(想表达波形每个点的数据按顺序到来这种情况下),我们可以用S=(a*T_last+(1-a)*T)*b和T_last=T这 两个公式顺序计算求取面积.注意:①T_last在第一次计算时可以为0,也可以就等于T;②T表示传感器当前采集回来的值,T_last代表传感器以前的数值.③0≤a≤1,a根据实际情况进行选取或调整,代表传感器以前的数值对此次数值的影响程度.④b是周期,也可以是两点间的间隔,可以是距离也可以是时间长,也可以是固定选取的某常数,比如我一般就选常数1.
其实有现成的的工具可用,比如labview中就有专门的计算波形平均值、期望值、强度等.MATLAB中也有相对应的函数库.
简单易行的方法都或多或少都有误差在里面,但是在实验室外,生活中误差有时是可以接受的.一定要最求精度的话,可以拜读下导航路径计算相关论文或教材.