From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

Example Code

MIMO Channel Emulator for PXIe-564xR

Products and Environment

This section reflects the products and operating system used to create the example.

To download NI software, including the products shown below, visit ni.com/downloads.

    Hardware

  • PXI Vector Signal Transceiver

    Software

  • LabVIEW

    Driver

  • NI RF Device Drivers

Code and Documents

Attachment

Description

Reference Application Overview

The MIMO Channel Emulator for PXIe-564xR reproduces the changes to an actual RF signal according to the various radio wave propagation models using the first generation Vector Signal Transceiver. It emulates a real-time radio channel present in wireless communications.

 

Channel Emulator functionalityChannel Emulator functionality

  

Steps to Implement or Execute Code

Due to file size and name restrictions, the code is published in separated zip files. After downloading the attached files, renaming is required so that it is recognized as a split archive. Rename the files according to the following instructions:

mimo_channel_emulator_564xr-1.0.0.4.part1.zip -> mimo_channel_emulator_564xr-1.0.0.4.zip.001

mimo_channel_emulator_564xr-1.0.0.4.part2.zip -> mimo_channel_emulator_564xr-1.0.0.4.zip.002

 

After extracting the compressed file from the archives, install the VI package and run the Host example application. Please note that the FPGA code comes compressed in zip with the package. The reason is that the Xilinx IPs have very long file names and the VIPM is not able to extract it properly into <labview>\examples folder.

Use cases for this reference application

In real life there are many kind of different channels existing and emulating each of them requires different channel models, path counts and Doppler shifts. One reference application cannot fit all use cases. This example provides functionalities to simulate standard cellular (GSM, WCDMA, LTE) and certain WiFi channels up to 2x2 MIMO.

For further use cases please visit the system level specifications below.

  

Description

The example is a complete redesign based on the "NI Channel Emulator Example for the 5644R" from VIPM, LabVIEW Tools Network. That example is planned to be replaced by this code.

Features:

  • Supported hardware: PXIe-5644R, PXIe-5645R and PXIe-5646R
  • Enabling 18 paths for SISO and 2x2 MIMO operation.
  • Enabling Different channel models for each path.
  • Channel Models: Deterministic, Pure Doppler, Rice, Rayleigh
  • Frequency Ratio settings to simulate different speeds for paths
  • Advanced MIMO operation and correlation matrices.
  • Support for Complex antenna correlation
  • FPGA based AWGN support
  • Power normalization of all paths
  • Scalable Host code through configurable fader parameters
  • Save and Load channel and MIMO settings, this enables storing channel profiles compatible with 3GPP and other standards.
  • Industry standard user interface

The documentation can be found attached at this site.

 

Channel Emulator in use - MIMO modeChannel Emulator in use - MIMO mode

 

Hardware and Software Requirements

 

The example was built using LabVIEW 2015 and NI-VST Instrument Design Library 15.0.2 and it is based on the shipping Streaming Example. The IDL does not install into newer LabVIEW versions so support for further release is not planned.

 

HW Requirements:

  • PXIe-8135
  • PXIe-1075, 1085, 1095
  • PXIe-5644R, 5645R or 5646R.

SW Requirements:

  • LabVIEW 2015
  • NI VST Instrument Design Libraries 15.0.2

Important: Trigger0 and Trigger4 is used to synchronize the VST-s in MIMO mode. Make sure that the trigger lines are properly routed in NI MAX.

VST 0 is the master, make sure triggers are routed from here to the second device.

 

System level specifications

 

Parameter

Value

Comments

MIMO Configurations Supported

1x1, 2x2

Larger MIMO count is not possible with the current host + FPGA architecture. To get 2x1 or 1x2 MIMO use the new MIMO settings in 2x2 MIMO mode.

Supported fading models

Deterministic, Pure Doppler, Rayleigh, Rice

Other models may be added but host side calculation time is a key issue.

Maximum RF Bandwidth

80/160 MHz

80MHz with 5644R and 5645R; 160 MHz with 5646R

Theoretical Maximum relative power dynamics

84 dB

Theoretical maximum power difference in the path profile. Due to technical reasons 14 bits are used.

Taped-delay-line sampling rate

100/200 MSPS

5644R/5646R ADC and DAC have 16 bit resolution.

Delay resolution

10 ns

This is currently implemented as a sample-based tapped-delay-line. Fractional Delay filters would not fit the FPGA, better resolution is not possible.

Minimum In-Out delay

8.9 us

Delay measured between RF in and RF Out, Settings: 1 deterministic path; 0 ns.

Maximum Doppler shift

4.65 kHz

Limited by the interpolation filter. (1dB point 4.65 kHz)

Fading channel interpolation rate

8192/16384

This is fixed. It may be modified later to 4096 to enable 9.3 kHz Doppler shift, but it results in a higher load for the Host CPU. Same number of paths with the same quality will not be possible.

Fading channel sampling rate

12.207 kHz

This is the rate at which the fading samples are generated on the host

Maximum no. of taps per channel

18

 Host fader generation is the bottleneck

Maximum delay

20.6 µs

 

MIMO correlation modes

Vector, Correlation Matrix, Kroenecker

See details in user manual.

In case a SISO demo is needed with higher Doppler frequency

https://forums.ni.com/t5/Example-Code/Doppler-Emulator-Example-Program-for-NI-VST/ta-p/4029907

This new demo allows up to 100 MHz Doppler for 4 taps. For more details visit the link above.

 

Additional Information or References

The independent generation of multiple Rayleigh channels were implemented based on this IEEE article:

Two new sum-of-sinusoids-based methods for the efficient generation of multiple uncorrelated rayleigh fading waveforms

Published in:IEEE Transactions on Wireless Communications(Volume: 8,Issue: 6, June 2009)

https://ieeexplore.ieee.org/document/5089993/ 

 

 

 

Example code from the Example Code Exchange in the NI Community is licensed with the MIT license.

Comments
Guillaume_B
Member
Member
on

 Hi,

Thank you for the example.

I have a problem when i try to unzip the two parts archive.

Can you try by your side and maybe repost some new uncorrupted zip file ?

I have tested with 7Z and winrar without posibility to retreive archive.

Thank you !

Best regards,

 

GuillaumeB

Il a LabVIEW, il a tout compris !
Buki87
Member
Member
on

Hi Guillaume, 

 

I have tested it on my machine and it work as follows:

Rename the files:

mimo_channel_emulator_564xr-1.0.0.4.part1.zip -> mimo_channel_emulator_564xr-1.0.0.4.zip.001

mimo_channel_emulator_564xr-1.0.0.4.part2.zip -> mimo_channel_emulator_564xr-1.0.0.4.zip.002

 

Right click on *.001 and extract here using 7zip.

 

Let me know if it works

Guillaume_B
Member
Member
on

The solution works fine !

The example installs properly and is very nice, clean code.

Thank you !

I just have to find a VST to test it !

Regards

Guillaume

 

Il a LabVIEW, il a tout compris !
EliasN
NI Employee (retired)
on

Hi,

 

I've renamed the compressed files as described previously, however this only worked for part 1. Part 2 file is still unreadable.

Any suggestions?

 

Thank you.

EliasN
NI Employee (retired)
on

Hi,

All is good now.

I misunderstood the previous comments. After renaming both files, only the *.001 will have to be extracted. This will extract the content of both compressed files.

Thanks

AliSabra
Member
Member
on

Hello guys,

 

If anybody succeeded to open the example, please send me screenshots of it. With the subvi please. I really need it but I can download labview 2015. If possible with some explanation of the code. I hope somebody can do me this favor.

 

Best regards,

Ali Sabra

Buki87
Member
Member
on

Hi Ali,

Please read the manual carefully, the example works at multiple locations. First you have to have everything installed and then simply open the LV project file.

 

 

Terry_ALE
Active Participant Active Participant
Active Participant
on

The zip rename instructions should be at the top.

 

Could they be combined to one zip file?


Certified LabVIEW Architect, Certified Professional Instructor
ALE Consultants

Introduction to LabVIEW FPGA for RF, Radar, and Electronic Warfare Applications
Buki87
Member
Member
on

Unfortunately it is not possible due to the file size limit of this community code share.

 

I move that part on the top.

Terry_ALE
Active Participant Active Participant
Active Participant
on

We are looking to use this in a newer version of LabVIEW (i.e. 2019 or newer) with the same hardware.

 

We took this example and exported it with all dependencies.  I was then able to open this in LabVIEW 2019 and 2020.  I am able to run it on one 5646.  Two (2) 5646 cards returns the following error:

 

Possible reason(s):

 

The device failed to detect whether its Sample Clock is synchronized. Check whether the Sample Clock sync signal is being provided and the Reference Clock is connected properly.

 

 

Complete call chain:

     niRFRIO Group A Config 1.0.0 Host.lvlib:Invert Sample Clock.vi:1210001

     niRFRIO Group A Config 1.0.0 Host.lvlib:Basecard Is Sample Clock In Sync.vi:7440001

     niRFRIO Group A Config 1.0.0 Host.lvlib:Basecard Configure Clocks.vi:6380001

     564x Support.lvlib:Synchronize Clocks.vi

     Open Devices.vi:6360001

     Runstate Mgr.lvclass:Initialize VSTs.vi

     MIMO Channel Emulator (Host).vi

 

Any way to correct the above issue?  We have LabVIEW 2019 and RFSA/RFSG 20.0 on our test computer.


Certified LabVIEW Architect, Certified Professional Instructor
ALE Consultants

Introduction to LabVIEW FPGA for RF, Radar, and Electronic Warfare Applications