주요 콘텐츠

구성 객체 또는 System object 만들기

Satellite Communications Toolbox 구성과 System object™는 객체 속성을 초기화하고, 저장하고, 검증합니다. 이러한 속성은 표준별 파형을 정의하는 파라미터에 해당합니다.

여기에서 설명하는 다양한 객체를 만든 후 이를 사용하여 파형을 생성할 수 있습니다. 툴박스에 있는 함수는 관련 객체 속성을 사용하여 파형의 송신과 수신에 필요한 파라미터 설정을 초기화합니다.

DVB-S2 객체 만들기

이 예제에서는 DVB-S2(Digital Video Broadcasting Satellite Second Generation) System object를 만드는 방법을 보여줍니다. 또한 점 표기법을 사용하거나, 객체를 만들 때 Name,Value 쌍을 사용해 디폴트 설정을 재정의하여 디폴트 속성 설정을 변경하는 방법도 보여줍니다.

DVB-S2 System object를 만들려면 LDPC 패리티 행렬이 포함된 MAT 파일을 사용해야 합니다. 경로에 MAT 파일이 없는 경우 MATLAB 명령 프롬프트에 다음 코드를 입력하여 MAT 파일을 다운로드하고 압축을 풉니다.

if ~exist('dvbs2xLDPCParityMatrices.mat','file')
    if ~exist('s2xLDPCParityMatrices.zip','file')
        url = 'https://ssd.mathworks.com/supportfiles/spc/satcom/DVB/s2xLDPCParityMatrices.zip';
        websave('s2xLDPCParityMatrices.zip',url);
        unzip('s2xLDPCParityMatrices.zip');
    end
addpath('s2xLDPCParityMatrices');
end

객체를 만든 다음 속성 수정하기

디폴트 설정을 사용하여 DVB-S2 System object를 만듭니다.

s2WaveGen = dvbs2WaveformGenerator
s2WaveGen = 
  dvbs2WaveformGenerator with properties:

           StreamFormat: "TS"
        NumInputStreams: 1
               FECFrame: "normal"
                 MODCOD: 1
                    DFL: 15928
              HasPilots: 0
          RolloffFactor: 0.3500
    FilterSpanInSymbols: 10
       SamplesPerSymbol: 4

  Show all properties

디폴트 값을 수정하여 다중 입력 일반 스트림과 각 스트림의 데이터 필드 길이(DFL)를 지정합니다.

s2WaveGen.StreamFormat = "GS";
s2WaveGen.NumInputStreams = 3;
s2WaveGen.DFL = [44500 51387 42960]
s2WaveGen = 
  dvbs2WaveformGenerator with properties:

           StreamFormat: "GS"
        NumInputStreams: 3
                    UPL: 0
               FECFrame: "normal"
                 MODCOD: 1
                    DFL: [44500 51387 42960]
              HasPilots: 0
          RolloffFactor: 0.3500
    FilterSpanInSymbols: 10
       SamplesPerSymbol: 4

객체 생성 중 디폴트 속성값 재정의하기

Name,Value 쌍을 사용하여 짧은 FEC 프레임 형식의 단일 입력 전송 스트림과 지정된 변조 방식 및 FEC 비율(MODCOD)을 갖는 DVB-S2 System object를 만듭니다.

s2WaveGen = dvbs2WaveformGenerator("FECFrame","short","MODCOD",10)
s2WaveGen = 
  dvbs2WaveformGenerator with properties:

           StreamFormat: "TS"
        NumInputStreams: 1
               FECFrame: "short"
                 MODCOD: 10
                    DFL: 15928
              HasPilots: 0
          RolloffFactor: 0.3500
    FilterSpanInSymbols: 10
       SamplesPerSymbol: 4

  Show all properties

DVB-S2X 객체 만들기

이 예제에서는 DVB-S2X(Digital Video Broadcasting Satellite Second Generation extended) System object를 만드는 방법을 보여줍니다. 또한 점 표기법을 사용하거나, 객체를 만들 때 Name,Value 쌍을 사용해 디폴트 설정을 재정의하여 디폴트 속성 설정을 변경하는 방법도 보여줍니다.

DVB-S2X System object를 만들려면 LDPC 패리티 행렬이 포함된 MAT 파일을 사용해야 합니다. 경로에 MAT 파일이 없는 경우 MATLAB 명령 프롬프트에 다음 코드를 입력하여 MAT 파일을 다운로드하고 압축을 풉니다.

if ~exist('dvbs2xLDPCParityMatrices.mat','file')
    if ~exist('s2xLDPCParityMatrices.zip','file')
        url = 'https://ssd.mathworks.com/supportfiles/spc/satcom/DVB/s2xLDPCParityMatrices.zip';
        websave('s2xLDPCParityMatrices.zip',url);
        unzip('s2xLDPCParityMatrices.zip');
    end
addpath('s2xLDPCParityMatrices');
end

객체를 만든 다음 속성 수정하기

디폴트 설정을 사용하여 DVB-S2X System object를 만듭니다.

s2xWaveGen = dvbs2xWaveformGenerator
s2xWaveGen = 
  dvbs2xWaveformGenerator with properties:

           StreamFormat: "TS"
         HasTimeSlicing: false
        NumInputStreams: 1
         PLSDecimalCode: 132
                    DFL: 18448
      PLScramblingIndex: 0
          RolloffFactor: 0.3500
    FilterSpanInSymbols: 10
       SamplesPerSymbol: 4

  Show all properties

디폴트 값을 수정하여 시간 슬라이싱이 활성화된 다중 입력 전송 스트림을 지정합니다.

s2xWaveGen.NumInputStreams = 4;
s2xWaveGen.HasTimeSlicing = true
s2xWaveGen = 
  dvbs2xWaveformGenerator with properties:

           StreamFormat: "TS"
         HasTimeSlicing: true
        NumInputStreams: 4
         PLSDecimalCode: 132
                    DFL: 18448
      PLScramblingIndex: 0
          RolloffFactor: 0.3500
    FilterSpanInSymbols: 10
       SamplesPerSymbol: 4
                  ISSYI: false

  Show all properties

객체 생성 중 디폴트 속성값 재정의하기

Name,Value 쌍을 사용해 DVB-S2X System object를 만들면서, 매우 낮은 신호 대 잡음비(VL-SNR) 프레임 세트 2를 지정하고 변조 방식과 코드율을 BPSK 1/5로 지정합니다.

s2xWaveGen = dvbs2xWaveformGenerator("PLSDecimalCode",131,"CanonicalMODCODName","BPSK 1/5")
s2xWaveGen = 
  dvbs2xWaveformGenerator with properties:

           StreamFormat: "TS"
         HasTimeSlicing: false
        NumInputStreams: 1
         PLSDecimalCode: 131
    CanonicalMODCODName: "BPSK 1/5"
                    DFL: 18448
      PLScramblingIndex: 0
          RolloffFactor: 0.3500
    FilterSpanInSymbols: 10
       SamplesPerSymbol: 4

  Show all properties

DVB-RCS2 객체 만들기

이 예제에서는 DVB-RCS2(Digital Video Broadcasting Second Generation Return Channel over Satellite) System object를 만드는 방법을 보여줍니다. 또한 점 표기법을 사용하거나, 객체를 만들 때 Name,Value 쌍을 사용해 디폴트 설정을 재정의하여 디폴트 속성 설정을 변경하는 방법도 보여줍니다.

객체를 만든 다음 속성 수정하기

디폴트 설정을 사용하여 DVB-RCS2 System object를 만듭니다.

wg = dvbrcs2WaveformGenerator
wg = 
  dvbrcs2WaveformGenerator with properties:

      TransmissionFormat: "TC-LM"
             ContentType: "traffic"
        IsCustomWaveform: false
              WaveformID: 1
     PreBurstGuardLength: 0
    PostBurstGuardLength: 0
     FilterSpanInSymbols: 10
        SamplesPerSymbol: 4

   Read-only:
          FramePDULength: 272

디폴트 값을 수정하여 송신 형식과 버스트 콘텐츠 유형을 지정합니다.

wg.TransmissionFormat = "SS-TC-LM";
wg.ContentType = "logon"
wg = 
  dvbrcs2WaveformGenerator with properties:

      TransmissionFormat: "SS-TC-LM"
             ContentType: "logon"
        IsCustomWaveform: false
              WaveformID: 1
     PreBurstGuardLength: 0
    PostBurstGuardLength: 0
     FilterSpanInSymbols: 10
        SamplesPerSymbol: 4

   Read-only:
          FramePDULength: 784

객체 생성 중 디폴트 속성값 재정의하기

Name,Value 쌍을 사용해 DVB-RCS2 System object를 만들면서, 이 객체에 대해 버스트 앞 가드 길이가 4인 사용자 지정 파형을 지정합니다.

wg = dvbrcs2WaveformGenerator("IsCustomWaveform",true,"PreBurstGuardLength",4)
wg = 
  dvbrcs2WaveformGenerator with properties:

       TransmissionFormat: "TC-LM"
              ContentType: "traffic"
         IsCustomWaveform: true
      PreBurstGuardLength: 4
     PostBurstGuardLength: 0
      FilterSpanInSymbols: 10
         SamplesPerSymbol: 4
     PayloadLengthInBytes: 10

   Coding and Modulation:
            MappingScheme: "pi/2-BPSK"
                 CodeRate: "1/3"
    PermutationParameters: [9 0 0 0 0]

   Unique Word:
           PreambleLength: 8
          PostambleLength: 8
              PilotPeriod: 0
         PilotBlockLength: 1
               UniqueWord: "FFFF"

   Read-only:
           FramePDULength: 48

CCSDS HPE 객체 만들기

CCSDS(Consultative Committee for Space Data Systems) optical HPE(high photon efficiency) System object를 만듭니다. 점 표기법을 사용하거나, 객체를 만들 때 Name=Value 쌍을 사용해 디폴트 설정을 재정의하여 디폴트 속성 설정을 변경합니다.

이 객체는 CCSDS HPE TM(Telemetry) 유형과 비콘 및 데이터(beacon-and-data) 유형의 두 가지 송신 유형을 지원합니다.

기본적으로 송신 유형은 텔레메트리로 설정되어 있습니다.

객체를 만든 다음 속성 수정하기

디폴트 설정을 사용하여 CCSDS HPE TM System object를 만듭니다.

hpeWaveform = ccsdsHPEWaveformGenerator
hpeWaveform = 
  ccsdsHPEWaveformGenerator with properties:

             TransmissionType: "telemetry"
      NumBytesInTransferFrame: 223
    NumBitsInInformationBlock: 7526
                     PPMOrder: 16
                 RepeatFactor: 1
          IsEndOfTransmission: 1

  Show all properties

디폴트 값을 수정하여 PPM 차수를 4로 지정하고 정보 블록의 비트 수를 5006으로 지정합니다.

hpeWaveform.PPMOrder = 4;
hpeWaveform.NumBitsInInformationBlock = 5006
hpeWaveform = 
  ccsdsHPEWaveformGenerator with properties:

             TransmissionType: "telemetry"
      NumBytesInTransferFrame: 223
    NumBitsInInformationBlock: 5006
                     PPMOrder: 4
                 RepeatFactor: 1
          IsEndOfTransmission: 1

  Show all properties

객체 생성 중 디폴트 속성값 재정의하기

Name=Value 쌍을 사용해 CCSDS optical HPE System object를 만들면서, 송신 유형을 비콘 및 데이터로 지정하고 비콘 길이를 4000으로 지정합니다.

hpeWaveform = ccsdsHPEWaveformGenerator(TransmissionType="beacon-and-data",BeaconLength=4000)
hpeWaveform = 
  ccsdsHPEWaveformGenerator with properties:

             TransmissionType: "beacon-and-data"
                 BeaconLength: 4000
      NumBytesInTransferFrame: 223
    NumBitsInInformationBlock: 7526
        HasChannelInterleaver: 1
               PNSpreadFactor: 1
          IsEndOfTransmission: 1

  Show all properties

CCSDS TM 객체 만들기

이 예제에서는 CCSDS(Consultative Committee for Space Data Systems) TM(Telemetry) System object를 만드는 방법을 보여줍니다. 또한 점 표기법을 사용하거나, 객체를 만들 때 Name,Value 쌍을 사용해 디폴트 설정을 재정의하여 디폴트 속성 설정을 변경하는 방법도 보여줍니다.

System object ccsdsTMWaveformGeneratorWaveformSource 속성에 대한 입력 유형에 따라 다음 두 가지 CCSDS TM 표준을 지원합니다.

  • CCSDS TM synchronization and channel coding standard (CCSDS 131.0-B-3)

  • CCSDS flexible advanced coding and modulation scheme for high rate telemetry standard (CCSDS 131.2-B-1)

이 객체의 디폴트 표준은 CCSDS TM 동기화 및 채널 코딩입니다.

객체를 만든 다음 속성 수정하기

디폴트 설정을 사용하여 CCSDS TM System object를 만듭니다.

tmWaveGen = ccsdsTMWaveformGenerator
tmWaveGen = 
  ccsdsTMWaveformGenerator with properties:

          WaveformSource: "synchronization and channel coding"
           HasRandomizer: true
                  HasASM: true
               PCMFormat: "NRZ-L"

   Channel coding
           ChannelCoding: "RS"
         RSMessageLength: 223
     RSInterleavingDepth: 1
    IsRSMessageShortened: false

   Digital modulation and filter
              Modulation: "QPSK"
      PulseShapingFilter: "root raised cosine"
           RolloffFactor: 0.3500
     FilterSpanInSymbols: 10
        SamplesPerSymbol: 10

  Show all properties

디폴트 값을 수정하여 터보 코드와 QPSK 변조에 대해 지정합니다.

tmWaveGen.ChannelCoding = "turbo";
tmWaveGen.Modulation = "QPSK"
tmWaveGen = 
  ccsdsTMWaveformGenerator with properties:

               WaveformSource: "synchronization and channel coding"
                HasRandomizer: true
                       HasASM: true
                    PCMFormat: "NRZ-L"

   Channel coding
                ChannelCoding: "turbo"
    NumBitsInInformationBlock: 7136
                     CodeRate: "1/2"

   Digital modulation and filter
                   Modulation: "QPSK"
           PulseShapingFilter: "root raised cosine"
                RolloffFactor: 0.3500
          FilterSpanInSymbols: 10
             SamplesPerSymbol: 10

  Show all properties

객체 생성 중 디폴트 속성값 재정의하기

Name,Value 쌍을 사용해 CCSDS TM System object를 만들면서, "flexible advanced coding and modulation scheme for high rate TM applications" 표준에 맞게 객체를 지정하고 ACM 형식을 9로 지정합니다.

tmWaveGen = ccsdsTMWaveformGenerator("WaveformSource","flexible advanced coding and modulation","ACMFormat",9)
tmWaveGen = 
  ccsdsTMWaveformGenerator with properties:

             WaveformSource: "flexible advanced coding and modulation"
                  ACMFormat: 9
    NumBytesInTransferFrame: 223

   Channel coding
    No properties.

   Digital modulation and filter
         PulseShapingFilter: "root raised cosine"
              RolloffFactor: 0.3500
        FilterSpanInSymbols: 10
           SamplesPerSymbol: 10
                  HasPilots: false
       ScramblingCodeNumber: 0

  Show all properties

CCSDS TC 구성 객체 만들기

이 예제에서는 CCSDS(Consultative Committee for Space Data Systems) TC(Telecommand) 구성 객체를 만드는 방법을 보여줍니다. 또한 점 표기법을 사용하거나, 객체를 만들 때 Name,Value 쌍을 사용해 디폴트 설정을 재정의하여 디폴트 속성 설정을 변경하는 방법도 보여줍니다.

객체를 만든 다음 속성 수정하기

디폴트 설정을 사용하여 CCSDS TC 구성 객체를 만듭니다.

cfg = ccsdsTCConfig
cfg = 
  ccsdsTCConfig with properties:

             DataFormat: "CLTU"
          ChannelCoding: "BCH"
          HasRandomizer: 1
             Modulation: "PCM/PSK/PM"
              PCMFormat: "NRZ-L"
        ModulationIndex: 0.4000
    SubcarrierFrequency: 16000
             SymbolRate: 4000
       SamplesPerSymbol: 10

   Read-only properties:
     SubcarrierWaveform: "sine"

BPSK 변조 방식에 맞춰 지정하기 위해 디폴트 값을 수정합니다.

cfg.Modulation = "BPSK"
cfg = 
  ccsdsTCConfig with properties:

       DataFormat: "CLTU"
    ChannelCoding: "BCH"
    HasRandomizer: 1
       Modulation: "BPSK"

객체 생성 중 디폴트 속성값 재정의하기

Name,Value 쌍을 사용해 CCSDS TC 구성 객체를 만들면서, 코드워드 길이가 512인 LDPC 코드를 지정합니다.

cfg = ccsdsTCConfig("ChannelCoding","LDPC","LDPCCodewordLength",512)
cfg = 
  ccsdsTCConfig with properties:

             DataFormat: "CLTU"
          ChannelCoding: "LDPC"
     LDPCCodewordLength: 512
             Modulation: "PCM/PSK/PM"
              PCMFormat: "NRZ-L"
        ModulationIndex: 0.4000
    SubcarrierFrequency: 16000
             SymbolRate: 4000
       SamplesPerSymbol: 10

   Read-only properties:
     SubcarrierWaveform: "sine"

참고 문헌

[1] TM Synchronization and Channel Coding. Recommendation for Space Data System Standards. CCSDS 131.0-B-3. Blue Book. Issue 3. Washington, D.C.: CCSDS, September 2017.

[2] Flexible Advanced Coding and Modulation Scheme for High Rate Telemetry Applications. Recommendation for Space Data System Standards. CCSDS 131.2-B-1. Blue Book. Issue 1. Washington, D.C.: CCSDS, March 2012.

참고 항목

| | | | |

도움말 항목