I'm new to GNU Radio and signal processing. I don't know if the following is a simple question, but I have been scratching my head about it.
I created a simple flow graph with a random source (0-3) and created a signal out of that using QPSK. I also added a noise source and added both together. The noise amplitude is controllable. In the end, I want to extract the original source using a Low Pass Filter.
The cutoff frequency is also controllable. I want that the Low pass filter filters out everything except the "main slope" of the input signal (see 2nd plot, image below). In a constellation sink (3rd plot), the signal before and after the Low Pass filter is shown. For a transition width of 1000, this works as expected:
Notice that there are four red areas (filtered signal, blue is unfiltered) in the constellation sink. They match up with my random input source (0-3) and QPSK. However, if I set the transition width to 1100, this changes and it looks like that the filtered signal is now worse:
I figured out that this can be handled with "Skip Heads". In the flow graph above, I already added one ahead of the constellation sink. I heard that the filters introduce a delay of half the filter length. So I thought that skip head has to be set to (transition width/2). This worked for a transition width of 1100: Only four distinct red areas were shown. However, the (transition width/2) approach doesn't work with a transition width of 2000, for example. What am I doing wrong?
The second thing I was wondering about is the shift of the signals in time domain. I plotted the unfiltered signal and the filtered signal and noticed that they are shifted (as expected, because of the filter delay). I tried to experiment with the parameters and a skip head of 35 aligned the signals perfectly but (transition width/2) didn't work. I don't know how to calculate this value for arbitrary transition widths and additionally, 35 didn't work for the Skip Head of the constellation sink (not 4 red areas were shown, but 9, see picture above). So I must be doing something wrong.
I hope that my question is understandable. Thanks for answering!
Edit: I figured out that the correct phase shift can be archived with the length of the filter taps / 2 (instead of transition width / 2). However, this doesn’t fix the issue with the constellation sink.