단일 채널, 여러 샘플

한 사이클 당 여러 샘플을 사용하여 입력 신호 스트림의 빠른 푸리에 변환 (FFT)을 계산합니다.

이 노드를 사용하면 데이터 클럭 사이클 당 여러 샘플을 사용하여 FPGA I/O를 처리할 수​있습니다. 이 노드를 사용하면 데이터 처리량이 높아지지만 [FFT (단일 채널, 단일 샘플)] 노드보다 훨씬 많은 FPGA 리소스를 소비합니다.

1378

입력/출력

datatype_icon

입력 유효

다음에 처리할 데이터 원소가 도착했는지 나타내는 불리언 값. 업스트림 노드의 출력 유효 출력을 이 입력에 연결하여 업스트림 노드에서 이 노드로 데이터를 전송합니다.

다음에 처리할 데이터 원소가 도착했습니다.
거짓 다음에 처리할 데이터 원소가 도착하지 않았습니다.
datatype_icon

출력 준비

다운스트림 노드가 이 노드가 새 값을 반환하는 경우에 대한 준비가 되었는지 정의하는 불리언 값. 피드백 노드를 사용하여 다운스트림 노드의 입력 준비 출력을 현재 사용 중인 노드의 이 입력에 연결합니다.

다운스트림 노드가 이 노드가 새 값을 반환하는 경우에 대한 준비가 되었습니다.
거짓 다운스트림 노드가 이 노드가 새 값을 반환하는 경우에 대한 준비가 되지 않았습니다.
노트 사이클 안에서 이 입력이 거짓인 경우, 출력 유효 출력은 이 사이클에서는 거짓을 반환합니다.

Default value: 참

datatype_icon

데이터 출력

신호 입력 스트림의 FFT 결과

각 FFT 결과의 최대 워드 길이는 32비트입니다.

FFT 결과의 워드 길이 사용자 정의하기

일반적으로 각 FFT 결과의 워드 길이는 대응하는 입력 데이터보다 log2 (N)+1비트 크며, 여기서 N은 FFT 크기입니다. 아이템 탭의 터미널 섹션에서 정밀도 컨트롤 옆에 있는 복소수 고정 소수점 설정기 버튼을 클릭하여 FFT 결과의 워드 길이를 사용자 정의할 수 있습니다.

출력 워드 길이를 줄이면 FPGA 리소스는 절약되지만 정밀도가 떨어집니다. NI는 주어진 설정을 시뮬레이션하여 정밀도가 어플리케이션 요구 사항을 충족시키는지 확인하도록 권장합니다.

datatype_icon

데이터 인덱스

이 노드가 반환하는 FFT bin의 인덱스입니다.

datatype_icon

출력 유효

이 노드가 다운스트림 노드가 사용할 수 있는 결과를 계산했는지 나타내는 불리언 값.

이 출력을 다운스트림 노드의 입력 유효 입력에 연결하여 이 노드에서 다운스트림 노드로 데이터를 전송합니다.

다운스트림 노드는 이 노드가 계산한 결과를 사용할 수 있습니다.
거짓 이 노드는 다운스트림 노드가 사용할 수 없는 정의되지 않은 값을 반환합니다.
노트 이 노드는 하드웨어가 아닌 시뮬레이션 모드에서 실행되었을 때 다른 정의되지 않은 값을 반환할 수도 있습니다.
datatype_icon

입력 준비

이 노드가 새 입력 데이터를 받을 준비가 되어있는지 결정하는 불리언 값. 피드백 노드를 사용하여 이 출력을 업스트림 노드의 출력 준비 입력에 연결합니다.

이 노드는 새 입력 데이터를 받을 준비가 되어 있습니다.
거짓 이 노드는 새 입력 데이터를 받을 준비가 되어있지 않습니다.
노트 주어진 사이클 동안 이 출력이 거짓을 반환하면, 이 노드는 그 다음 사이클 동안 다른 노드가 이 노드로 보내는 모든 데이터를 버립니다. 다음 사이클에서 입력 유효 입력이 참이라도 이 노드는 데이터를 버립니다.
datatype_icon

데이터 입력

FFT를 계산하려는 신호의 입력 스트림.

이 입력은 다음의 데이터 타입 배열을 허용합니다:
  • 8비트 부호있는 정수
  • 8비트 부호없는 정수
  • 16트 부호있는 정수
  • 16비트 부호없는 정수
  • 32비트 부호있는 정수
  • 고정 소수점 숫자
  • 복소수 고정 소수점 숫자

배열 크기는 2, 4, 8 또는 16이어야 합니다. 각 배열 요소에 대해, 최대 워드 길이는 32비트입니다.

datatype_icon

리셋

노드의 내부 상태를 리셋할지 지정하는 불리언 값.

노드의 내부 상태를 리셋합니다.
거짓 노드의 내부 상태를 리셋하지 않습니다.

Default value: 거짓

핸드쉐이킹 입력 및 출력 사용 시 동작

이 노드의 핸드쉐이킹 입력과 출력은 리셋이 참일 때 사이클 중에 다음과 같이 동작합니다.

  • 입력 유효는 무시됩니다.
  • 출력 준비는 무시됩니다.
  • 출력 유효는 거짓입니다.
  • 입력 준비는 거짓이며, 이 값은 리셋이 두 주기 이상에서 참으로 설정되는 경우를 처리합니다. 이 노드는 리셋이 완료된 후 입력 준비가 되고 리셋은 거짓을 반환합니다.

타이밍 다이어그램

이 노드의 처리량은 입력 당 1 사이클입니다. 즉, 이 노드는 매 사이클마다 새 데이터를 받아들입니다. 다음 다이어그램은 이 노드가 사용하는 타이밍을 보여줍니다.


1378

FFT 계산 도중 데이터 손실 방지하기

이 노드는 FFT를 계산하는 동안 값을 받거나 반환하지 않습니다. 계산하는 동안 시스템이나 다른 노드가 이 노드에 데이터를 보내는 경우, 노드는 데이터를 삭제합니다. 이 노드가 복잡하거나 균일하지 않은 패턴에 따라 데이터를 수신하는 경우 이러한 일이 발생할 수 있습니다.

데이터 손실을 방지하려면, 이 노드가 다시 값을 받을 때까지 데이터를 보유하도록 FIFO 노드를 생성하십시오. FIFO를 생성할 때에는 노드가 FFT를 계산하는 동안 수집하는 모든 데이터 포인트를 저장하기에 충분한 크기인지 확인하십시오. 어느 정도의 크기로 FIFO를 생성해야 하는지 대략적으로 추정하려면, 이 노드의 지연을 평균 시스템 처리량으로 나눕니다. 지연은 설정 구획의 아이템 탭에있는 성능 섹션에서 확인할 수 있습니다.

입력/출력 인덱스 패턴 이해하기

설정 구획의 아이템 탭에 있는 인터페이스 섹션에서 연속 입력/M 간격 출력 또는 M 간격 입력/연속 출력 인덱스 패턴을 사용하도록 이 노드를 설정할 수 있습니다.

다음 테이블에서는 입력당 4 개의 샘플과 4096의 FFT 크기(M = 1024)를 가진 신호의 입력 스트림 예제를 사용하여 인덱스 패턴을 비교하고 설명합니다.

패턴 인덱스 설명 주석
연속 입력/M 간격 출력 FFT 프레임의 인덱스는 입력 데이터에 대해 연속적이며 출력 데이터에 대해 M 간격을 갖습니다. 여기서 M = FFT 크기/데이터 입력의 크기입니다.
1378

이 노드는 첫 번째 유효한 입력 사이클에서 입력 샘플의 인덱스로 0, 1, 2, 3을 사용하고, 두 번째 사이클에서 4, 5, 6, 7을 사용하는 식입니다. 출력 샘플의 경우, 첫 번째 유효한 출력 사이클에서는 인덱스가 0, 1024, 2048, 3072이고 두 번째 사이클에서는 1, 1025, 2049, 3073이 됩니다.
M 간격 입력/연속 출력 FFT 프레임의 인덱스는 입력 데이터에 대해 M 간격을 가지며 출력 데이터에 대해 연속적입니다. 여기서 M = FFT 크기/데이터 입력의 크기입니다.
1378

입력 및 출력 인덱스는 연속/M 간격 출력 인덱스 패턴과 비교하여 반전됩니다.

데이터 소스가 사이클당 여러 샘플을 가진 FPGA I/O인 경우, 연속 입력/M 간격 출력 인덱스 패턴을 선택하십시오. 다른 FFT (단일 채널, 여러 샘플) 노드에서 얻은 FFT 결과의 역을 계산하는 경우와 같이 데이터 소스가 다른 FFT (단일 채널, 여러 샘플) 노드의 출력인 경우, 이 노드의 입력 인덱스 패턴 설정이 그 다른 FFT (단일 채널, 여러 샘플) 노드의 출력 인덱스 패턴 설정과 동일한지 확인하십시오.

정확도, 리소스 사용, 타이밍 최적화

설정 구획의 아이템 탭에 있는 최적화 섹션에서 정확성, 최소 리소스 사용 또는 타이밍을 최적화하도록 노드를 설정할 수 있습니다.

목표 섹션에서, 출력 데이터의 워드 길이를 결정할 때 출력 데이터의 정확성을 최적화하거나 리소스 사용을 최소화하도록 노드를 설정할 수 있습니다. 다음 테이블은 특정 사용 사례에 어떤 옵션을 사용할지에 대한 지침을 제공합니다.

용도 권장 옵션 노드 동작 결과
FPGA 리소스 사용이 증가하더라도 출력 데이터의 마지막 비트의 정확성을 최적화하고자 합니다. 정확도 이 노드는 제로를 채워서 입력 데이터의 워드 길이를 출력 워드 길이로 확장합니다. 모든 내부 복소수 곱셈 연산은 이 워드 길이를 사용합니다. 리소스 사용 옵션과 비교할 때, 복소수 배열은 더 많은 비트를 보유하며 출력 데이터의 증가 된 log2(N)+1 비트가 보다 정확합니다.
두 가지 사용 사례 중 하나가 적용되는 경우:
  • 출력 데이터의 정확도가 조금 떨어지더라도 FPGA 리소스 사용을 줄이고자 합니다.
  • 데이터 입력의 크기는 16이며 FFT 크기는 16384 이상입니다.
리소스 사용 이 노드는 단계별로 워드 길이를 입력에서 출력으로 증가시킵니다. 따라서 복소수 배율의 비트 폭 또한 단계별로 증가합니다. 정확도 옵션과 비교할 때, 복소 배율과 내부 레지스터의 비트 폭이 더 작으므로 FPGA 리소스를 절약하고 컴파일 시간에 FPGA 클럭 속도를 높일 수 있습니다.

최적화 목표를 설정한 후에도 이 노드가 정확도, 리소스 또는 타이밍 요구 사항을 충족시키지 못할 경우, 회전 인자 워드 길이버터플라이에서 파이프라인 단계의 개수 값을 조정하여 이 노드의 성능을 개선합니다.