假設我有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