When I set the samplerate to 500e6, MATLAB changes the image of my X410 to X1_400, but it only allows two channels to output simultaneously. What should I do to control all four channels of the X410 to output signals simultaneously?

12 Comments

Hi Chengrui,
Without further explanation of what you've tried and what's not working I'm afraid it's hard to tell, but it should be possible to transmit on four channels simultaneously. Please see the example Transmit Data on Multiple Antennas with Baseband Transmitter.
This code should send four channels of data.
bbtx = basebandTransmitter("MyX410"); % you will need to set your own radio configuration name
bbtx.SampleRate=500e6;
bbtx.Antennas = ["DB0:RF0:TX/RX0","DB0:RF1:TX/RX0","DB1:RF0:TX/RX0","DB1:RF1:TX/RX0"];
transmit(bbtx,ones(1000,4),'continuous'); % four columns of data, one for each antenna
stopTransmission(bbtx)
If you are experiencing any issues that you suspect may be a bug, please contact support.
Thanks,
Neil
%% set USRP
savedRadioConfigurations = radioConfigurations;
savedRadioConfigurationNames = [string({savedRadioConfigurations.Name})];
radio = savedRadioConfigurationNames(1) ;
%% generate signal
SampleRate = 500e6;
t = 0: 1/SampleRate : (500000-1)/SampleRate;
freq_tone = linspace(0,200e6,4001);
comb_signal = 0;
for i = 1:length(freq_tone)
comb_signal = comb_signal + exp(1j * 2 *pi * freq_tone(i) .* t).'/length(freq_tone);
end
comb_signal = repmat(comb_signal,1,4);
%%
if ~exist("bbtrx","var")
bbtrx = basebandTransceiver(radio);
end
bbtrx.TransmitRadioGain = 30;
bbtrx.SampleRate = 500e6;
singleAntennaBandwidth = 800e6;
% "DB0:RF0:TX/RX0","DB0:RF1:TX/RX0","DB1:RF0:TX/RX0","DB1:RF1:TX/RX0"
bbtrx.TransmitAntennas = ["DB0:RF0:TX/RX0","DB0:RF1:TX/RX0","DB1:RF0:TX/RX0","DB1:RF1:TX/RX0"];
centerFrequency = 2e9;
bbtrx.TransmitCenterFrequency = centerFrequency + ...
[-3*singleAntennaBandwidth/2,-singleAntennaBandwidth/2, singleAntennaBandwidth/2,3*singleAntennaBandwidth/2];
transmit(bbtrx,comb_signal,"continuous"); When I run my own code, MATLAB reports an error, but when I use the code you provided, no error is reported.
You are using the basebandTransceiver, which is designed for transmitting and receiving at the same time. As per documentation, there is a physical limitation of 4 antennas in use at once. There is not currently a way for you to unallocate the receive antenna, so in your code you are attempting to allocate 4 transmit and (at least) 1 receive for a total of (at least) 5 antennas.
If you use the basebandTransmitter as per my code, your code should work.
Yes, but when I ran the code you provided, each channel could only transmit a signal bandwidth of up to 200 MHz. Is this limitation caused by the fact that I’m using a 10 Gb network card, or is it related to the FPGA image?
500 Msps sampling rate for the X410 has been available since R2025a, are you on an older release? See latest documentation online. If you are on an older release, the documentation should not list 500 MHz as a supported rate.
For any further questions, contact support, where it's easier for us to capture all the required information to support you fully.
the matlab I used is R2025b
sorry, it's R2025a
25.1.0.2973910 (R2025a) Update 1
"each channel could only transmit a signal bandwidth of up to 200 MHz"
Is this an error message you are seeing? How do you verify each channel is only 200 MHz?
Again, please address further questions to support.
I uesd spectrum analyzer to see the signal X410 transmitted
Please take this to customer support and provide details of the code you are using and the results you are seeing so we can investigate further.
Thanks,
Neil
The issue here was with the configuration of the transmit signal, chengrui is now successful transmitting a 400MHz signal.

Sign in to comment.

 Accepted Answer

The following code can be used to send four channels of data with an X410 at 500 Msps.
bbtx = basebandTransmitter("MyX410"); % you will need to set your own radio configuration name
bbtx.SampleRate=500e6;
bbtx.Antennas = ["DB0:RF0:TX/RX0","DB0:RF1:TX/RX0","DB1:RF0:TX/RX0","DB1:RF1:TX/RX0"];
transmitSignal = getMySignal(); % Four columns of data, one for each antenna
transmit(bbtx,transmitSignal,'continuous');
stopTransmission(bbtx)

2 Comments

It seems that the current FPGA images supported by the X410 are X1_200 and X1_400. Although the bandwidth is doubled, for continuous transmission and reception, the sample rate is limited by the supported lane — currently 10 Gb Ethernet for the available images. Are there any plans to extend support to all four lanes, given that the X410 supports 100 Gb Ethernet?
Best,
Kelly
Hi Kelly,
The 400MHz bandwidth FPGA image (and 491.52/500 Msps master clock rates) is also currently only supported for the baseband* objects, which are designed for one-shot or repeated transmit, or capture and post-process workflows.
We have support for all four lanes on our list, but it's not currently being actively developed.
Thanks,
Neil

Sign in to comment.

More Answers (0)

Categories

Find more on Communications Toolbox in Help Center and File Exchange

Products

Release

R2025b

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!