1xEV-DO генерации сигналов

Этот пример показывает, как сгенерировать совместимые со стандартом формы волны прямого (нисходящего) и обратного (восходящего) 1xEV-DO с помощью Communications Toolbox™.

Введение

Communications Toolbox может использоваться, чтобы сгенерировать предустановленные или настроенные совместимые со стандартом сигналы вперед и назад, Release 0 и Revision A 1xEV-DO.

Сгенерированные формы волны могут использоваться для следующих приложений:

  • Золотая ссылка для реализаций передатчика

  • Проверка приемника и разработка алгоритмов

  • Тестирование оборудования и программных средств RF

  • Интерференционная проверка

Методов генерации сигналов

  • Формы волны могут быть сгенерированы с помощью evdoForwardWaveformGenerator и evdoReverseWaveformGenerator функций. Вход этих функций является структура, содержащая параметры формы волны верхнего уровня, а также подструктуры, содержащие специфические для канала или пакета параметры. Этот пример иллюстрирует, как такие конструкции могут быть построены с нуля.

  • Предустановленные строения структуры могут быть созданы с помощью evdoForwardReferenceChannels и evdoReverseReferenceChannels функций. Такие предустановленные строения могут представлять общие сценарии тестирования и измерения или обеспечивать хорошую начальную точку (мастер) для настройки строения формы волны.

Генерация предварительно управляемых сигналов прямого и обратного 1xEV-DO

Предустановленные строения структуры могут затем быть переданы в функции генерации сигналов. Для примера следующие команды генерируют Revision A и Релиз 0 прямой и обратной формы волны, соответственно.

forwardPresetConfig = evdoForwardReferenceChannels('RevA-5120-2-64', 10);
forwardPresetWaveform = evdoForwardWaveformGenerator(forwardPresetConfig);

reversePresetConfig = evdoReverseReferenceChannels('Rel0-38400', 10);
reversePresetWaveform = evdoReverseWaveformGenerator(reversePresetConfig);

Генерация сигнала прямого 1xEV-DO с использованием полного списка параметров

Далее мы иллюстрируем создание эквивалентных строений структур с нуля. Это также полезно для настройки предустановленных строений.

% Create top-level waveform parameters:
fManualConfig.Release = 'RevisionA';            % 'Release0' or 'RevisionA'
fManualConfig.PNOffset = 0;                     % PN Offset of the Base station
fManualConfig.IdleSlotsWithControl = 'Off';            
fManualConfig.EnableControl = 'On';             
fManualConfig.OversamplingRatio = 4;            % Upsampling factor          
fManualConfig.FilterType = 'cdma2000Long';      % Filter coefficients: 'cdma2000Long', 'cdma2000Short', 'Custom' or 'Off'
fManualConfig.InvertQ = 'Off';                  % Negate the imaginary output
fManualConfig.EnableModulation = 'Off';         % Enable modulation
fManualConfig.ModulationFrequency = 0;          % Modulation frequency (Hz)
fManualConfig.NumChips = 41600;                 % Number of chips in the waveform

% Create a input message source for the packets:
pds.MACIndex = 0;                               % MAC index associated with data
pds.DataSource = {'PN9', 1};                    % Input message: {'PNX', Seed} or numerical vector
pds.EnableCoding = 'On';                        % Enable channel coding
fManualConfig.PacketDataSources = pds;          % Add the data source specification to the waveform configuration

% Create a single packet:
fPacket.MACIndex = 0;                           % MAC index associated with this packet
fPacket.PacketSize = 5120;                      % The packet size: 128, 256, 512, 1024, 2048 4096 or 5120 bits
fPacket.NumSlots = 2;                           % The number of slots: 1, 2, 4, 8 or 16
fPacket.PreambleLength = 64;                    % The preamble length: 64, 128, 256, 512 or 1024 chips
% Create a sequence of 10 packets:
fManualConfig.PacketSequence = repmat(fPacket, 1, 10);

% Generate waveform:
forwardManualWaveform = evdoForwardWaveformGenerator(fManualConfig);

% Demonstrate that the above two parameterization approaches are equivalent:
if(isequal(forwardPresetConfig, fManualConfig))
    disp([  'Configuration structures generated with and without the ' ...
            'evdoForwardReferenceChannels function are the same.']);
end
Configuration structures generated with and without the evdoForwardReferenceChannels function are the same.

Генерация обратной 1xEV-DO волны с использованием полного списка параметров

% Create top-level waveform parameters:
rManualConfig.Release = 'Release0';             % 'Release0' or 'RevisionA'
rManualConfig.LongCodeMaskI = 0;                % Initial long code mask for I channel
rManualConfig.LongCodeMaskQ = 0;                % Initial long code mask for Q channel
rManualConfig.OversamplingRatio = 4;            % Upsampling factor          
rManualConfig.FilterType = 'cdma2000Long';      % Filter coefficients: 'cdma2000Long', 'cdma2000Short', 'Custom' or 'Off'
rManualConfig.InvertQ = 'Off';                  % Negate the imaginary output
rManualConfig.EnableModulation = 'Off';         % Enable modulation
rManualConfig.ModulationFrequency = 0;          % Modulation frequency (Hz)
rManualConfig.NumChips = 327680;                % Number of chips in the waveform

% Create a single packet:
rPacket.Power = 0;                              % Relative channel power (dBW)
rPacket.DataSource = {'PN9', 1};                % Input message: {'PNX', Seed} or numerical vector
rPacket.EnableCoding = 'On';                    % Enable channel coding
rPacket.DataRate = 38400;                       % Data rate (bps)
% Create a sequence of 10 packets:
rManualConfig.PacketSequence = repmat(rPacket, 1, 10);

% Add a Pilot Channel:
pich.Enable = 'On';                             % Enable the pilot channel
pich.Power = 0;                                 % Relative channel power (dBW)
pich.DataSource = {'PN9', 1};                   % Input message: {'PNX', Seed} or numerical vector
pich.EnableCoding = 'On';                       % Enable channel coding
rManualConfig.PilotChannel = pich;              % Add the channel to the waveform configuration

% Add an ACK Channel, but do not enable it:
ach.Enable = 'Off';                             % Do not enable the ack channel
ach.Power = 0;                                  % Relative channel power (dBW)
ach.DataSource = {'PN9', 1};                    % Input message: {'PNX', Seed} or numerical vector
rManualConfig.ACKChannel = ach;                 % Add the disabled channel specification to the waveform configuration

% Generate waveform:
reverseManualWaveform   = evdoReverseWaveformGenerator(rManualConfig);

% Demonstrate that the above two parameterization approaches are equivalent:
if(isequal(reversePresetConfig, rManualConfig))
    disp([  'Configuration structures generated with and without the ' ...
            'evdoForwardReferenceChannels function are the same.']);
end
Configuration structures generated with and without the evdoForwardReferenceChannels function are the same.

Сравнение формы волны

Сравните формы волны, сгенерированные с помощью обоих подходов, описанных выше, и увидите, что сгенерированные формы волны идентичны

if(isequal(forwardPresetWaveform, forwardManualWaveform))
    disp([  'Forward waveforms generated with and without the ' ...
            'evdoForwardReferenceChannels function are the same.']);
end
Forward waveforms generated with and without the evdoForwardReferenceChannels function are the same.
if(isequal(reversePresetWaveform, reverseManualWaveform))
    disp([  'Reverse waveforms generated with and without the ' ...
            'evdoReverseReferenceChannels function are the same.']);
end
Reverse waveforms generated with and without the evdoReverseReferenceChannels function are the same.

Настройка строений

Структуры строения могут быть настроены в порядок, чтобы создать форму волны, которая лучше подходит для вашей цели. Для примера:

rManualConfig2 = rManualConfig;
rPacket.Power = -10;                            % Relative channel power (dBW)
rPacket.DataSource = {'PN23', 1};               % Input message: {'PNX', Seed} or numerical vector
rPacket.EnableCoding = 'Off';                   % Enable channel coding
rPacket.DataRate = 38400;                       % Data rate (bps)
rManualConfig2.PacketSequence = repmat(rPacket, 1, 10);

% Regenerate the waveform accounting for the customizations:
reverseManualWaveform2   = evdoReverseWaveformGenerator(rManualConfig2);

График спектра сгенерированных 1xEV-DO сигналов

chiprate = 1.2288e6;   % Chip rate of the baseband waveform (SR1)
spectrumPlot = dsp.SpectrumAnalyzer('SampleRate', chiprate*fManualConfig.OversamplingRatio);
spectrumPlot.Title = 'Spectrum of Forward 1xEV-DO Waveform';
spectrumPlot.YLimits = [-180,40];
spectrumPlot(forwardManualWaveform);

Figure Spectrum Analyzer contains an axes and other objects of type uiflowcontainer, uimenu, uitoolbar. The axes with title Spectrum of Forward 1xEV-DO Waveform contains an object of type line. This object represents Channel 1.

spectrumPlot2 = dsp.SpectrumAnalyzer('SampleRate', chiprate*rManualConfig.OversamplingRatio);
spectrumPlot2.Title = 'Spectrum of Reverse 1xEV-DO Waveform';
spectrumPlot2.YLimits = [-180,40];
spectrumPlot2(reverseManualWaveform2);

Figure Spectrum Analyzer contains an axes and other objects of type uiflowcontainer, uimenu, uitoolbar. The axes with title Spectrum of Reverse 1xEV-DO Waveform contains an object of type line. This object represents Channel 1.

Избранная библиография

  1. C.S0024-A v3.0: спецификация радиоинтерфейса с высокой скоростью передачи пакетных данных cdma2000.

Для просмотра документации необходимо авторизоваться на сайте