我试着测量每个解决方法:测量数字随机信号的频率模拟数字信号的频率。我不需要一个平均窗口,因为我的信号是一致的,而不是随机的。
代码:
这是我的代码,与解决方案中的代码相同,减去平均值窗口:

问题:
模拟信号为0~5 VDC方波,频率为100 Hz,采样率为1000 Hz。为什么输出的频率是125 Hz? (注意:无论我输入的频率是多少,我测量的值都高于真实值)。

发布于 2019-12-08 22:01:32
这对我来说是个愚蠢的逻辑错误。在排队进入dt队列之前,我忘记了最后一次将Period添加到Periods。
Periods保存每个记录的信号半周期的时间长度(因此,在输出到图形之前,在结束时将时间除以2)。在本例中,信号频率为100 Hz (周期0.01秒),因此每半个周期都有0.005秒长。通过在排队前不加最后一个采样周期,我的意思是每半个周期是0.004秒。这就是为什么频率是125赫兹( 0.5次/ 0.004秒= 125赫兹)。
因此,无论是否发生过零,我们都应该将dt添加到Period中,因此我们通过将添加从select语句的False大小写移到select语句之前来修正代码,只需通过False大小写传递队列和sum (参见下文)。
IF True:

如果是假的话:

注意: One可以使用Express >>信号分析系统(Express >> Signal Analysis >> Timing and Transitions VI )来测量频率,但由于某种原因,它对我不起作用,更重要的是,我想学习如何自己编写程序。
https://stackoverflow.com/questions/59230001
复制相似问题