F1TMV
MatérielSDRAnalog DevicesPluto+ (PlutoSDR Plus)Logiciels

MATLAB/Simulink

Utilisation du Pluto+ avec MATLAB et Simulink

MATLAB/Simulink

Analog Devices fournit un support officiel pour MATLAB et Simulink.

Installation du Support Package

  1. Ouvrir MATLAB
  2. Add-OnsGet Add-Ons
  3. Rechercher : "Communications Toolbox Support Package for Analog Devices ADALM-Pluto Radio"
  4. Installer le package

Prérequis

  • MATLAB R2017a ou supérieur
  • Communications Toolbox
  • DSP System Toolbox (recommandé)
  • Signal Processing Toolbox (recommandé)

Réception de base

% Création de l'objet récepteur
rx = sdrrx('Pluto', 'RadioID', 'ip:192.168.2.1');

% Configuration
rx.CenterFrequency = 98e6;        % 98 MHz (FM)
rx.BasebandSampleRate = 2e6;      % 2 MSPS
rx.GainSource = 'AGC Slow Attack';
rx.OutputDataType = 'double';

% Capture de données
[data, metadata] = rx();

% Affichage du spectre
spectrum = dsp.SpectrumAnalyzer('SampleRate', rx.BasebandSampleRate);
spectrum(data);

Émission de base

% Création de l'objet émetteur
tx = sdrtx('Pluto', 'RadioID', 'ip:192.168.2.1');

% Configuration
tx.CenterFrequency = 2.4e9;       % 2.4 GHz
tx.BasebandSampleRate = 1e6;      % 1 MSPS
tx.Gain = -10;                    % Atténuation 10 dB

% Génération d'une tonalité
t = (0:9999)' / tx.BasebandSampleRate;
tone = exp(1j * 2 * pi * 100e3 * t);  % Tonalité 100 kHz

% Émission
tx(tone);

% Libération
release(tx);

Réception FM complète

% Récepteur FM broadcast
rx = sdrrx('Pluto');
rx.RadioID = 'ip:192.168.2.1';
rx.CenterFrequency = 98e6;
rx.BasebandSampleRate = 240e3;
rx.GainSource = 'AGC Slow Attack';

% Démodulateur FM
fmDemod = comm.FMBroadcastDemodulator(...
    'SampleRate', 240e3, ...
    'FrequencyDeviation', 75e3, ...
    'AudioSampleRate', 48e3);

% Sortie audio
audioPlayer = audioDeviceWriter('SampleRate', 48e3);

% Boucle de réception
for k = 1:1000
    data = rx();
    audioOut = fmDemod(data);
    audioPlayer(audioOut);
end

release(rx);
release(fmDemod);
release(audioPlayer);

Blocs disponibles

BlocDescription
ADALM-PLUTO ReceiverSource de réception
ADALM-PLUTO TransmitterSink d'émission
  1. Ouvrir Simulink
  2. Library BrowserCommunications ToolboxSDR
  3. Glisser ADALM-PLUTO Receiver
  4. Configurer le bloc
  5. Connecter à un Spectrum Analyzer

Communication QPSK

% Paramètres
M = 4;                  % QPSK
sps = 8;                % Samples per symbol
rolloff = 0.25;
span = 10;

% Filtre de mise en forme
txFilter = comm.RaisedCosineTransmitFilter(...
    'RolloffFactor', rolloff, ...
    'FilterSpanInSymbols', span, ...
    'OutputSamplesPerSymbol', sps);

% Modulateur QPSK
modulator = comm.QPSKModulator('BitInput', true);

% Données à transmettre
data = randi([0 1], 1000, 1);
modData = modulator(data);
txSignal = txFilter(modData);

% Émission
tx = sdrtx('Pluto', 'RadioID', 'ip:192.168.2.1');
tx.CenterFrequency = 915e6;
tx.BasebandSampleRate = 1e6;
tx(txSignal);

MIMO avec Pluto+

% Note: Le support MIMO dans MATLAB peut nécessiter
% une configuration avancée avec libiio directement

% Accès direct via libiio
uri = 'ip:192.168.2.1';
ctx = iio_create_context(uri);

% Configuration des 2 canaux RX
% (Nécessite les bindings MATLAB pour libiio)

Ressources