exponenta event banner

1xEV-DO Генерация формы сигнала

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

Введение

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

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

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

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

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

  • Испытание на помехи

Методы генерации формы сигнала

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

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

Поколение заданных - ведомый вперед и перемена 1xEV - ДЕЛАЕТ формы волны

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

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

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

Поколение форварда 1xEV - ДЕЛАЕТ форму волны Используя полный список параметров

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

% 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 - ДЕЛАЕТ форму волны Используя полный список параметров

% 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.