I'm currently attempting to send and receive some BPSK modulated data through sound. Currently, I'm using goertzel's algorithm as a bandpass filter for demodulation. I have no formal training in signal processing.
Given a sample rate of 44100Hz and a bucket size of 100, my intuition says that generating a wave at a frequency multiple of 441hz should result in me picking up a relatively constant phase. At other frequencies, the phase i detect should drift.
However, my current implementation shows a drift in phase when detecting a generated sound wave over the course of a second (around 90 degrees). Is this to be expected or a sign of a flaw in my implementation of goertzels?
Furthermore, is there a better, perhaps obvious way to detect the phase of a wave at a specific frequency then using goertzels?
A slow phase drift can be the result of a small difference in the clock frequencies of the transmitter and receiver. This is to be expected.
Usually BPSK data is differentially encoded so you only need to detect the moments when the phase shifts by 180 degrees, and any slow phase drift or offset can be easily ignored.