作业帮 > 综合 > 作业

有一个最高频率为1K的正弦波,频率可能随时变化,想找出每个周期的波峰和波谷值,有哪些方法?

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/31 17:44:26
有一个最高频率为1K的正弦波,频率可能随时变化,想找出每个周期的波峰和波谷值,有哪些方法?
AD采样的最高频率为1M,关键是正弦波的相位未知,如何判断出何时的采样值是波峰和波谷位置的值
有几点忘记了说明,这个正弦波除了频率随时变化外,每个周期的波峰和波谷的峰值也是变化的,是一个压力波形,而且这个波形还有可能是畸形波,目的就是要找到这些峰值异常的波然后动作.
采用比较法,找出极大值和极小值,极大值就是波峰,极小值就是波谷.
估计正弦波的最高频率.比如说,最高频率是10kHz,那么,一个周波内,至少有100个采样点.
可以把左边和右边的值都小于或等于的点,作为极大值,为了避免毛刺,判断过程中,可以把相对差值小于0.1%(根据实际情况调整)的点视为相等的点.
同理:
可以把左边和右边的值都大于或等于的点,作为极小值,为了避免毛刺,判断过程中,可以把相对差值小于0.1%(根据实际情况调整)的点视为相等的点.
再问: 谢谢你的回答! 首先判断最大值最小值一个周期内有多少个点采样点不知道,1000个采样点有可能是一个周期内的,也有可能是10个周期内的,这样就找不出每个周期的峰值,同理,也有可能取得采样点不足一个周期。 这里关键是要根据采样点求解出哪些采样点是一个周期内(波谷-波谷)的,然后波峰波谷就容易了。就用软件算法可不可以实现。 如果是硬件用检波电路把原始波形的频率还原,再在波峰和波谷位置产生采样控制信号,可行吗
再答: 正弦波一个周期内只有一个极大值和一个极小值,因此,你不需要知道一个周期有多少点。只要找到一个点,它的左边点比它小,右边点也比它小,就是极大值,也就是峰值。但是,实际波形在波峰处会有少许波动,这种方法可能导致误判,所以才提出上述的算法。实际证明,该算法是有效的。对于扰动较大的信号,可增大连续判断的点数即可。 硬件检波电路对于峰值变化的波形,误差较大,且对于频率变化波形,检波电路的滤波参数很难配置。
再问: 谢谢!具体的算法怎样实现? 1在相位80°的位置出现了一个大的扰动,如何剔除该点; 2比较的窗口最大取100个采样点,当频率很低时,这100个采样点的最大值最小值的差值小于0.1%,如何找峰值? 另外,因为是高速采样,如果等一个周期内数据采样完毕后再来比较计算,运算量较大,计算完了再动作已经来不及,有没有简便的算法,例如采样一次判断一次变化率?能否提供个简单的示例代码或流程图供参考?因为实在不知道怎么写^=^
再答: 1、较小的扰动,可以通过增大比较点数排除,较大的扰动,建议采用数字滤波器滤波。 2、比较点数应结合信号频率和采用频率选取。 另外,如果明确是正弦波,也可以采用计算有效值的方法反算峰值,抗扰动性能好,算法简单。