You should take care to limit resizing operations on arrays, because they are expensive.
It seems you delete the first element, then add a new element at the end. These are two resize operations per iteration!!!
There are better ways to keep the array "in place".
(1) Stick to "replace array element", indexing into the oldest element and keep track of the index.
(this will give you a scope type chart)
(2) rotate by one, then replace the oldest.
(This will give you a chart)
In both cases the array size is constant, which is important. Place the array into a shift register, initialized with a 1024 size array of zeroes, then tap into it as suggested.
(there are a few other ways to do this, but these examples should give you a starting point).