Skip to main content
added 1817 characters in body
Source Link
Dan Boschen
  • 58.2k
  • 3
  • 63
  • 155

Direct Answers to OP's Questions

Why my IQ plot looks the way it does/how I can fix it

The IQ plot contains frequency offsets and possibly time offsets, and has been oversampled to show many samples per symbol. To "fix it", meaning to see an expected constellation alone, the frequency and time offsets need to be removed and the result down-sampled to 1 sample/symbol with the sample at the correct time offset. See demonstration and details below with an 8PSK constellation providing further insight into this.

How I can find the carrier frequency/sample rate the meta file says frequency=0.0,but I'm not sure if that means that 0.0 is the carrier

Yes this means the carrier is intended to be DC, this is a baseband equivalent complex signal. There is however a carrier offset which is a small remaining error in carrier frequency. So in this case with frequency=0, it means DC is the reference point.

the meta file says sample_rate=1.0, does this mean 1.0Hz? that seems awfully low

It is common in sampled systems to normalize time to 1 sample instead of 1 second, which then results in "normalized frequencies". So all frequencies are then given in cycles/sample where $f = 1$ would correspond to the sampling rate (1 cycle/sample), or in radians/sample where $f = 2\pi$ would correspond to the sampling rate ($2\pi$ radians/sample.) So to convert normalized frequencies to Hz, multiply by the actual sampling rate in Hz.

What do freq_lower/upper_edge and scale mean in the meta files

I believe this is the range of occupied bandwidth (signal power above some threshold in a spectrum plot). As explained above, multiply by these numbers by the sampling rate to convert to Hz. We see from this a hint at what the frequency offset would be, approximately, as the average between upper and lower.

Further Details and Demonstration

The constellation is likely oversampled (many samples per symbol) so that we see the desired symbols as they would be on the unit circle (for a PSK or phase shift keying modulation) as well as the transition samples between symbols. Further under condition of carrier offset, the entire constellation will rotate at the offset frequency. In addition, the waveform as transmitted will often be dispersed from the ideal constellation point due inter-symbol interference (ISI) as the ideal pulse shaping filter that has no ISI is typically split between transmitter and receiver to implement a "matched filter" in the receiver. Finally it is possible that the samples as received are offset in time from the correct sampling location (time offset). A typical receiver will address all these "offsets" using recovery loops (timing recovery, carrier recovery, etc). One approach to carrier recover that I demonstrate here with an implementation block diagram which occurs after timing recovery (with the samples down-sampled to be one sample per symbol at the expected time location within each sample), is to measure the phase rotation from symbol to symbol, and use that to correct the frequency offset in a classical control loop.

The constellation is likely oversampled (many samples per symbol) so that we see the desired symbols as they would be on the unit circle (for a PSK or phase shift keying modulation) as well as the transition samples between symbols. Further under condition of carrier offset, the entire constellation will rotate at the offset frequency. In addition, the waveform as transmitted will often be dispersed from the ideal constellation point due inter-symbol interference (ISI) as the ideal pulse shaping filter that has no ISI is typically split between transmitter and receiver to implement a "matched filter" in the receiver. Finally it is possible that the samples as received are offset in time from the correct sampling location (time offset). A typical receiver will address all these "offsets" using recovery loops (timing recovery, carrier recovery, etc). One approach to carrier recover that I demonstrate here with an implementation block diagram which occurs after timing recovery (with the samples down-sampled to be one sample per symbol at the expected time location within each sample), is to measure the phase rotation from symbol to symbol, and use that to correct the frequency offset in a classical control loop.

Direct Answers to OP's Questions

Why my IQ plot looks the way it does/how I can fix it

The IQ plot contains frequency offsets and possibly time offsets, and has been oversampled to show many samples per symbol. To "fix it", meaning to see an expected constellation alone, the frequency and time offsets need to be removed and the result down-sampled to 1 sample/symbol with the sample at the correct time offset. See demonstration and details below with an 8PSK constellation providing further insight into this.

How I can find the carrier frequency/sample rate the meta file says frequency=0.0,but I'm not sure if that means that 0.0 is the carrier

Yes this means the carrier is intended to be DC, this is a baseband equivalent complex signal. There is however a carrier offset which is a small remaining error in carrier frequency. So in this case with frequency=0, it means DC is the reference point.

the meta file says sample_rate=1.0, does this mean 1.0Hz? that seems awfully low

It is common in sampled systems to normalize time to 1 sample instead of 1 second, which then results in "normalized frequencies". So all frequencies are then given in cycles/sample where $f = 1$ would correspond to the sampling rate (1 cycle/sample), or in radians/sample where $f = 2\pi$ would correspond to the sampling rate ($2\pi$ radians/sample.) So to convert normalized frequencies to Hz, multiply by the actual sampling rate in Hz.

What do freq_lower/upper_edge and scale mean in the meta files

I believe this is the range of occupied bandwidth (signal power above some threshold in a spectrum plot). As explained above, multiply by these numbers by the sampling rate to convert to Hz. We see from this a hint at what the frequency offset would be, approximately, as the average between upper and lower.

Further Details and Demonstration

The constellation is likely oversampled (many samples per symbol) so that we see the desired symbols as they would be on the unit circle (for a PSK or phase shift keying modulation) as well as the transition samples between symbols. Further under condition of carrier offset, the entire constellation will rotate at the offset frequency. In addition, the waveform as transmitted will often be dispersed from the ideal constellation point due inter-symbol interference (ISI) as the ideal pulse shaping filter that has no ISI is typically split between transmitter and receiver to implement a "matched filter" in the receiver. Finally it is possible that the samples as received are offset in time from the correct sampling location (time offset). A typical receiver will address all these "offsets" using recovery loops (timing recovery, carrier recovery, etc). One approach to carrier recover that I demonstrate here with an implementation block diagram which occurs after timing recovery (with the samples down-sampled to be one sample per symbol at the expected time location within each sample), is to measure the phase rotation from symbol to symbol, and use that to correct the frequency offset in a classical control loop.

added 1361 characters in body
Source Link
Dan Boschen
  • 58.2k
  • 3
  • 63
  • 155

The constellation is likely oversampled (many samples per symbol) so that we see the desired symbols as they would be on the unit circle (for a PSK or phase shift keying modulation) as well as the transition samples between symbols. Further under condition of carrier offset, the entire constellation will rotate at the offset frequency. In addition, the waveform as transmitted will often be dispersed from the ideal constellation point due inter-symbol interference (ISI) as the ideal pulse shaping filter that has no ISI is typically split between transmitter and receiver to implement a "matched filter" in the receiver. Finally it is possible that the samples as received are offset in time from the correct sampling location (time offset). A typical receiver will address all these "offsets" using recovery loops (timing recovery, carrier recovery, etc). One approach to carrier recover that I demonstrate here with an implementation block diagram which occurs after timing recovery (with the samples down-sampled to be one sample per symbol at the expected time location within each sample), is to measure the phase rotation from symbol to symbol, and use that to correct the frequency offset in a classical control loop.

For a quick post processing study, an easy way to determine the carrier offset on the current waveform as sampled is to raise the waveform to the 4thMth power for an M-PSK waveform. After doing this taking the FFT will reveal a stronger tone at four times the carrier offset. I demonstrate these concepts below with an example 8-PSK waveform:

The constellation for the 8PSK waveform as transmitted, without any carrier offset is shown below. I have plotted all samples in blue, and every 8th sample in orange (the waveform was oversampled 8 samples per symbol). We see the effect of intersymbol interference since the pulse shaping filter is split between transmitter and receiver :

8 PSK

Passing this waveform through a second pulse shaping filter (in the receiver), with no time or frequency offset results in the following:

8 PSK recovered

However, if there was a frequency offset, the entire constellation would rotate, with a small frequency offset introduced, the first constellation now appears as:

8 PSK with offset

Raising this waveform to the 8th power (M=8) and looking at the spectrum reveals a strong tone at 8x the actual frequency offset:

FFT

This is one simple approach to determine if a frequency offset exists, and can be used as part of a recovery loop. More efficient approaches that operate sample by sample are detailed in the linked post above.

The constellation is likely oversampled (many samples per symbol) so that we see the desired symbols as they would be on the unit circle (for a PSK or phase shift keying modulation) as well as the transition samples between symbols. Further under condition of carrier offset, the entire constellation will rotate at the offset frequency. In addition, the waveform as transmitted will often be dispersed from the ideal constellation point due inter-symbol interference (ISI) as the ideal pulse shaping filter that has no ISI is typically split between transmitter and receiver to implement a "matched filter" in the receiver. Finally it is possible that the samples as received are offset in time from the correct sampling location (time offset). A typical receiver will address all these "offsets" using recovery loops (timing recovery, carrier recovery, etc). One approach to carrier recover that I demonstrate here with an implementation block diagram which occurs after timing recovery (with the samples down-sampled to be one sample per symbol at the expected time location within each sample), is to measure the phase rotation from symbol to symbol, and use that to correct the frequency offset in a classical control loop.

For a quick post processing study, an easy way to determine the carrier offset on the current waveform as sampled is to raise the waveform to the 4th power. After doing this taking the FFT will reveal a stronger tone at four times the carrier offset.

The constellation is likely oversampled (many samples per symbol) so that we see the desired symbols as they would be on the unit circle (for a PSK or phase shift keying modulation) as well as the transition samples between symbols. Further under condition of carrier offset, the entire constellation will rotate at the offset frequency. In addition, the waveform as transmitted will often be dispersed from the ideal constellation point due inter-symbol interference (ISI) as the ideal pulse shaping filter that has no ISI is typically split between transmitter and receiver to implement a "matched filter" in the receiver. Finally it is possible that the samples as received are offset in time from the correct sampling location (time offset). A typical receiver will address all these "offsets" using recovery loops (timing recovery, carrier recovery, etc). One approach to carrier recover that I demonstrate here with an implementation block diagram which occurs after timing recovery (with the samples down-sampled to be one sample per symbol at the expected time location within each sample), is to measure the phase rotation from symbol to symbol, and use that to correct the frequency offset in a classical control loop.

For a quick post processing study, an easy way to determine the carrier offset on the current waveform as sampled is to raise the waveform to the Mth power for an M-PSK waveform. After doing this taking the FFT will reveal a stronger tone at four times the carrier offset. I demonstrate these concepts below with an example 8-PSK waveform:

The constellation for the 8PSK waveform as transmitted, without any carrier offset is shown below. I have plotted all samples in blue, and every 8th sample in orange (the waveform was oversampled 8 samples per symbol). We see the effect of intersymbol interference since the pulse shaping filter is split between transmitter and receiver :

8 PSK

Passing this waveform through a second pulse shaping filter (in the receiver), with no time or frequency offset results in the following:

8 PSK recovered

However, if there was a frequency offset, the entire constellation would rotate, with a small frequency offset introduced, the first constellation now appears as:

8 PSK with offset

Raising this waveform to the 8th power (M=8) and looking at the spectrum reveals a strong tone at 8x the actual frequency offset:

FFT

This is one simple approach to determine if a frequency offset exists, and can be used as part of a recovery loop. More efficient approaches that operate sample by sample are detailed in the linked post above.

added 287 characters in body
Source Link
Dan Boschen
  • 58.2k
  • 3
  • 63
  • 155

The constellation is likely oversampled (many samples per symbol) so that we see the desired symbols as they would be on the unit circle (for a PSK or phase shift keying modulation) as well as the transition samples between symbols. Further under condition of carrier offset, the entire constellation will rotate at the offset frequency. In addition, the waveform as transmitted will often be dispersed from the ideal constellation point due inter-symbol interference (ISI) as the ideal pulse shaping filter that has no ISI is typically split between transmitter and receiver to implement a "matched filter" in the receiver. Finally it is possible that the samples as received are offset in time from the correct sampling location (time offset). A typical receiver will address all these "offsets" using recovery loops (timing recovery, carrier recovery, etc). One approach to carrier recover that I demonstrate here with an implementation block diagram which occurs after timing recovery (with the samples down-sampled to be one sample per symbol at the expected time location within each sample), is to measure the phase rotation from symbol to symbol, and use that to correct the frequency offset in a classical control loop.

For a quick post processing study, an easy way to determine the carrier offset on the current waveform as sampled is to raise the waveform to the 4th power. After doing this taking the FFT will reveal a stronger tone at four times the carrier offset.

The constellation is likely oversampled (many samples per symbol) so that we see the desired symbols as they would be on the unit circle (for a PSK or phase shift keying modulation) as well as the transition samples between symbols. Further under condition of carrier offset, the entire constellation will rotate at the offset frequency. Finally it is possible that the samples as received are offset in time from the correct sampling location (time offset). A typical receiver will address all these "offsets" using recovery loops (timing recovery, carrier recovery, etc). One approach to carrier recover that I demonstrate here with an implementation block diagram which occurs after timing recovery (with the samples down-sampled to be one sample per symbol at the expected time location within each sample), is to measure the phase rotation from symbol to symbol, and use that to correct the frequency offset in a classical control loop.

For a quick post processing study, an easy way to determine the carrier offset on the current waveform as sampled is to raise the waveform to the 4th power. After doing this taking the FFT will reveal a stronger tone at four times the carrier offset.

The constellation is likely oversampled (many samples per symbol) so that we see the desired symbols as they would be on the unit circle (for a PSK or phase shift keying modulation) as well as the transition samples between symbols. Further under condition of carrier offset, the entire constellation will rotate at the offset frequency. In addition, the waveform as transmitted will often be dispersed from the ideal constellation point due inter-symbol interference (ISI) as the ideal pulse shaping filter that has no ISI is typically split between transmitter and receiver to implement a "matched filter" in the receiver. Finally it is possible that the samples as received are offset in time from the correct sampling location (time offset). A typical receiver will address all these "offsets" using recovery loops (timing recovery, carrier recovery, etc). One approach to carrier recover that I demonstrate here with an implementation block diagram which occurs after timing recovery (with the samples down-sampled to be one sample per symbol at the expected time location within each sample), is to measure the phase rotation from symbol to symbol, and use that to correct the frequency offset in a classical control loop.

For a quick post processing study, an easy way to determine the carrier offset on the current waveform as sampled is to raise the waveform to the 4th power. After doing this taking the FFT will reveal a stronger tone at four times the carrier offset.

Source Link
Dan Boschen
  • 58.2k
  • 3
  • 63
  • 155
Loading