구성 객체 또는 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 ccsdsTMWaveformGenerator는 WaveformSource 속성에 대한 입력 유형에 따라 다음 두 가지 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.
참고 항목
dvbs2WaveformGenerator | dvbs2xWaveformGenerator | dvbrcs2WaveformGenerator | ccsdsHPEWaveformGenerator | ccsdsTMWaveformGenerator | ccsdsTCConfig