MATLAB Examples

Ejemplo de transmisión de una señal en IQ al generador de señales vectoriales R&S SMBV100A

Ver el código

Se genera una señal QAM y se llama a la función sendRS, que configura, envía e inicia el generador.

Contents

Formato de la función

sendRS(fileName, Fsample, I_data, Q_data, fc, dbm)

donde:

fileName Nombre del archivo de salida
Fsample Frecuencia de muestreo
I_data Componente I de la señal
Q_data Componente Q de la señal
fc Frecuencia central de RF
dBm potencia de salida en dBm

Este script espera encontrar el generador conectado por USB al ordenador. El archivo .wv se guardará siempre en el path del generador /var/user/sendScript/fileName.wv

Algunos parámetros de entrada

fileName   = 'qam'; % Nombre del archivo que se guardará en el generador,
                    % sin extensión
Fsample    = 10e6;  % Frecuencia de muestreo en Hz
%I_data             % Dato a determinar
%Q_data             % Dato a determinar
fc         ='1 GHz';% Indicar con MHz o GHz, y punto(.) como separador
                    % decimal, así como un espacio entre medias. Ej.:
                    % 150.5 MHz
dbm        ='-30.0';% Potencia en dBm

Señal de ejemplo

A continuación se crea una señal digital 16QAM con dos vectores en cuadratura

Ttotal        = 1000e-6;                      % total play time 100 us
Tsample       = 1/Fsample;                    % resulting sample time
Points        = round( Ttotal / Tsample );    % resulting number of waveform points
k             = 0:1:Points-1;                 % point count

QAM_type = 16;

IN_data =  randi([0 QAM_type-1], Points, 1);

% this requires the communication toolbox
QAM_data = qammod(IN_data, QAM_type);     % create QAM 16

% create raised cosine filter
% this requires the signal processing toolbox
F_response = firrcos(32, 0.4, 0, 1.0, 'normal');

% low pass filter the signal
QAM_filtered = filter( F_response, 1, QAM_data );

I_data = real(QAM_filtered);
Q_data = imag(QAM_filtered);

Envío de la señal con sus parámetros al instrumento

sendRS(fileName, Fsample, I_data, Q_data, fc, dbm);