주요 콘텐츠

Dot Product

두 벡터의 내적 생성

  • Dot Product block

라이브러리:
Simulink / Math Operations
HDL Coder / Math Operations

설명

Dot Product 블록은 입력 벡터의 내적을 생성합니다. 스칼라 출력 y는 MATLAB® 연산과 동일합니다.

y = sum(conj(u1) .* u2 ) 

여기서 u1u2는 입력 벡터를 나타냅니다. 입력은 벡터, 열 벡터(단일 열 행렬) 또는 스칼라일 수 있습니다. 입력이 둘 다 벡터이거나 열 벡터인 경우에는 길이가 동일해야 합니다. u1u2가 모두 열 벡터인 경우 이 블록 출력은 MATLAB 표현식 u1'*u2와 동일합니다.

입력 벡터의 요소는 실수 값 신호 또는 복소수 값 신호일 수 있습니다. 출력의 신호 유형(복소수 또는 실수)은 입력의 신호 유형에 따라 달라집니다.

입력 1입력 2출력

실수

실수

실수

실수

복소수

복소수

복소수

실수

복소수

복소수

복소수

복소수

예제

포트

입력

모두 확장

내적 계산의 첫 번째 피연산자를 나타내는 신호입니다.

데이터형: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point

내적 계산의 두 번째 피연산자를 나타내는 신호입니다.

데이터형: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point

출력

모두 확장

두 입력 신호의 내적 계산 결과로 생성된 출력 신호입니다.

데이터형: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point

파라미터

모두 확장

이 체크박스의 선택을 해제하면 모든 입력이 다른 데이터형을 갖습니다.

프로그래밍 방식의 사용법

블록 파라미터: InputSameDT
유형: 문자형 벡터
: 'on' | 'off'
디폴트 값: 'on'

소프트웨어에서 검사하는 출력 범위의 하한 값입니다.

이 최솟값을 사용하여 다음 작업이 수행됩니다.

출력 최솟값은 실제 출력 신호를 포화시키거나 자르지 않습니다. 대신 Saturation 블록을 사용하십시오.

프로그래밍 방식의 사용법

프로그래밍 방식으로 블록 파라미터 값을 설정하려면 set_param 함수를 사용하십시오.

파라미터: OutMin
값: '[]' (디폴트 값) | scalar in quotes

Simulink®가 검사할 출력 범위의 상한 값을 유한한 double형 실수 스칼라 값으로 지정합니다.

참고

이 블록의 데이터형으로 bus 객체를 지정하는 경우 블록에서 버스 데이터의 최댓값을 설정하지 마십시오. Simulink는 이 설정을 무시합니다. 대신, 데이터형으로 지정된 bus 객체의 버스 요소에 대한 최댓값을 설정하십시오. 버스 요소의 최댓값 파라미터에 대한 자세한 내용은 Simulink.BusElement를 참조하십시오.

Simulink는 이 최댓값을 사용하여 다음을 수행합니다.

참고

출력 최댓값은 실제 출력 신호를 포화시키거나 자르지 않습니다. 대신 Saturation 블록을 사용하십시오.

프로그래밍 방식의 사용법

블록 파라미터: OutMax
유형: 문자형 벡터
: 스칼라
디폴트 값: '[ ]'

출력의 데이터형을 선택합니다. 유형은 상속되거나 직접 지정되거나 Simulink.NumericType과 같은 데이터형 객체로 표현될 수 있습니다. 자세한 내용은 Control Data Types of Signals 항목을 참조하십시오.

상속된 옵션을 선택하면 블록은 다음과 같이 동작합니다.

  • 상속: 내부 규칙을 통해 상속 — Simulink가 임베디드 타깃 하드웨어의 속성을 고려하면서도 수치적 정확도와 성능, 생성된 코드 크기 간에 균형을 이루도록 데이터형을 선택합니다. 임베디드 타깃 설정을 변경할 경우 내부 규칙을 통해 선택된 데이터형이 변경될 수 있습니다. 예를 들어 블록이 int8형의 입력을 int16형의 이득에 곱하고 ASIC/FPGA가 타깃 하드웨어 유형으로 지정된 경우 출력 데이터형은 sfix24입니다. 지정되지 않음(32비트 일반으로 간주됨), 즉 일반 32비트 마이크로프로세서가 타깃 하드웨어로 지정된 경우 출력 데이터형은 int32입니다. 타깃 마이크로프로세서에서 제공된 어떤 워드 길이로도 출력 범위를 수용할 수 없는 경우 Simulink는 진단 뷰어에 오류를 표시합니다.

    항상 코드 효율성과 수치적 정확도를 동시에 최적화할 수 있는 것은 아닙니다. 내부 규칙이 수치적 정확도 또는 성능의 특정 요건에 부합되지 않으면 다음 옵션 중 하나를 사용하십시오.

    • 명시적으로 출력 데이터형을 지정합니다.

    • 상속: 입력과 동일을 간단히 선택합니다.

    • 명시적으로 fixdt(1,32,16) 같은 디폴트 데이터형을 지정한 다음, 모델의 데이터형을 제안하는 고정소수점 툴을 사용합니다. 자세한 내용은 fxptdlg (Fixed-Point Designer) 항목을 참조하십시오.

    • 고유한 상속 규칙을 지정하려면 상속: 역전파를 통해 상속을 사용한 후 Data Type Propagation 블록을 사용합니다. 이 블록의 사용 방법에 대한 예는 Signal Attributes 라이브러리의 Data Type Propagation Examples 블록에서 볼 수 있습니다.

    참고

    입력값이 단정밀도보다 작은 부동소수점 데이터형인 경우 상속: 내부 규칙을 통해 상속Inherit floating-point output type smaller than single precision 구성 파라미터의 설정에 따라 다릅니다. 데이터형을 인코딩하는 데 필요한 비트 수가 단정밀도 데이터형을 인코딩하는 데 필요한 32비트보다 작으면 데이터형은 단정밀도보다 작습니다. 예를 들어, half형과 int16형은 단정밀도보다 작습니다.

  • 상속: 역전파를 통해 상속 — 구동 블록의 데이터형을 사용합니다.

  • 상속: 첫 번째 입력과 동일 — 첫 번째 입력 신호의 데이터형을 사용합니다.

프로그래밍 방식의 사용법

블록 파라미터: OutDataTypeStr
유형: 문자형 벡터
: 'Inherit: Inherit via internal rule | 'Inherit: Same as first input' | 'Inherit: Inherit via back propagation' | 'double' | 'single' | 'half' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | 'fixdt(1,16)' | 'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)' | '<data type expression>'
디폴트 값: 'Inherit: Inherit via internal rule'

고정소수점 툴과 고정소수점 어드바이저에 의해 변경되지 않도록 이 블록의 출력 데이터형 설정을 잠그려면 선택합니다. 자세한 내용은 Use Lock Output Data Type Setting (Fixed-Point Designer) 항목을 참조하십시오.

프로그래밍 방식의 사용법

블록 파라미터: LockScale
유형: 문자형 벡터
: 'off' | 'on'
디폴트 값: 'off'

고정소수점 연산의 반올림 모드를 지정합니다. 자세한 내용은 반올림 모드 (Fixed-Point Designer) 항목을 참조하십시오.

블록 파라미터는 표현 가능한 가장 가까운 값으로 항상 반올림됩니다. 블록 파라미터의 반올림 동작을 제어하려면 마스크 필드에 MATLAB 반올림 함수를 사용하여 표현식을 입력하십시오.

프로그래밍 방식의 사용법

프로그래밍 방식으로 블록 파라미터 값을 설정하려면 set_param 함수를 사용하십시오.

파라미터: RndMeth
값: 'Floor' (디폴트 값) | 'Ceiling' | 'Convergent' | 'Nearest' | 'Round' | 'Simplest' | 'Zero'

오버플로 시 포화시킬지 아니면 래핑할지를 지정합니다.

  • on — 오버플로 시 데이터형이 표현할 수 있는 최솟값 또는 최댓값으로 포화됩니다.

  • off — 오버플로 시 데이터형이 표현할 수 있는 적절한 값으로 래핑됩니다.

예를 들어, 부호 있는 8비트 정수 int8이 표현할 수 있는 최댓값은 127입니다. 블록 연산 결과가 이 최댓값보다 크면 8비트 정수 오버플로가 발생합니다.

  • 이 파라미터를 선택하면 블록 출력이 127에서 포화됩니다. 마찬가지로 블록 출력은 최소 출력값 -128에서 포화됩니다.

  • 이 파라미터를 선택 해제하면 오버플로를 일으키는 값이 int8형으로 해석되어 의도치 않은 결과가 발생할 수 있습니다. 예를 들어, int8형으로 표현된 130(2진수 1000 0010)의 블록 결과는 -126입니다.

  • 모델에 오버플로가 발생할 가능성이 있고 생성된 코드에서 포화 보호를 명시적으로 지정하려는 경우 이 파라미터를 선택해 보십시오.

  • 생성된 코드의 효율성을 최적화하려면 이 파라미터를 선택 해제하는 것이 좋습니다. 이 파라미터를 선택 해제하면 블록이 범위를 벗어난 신호를 처리하는 방법을 과도하게 지정하는 일이 방지됩니다. 자세한 내용은 Troubleshoot Signal Range Errors 항목을 참조하십시오.

  • 이 파라미터를 선택하는 경우 출력이나 결과뿐만 아니라 블록의 모든 내부 연산에 포화가 적용됩니다.

  • 일반적으로 코드 생성 프로세스는 오버플로가 발생할 가능성이 없는 경우를 감지할 수 있습니다. 이 경우, 코드 생성기는 포화 코드를 생성하지 않습니다.

프로그래밍 방식의 사용법

프로그래밍 방식으로 블록 파라미터 값을 설정하려면 set_param 함수를 사용하십시오.

파라미터: SaturateOnIntegerOverflow
값: 'off' (디폴트 값) | 'on'

블록 특성

데이터형

Boolean | double | fixed point | half | integer | single

직접 피드스루

다차원 신호

가변 크기 신호

아니요

영점교차 검출

아니요

세부 정보

모두 확장

확장 기능

모두 확장

C/C++ 코드 생성
Simulink® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.

PLC 코드 생성
Simulink® PLC Coder™를 사용하여 Structured Text 코드를 생성할 수 있습니다.

고정소수점 변환
Fixed-Point Designer™를 사용하여 고정소수점 시스템을 설계하고 시뮬레이션할 수 있습니다.

버전 내역

R2006a 이전에 개발됨