imtoolkit.NonSquareDifferentialMLDSimulator module¶
-
class
imtoolkit.NonSquareDifferentialMLDSimulator.
NonSquareDifferentialMLDSimulator
(codes, channel, bases)[source]¶ Bases:
imtoolkit.Simulator.Simulator
A simulator that relies on the nonsquare differential space-time block codes, which are proposed in [1-3]. This implementation uses the square-to-nonsquare projection concept of [2] and the adaptive forgetting factor of [3] for time-varying channels. The environment variable USECUPY determines whether to use cupy or not.
[1] N. Ishikawa and S. Sugiura, “Rectangular differential spatial modulation for open-loop noncoherent massive-MIMO downlink,” IEEE Trans. Wirel. Commun., vol. 16, no. 3, pp. 1908–1920, 2017.
[2] N. Ishikawa, R. Rajashekar, C. Xu, S. Sugiura, and L. Hanzo, “Differential space-time coding dispensing with channel-estimation approaches the performance of its coherent counterpart in the open-loop massive MIMO-OFDM downlink,” IEEE Trans. Commun., vol. 66, no. 12, pp. 6190–6204, 2018.
[3] N. Ishikawa, R. Rajashekar, C. Xu, M. El-Hajjar, S. Sugiura, L. L. Yang, and L. Hanzo, “Differential-detection aided large-scale generalized spatial modulation is capable of operating in high-mobility millimeter-wave channels,” IEEE J. Sel. Top. Signal Process., in press.
-
simulateBERParallel
(params, outputFile=True, printValue=True)[source]¶ Simulates BER values at multiple SNRs, where the massively parallel algorithm is used. This implementation is especially designed for cupy.
- Parameters
params (imtoolkit.Parameter) – simulation parameters.
outputFile (bool) – a flag that determines whether to output the obtained results to the results/ directory.
printValue (bool) – a flag that determines whether to print the simulated values.
- Returns
a dict that has two keys: snr_dB and ber, and contains the corresponding results. All the results are transferred into the CPU memory.
- Return type
ret (dict)
-
simulateBERReference
(params, outputFile=True, printValue=True)[source]¶ Simulates BER values at multiple SNRs, where the straightforward reference algorithm is used. Note that this time complexity is unrealistically high.
- Parameters
params (imtoolkit.Parameter) – simulation parameters.
outputFile (bool) – a flag that determines whether to output the obtained results to the results/ directory.
printValue (bool) – a flag that determines whether to print the simulated values.
- Returns
a dict that has two keys: snr_dB and ber, and contains the corresponding results. All the results are transferred into the CPU memory.
- Return type
ret (dict)