I use Wireless Waveform Generator app in MATLAB to simulate QPSK. When I select the filter span
parameter as an even number, the constellation diagram looks normal. However, when I change the parameter with any odd number the constellation diagram looks very different. I suspect that the app doesn't downsample at the correct time index when the filter span
is odd. Can anyone explain the reason?
-
$\begingroup$ Obviously the receiver symbol timing recovery is being thrown off. Is the receiver's matched RRC filter set to the same symbol span as the transmit RRC filter? $\endgroup$– Andy WallsCommented Aug 6 at 22:49
-
$\begingroup$ Hello, I guess the waveform generator app uses only one RRC filter. As far as I understand this app only generates the waveform and it doesn't have receiver side (if it does then I honestly don't know the number of symbol span). I also should have said that the generated signal doesn't have any noise. In my opinion using only one RRC filter makes the signal looks noisy as in the figure at the top (filter span=10). $\endgroup$– uniqueCommented Aug 7 at 6:30
-
$\begingroup$ If there is no noise, then why do the constellation show clouds of samples? Shouldn’t they collapse to 4 points? I think your statement regarding noise is wrong. This also suggest an existence of a receiver, but maybe it only simulates the arc self noise $\endgroup$– Yair MCommented Aug 7 at 6:55
-
$\begingroup$ @YairM In my opinion constellation point would be mapped to 4 points if I use normal raised cosine filter. Since the filter I used in question is RRC, it is normal to look noisy. I also make experiment with gnu radio and the constellation looks noisy without noise when using RRC. $\endgroup$– uniqueCommented Aug 7 at 7:35
-
$\begingroup$ Pardon my naive question, but why would the pulse shaping filter introduce noise? Isn't it determenisitic? Or oanit a result of the resulting ISI and the random nature of the source? $\endgroup$– Yair MCommented Aug 8 at 14:15
2 Answers
Assuming that no other noise or passband distortion is being introduced, the result is inter-symbol interference which would be expected in this case jf:
The final plot shown is not the cascade of two matched RRC filters with zero delay between Tx and Rx and synchronized Rx andd Tx clocks to get the zero-ISI case.
The samples selected in the final plot are not exactly at the correct sample locations (as there is only one sample location per symbol where zero-ISI occurs).
The duration of the RRC filter is too short to realize the minimum ISI needed (any realizable RRC filter is a truncated approximation of the true zero-ISI result).
In the first plot the selected sample appears to be much closer than the second plot (but there is still ISI). This case could be due to my last point above or also possibly a fractional delay offset in the filter. The RRC a filter used as an even number of samples (4x10) is a linear phase filter with a (40-1)/2 = 19.5 group delay in samples. However if this same sample was used twice (for the RC response) the delay would be an integer delay and this would not occur- so I suspect the filter just isn’t long enough and a longer filter should realize and even smaller ISI assuming the correct sample is used.
For the second case we have the same issue of an even number of samples in the RRC filter (11x4), but as long as the transmit RRC waveform was also implemented with the same filter, the passing of that waveform through a second RRC filter in the receiver will also result in an integer number of samples for group delay. Regardless the ISI due to a 1/2 sample offset with an alpha =0.25 would not be as bad as this plot appears, so clearly here the sample selected out of the four possible samples prior to down-sampling to one sample per symbol is incorrect. This can be resulted by offsetting the higher samples waveform prior to the downsampling (rx2 = rx(n:end)) where n= 2,3 or 4.
If doing this, and increasing the filter length does not gradually reduce the ISI to an individual dot, then there is a fractional sample offset and a fractional delay filter can be used to offset the time delay error (which would be a realistic receiver condition given the possible time delay between Tx and Rx and sampling time offset in the receiver sampling clock).
I simulate same system with GNU Radio. I have obtained the same constellation pattern when I shift the signal index by 1 and downsample. I suppose MATLAB select wrong time index. I have added screenshots of simulation and constellation patterns. If any expert confirm my opinion I will select my answer as solved.
EDIT: For the future readers you can also change sampling offset in matlab by right click to constellation diagram and selecting configuration properties. In order to see usual QPSK constellation you can set offset to 2 for filter span 11.
-
$\begingroup$ yes timing offset is one way to have this occur to the constellation and most likely in your case. I would select your answer as solved. $\endgroup$ Commented Aug 9 at 1:32
-