이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
Convolution
두 입력의 컨벌루션
라이브러리:
DSP System Toolbox /
Signal Operations
설명
Convolution 블록은 N차원 입력 배열 u의 첫 번째 차원을 N차원 입력 배열 v의 첫 번째 차원과 컨벌루션합니다. 또한 이 블록은 열 벡터를 N차원 입력 배열의 첫 번째 차원과 컨벌루션할 수도 있습니다.
컨벌루션의 일반 방정식은 다음과 같습니다.
두 개의 입력 신호를 컨벌루션하기 위해 다음 두 DSP System Toolbox™ 블록을 사용할 수 있습니다.
Convolution
Discrete FIR Filter (Simulink)
Convolution 블록은 u 및 v의 모든 요소가 각 Simulink® 시간 스텝에서 존재한다고 가정하고 모든 스텝에서의 전체 컨벌루션을 계산합니다.
Discrete FIR Filter 블록은 각 시간 스텝에서 v는 모든 요소가 존재하는 데 반해 u는 시뮬레이션의 존속 기간 동안 들어오는 시퀀스인 상황에서 신호를 컨벌루션하는 데 사용할 수 있습니다. Discrete FIR Filter 블록을 사용하면 컨벌루션은 한 번만 계산됩니다.
요구사항에 가장 적합한 블록을 선택하려면 적절한 Convolution 블록 선택 항목을 참조하십시오.
포트
입력
Port_1 — 첫 번째 입력 신호
스칼라 | 벡터 | 행렬 | N-D 배열
첫 번째 입력 u로, 스칼라, 벡터, 행렬 또는 N-D 배열로 지정됩니다. 두 입력값이 모두 실수인 경우 출력값은 실수입니다. 두 입력값 중 하나 이상이 복소수이면 출력값은 복소수입니다. 첫 번째 차원을 제외하고, 두 입력값의 모든 입력 포트 차원은 동일한 값을 가져야 합니다.
입력 u 및 v는 유효한 범위 밖에서 인덱싱될 경우 0입니다.
데이터형: single
| double
| int8
| int16
| int32
| uint8
| uint16
| uint32
| fixed point
복소수 지원 여부: 예
Port_2 — 두 번째 입력 신호
스칼라 | 벡터 | 행렬 | N차원 배열
두 번째 입력 v로, 스칼라, 벡터, 행렬 또는 N차원 배열로 지정됩니다. 두 입력값이 모두 실수인 경우 출력값은 실수입니다. 두 입력값 중 하나 이상이 복소수이면 출력값은 복소수입니다. 첫 번째 차원을 제외하고, 두 입력값의 모든 입력 포트 차원은 동일한 값을 가져야 합니다.
입력 u 및 v는 유효한 범위 밖에서 인덱싱될 경우 0입니다.
데이터형: single
| double
| int8
| int16
| int32
| uint8
| uint16
| uint32
| fixed point
복소수 지원 여부: 예
출력
Port_1 — 출력 신호
스칼라 | 벡터 | 행렬 | N-D 배열
컨벌루션된 신호로, 입력 신호에 따라 스칼라, 벡터, 행렬 또는 N-D 배열로 반환됩니다. 두 입력값이 모두 실수인 경우 출력값은 실수입니다. 두 입력값 중 하나 이상이 복소수이면 출력값은 복소수입니다. 입력 u 및 v는 유효한 범위 밖에서 인덱싱될 경우 0입니다. 입력값에 따라 컨벌루션된 신호가 어떻게 변하는지에 대한 자세한 내용은 세부 정보 항목을 참조하십시오.
데이터형: single
| double
| int8
| int16
| int32
| uint8
| uint16
| uint32
| fixed point
복소수 지원 여부: 예
파라미터
기본 탭
계산 영역 — 계산 영역
시간
(디폴트 값) | 주파수
| 가장 빠름
블록이 컨벌루션을 계산하는 영역을 설정합니다.
시간
— 블록은 시간 영역에서 계산을 수행하며, 이는 메모리 사용을 최소화합니다.주파수
— 블록은 주파수 영역에서 계산을 수행하며, 입력 길이에 따라 시간 영역에서 계산하는 것보다 더 적은 계산이 필요할 수 있습니다.가장 빠름
— 블록은 계산 횟수를 최소화하는 영역에서 계산을 수행합니다.
고정소수점 신호는 시간 영역에서만 지원됩니다. 고정소수점 신호를 입력할 때는 계산 영역 파라미터를 시간
으로 설정해야 합니다.
데이터형 탭
반올림 모드 — 반올림 연산 방식
내림(Floor)
(디폴트 값) | 올림(Ceiling)
| 수렴(Convergent)
| 최근접(Nearest)
| 반올림(Round)
| 최대단순(Simplest)
| 0 방향(Zero)
고정소수점 연산에 대한 반올림 모드를 다음 중 하나로 지정합니다.
내림(Floor)
올림(Ceiling)
수렴(Convergent)
최근접(Nearest)
반올림(Round)
최대단순(Simplest)
0 방향(Zero)
자세한 내용은 반올림 모드 항목을 참조하십시오.
참고
반올림 모드 및 정수 오버플로 시 포화 파라미터는 다음 조건이 모두 충족될 경우 수치 결과에 영향을 주지 않습니다.
곱 연산 출력 데이터형이
상속: 내부 규칙을 통해 상속
입니다.누산기 데이터형이
상속: 내부 규칙을 통해 상속
입니다.출력 데이터형이
상속: 누산기와 동일
입니다.
이러한 데이터형 설정을 사용하면 블록이 최대 정밀도 모드에서 연산을 수행합니다.
정수 오버플로 시 포화 — 오버플로 동작 방식
off
(디폴트 값) | on
이 파라미터를 선택하면 블록이 해당 고정소수점 연산의 결과를 포화 처리합니다. 이 파라미터를 선택 해제하면 블록이 해당 고정소수점 연산의 결과를 래핑합니다. 포화 및 래핑에 대한 자세한 내용은 고정소수점 연산의 Overflow Handing 항목을 참조하십시오.
참고
반올림 모드 및 정수 오버플로 시 포화 파라미터는 다음 조건이 모두 충족될 경우 수치 결과에 영향을 주지 않습니다.
곱 연산 출력 데이터형이
상속: 내부 규칙을 통해 상속
입니다.누산기 데이터형이
상속: 내부 규칙을 통해 상속
입니다.출력 데이터형이
상속: 누산기와 동일
입니다.
이러한 데이터형 설정을 사용하면 블록이 최대 정밀도 모드에서 연산을 수행합니다.
곱 연산 출력 — 곱 연산 출력 데이터형
상속: 내부 규칙을 통해 상속
(디폴트 값) | 상속: 첫 번째 입력과 동일
| fixdt([],16,0)
곱 연산 출력은 Convolution 블록의 곱 연산 출력의 데이터형을 지정합니다.
상속: 내부 규칙을 통해 상속
— 블록은 내부 규칙에 따라 곱 연산 출력 데이터형을 상속합니다. 이 규칙에 대한 자세한 내용은 Inherit via Internal Rule 항목을 참조하십시오.상속: 첫 번째 입력과 동일
— 블록은 곱 연산 출력 데이터형을 첫 번째 입력 데이터형과 동일하게 지정합니다.fixdt([],16,0)
— 블록은 워드 길이가 16비트이고 소수부 길이가 0인 자동 부호, 이진 소수점, 스케일링, 고정소수점 데이터형을 지정합니다.
또는 데이터형 도우미를 사용하여 곱 연산 출력 데이터형을 설정할 수 있습니다. 도우미를 사용하려면 데이터형 도우미를 표시합니다 버튼 을 클릭하십시오.
데이터형 도우미에 대한 자세한 내용은 Specify Data Types Using Data Type Assistant (Simulink) 항목을 참조하십시오.
곱 연산 출력 데이터형에 대한 자세한 내용은 Multiplication Data Types 및 확장 기능 항목의 고정소수점 변환을 참조하십시오.
누산기 — 누산기의 데이터형
Inherit: Inherit via internal rule
(디폴트 값) | Inherit: Same as first input
| Inherit: Same as product output
| fixdt([],16,0)
누산기는 Convolution 블록의 누산 연산 출력의 데이터형을 지정합니다.
상속: 내부 규칙을 통해 상속
— 블록은 내부 규칙에 따라 누산기 데이터형을 상속합니다. 이 규칙에 대한 자세한 내용은 Inherit via Internal Rule 항목을 참조하십시오.상속: 첫 번째 입력과 동일
— 블록은 누산기 데이터형을 첫 번째 입력 데이터형과 동일하게 지정합니다.상속: 곱 연산 출력과 동일
— 블록은 누산기 데이터형을 곱 연산 출력 데이터형과 동일하게 지정합니다.fixdt([],16,0)
— 블록은 워드 길이가 16비트이고 소수부 길이가 0인 자동 부호, 이진 소수점, 스케일링, 고정소수점 데이터형을 지정합니다.
또는 데이터형 도우미를 사용하여 누산기 데이터형을 설정할 수 있습니다. 도우미를 사용하려면 데이터형 도우미를 표시합니다 버튼 을 클릭하십시오.
데이터형 도우미에 대한 자세한 내용은 Specify Data Types Using Data Type Assistant (Simulink) 항목을 참조하십시오.
이 블록에서의 누산기 데이터형 사용 방법에 대한 다이어그램 표현은 확장 기능 항목의 고정소수점 변환을 참조하십시오.
출력 — 출력의 데이터형
상속: 누산기와 동일
(디폴트 값) | 상속: 입력과 동일
| 상속: 곱 연산 출력과 동일
| fixdt([],16,0)
출력은 Convolution 블록 출력의 데이터형을 지정합니다.
상속: 누산기와 동일
— 블록은 출력 데이터형을 누산기 데이터형과 동일하게 지정합니다.상속: 첫 번째 입력과 동일
— 블록은 출력 데이터형을 첫 번째 입력 데이터형과 동일하게 지정합니다.상속: 곱 연산 출력과 동일
— 블록은 출력 데이터형을 곱 연산 출력 데이터형과 동일하게 지정합니다.fixdt([],16,0)
— 블록은 워드 길이가 16비트이고 소수부 길이가 0인 자동 부호, 이진 소수점, 스케일링, 고정소수점 데이터형을 지정합니다.
또는 데이터형 도우미를 사용하여 출력 데이터형을 설정할 수 있습니다. 도우미를 사용하려면 데이터형 도우미를 표시합니다 버튼 을 클릭하십시오.
자세한 내용은 Control Data Types of Signals (Simulink) 항목을 참조하십시오.
출력 데이터형에 대한 자세한 내용은 확장 기능 항목의 고정소수점 변환을 참조하십시오.
출력 최솟값 — 블록이 출력할 수 있는 최솟값
[]
(디폴트 값) | 스칼라
블록이 출력할 수 있는 최솟값을 지정합니다. Simulink는 이 최솟값을 사용하여 다음을 수행합니다.
시뮬레이션 범위 검사. Specify Signal Ranges (Simulink) 항목을 참조하십시오.
고정소수점 데이터형의 자동 스케일링.
출력 최댓값 — 블록이 출력할 수 있는 최댓값
[]
(디폴트 값) | 스칼라
블록이 출력할 수 있는 최댓값을 지정합니다. Simulink는 이 최댓값을 사용하여 다음을 수행합니다.
시뮬레이션 범위 검사. Specify Signal Ranges (Simulink) 항목을 참조하십시오.
고정소수점 데이터형의 자동 스케일링.
고정소수점 툴에 의해 변경되지 않도록 데이터형 설정 잠금 — 고정소수점 툴이 데이터형을 재정의하지 못하도록 방지
off
(디폴트 값) | on
고정소수점 툴이 블록 대화 상자에서 지정한 데이터형을 재정의하지 않게 하려면 이 파라미터를 선택하십시오.
블록 특성
데이터형 |
|
직접 피드스루 |
|
다차원 신호 |
|
가변 크기 신호 |
|
영점교차 검출 |
|
세부 정보
적절한 Convolution 블록 선택
질문 | 답변 | 권장되는 블록 |
---|---|---|
얼마나 많은 컨벌루션을 수행하려고 합니까? | 여러 번의 컨벌루션, 각 시간 스텝마다 한 번씩 |
|
시뮬레이션의 존속 기간 동안 한 번의 컨벌루션 |
| |
입력 시퀀스의 길이는 어떻습니까? | 두 시퀀스의 길이가 모두 유한 |
|
한 시퀀스의 길이가 무한(즉, 미리 결정되지 않음) |
| |
입력 중 스칼라 스트림은 몇 개입니까? | 없음 |
|
하나 또는 둘 다 |
|
두 개의 N차원 배열 컨벌루션
블록은 항상 첫 번째 차원을 따라 두 N차원 입력 배열의 컨벌루션을 계산합니다. 두 입력이 모두 N차원 배열인 경우 첫 번째 차원의 크기는 다를 수 있지만 다른 모든 차원의 크기는 같아야 합니다. 예를 들어 u가 Mu×N×P 배열이고 v가 Mv×N×P 배열인 경우 출력은 (Mu+Mv–1)×N×P 배열입니다.
u가 Mu×N 행렬이고 v가 Mv×N 행렬인 경우 출력 y는 j번째 열에 다음 요소를 가지는 (Mu+Mv–1)×N 행렬입니다.
입력 u 및 v는 유효한 범위 밖에서 인덱싱될 경우 0입니다. 두 입력값이 모두 실수인 경우 출력값은 실수입니다. 두 입력값 중 하나 이상이 복소수이면 출력값은 복소수입니다.
열 벡터를 N차원 배열과 컨벌루션
한 입력이 열 벡터이고 다른 입력이 N차원 배열인 경우 블록은 벡터를 N차원 입력 배열의 첫 번째 차원과 독립적으로 컨벌루션합니다. 예를 들어, u가 Mu×1 열 벡터이고 v가 Mv×N 행렬인 경우 출력은 j번째 열에 다음 요소를 가지는 (Mu+Mv–1)×N 행렬입니다.
두 개의 열 벡터 컨벌루션
Convolution 블록은 또한 두 개의 열 벡터 입력을 허용합니다. u 및 v가 각각 길이가 Mu 및 Mv인 열 벡터인 경우 Convolution 블록은 다음과 같이 길이가 Mu 및 Mv인 벡터 컨벌루션을 수행합니다.
출력은 (Mu+Mv–1)×1 열 벡터입니다.
확장 기능
C/C++ 코드 생성
Simulink® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.
고정소수점 변환
Fixed-Point Designer™를 사용하여 고정소수점 시스템을 설계하고 시뮬레이션할 수 있습니다.
다음 다이어그램은 고정소수점 신호에 대해 Convolution 블록 내에서 사용되는 데이터형을 보여줍니다(시간 영역만 해당).
파라미터 항목에서 설명한 대로 블록 대화 상자에서 곱 연산 출력, 누산기 및 출력 데이터형을 설정할 수 있습니다.
입력값이 실수인 경우 곱셈기의 출력 데이터형은 곱 연산 출력 데이터형과 같습니다. 입력이 복소수인 경우 곱셈 결과의 데이터형은 누산기 데이터형과 같습니다. 곱셈 연산 수행 방법에 대한 자세한 내용은 Multiplication Data Types 항목을 참조하십시오.
참고
입력 중 하나 또는 둘 모두가 부호 있는 고정소수점 신호이면 모든 내부 블록 데이터형이 부호 있는 고정소수점이 됩니다. 내부 블록 데이터형은 두 입력이 모두 부호 없는 고정소수점 신호인 경우에만 부호 없는 고정소수점이 됩니다.
버전 내역
R2006a 이전에 개발됨
MATLAB 명령
다음 MATLAB 명령에 해당하는 링크를 클릭했습니다.
명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 MATLAB 명령을 지원하지 않습니다.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)