假设我有2个数组,buffer1和buffer2。这两个数组的数据都完全相同,并且长度相同。我可以添加这些2个阵列的结果放在一起,像这样:通过添加数组来实现延迟效果c
for (n=0; n<100; n++)
buffer3[n] = (buffer1[n] + buffer2[n]);
说这些缓冲区包含的数据点组成的正弦波。如果我能够将一个阵列中的点移动180度并再次添加它们,这会导致取消对吗? 我认为在90到180度之间的点会导致合成正弦波幅度变小,直到最终消除 - 如果您愿意,可以使用滤波效果。
我试图用下面的代码做到这一点,但问题是当n
在51那么[n + 50]
是一个值101 ...这是无效的权利?
for (n=0; n<100; n++)
buffer3[n] = (buffer1[n] + buffer2[n+50]);
我觉得一个循环缓冲器或类似的东西需要在这里使用的,但林不知道怎么回事,我的理解它与n
会出界做我会把它整合到上面的代码,但就是我不知道如何达到我想要的;可能吗?
当您执行'n + 50'时,模运算会有帮助吗? – patrickvacek
是的,这是可能的! – Jiminion