Этот пример показывает, как сгенерировать стандартно-совместимый прямой (нисходящий) и противоположный (восходящий канал) 1xEV формы волны-DO с помощью Communications Toolbox™.
Communications Toolbox может использоваться, чтобы сгенерировать предварительную установку или настроил стандартно-совместимого форварда и реверс, Релиз 0 и Версию 1xEV-DO формы волны.
Сгенерированные формы волны могут использоваться для следующих приложений:
Золотая ссылка для реализаций передатчика
Тестирование получателя и разработка алгоритмов
Тестирование аппаратного и программного обеспечения РФ
Интерференционное тестирование
Формы волны могут быть сгенерированы с помощью функций evdoReverseWaveformGenerator и evdoForwardWaveformGenerator. Вход этих функций является структурой, содержащей параметры формы волны верхнего уровня, а также подструктуры, содержащие канал - или специфичные для пакета параметры. Этот пример проиллюстрирует, как такие структуры могут быть созданы с нуля.
Предварительно установленные настройки структуры могут быть созданы с помощью функций evdoReverseReferenceChannels и evdoForwardReferenceChannels. Такие предварительно установленные настройки могут представлять общие сценарии Теста и Измерения или обеспечить хорошую отправную точку (мастер) для настройки настройки формы волны.
Предварительно установленные настройки структуры могут затем быть переданы функциям генерации формы волны. Например, следующие команды генерируют Версию A и Релиз 0 вперед и противоположные формы волны, соответственно.
forwardPresetConfig = evdoForwardReferenceChannels('RevA-5120-2-64', 10); forwardPresetWaveform = evdoForwardWaveformGenerator(forwardPresetConfig); reversePresetConfig = evdoReverseReferenceChannels('Rel0-38400', 10); reversePresetWaveform = evdoReverseWaveformGenerator(reversePresetConfig);
Затем, мы иллюстрируем создание эквивалентных конфигурационных структур с нуля. Это также полезно для настройки предварительно установленных настроек.
% 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.
% 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 if(isequal(reversePresetWaveform, reverseManualWaveform)) disp([ 'Reverse waveforms generated with and without the ' ... 'evdoReverseReferenceChannels function are the same.']); end
Forward waveforms generated with and without the evdoForwardReferenceChannels function are the same. 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);
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); spectrumPlot2 = dsp.SpectrumAnalyzer('SampleRate', chiprate*rManualConfig.OversamplingRatio); spectrumPlot2.Title = 'Spectrum of Reverse 1xEV-DO Waveform'; spectrumPlot2.YLimits = [-180,40]; spectrumPlot2(reverseManualWaveform2);
C.S0024-A v3.0: Пакетная Воздушная Спецификация Интерфейса Данных о Высоком показателе cdma2000.