Этот пример показывает, как сгенерировать совместимые со стандартом формы волны прямого (нисходящего) и обратного (восходящего) 1xEV-DO с помощью Communications Toolbox™.
Communications Toolbox может использоваться, чтобы сгенерировать предустановленные или настроенные совместимые со стандартом сигналы вперед и назад, Release 0 и Revision A 1xEV-DO.
Сгенерированные формы волны могут использоваться для следующих приложений:
Золотая ссылка для реализаций передатчика
Проверка приемника и разработка алгоритмов
Тестирование оборудования и программных средств RF
Интерференционная проверка
Формы волны могут быть сгенерированы с помощью evdoForwardWaveformGenerator
и evdoReverseWaveformGenerator
функций. Вход этих функций является структура, содержащая параметры формы волны верхнего уровня, а также подструктуры, содержащие специфические для канала или пакета параметры. Этот пример иллюстрирует, как такие конструкции могут быть построены с нуля.
Предустановленные строения структуры могут быть созданы с помощью evdoForwardReferenceChannels
и evdoReverseReferenceChannels
функций. Такие предустановленные строения могут представлять общие сценарии тестирования и измерения или обеспечивать хорошую начальную точку (мастер) для настройки строения формы волны.
Предустановленные строения структуры могут затем быть переданы в функции генерации сигналов. Для примера следующие команды генерируют Revision 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
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);
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.