Этот пример показывает, как сгенерировать стандартно-совместимый прямой (нисходящий) и противоположный (восходящий канал) cdma2000® формы волны с помощью Communications Toolbox™.
Communications Toolbox может использоваться, чтобы сгенерировать предварительную установку или настроил стандартно-совместимого форварда и реверс cdma2000 формы волны. А именно, следующие каналы поддерживаются:
Передайте cdma2000:
Передайте экспериментальный канал (F-PICH)
Передайте вспомогательный экспериментальный канал (F-APICH)
Передайте пилоту разнообразия передачи канал (F-TDPICH)
Передайте вспомогательному пилоту разнообразия передачи канал (F-ATDPICH)
Передайте синхронизирующий канал (F-SYNC)
Передайте канал разбивки на страницы (F-PCH)
Передайте быстрый канал разбивки на страницы (F-QPCH)
Передайте широковещательный канал управления (F-BCCH)
Передайте канал общего контроля (F-CCCH)
Передайте специализированный канал управления (F-DCCH)
Передайте общий канал управления степенью (F-CPCCH)
Передайте Основной Канал Трафика (F-FCH), включая Подканал Управления Степенью
Передайте дополнительный канал кода (F-SCCH)
Передайте дополнительный канал (F-SCH)
Передайте пакетный канал общего контроля данных (F-PDCCH)
Передайте ортогональный шум канала (F-OCNS)
Реверс cdma2000:
Противоположный Экспериментальный Канал (R-PICH), включая Подканал Управления Степенью
Противоположный доступ к каналу (R-ACH)
Противоположный расширенный доступ к каналу (R-EACH)
Противоположный канал общего контроля (R-CCCH)
Противоположный специализированный канал управления (R-DCCH)
Инвертируйте основной канал трафика (R-FCH)
Инвертируйте дополнительный канал кода (R-SCCH)
Инвертируйте дополнительный канал (R-SCH)
Сгенерированные формы волны могут использоваться для следующих приложений:
Золотая ссылка для реализаций передатчика
Тестирование получателя и разработка алгоритмов
Тестирование аппаратного и программного обеспечения РФ
Интерференционное тестирование
Формы волны могут быть сгенерированы с помощью функций cdma2000ReverseWaveformGenerator и cdma2000ForwardWaveformGenerator. Вход этих функций является структурой, содержащей параметры формы волны верхнего уровня, а также подструктуры, содержащие специфичные для канала параметры. Этот пример проиллюстрирует, как такие структуры могут быть созданы с нуля.
Предварительно установленные настройки структуры могут быть созданы с помощью функций cdma2000ReverseReferenceChannels и cdma2000ForwardReferenceChannels. Такие предварительно установленные настройки могут представлять общие сценарии Теста и Измерения или обеспечить хорошую отправную точку (мастер) для настройки настройки формы волны.
Предварительно установленные настройки структуры могут затем быть переданы функциям генерации формы волны. Например, следующие команды генерируют все прямые и противоположные каналы, допустимые для Радио-Настройки 4:
forwardPresetConfig = cdma2000ForwardReferenceChannels('ALL-RC4'); forwardPresetWaveform = cdma2000ForwardWaveformGenerator(forwardPresetConfig); reversePresetConfig = cdma2000ReverseReferenceChannels('ALL-RC4'); reversePresetWaveform = cdma2000ReverseWaveformGenerator(reversePresetConfig);
Затем, мы иллюстрируем создание эквивалентных конфигурационных структур с нуля (для форварда cdma2000). Это также полезно для настройки предварительно установленных настроек.
fManualConfig.SpreadingRate = 'SR1'; % Spreading Rate 1 or 3 fManualConfig.Diversity = 'NTD'; % No Transmit Diversity (other options are 'OTD', 'STS') fManualConfig.QOF = 'QOF1'; % Quasi-orthogonal function 1, 2 or 3 fManualConfig.PNOffset = 0; % PN offset of Base station fManualConfig.LongCodeState = 0; % Initial long code state fManualConfig.PowerNormalization = 'Off'; % Power normalization: 'Off', 'NormalizeTo0dB' or 'NoiseFillTo0dB' fManualConfig.OversamplingRatio = 4; % Upsampling factor fManualConfig.FilterType = 'cdma2000Long'; % Filter coefficients: 'cdma2000Long', 'cdma2000Short', 'Custom' or 'Off' fManualConfig.InvertQ = 'Off'; % Negate the imaginary part of the waveform fManualConfig.EnableModulation = 'Off'; % Enable carrier modulation fManualConfig.ModulationFrequency = 0; % Modulation frequency (Hz) fManualConfig.NumChips = 1000; % Number of chips in the waveform fpich.Enable = 'On'; % Enable the F-PICH channel fpich.Power = 0; % Relative channel power (dBW) fManualConfig.FPICH = fpich; % Add the channel to the waveform configuration fapich.Enable = 'On'; % Enable the F-APICH channel fapich.Power = 0; % Relative channel power (dBW) fapich.WalshCode = 10; % Unique Walsh code number fapich.WalshLength = 64; % Walsh code length fManualConfig.FAPICH = fapich; % Add the channel to the waveform configuration ftdpich.Enable = 'On'; % Enable the F-TDPICH channel ftdpich.Power = 0; % Relative channel power (dBW) fManualConfig.FTDPICH = ftdpich; % Add the channel to the waveform configuration fatdpich.Enable = 'On'; % Enable the F-ATDPICH channel fatdpich.Power = 0; % Relative channel power (dBW) fatdpich.WalshCode = 11; % Unique Walsh code number fatdpich.WalshLength = 64; % Walsh code length fManualConfig.FATDPICH = fatdpich; % Add the channel to the waveform configuration fpch.Enable = 'On'; % Enable the F-PCH channel fpch.Power = 0; % Relative channel power (dBW) fpch.LongCodeMask = 0; % Long code mask fpch.DataRate = 4800; % Data rate (bps) fpch.EnableCoding = 'On'; % Enable channel coding fpch.DataSource = {'PN9', 1}; % Input message: {'PNX', Seed} or numerical vector fpch.WalshCode = 1; % Unique Walsh code number fManualConfig.FPCH = fpch; % Add the channel to the waveform configuration fsync.Enable = 'On'; % Enable the F-SYNC channel fsync.Power = 0; % Relative channel power (dBW) fsync.EnableCoding = 'On'; % Enable channel coding fsync.DataSource = {'PN9', 1}; % Input message: {'PNX', Seed}, numerical vector or 'SyncMessage' fManualConfig.FSYNC = fsync; % Add the channel to the waveform configuration fbcch.Enable = 'On'; % Enable the F-BCCH channel fbcch.Power = 0; % Relative channel power (dBW) fbcch.LongCodeMask = 0; % Long code mask fbcch.DataRate = 4800; % Data rate (bps) fbcch.FrameLength = 160; % Frame length (ms) fbcch.EnableCoding = 'On'; % Enable channel coding fbcch.DataSource = {'PN9', 1}; % Input message: {'PNX', Seed} or numerical vector fbcch.WalshCode = 2; % Unique Walsh code number fbcch.CodingType = 'conv'; % Coding type: 'conv' or 'turbo' fManualConfig.FBCCH = fbcch; % Add the channel to the waveform configuration fcach.Enable = 'On'; % Enable the F-CACH channel fcach.Power = 0; % Relative channel power (dBW) fcach.LongCodeMask = 0; % Long code mask fcach.EnableCoding = 'On'; % Enable channel coding fcach.DataSource = {'PN9', 1}; % Input message: {'PNX', Seed} or numerical vector fcach.WalshCode = 3; % Unique Walsh code number fcach.CodingType = 'conv'; % Coding type: 'conv' or 'turbo' fManualConfig.FCACH = fcach; % Add the channel to the waveform configuration fccch.Enable = 'On'; % Enable the F-CCCH channel fccch.Power = 0; % Relative channel power (dBW) fccch.LongCodeMask = 0; % Long code mask fccch.DataRate = 9600; % Data rate (bps) fccch.FrameLength = 20; % Frame length (ms) fccch.EnableCoding = 'On'; % Enable channel coding fccch.DataSource = {'PN9', 1}; % Input message: {'PNX', Seed} or numerical vector fccch.WalshCode = 4; % Unique Walsh code number fccch.CodingType = 'conv'; % Coding type: 'conv' or 'turbo' fManualConfig.FCCCH = fccch; % Add the channel to the waveform configuration fcpcch.Enable = 'On'; % Enable the F-CPCCH channel fcpcch.Power = 0; % Relative channel power (dBW) fcpcch.LongCodeMask = 0; % Long code mask fcpcch.EnableCoding = 'On'; % Enable channel coding fcpcch.DataSource = {'PN9', 1}; % Input message: {'PNX', Seed} or numerical vector fcpcch.WalshCode = 5; % Unique Walsh code number fManualConfig.FCPCCH = fcpcch; % Add the channel to the waveform configuration fqpch.Enable = 'On'; % Enable the F-QPCH channel fqpch.Power = 0; % Relative channel power (dBW) fqpch.LongCodeMask = 0; % Long code mask fqpch.DataRate = 2400; % Data rate (bps) fqpch.EnableCoding = 'On'; % Enable channel coding fqpch.DataSource = {'PN9', 1}; % Input message: {'PNX', Seed} or numerical vector fqpch.WalshCode = 6; % Unique Walsh code number fManualConfig.FQPCH = fqpch; % Add the channel to the waveform configuration ffch.Enable = 'On'; % Enable the F-FCH channel ffch.Power = 0; % Relative channel power (dBW) ffch.RadioConfiguration = 'RC4'; % Radio Configuration: 1-9 ffch.DataRate = 9600; % Data rate (bps) ffch.FrameLength = 20; % Frame length (ms) ffch.LongCodeMask = 0; % Long code mask ffch.EnableCoding = 'On'; % Enable channel coding ffch.DataSource = {'PN9', 1}; % Input message: {'PNX', Seed} or numerical vector ffch.WalshCode = 7; % Unique Walsh code number ffch.EnableQOF = 'Off'; % Enable QOF spreading ffch.PowerControlEnable = 'Off'; % Enable the Power Control Subchannel fManualConfig.FFCH = ffch; % Add the channel to the waveform configuration focns.Enable = 'On'; % Enable the F-OCNS channel focns.Power = -30; % Relative channel power (dBW) focns.WalshCode = 12; % Unique Walsh code number focns.WalshLength = 128; % Walsh code length fManualConfig.FOCNS = focns; % Add the channel to the waveform configuration fdcch.Enable = 'On'; % Enable the F-DCCH channel fdcch.Power = 0; % Relative channel power (dBW) fdcch.RadioConfiguration = 'RC4'; % Radio Configuration: 1-9 fdcch.LongCodeMask = 0; % Long code mask fdcch.DataRate = 9600; % Data rate (bps) fdcch.FrameLength = 5; % Frame length (ms) fdcch.EnableCoding = 'On'; % Enable channel coding fdcch.DataSource = {'PN9', 1}; % Input message: {'PNX', Seed} or numerical vector fdcch.WalshCode = 8; % Unique Walsh code number fdcch.EnableQOF = 'off'; % Enable QOF spreading fManualConfig.FDCCH = fdcch; % Add the channel to the waveform configuration fsch.Enable = 'On'; % Enable the F-SCH channel fsch.Power = 0; % Relative channel power (dBW) fsch.RadioConfiguration = 'RC4'; % Radio Configuration: 1-9 fsch.DataRate = 9600; % Data rate (bps) fsch.FrameLength = 20; % Frame length (ms) fsch.LongCodeMask = 0; % Long code mask fsch.EnableCoding = 'On'; % Enable channel coding fsch.DataSource = {'PN9', 1}; % Input message: {'PNX', Seed} or numerical vector fsch.WalshCode = 9; % Unique Walsh code number fsch.EnableQOF = 'Off'; % Enable QOF spreading fsch.CodingType = 'conv'; % Coding type: 'conv' or 'turbo' fManualConfig.FSCH = fsch; % Add the channel to the waveform configuration forwardManualWaveform = cdma2000ForwardWaveformGenerator(fManualConfig); % Demonstrate that the above two parameterization approaches are equivalent: if(isequal(forwardPresetConfig, fManualConfig)) disp([ 'Configuration structures generated with and without the ' ... 'cdma2000ForwardReferenceChannels function are the same.']); end
Configuration structures generated with and without the cdma2000ForwardReferenceChannels function are the same.
rManualConfig.RadioConfiguration = 'RC4'; % Radio Configuration: 1-6 rManualConfig.PowerNormalization = 'Off'; % Power normalization: 'Off', 'NormalizeTo0dB' or 'NoiseFillTo0dB' rManualConfig.OversamplingRatio = 4; % Upsampling factor rManualConfig.FilterType = 'cdma2000Long'; % Filter coefficients: 'cdma2000Long', 'cdma2000Short', 'Custom' or 'Off' rManualConfig.InvertQ = 'Off'; % Negate the imaginary part of the waveform rManualConfig.EnableModulation = 'Off'; % Enable carrier modulation rManualConfig.ModulationFrequency = 0; % Modulation frequency (Hz) rManualConfig.NumChips = 1000; % Number of chips in the waveform rfch.Enable = 'On'; % Enable the R-FCH channel rfch.Power = 0; % Relative channel power (dBW) rfch.LongCodeMask = 0; % Long code mask rfch.EnableCoding = 'On'; % Enable channel coding rfch.DataSource = {'PN9', 1}; % Input message: {'PNX', Seed} or numerical vector rfch.DataRate = 14400; % Data rate (bps) rfch.FrameLength = 20; % Frame length (ms) rfch.WalshCode = 1; % Unique Walsh code number rManualConfig.RFCH = rfch; % Add the channel to the waveform configuration rpich.Enable = 'On'; % Enable the R-PICH channel rpich.Power = 0; % Relative channel power (dBW) rpich.LongCodeMask = 0; % Long code mask rpich.PowerControlEnable = 'Off'; % Enable the Power Control Subchannel rManualConfig.RPICH = rpich; % Add the channel to the waveform configuration reach.Enable = 'On'; % Enable the R-EACH channel reach.Power = 0; % Relative channel power (dBW) reach.LongCodeMask = 0; % Long code mask reach.EnableCoding = 'On'; % Enable channel coding reach.DataSource = {'PN9', 1}; % Input message: {'PNX', Seed} or numerical vector reach.DataRate = 9600; % Data rate (bps) reach.FrameLength = 20; % Frame length (ms) reach.WalshCode = 2; % Unique Walsh code number rManualConfig.REACH = reach; % Add the channel to the waveform configuration rcch.Enable = 'On'; % Enable the R-CCH channel rcch.Power = 0; % Relative channel power (dBW) rcch.LongCodeMask = 0; % Long code mask rcch.EnableCoding = 'On'; % Enable channel coding rcch.DataSource = {'PN9', 1}; % Input message: {'PNX', Seed} or numerical vector rcch.DataRate = 9600; % Data rate (bps) rcch.FrameLength = 20; % Frame length (ms) rcch.WalshCode = 3; % Unique Walsh code number rManualConfig.RCCCH = rcch; % Add the channel to the waveform configuration rdcch.Enable = 'On'; % Enable the R-DCCH channel rdcch.Power = 0; % Relative channel power (dBW) rdcch.LongCodeMask = 0; % Long code mask rdcch.EnableCoding = 'On'; % Enable channel coding rdcch.DataSource = {'PN9', 1}; % Input message: {'PNX', Seed} or numerical vector rdcch.DataRate = 14400; % Data rate (bps) rdcch.FrameLength = 20; % Frame length (ms) rdcch.WalshCode = 4; % Unique Walsh code number rManualConfig.RDCCH = rdcch; % Add the channel to the waveform configuration rsch1.Enable = 'On'; % Enable the R-SCH1 channel rsch1.Power = 0; % Relative channel power (dBW) rsch1.LongCodeMask = 0; % Long code mask rsch1.EnableCoding = 'On'; % Enable channel coding rsch1.DataSource = {'PN9', 1}; % Input message: {'PNX', Seed} or numerical vector rsch1.DataRate = 14400; % Data rate (bps) rsch1.FrameLength = 20; % Frame length (ms) rsch1.WalshLength = 8; % Walsh code length rsch1.WalshCode = 5; % Unique Walsh code number rManualConfig.RSCH1 = rsch1; % Add the channel to the waveform configuration rsch2 = rsch1; % Apply the same settings with R-SCH1 rsch2.WalshCode = 6; % Except for the unique Walsh code number rManualConfig.RSCH2 = rsch2; % Add the channel to the waveform configuration reverseManualWaveform = cdma2000ReverseWaveformGenerator(rManualConfig); % Demonstrate that the above two parameterization approaches are equivalent: if(isequal(reversePresetConfig, rManualConfig)) disp([ 'Configuration structures generated with and without the ' ... 'cdma2000ForwardReferenceChannels function are the same.']); end
Configuration structures generated with and without the cdma2000ForwardReferenceChannels function are the same.
Сравните формы волны сгенерировали использование обоих подходов, описанных выше, и смотрите, что сгенерированные формы волны идентичны
if(isequal(forwardPresetWaveform, forwardManualWaveform)) disp([ 'Forward waveforms generated with and without the ' ... 'cdma2000ForwardReferenceChannels function are the same.']); end if(isequal(reversePresetWaveform, reverseManualWaveform)) disp([ 'Reverse waveforms generated with and without the ' ... 'cdma2000ReverseReferenceChannels function are the same.']); end
Forward waveforms generated with and without the cdma2000ForwardReferenceChannels function are the same. Reverse waveforms generated with and without the cdma2000ReverseReferenceChannels function are the same.
Конфигурационные структуры могут быть настроены в порядке создать форму волны что лучшие иски ваша цель. Можно также настроить предварительно установленные формы волны в порядке использовать дополнительные возможности, такие как:
% 1. Specifying the message of the Sync channel: fManualConfig2 = fManualConfig; fsync.Enable = 'On'; % Enable the F-SYNC channel fsync.Power = 0; % Relative channel power (dBW) fsync.EnableCoding = 'On'; % Enable channel coding fsync.DataSource = 'SyncMessage'; % Input message: {'PNX', Seed}, numerical vector or 'SyncMessage' sm.P_REV = 6; % Protocol Revision field sm.MIN_P_REV = 6; % Minimum Protocol Revision field sm.SID = hex2dec('14B'); % System Identifier field sm.NID = 1; % Network Identification field sm.PILOT_PN = 0; % Pilot PN Offset field sm.LC_STATE = hex2dec('20000000000'); % Long Code State field sm.SYS_TIME = hex2dec('36AE0924C'); % System Time field sm.LP_SEC = 0; % Leap Second field sm.LTM_OFF = 0; % Local Time Offset field sm.DAYLT = 0; % Daylight Savings Time Indicator field sm.PRAT = 0; % Paging Channel Data Rate field sm.CDMA_FREQ = hex2dec('2F6'); % CDMA Frequency field sm.EXT_CDMA_FREQ = hex2dec('2F6'); % Extended CDMA Frequency field fsync.SyncMessage = sm; % Sync channel message substructure, used if 'SyncMessage' is the data source fManualConfig2.FSYNC = fsync; % Add the channel to the waveform configuration % 2. Enabling the Power Control Subchannel of the Forward Fundamental Channel: ffch.Enable = 'On'; % Enable the F-FCH channel ffch.Power = 0; % Relative channel power (dBW) ffch.RadioConfiguration = 'RC4'; % Radio Configuration: 1-9 ffch.DataRate = 9600; % Data rate (bps) ffch.FrameLength = 20; % Frame length (ms) ffch.LongCodeMask = 0; % Long code mask ffch.EnableCoding = 'On'; % Enable channel coding ffch.DataSource = {'PN9', 1}; % Input message: {'PNX', Seed} or numerical vector ffch.WalshCode = 7; % Unique Walsh code number ffch.EnableQOF = 'Off'; % Enable QOF spreading ffch.PowerControlEnable = 'On'; % Enable the Power Control Subchannel ffch.PowerControlPower = 0; % Power control subchannel power (relative to F-FCH) ffch.PowerControlDataSource = {'PN9',1}; % Power control subchannel data source fManualConfig2.FFCH = ffch; % Add the channel to the waveform configuration forwardManualWaveform2 = cdma2000ForwardWaveformGenerator(fManualConfig2);
Постройте спектр сигнала области времени forwardManualWaveform
.
chiprate = 1.2288e6; % Chip rate of the baseband waveform (SR1) fSpectrumPlot = dsp.SpectrumAnalyzer('SampleRate', chiprate*fManualConfig.OversamplingRatio); fSpectrumPlot.Title = 'Spectrum of Forward cdma2000 Waveform'; fSpectrumPlot.YLimits = [-160,40]; fSpectrumPlot(forwardManualWaveform);
Постройте спектр сигнала области времени reverseManualWaveform
.
chiprate = 1.2288e6; % Chip rate of the baseband waveform (SR1) rSpectrumPlot = dsp.SpectrumAnalyzer('SampleRate', chiprate*rManualConfig.OversamplingRatio); rSpectrumPlot.Title = 'Spectrum of Reverse cdma2000 Waveform'; rSpectrumPlot.YLimits = [-160,40]; rSpectrumPlot(reverseManualWaveform);
C.S0002-F v2.0: Стандарт Физического уровня для Систем Спектра Распространения cdma2000.