Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

1xEV-DO波形生成

この例では、Communications Toolbox™ を使用して、規格に準拠した、フォワード (ダウンリンク) およびリバース (アップリンク) 1xEV-DO 波形を生成する方法を説明します。

はじめに

Communications Toolbox を使用して、事前に設定またはカスタマイズを行い、規格に準拠したフォワードおよびリバースの Release 0 および Revision A の 1xEV-DO 波形を生成できます。

生成された波形は、以下の用途に使用できます。

  • 送信機実装のゴールデン リファレンス

  • 受信機のテストおよびアルゴリズム開発

  • RF ハードウェアおよびソフトウェアのテスト

  • 干渉テスト

波形生成の手法

  • 波形は、関数evdoForwardWaveformGeneratorおよび関数evdoReverseWaveformGeneratorを使用して生成できます。これらの関数の入力は、最上位の波形パラメーターを含む構造体と、チャネルまたはパケット固有のパラメーターを含むサブ構造体です。この例では、これらの構造体がどのように構成されるかを最初から説明します。

  • 事前に設定された構造体の構成は、関数evdoForwardReferenceChannelsおよび関数evdoReverseReferenceChannelsを使用して作成できます。このように事前に設定された構成は、一般的なテストや測定のシナリオを表したり、波形構成のカスタマイズに便利な開始点 (ウィザード) を提供することができます。

事前設定駆動型のフォワードおよびリバース 1xEV-DO 波形の生成

事前に設定された構造体構成は、波形生成関数に渡すことができます。たとえば、次のコマンドによって、Revision A と Release 0 のフォワードおよびリバース波形がそれぞれ作成されます。

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

reversePresetConfig = evdoReverseReferenceChannels('Rel0-38400',numPackets);
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','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;                  % Packet size options: 128,256,512,1024,2048,4096,5120 bits
fPacket.NumSlots = 2;                       % Number of slots options: 1,2,4,8,16
fPacket.PreambleLength = 64;                % Preamble length options: 64,128,256,512,1024 chips

fManualConfig.PacketSequence = repmat(fPacket,1,numPackets);

% 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','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)

rManualConfig.PacketSequence = repmat(rPacket,1,numPackets);

% 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,numPackets);

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

生成された 1xEV-DO 波形のスペクトルのプロット

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

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

参考文献

  1. C.S0024-A v3.0: cdma2000 High Rate Packet Data Air Interface Specification.