我通过发送与位移成正比的正弦波来移动设备。我想动态修改幅度和平均值。
例如,一开始我想从:
Signal(t) = 1 * sin(t) + 1
到:
Signal(t) = 0.95 *sin(t) + 0.95
我的问题是,如果我的信号没有迈出一大步,我不知道该怎么做,这对我的应用程序来说是不可接受的。现在,我所拥有的只是在“长时间”内改变系数,小步长 (1>0.99>0.98>0.97>0.96>0.95),这样输出信号中的“步长”仍然很小,但它不是很干净。
我通过发送与位移成正比的正弦波来移动设备。我想动态修改幅度和平均值。
例如,一开始我想从:
Signal(t) = 1 * sin(t) + 1
到:
Signal(t) = 0.95 *sin(t) + 0.95
我的问题是,如果我的信号没有迈出一大步,我不知道该怎么做,这对我的应用程序来说是不可接受的。现在,我所拥有的只是在“长时间”内改变系数,小步长 (1>0.99>0.98>0.97>0.96>0.95),这样输出信号中的“步长”仍然很小,但它不是很干净。
输出是, 在哪里是作为时间函数的系数。那是乘以在时域中,这意味着它将在频域中进行卷积。卷积有效地扩展了频谱它最初由三个峰值(正弦波的负频率、0 Hz 和正弦波的正频率)组成。如果这种传播对您来说是个问题,您可以通过低通滤波来控制它在做乘法之前。说你低通滤波器在 10 赫兹。结果是频谱不会扩散到距离原始峰值不超过 ±10 Hz 的范围内。
在您的应用程序中,您可能不想要这样的砖墙滤波器,因为它的阶跃响应有一个过冲;它的输出超出了原始值范围. 最简单的做法可能是串联使用多个相同的单极低通滤波器级。单极点低通滤波器没有过冲。两者都没有级联的无过冲滤波器级。一个阶段很简单, 在哪里是一个介于 0 和 1 之间的系数。每一级将滤波器频率响应的斜率增加 6 dB/倍频程。
使用上述无限脉冲响应 (IIR) 滤波器意味着输出只会渐近地接近正确值。如果您希望在预定时间内达到正确的值,那么您可能需要研究有限脉冲响应 (FIR) 滤波器。为此,可以将常用的窗函数之一用作 FIR 滤波器的脉冲响应。脉冲响应的长度等于到达时间。
一种解决方案是选择转换时间为
即什么时候.
另一种解决方案是改变第二个正弦曲线的相位,以便
尽管您需要确保两个信号的导数相同,而不仅仅是它们的幅度。