输入信号通常采用循环缓冲区的形式,输出缓冲区可以是静态的.这也适用于时域图.如果没有真正看到您的结构,是否必须更改就无法回答.这是我的方法:
>为FFT创建一些缓冲区(数组)
可以是静态的…不会发生任何变化.它的大小必须至少为slowest_timebase / fsampling样本.如果您的FFT具有复杂的域输入,则将其大小加倍.如果要滚动/缩放/取消缩放,请相应地放大大小
>找到实际示波器视图的开始示例
通过触发器或启动器,仅持续最后N个采样(但由于相位…会闪烁),或者您以N采样块的形式从头到尾以与采样相同的速度预览所有采样.就像您将数据发送到声卡以播放声音一样.您只是在一段时间后才开始,所以您已经有足够的采样数据…
>工艺数据
如果需要的话,将数据从起点复制到FFT缓冲区中,并添加采样的虚部(Im = 0.0)并处理FFT.然后绘制实际输出的前一半.
第i个样本的频率(N个样本中)的频率为f = i *采样率/ N [Hz],其中i = {1,…,(N / 2)-1}跳过代表直流分量的i = 0.
您还可以将对数轴添加到频率.在这种情况下,也不要忘记更改绘图中的x值
>更新开始位置
只需将使用样本的大小(N)添加到开始位置,不要忘记触发器在找到真正的开始之前也以此时间为开始…