RF Measurement Devices

cancel
Showing results for 
Search instead for 
Did you mean: 

Modulation Toolkit...Samples per Symbol

A number of examples that come with the Modulation Toolkit include a parameter of "Samples per symbol".
 
Samples of what?  Generated at what rate?  What effect does this have on the modulated signal?
0 Kudos
Message 1 of 5
(22,658 Views)
Per the Modulation Toolkit help:
samples per symbol specifies the number of samples dedicated to each symbol. Multiply this value by the symbol rate to determine the sample rate.

This parameter only affects digital modulation schemes (i.e. schemes modulating digital information - bits) and not analog schemes (AM, FM, or PM). This is because only dig mod schemes have bits, which are grouped together to form symbols.

From an acquisition/demodulation standpoint, the purpose of having this parameter is to end up with an array of samples with an integer number of samples per symbol, or equivalently, to have a sample rate that is an integer multiple of the symbol rate. If my symbol rate is 100 kSym/sec, then I want my data sample rate to be 100, 200, 300, 400, etc... kSamp/sec.

This is because the process involved in digital demodulation involves selecting the samples out of the waveform that are the actual symbols, so that these samples (which are actually the symbols) can be mapped back to the bit pattern defined in the symbol map. If I have a sample rate that is a non-integer multiple of the symbol rate, then I will not always have a sample at the actual timing moments of the symbol rate or clock. This is why the digital demodulation examples all call a resample function just prior to the digital demod routine, so that the resampler can resample the data from the rate acquired with the HW to a rate that is equal to the symbol rate times number of symbols.

From a generation/modulation standpoint, this controls how many samples I use to define each symbol, the minimum being one. However, using 1 sample/symbol results in very poor quality representation of the eventual IQ data and does not provide as much data for pulse shaping filters to work with. The more samples/symbol, the more data the filters have to work with, but this can also bring diminishing returns since the pulse shaping will take longer with more data. The default value in Modulation Toolkit  is 16 but 8 usually works well enough.

Regards,
Andy Hinde
National instruments
******************************************************************************
A number of examples that come with the Modulation Toolkit include a parameter of "Samples per symbol".
 
Samples of what?  Generated at what rate?  What effect does this have on the modulated signal?
Message 2 of 5
(22,642 Views)

So...if I understand correctly...

Multiple samples per symbol on the modulation side to assist the pulseshaping filters and....

Multiple samples per symbol on the demod side to effectively "oversample" so that the demod can figure out where best to make the symbol/bit decision.  It seems like this basically sets the sample rate...without explicitly defining a sample rate.  Is this accurate (or close?).

Also...I've noticed that the first symbol of an array of bits always has half the number of samples it should.  For example, if I were doing BPSK and set the #samples per symbol to 4...passed data through the PSK modulation VI...and then examined the complex output...the first bit (symbol) would only have 2 IQ pairs, and the rest would have the expected 4.  Why is this?  Might I be using the VI improperly?

Thanks for your continued help.

---
BC

 

 

 

0 Kudos
Message 3 of 5
(22,604 Views)
A follow up....
 
I created a simple program to do PSK mod/demod.  In between, I add some Gaussian noise.  I then examine the demodulated constellation.  For a given noise level...if I increase the samples per symbol, the constellation gets noisier...decrease the samples per symbol...the constellation cleans up.
 
From what you describe above...this seems backwards.  Wouldn't more samples per symbol increase the demodulator's chance to accurately determine data?  Is this an artifact of my simulation? 
 
Thoughts?
 
 
0 Kudos
Message 4 of 5
(22,594 Views)
I used a PSK transceiver simulation shipping example in Modulation Toolkit to try and see this behavior (reducing sam/symbol increases constellation quality, and vice versa) and I am not seeing it thus far, making me think perhaps this behavior is something unique to your code. My first recommendation would be to try this shipping example and see if it acts like your code with equivalent input parameters. The example is called:

MT PSK Transceiver (One Shot).vi

and is located at:

C:\...\<LabVIEW Directory>\examples\Modulation\simulation examples\Interactive

As for the other behavior of the 'first symbol of an array of bits always has half the number of samples it should', this is most likely the effect of the initialization of the digital filters used as the pulse shaping and matched filters for modulation and demodulation, respectively. This is the motivation for prepending a series of 'guard bits' to a data stream, so that any corruption of the data due to digital filter initialization is localized to these guard bits and does not affect the actual data stream. The example above also shows how to use guard bits.

To answer the question about sample rate, the samples per symbol defines a data sample rate needed for the demodulation VI and defines an output sample rate from the modultion VI. Just don't confuse this will the actual HW sample rate. The PXI-566x RF Signal Analyzer acquires IQ data at a certain HW sample rate optimized for throughout and speed, and this IQ rate most always needs to be changed to meet the demodulator SW data sample rate requirements, with the resampling routine the mechanism for making this change. For example, my IQ data may come out of the HW at a sample rate of 62.5 kSamp/sec, and my digital data symbol rate may be 400 kSym/sec. If I want 8 samples per symbol, my IQ rate (sample rate) must chane from 62.5 kSamp/sec to 3.2 MSamp/sec, which means the resampling routine would increase my sample rate by a factor of 51.2 (3.2M / 62.5k)

Regards,
Andy Hinde
National Instruments

********************************************************************************************
So...if I understand correctly...

Multiple samples per symbol on the modulation side to assist the pulseshaping filters and....

Multiple samples per symbol on the demod side to effectively "oversample" so that the demod can figure out where best to make the symbol/bit decision.  It seems like this basically sets the sample rate...without explicitly defining a sample rate.  Is this accurate (or close?).

Also...I've noticed that the first symbol of an array of bits always has half the number of samples it should.  For example, if I were doing BPSK and set the #samples per symbol to 4...passed data through the PSK modulation VI...and then examined the complex output...the first bit (symbol) would only have 2 IQ pairs, and the rest would have the expected 4.  Why is this?  Might I be using the VI improperly?

Thanks for your continued help.

---
BC

********************************************************************************************

A follow up....

 
I created a simple program to do PSK mod/demod.  In between, I add some Gaussian noise.  I then examine the demodulated constellation.  For a given noise level...if I increase the samples per symbol, the constellation gets noisier...decrease the samples per symbol...the constellation cleans up.
 
From what you describe above...this seems backwards.  Wouldn't more samples per symbol increase the demodulator's chance to accurately determine data?  Is this an artifact of my simulation? 
 
Thoughts?
Message 5 of 5
(22,582 Views)