Lets assume a pipeline X
:
in_buffer1 * window -> fft -> car_to_pol -> pol_to_car -> ifft -> out_buffer1
/ \
in_signal out_buffer1 + out_buffer2 -> out_signal
\ /
in_buffer2 * window -> fft -> car_to_pol -> pol_to_car -> ifft -> out_buffer2
where in_buffer1
and in_buffer2
overlap in time by exactly 50% and the window
is i.e. a hamming window with an offset matching the buffer.
the out_signal
should be just a reconstructed in_signal
with a delay depending of the buffers lengths with no frequency leaks.
However lets then consider a following pipeline Y
for a single buffer with two sifnal sources and one result
in_signalA(n) -> in_bufferA(n) * window -> fftA(n) -> car_to_polA(n) -> imgA(n) -> pol_to_car -> ifft -> out_buffer(n)
\ /
realB(n) * realA(n)
/
in_signalB(n) -> in_bufferB(n) * window -> fftB(n) -> car_to_polB(n)
Then apply the same overlapping oerlapping as per the pipeline X
where the n
is the number of the pipeline, i.e. 0 - no offset, 1- 50% offset,
This should produce a 'vocoder' effect.
However I do get cracks on the output signals which suggest there is a frequency leak I'm not compensating for. Any idea what I'm missing here?