KR102338456B1 - 처프 Z-변환을 O(n log n) 시간 및 O(n) 메모리로 반전시키기 위한 시스템 및 방법 - Google Patents

처프 Z-변환을 O(n log n) 시간 및 O(n) 메모리로 반전시키기 위한 시스템 및 방법 Download PDF

Info

Publication number
KR102338456B1
KR102338456B1 KR1020207033268A KR20207033268A KR102338456B1 KR 102338456 B1 KR102338456 B1 KR 102338456B1 KR 1020207033268 A KR1020207033268 A KR 1020207033268A KR 20207033268 A KR20207033268 A KR 20207033268A KR 102338456 B1 KR102338456 B1 KR 102338456B1
Authority
KR
South Korea
Prior art keywords
matrix
vector
iczt
algorithm
log
Prior art date
Application number
KR1020207033268A
Other languages
English (en)
Other versions
KR20200133283A (ko
Inventor
보로디미르 수코이
알렉산더 스토이셰브
Original Assignee
아이오와 스테이트 유니버시티 리서치 파운데이션, 인코퍼레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 아이오와 스테이트 유니버시티 리서치 파운데이션, 인코퍼레이티드 filed Critical 아이오와 스테이트 유니버시티 리서치 파운데이션, 인코퍼레이티드
Publication of KR20200133283A publication Critical patent/KR20200133283A/ko
Application granted granted Critical
Publication of KR102338456B1 publication Critical patent/KR102338456B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/141Discrete Fourier transforms
    • G06F17/142Fast Fourier transforms, e.g. using a Cooley-Tukey type algorithm
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S7/00Details of systems according to groups G01S13/00, G01S15/00, G01S17/00
    • G01S7/02Details of systems according to groups G01S13/00, G01S15/00, G01S17/00 of systems according to group G01S13/00
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S7/00Details of systems according to groups G01S13/00, G01S15/00, G01S17/00
    • G01S7/02Details of systems according to groups G01S13/00, G01S15/00, G01S17/00 of systems according to group G01S13/00
    • G01S7/28Details of pulse systems
    • G01S7/285Receivers
    • G01S7/288Coherent receivers
    • G01S7/2883Coherent receivers using FFT processing
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S7/00Details of systems according to groups G01S13/00, G01S15/00, G01S17/00
    • G01S7/02Details of systems according to groups G01S13/00, G01S15/00, G01S17/00 of systems according to group G01S13/00
    • G01S7/35Details of non-pulse systems
    • G01S7/352Receivers
    • G01S7/356Receivers involving particularities of FFT processing
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S7/00Details of systems according to groups G01S13/00, G01S15/00, G01S17/00
    • G01S7/52Details of systems according to groups G01S13/00, G01S15/00, G01S17/00 of systems according to group G01S15/00
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S7/00Details of systems according to groups G01S13/00, G01S15/00, G01S17/00
    • G01S7/52Details of systems according to groups G01S13/00, G01S15/00, G01S17/00 of systems according to group G01S15/00
    • G01S7/523Details of pulse systems
    • G01S7/526Receivers
    • G01S7/527Extracting wanted echo signals
    • G01S7/5273Extracting wanted echo signals using digital techniques
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S7/00Details of systems according to groups G01S13/00, G01S15/00, G01S17/00
    • G01S7/52Details of systems according to groups G01S13/00, G01S15/00, G01S17/00 of systems according to group G01S15/00
    • G01S7/534Details of non-pulse systems
    • G01S7/536Extracting wanted echo signals

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Theoretical Computer Science (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Discrete Mathematics (AREA)
  • Computing Systems (AREA)
  • Complex Calculations (AREA)

Abstract

본 개시의 실시예는 역 처프 Z-변환 (ICZT)을 구현하는 효율적인 O(n log n) 방법을 설명한다. 이 변환은 잘 알려진 정방향 처프-변환 (CZT)의 역수인데, 이는 샘플링 포인트가 단위 원 대신 로그 나선 컨투어에 놓이도록하여 빠른 푸리에 변환 (FFT)을 일반화한다. 따라서 ICZT는 IFFT (Inverse Fast Fourier Transform)의 일반화로 볼 수 있다.

Description

처프 Z-변환을 O(n log n) 시간 및 O(n) 메모리로 반전시키기 위한 시스템 및 방법{SYSTEMS AND METHODS FOR INVERTING THE CHIRP Z-TRANSFORM IN O(n log n) TIME AND O(n) MEMORY}
본 발명은 일반적으로 역 처프 z-변환에 관한 것으로, 보다 상세하게는 O(n log n) 시간 및 O(n) 메모리에서 역 처프 z-변환을 계산하는 방법 및 시스템에 관한 것이다.
처프 Z-변환(CZT: Chirp Z-Transform)은 샘플이 단위 원이 아닌 로그 나선 컨투어(logarithmic spiral contour)에 위치할 수 있게 함으로써 이산 푸리에 변환(DFT: discrete Fourier transform)을 확장시킨다. 보다 구체적으로, 변환은 공식
Figure 112020123923220-pat00001
에 의해 정의되는 로그 나선 컨투어를 따라 샘플을 분포 시키는데, 여기서
Figure 112020123923220-pat00002
이다. 0이 아닌 복소수 AW는 나선 컨투어의 위치와 방향, 그리고 컨투어에서 샘플 점의 간격을 지정한다. 보다 구체적으로, N-요소 입력 벡터 x가 주어지면, CZT는 M-요소 출력 벡터 X를 계산하는데, 여기서 X의 k-번째 요소는
Figure 112020123923220-pat00003
에 의해 주어진다.
순방향 처프 Z-변환을 계산할 수 있는 효율적인 알고리즘이 이전에 설명되었다. 이러한 알고리즘은 O(n log n) 시간에 실행되는데, 여기서 n 은 변환 크기이다. 입력 개수 N과 출력 개수 M이 다를 수 있기 때문에, 가장 일반적인 경우 CZT 알고리즘의 계산 복잡도는 n = max (M, N)에 의해 결정된다.
효율적인 CZT 알고리즘은 블루스타인(Bluestein)이 "이산 푸리에 변환의 계산에 대한 선형 필터링 접근"(IEEE Transactions on Audio and Electroacoustics, 18 (4) : 451-455, 1970, 이는 빠른 컨볼루션(convolution)을 사용하여 변환을 표현하기 위해 본 명세서에 참고로 포함됨)에서 제안한 색인 대체(index substitution)를 사용하여 도출될 수 있다. CZT 알고리즘에 대한 다양한 유용한 최적화가 제안되었다. 그럼에도 불구하고 계산 복잡도는 O(n log n)으로 고정되어 있다.
ICZT (Inverse Chirp Z-Transform)는 CZT (Chirp Z-Transform)의 역수이다. 즉, ICZT는 CZT의 출력을 다시 입력에 매핑한다. CZT는 선형 변환이므로 CZT 행렬과 입력 벡터의 행렬 곱을 사용하여 표현할 수 있다. 이러한 행렬은 표준 알고리즘을 사용하여 반전될 수 있다. 그러나 알고리즘 형태로, 이 프로세스는 최대 O(n3) 개의 연산을 요구할 수 있다.
O(n3)보다 빠르게 실행되는 효율적인 행렬 반전 알고리즘(matrix inversion algorithm)이 있지만, n x n 행렬의 각 요소에 액세스하려면 최소한 n2 개의 연산이 필요하다. 따라서, O(n2)는 메모리에서 완전한 n x n 행렬로 작동하는 ICZT 알고리즘의 계산 복잡도에 대한 하한치이다.
효율적으로, ICZT 알고리즘은 CZT 알고리즘과 동일한 계산 복잡도, 즉 O(n log n)를 가져야 한다. 이러한 요구 사항은 변환 행렬을 메모리에 저장해야 하는 모든 방법을 배제한다.
효율적인 ICZT 알고리즘을 도출하기 위한 여러 시도가 있었다. 하나의 경우(프리키(Frickey)에 기술됨, "시뮬레이팅된 레이더 신호의 시간 영역 분석을 위해 역 처프-z 변환 사용", 기술 보고서, Idaho National Engineering Lab., Idaho Falls, ID, 1995, 본 명세서에 참고로 포함됨)에서, 로그 나선 컨투어가 반대 방향으로 이송되는 정방향 CZT 알고리즘의 수정된 버전을 ICZT 알고리즘으로 설명했다. 그러나, 이 방법은 실제로 CZT를 반전시키지 않았다. 이는 A = 1 및
Figure 112020123923220-pat00004
과 같은 일부 특수한 경우에만 작동한다. 즉, CZT가 DFT로 감소하는 경우이다. 일반적인 경우, 즉
Figure 112020123923220-pat00005
일 경우, 이러한 방법이 CZT를 반전시키지 않는 변환을 생성한다.
본 개시의 실시예는 ICZT를 계산하기 위한 효율적인 O(n log n) 방법을 기술한다. 이 방법은 벡터 생성을 사용하여 O(n) 메모리에서 구조화된 행렬 (예를 들어, 대각(diagonal), 반데몬드(Vandermonde), 토플리츠(Toeplitz), 순환(circulant) 또는 기울기 순환(skew-circulant) 행렬)을 더 콤팩트하게 표현한다. ICZT는 단위 원에서 역 고속 푸리에 변환 (IFFT)의 일반화로 볼 수 있다. 다시 말해, ICZT의 복소수 파라미터 AW는 복소 평면에서의 로고 나선 컨투어를 설명한다. IFFT와 달리, ICZT는 지수적으로 증가하거나 지수적으로 감소하는 주파수 성분에 해당하는 단위 원에서 컨투어(윤곽) 점을 사용할 수 있다. 본 발명의 실시예는 또한 |W| < 1인 경우(부록 A에 있음) 에 CZT 또는 ICZT의 수치 정확도를 개선하는 방법을 설명한다.
그들의 지식을 최대한으로, 본 발명자들은 이 개시가 효율적인 ICZT 알고리즘의 첫 번째 설명이라고 믿는다. 특히, 작동 알고리즘 및 그 파생물이 설명된다. 또한 알고리즘의 정확성은 자동화된 테스트 사례를 사용하여 검증된다.
알고리즘은 구조화된 행렬 곱을 사용하여 CZT 공식을 표현한 다음 해당 공식을 반전시키는 방법을 찾아서 파생되었다. ICZT 계산의 본질은 특별히 구성된 반데몬드 행렬 W 를 반전시키는 것으로 줄어 든다. 이러한 문제는 결국 W 에서 파생된 특수하게 구성된 토플리츠 행렬
Figure 112020123923220-pat00006
을 반전시키는 것으로 감소된다.
본 발명의 다른 양태, 목적 및 이점은 첨부 도면과 관련하여 다음의 상세한 설명으로부터 보다 명백해질 것이다.
본 발명의 실시예에 따르면, 처프 Z-변환(CZT)이
Figure 112020123923220-pat00007
에 대한 공식
Figure 112020123923220-pat00008
를 통해 복소 평면에서 로그 나선 컨투어를 정의하는 파라미터 AW를 갖되, CZT는 W 가 파라미터 W에 의해 정의된 M x N 차원을 갖는 반데몬드 행렬 및 그 거듭 제곱이고, A가 파라미터 A에 의해 정의된 제1대각 행렬 및 그 거듭 제곱이며, x가 제 1 벡터이고, X가 CZT를 사용하여 제 1 벡터 x에서 계산된 제 2 벡터인 X = W A x로 표현되어, X의 k번째 요소는,
Figure 112020123923220-pat00009
에 대하여,
Figure 112020123923220-pat00010
로 주어지되, AW는 0이 아닌 복소수인, CZT을 반전시키는 방법에 있어서, 상기 방법은: 제2대각 행렬 P, 토플리츠 행렬
Figure 112020123923220-pat00011
및 제3대각 행렬 Q의 곱으로 행렬 W 를 표현하여, CZT가
Figure 112020123923220-pat00012
로 표현되는, 단계; 역 CZT를
Figure 112020123923220-pat00013
로 표현하되, A -1, Q -1,
Figure 112020123923220-pat00014
, 및 P -1는 각각 A, Q,
Figure 112020123923220-pat00015
, P의 역행렬인, 단계; 및 곱
Figure 112020123923220-pat00016
를 오른쪽에서 왼쪽으로 곱하여 제 3 벡터
Figure 112020123923220-pat00017
를 계산하여 역 CZT를 계산하는 단계를 포함한다.
제 1 벡터 x의 각 요소는 제 3 벡터
Figure 112020123923220-pat00018
의 대응하는 요소와 실질적으로 동일하다.
제 1 벡터 x의 적어도 하나의 요소는 제 3 벡터
Figure 112020123923220-pat00019
의 대응하는 요소와 동일하지 않다.
계산하는 단계 이전에, 요소 중 적어도 하나를 수정하는 제 2 벡터 X에 대해 연산을 수행하는 단계를 더 포함한다.
연산은 필터링 연산이다.
O(n2) 이하의 계산 복잡도를 가지며, n = max (M, N)이다.
계산 복잡도는 O(n log n)이다.
행렬
Figure 112020123923220-pat00020
Figure 112020123923220-pat00021
가 제 1 하부 삼각 토플리츠 행렬이고,
Figure 112020123923220-pat00022
Figure 112020123923220-pat00023
의 치환(transpose)과 같은 제 1 상부 삼각 토플리츠 행렬이며,
Figure 112020123923220-pat00024
가 제 2 상부 삼각 토플리츠 행렬이고,
Figure 112020123923220-pat00025
Figure 112020123923220-pat00026
의 치환과 같은 제 2 하부 삼각 토플리츠 행렬이며, u0
Figure 112020123923220-pat00027
이고, n이 M 또는 N의 적어도 하나에 기초한
Figure 112020123923220-pat00028
로 표현될 수 있다.
4 개의 행렬
Figure 112020123923220-pat00029
,
Figure 112020123923220-pat00030
,
Figure 112020123923220-pat00031
Figure 112020123923220-pat00032
각각에 대한 생성 벡터는 다음에 의해 주어진 벡터 u -= (u0, u1, . . ., un-1)로부터 유도될 수 있다.
Figure 112020123923220-pat00033
, 여기서
Figure 112020123923220-pat00034
벡터로
Figure 112020123923220-pat00035
의 곱을 계산하는 단계 동안, 곱셈은 오른쪽에서 왼쪽으로 수행되어 다른 행렬에 의해 곱해지는 행렬이 없다.
본 발명의 실시예에서, 토플리츠 행렬
Figure 112020123923220-pat00036
,
Figure 112020123923220-pat00037
,
Figure 112020123923220-pat00038
또는
Figure 112020123923220-pat00039
중 하나를 벡터에 곱하는 단계는: 토플리츠 행렬을 순환 행렬에 임베딩하되, 순환 행렬은 그것의 생성 벡터에 의해 표현되고, 순환 행렬의 차원은 M 또는 N 중 적어도 하나에 기초하는, 단계; 순환 행렬의 열 수와 동일한 길이를 갖는 패딩된 벡터를 생성하기 위해 곱셈 전에 벡터를 0으로 패딩하는 단계; 순환 행렬을 패딩된 벡터와 곱함으로써 곱 벡터를 계산하는 단계; 및 토플리츠 행렬이 임베딩된 순환 행렬의 행에 대응하는 곱 벡터의 요소를 포함하는 결과 벡터를 추출하는 단계를 포함한다.
순환 행렬은 정방 행렬이고, 그리고 순환 행렬의 행의 수는 2의 거듭 제곱이다.
토플리츠 행렬
Figure 112020123923220-pat00040
,
Figure 112020123923220-pat00041
,
Figure 112020123923220-pat00042
또는
Figure 112020123923220-pat00043
중 적어도 하나를 벡터에 곱하는 단계는 벡터와 곱하기 전에 행렬의 푸스타일니코프 분해를 수행하는 단계를 포함한다.
토플리츠 행렬
Figure 112020123923220-pat00044
,
Figure 112020123923220-pat00045
,
Figure 112020123923220-pat00046
또는
Figure 112020123923220-pat00047
중 하나 이상을 벡터에 곱하는 단계는: 생성 벡터를 0으로 패딩함으로써, 토플리츠 행렬을 M 또는 N 중 적어도 하나에 기초한 차원을 갖는 확장된 토플리츠 행렬에 임베딩하는 단계; 토플리츠 행렬에 0을 곱한 벡터를 패딩하여 확장된 토플리츠 행렬의 열 수와 길이가 같은 패딩된 벡터를 생성하는 단계; 확장된 토플리츠 행렬을 푸스타일니코프 분해를 사용하여 순환 행렬 및 기울기 순환 행렬의 합으로 표현하는 단계; 순환 행렬을 패딩된 벡터에 곱하고, 기울기 순환 행렬을 패딩된 벡터에 곱하며, 2 개의 결과 벡터를 더하여 패딩된 결과 벡터를 생성하는 단계; 및 토플리츠 행렬이 임베딩된 확장된 토플리츠 행렬의 행에 대응하는 패딩된 결과 벡터의 요소를 유지함으로써 패딩된 결과 벡터로부터 결과 벡터를 추출하는 단계를 더 포함한다.
확장된 토플리츠 행렬의 행 수 및 열 수는 2의 거듭 제곱이다.
행렬
Figure 112020123923220-pat00048
Figure 112020123923220-pat00049
중 어느 것도 상기 방법의 수행 동안 메모리에 완전히 저장되지 않는다.
상기 방법을 수행하기 위해 O(n) 개 이하의 메모리가 요구되고, n = max (M, N) 이다.
MN과 같다.
MN과 같지 않다.
제 1 벡터 x는 오디오 신호로부터 유도된다.
오디오 신호는 음성 신호를 포함한다.
오디오 신호는 소나 신호 또는 초음파 신호 중 적어도 하나를 포함한다.
제 1 벡터 x는 이미지 신호로부터 유도된다.
이미지 신호는 컴퓨터 단층 촬영(CT) 신호, 양전자 방출 단층 촬영(PET) 신호 또는 자기 공명 영상(MRI) 신호 중 적어도 하나를 포함한다.
제 1 벡터 x는 레이더 기반 센서에 의해 수신된 신호로부터 유도된다.
제 1 벡터 x는 레이더 기반 센서로 전송되는 신호를 생성하는 데 사용된다.
제 2 벡터 X는 동일한 파라미터 AW를 갖는 CZT를 사용하여 특정 제 1 벡터 x로부터 계산되지 않는다.
본 발명의 실시예에서, AW가 0이 아닌 복소수 및
Figure 112020123923220-pat00050
인 공식
Figure 112020123923220-pat00051
의 로그 나선 컨투어를 커버하기 위해, 하나 이상의 경우에, 고속 푸리에 변환(FFT) 또는 역 FFT(IFFT) 중 적어도 하나를 사용하여 계산 시스템의 범위를 확장하는 방법 으로서, 적어도 하나의 경우에서, IFFT 또는 FFT 대신에 역처프 Z-변환 (ICZT)을 이용하는 단계를 포함한다.
ICZT는 M x N의 차원을 갖는 반데몬드 행렬로 표현될 수 있되, 계산 시스템에서 ICZT를 이용하는 계산 복잡도는 O(n2) 이하이고 n = max(M, N)이다.
계산 복잡도는 O (n log n)이다.
계산 시스템은 ICZT의 수행 중에 O(n) 개 이하의 메모리를 사용한다.
M x N의 차원을 갖는 반데몬드 행렬로 표현될 수 있는 처프 Z-변환 (CZT)을 반전시키는 계산 시스템의 효율을 증가시키는 방법으로서, CZT를 반전시키는 방법을 이용하는 단계를 포함하되, 상기 방법은 n = max(M, N) 인 O(n2) 이하의 계산 복잡도를 가지며, CZT는
Figure 112020123923220-pat00052
인 공식
Figure 112020123923220-pat00053
를 통하여 로그 나선 컨투어를 정의하는 0이 아닌 2 개의 복소수 AW에 의해 파라미터화 될 수 있다.
계산 시스템은 역 CZT를 계산하는 동안 O(n) 개의 메모리를 요구하지 않는다.
CZT를 반전시키기 위한 방법은 O(n log n)의 계산 복잡도를 갖는다.
본 발명의 실시예에서, 하나 이상의 경우에,
Figure 112020123923220-pat00054
인 공식
Figure 112020123923220-pat00055
를 통하여 로그 나선 컨투어를 정의하는 두개의 0이 아닌 복소수 AW에 의해 파라미터화될 수 있는 처프 Z-변환(CZT) 또는 역 처프 Z-변환(ICZT), CZT, ICZT 또는 둘 다 중 적어도 하나를 계산하는 계산 시스템의 수치 정확도를 개선하는 방법으로서,
Figure 112020123923220-pat00056
일 때, 상기 방법은, 적어도 하나의 경우에, 컨투어의 시작점과 끝점이 교환되도록 로그 나선 컨투어의 방향을 반전시키는 단계 및 CZT의 출력 벡터, ICZT의 입력 벡터, 또는 CZT의 출력 벡터 및 ICZT의 입력 벡터 둘 모두의 요소의 순서가 반전된다.
본 발명의 실시예에서, 길이 M의 주파수 도메인 벡터 X를 길이 N의 시간 도메인 벡터 x로 변환하는 방법에 있어서, 시간 도메인 벡터 x를 계산하기 위해 오른쪽에서 왼쪽으로 곱셈을 수행하여
Figure 112020123923220-pat00057
로 표현될 수 있는 역 처프 Z-변환 (ICZT)을 계산하는 단계를 포함하되,
Figure 112020123923220-pat00058
은 파라미터 A 및 그 거듭 제곱에 의해 정의된 제 1 대각 행렬이고,
Figure 112020123923220-pat00059
은 파라미터 W와 그 거듭 제곱에 기반한 제 2 대각 행렬이며,
Figure 112020123923220-pat00060
는 제 1 하부 삼각 토플리츠 행렬이고,
Figure 112020123923220-pat00061
Figure 112020123923220-pat00062
의 치환과 동일한 제1 상부 삼각 토플리츠 행렬이며,
Figure 112020123923220-pat00063
는 제 2 상부 삼각 토플리츠 행렬이고,
Figure 112020123923220-pat00064
Figure 112020123923220-pat00065
의 치환과 동일한 제 2 하부 삼각 토플리츠 행렬이며,
Figure 112020123923220-pat00066
은 파라미터 W와 그 거듭 제곱에 기반한 제 3 대각 행렬이고, 그리고 파라미터 AW
Figure 112020123923220-pat00067
에 대한 공식
Figure 112020123923220-pat00068
를 통하여 로그 나선 컨투어를 정의하는 0이 아닌 복소수이고, 그리고
Figure 112020123923220-pat00069
Figure 112020123923220-pat00070
이며, n은 M 또는 N의 적어도 하나에 기초한다.
주파수 도메인 벡터 X W 가 복소 파라미터 W 및 그 거듭 제곱에 의해 정의된 반데몬드 행렬이고 A가 복소 파라미터 A 및 그 거듭제곱에 기초한 제 4 대각 행렬인
Figure 112020123923220-pat00071
로 표현되어 벡터 X의 k 번째 요소가
Figure 112020123923220-pat00072
에 대하여
Figure 112020123923220-pat00073
로 주어지고, 그리고
Figure 112020123923220-pat00074
가 길이 N의 제 2 시간 도메인 벡터이다.
행렬 W 는 제 5 대각 행렬 P, 토플리츠 행렬
Figure 112020123923220-pat00075
및 제 6 대각 행렬 Q의 곱으로 표현될 수 있어 주파수 도메인 벡터 X가 처프 Z-변환(CZT)으로 표현될 수 있되,
Figure 112020123923220-pat00076
이다.
주파수 도메인 벡터 X는 동일한 파라미터 AW 를 갖는 CZT를 사용하여 특정 시간 도메인 벡터 x로부터 계산되지 않는다.
상기 방법의 수행 동안 O(n) 개 이하가 메모리에 저장되고, n = max (M, N) 이다.
행렬
Figure 112020123923220-pat00077
Figure 112020123923220-pat00078
중 어느 것도 상기 방법의 수행 동안 메모리에 완전히 저장되지 않는다.
상기 방법의 계산 복잡도는 O(n2) 이하이고, n = max (M, N)이다.
계산 복잡도는 O (n log n)이다.
본 발명의 실시예에서, 길이 M의 주파수 도메인 벡터 X를 저장하도록 구성된 메모리 장치; 및 ICZT (Inverse Chirp Z-Transform)를 사용하여 주파수 도메인 벡터 X를 시간 도메인 벡터 x에 매핑하도록 구성된 프로세서;를 포함하되, ICZT는
Figure 112020123923220-pat00079
로 표현될 수 있고; 그리고 프로세서는 길이 N의 시간 도메인 벡터 x를 계산하기 위해 ICZT의 행렬 곱을 오른쪽에서 왼쪽으로 수행하되,
Figure 112020123923220-pat00080
은 파라미터 A 및 그 거듭 제곱에 의해 정의된 제 1 대각 행렬이고,
Figure 112020123923220-pat00081
은 파라미터 W와 그 거듭 제곱에 기반한 제 2 대각 행렬이며,
Figure 112020123923220-pat00082
는 제 1 하부 삼각 토플리츠 행렬이고,
Figure 112020123923220-pat00083
Figure 112020123923220-pat00084
의 치환과 동일한 제1 상부 삼각 토플리츠 행렬이며,
Figure 112020123923220-pat00085
는 제 2 상부 삼각 토플리츠 행렬이고,
Figure 112020123923220-pat00086
Figure 112020123923220-pat00087
의 치환과 동일한 제 2 하부 삼각 토플리츠 행렬이며,
Figure 112020123923220-pat00088
은 파라미터 W와 그 거듭 제곱에 기반한 제 3 대각 행렬이고, X는 주파수 도메인 벡터이며; 그리고 파라미터 AW
Figure 112020123923220-pat00089
에 대한 공식
Figure 112020123923220-pat00090
를 통하여 로그 나선 컨투어를 정의하는 0이 아닌 복소수이고, 그리고
Figure 112020123923220-pat00091
Figure 112020123923220-pat00092
이며, n은 M 또는 N의 적어도 하나에 기초한다.
4 개의 행렬
Figure 112020123923220-pat00093
,
Figure 112020123923220-pat00094
,
Figure 112020123923220-pat00095
Figure 112020123923220-pat00096
각각에 대한 생성 벡터는 다음에 의해 주어진 벡터 u -= (u0, u1, . . ., un-1)로부터 유도될 수 있다.
Figure 112020123923220-pat00097
, 여기서
Figure 112020123923220-pat00098
신호를 수신하기 위한 입력 장치를 더 포함하고, 프로세서는 입력 장치에 연결되며, 프로세서는 신호를 시간 도메인 벡터
Figure 112020123923220-pat00099
로 변환하도록 구성되고, 그리고 프로세서는 처프 Z-변환을 사용하여 시간 도메인 벡터
Figure 112020123923220-pat00100
로부터 주파수 도메인 벡터 X를 생성한다.
프로세서는 ICZT를 사용하여 주파수 도메인 벡터 X를 시간 도메인 벡터 x에 매핑하기 전에 그 요소들 중 적어도 하나를 수정하는 주파수 도메인 벡터 X에 대한 연산을 수행하도록 추가로 구성될 수 있다.
프로세서는 ICZT를 사용하여 주파수 도메인 벡터 X를 시간 도메인 벡터 x에 매핑하는 동안 메모리 장치는 각 행렬
Figure 112020123923220-pat00101
Figure 112020123923220-pat00102
의 모든 요소를 저장하지 않는다.
프로세서는 증가된 부동 소수점 정밀도를 사용하여 계산을 수행할 수 있다.
프로세서는 32 비트보다 큰 부동 소수점 수를 사용할 수 있다.
프로세서가 ICZT를 사용하여 주파수 도메인 벡터 X를 시간 도메인 벡터 x에 매핑하는 동안 메모리 장치는 O(n) 개 이하의 메모리를 사용하고, n = max (M, N) 이다.
프로세서는 ICZT를 사용하여 주파수 도메인 벡터 X를 시간 도메인 벡터 x에 매핑하는 동안 O(n2) 이하 또는 더 적은 원시 연산을 수행하고, n = max (M, N)이다.
프로세서는 맵핑 동안 O(n log n) 연산을 수행한다.
시스템은 개인용 컴퓨터(PC), SoC(system-on-a-chip), ASIC(application-specific integrated circuit)을 포함하는 시스템, 및 FPGA(field-programmable gate array), 또는 GPU(Graphics Processing Unit)를 포함하는 시스템 중 적어도 하나이다.
주파수 도메인 벡터 X는 동일한 파라미터 AW를 갖는 처프 Z-변환을 사용하여 특정 시간 도메인 벡터 x로부터 계산되지 않는다.
본 명세서에 포함되어 본 명세서의 일부를 형성하는 첨부 도면은 본 발명의 여러 측면을 예시하고, 상세한 설명과 함께 본 발명의 원리를 설명하는 역할을 한다.
도면에서:
도 1a-도 1b는 각각 32 및 64 포인트를 갖는 2 개의 로그 나선 컨투어의 예를 도시하며, 여기서 각 컨투어의 시작은 채워지지 않은 원으로 표시된다;
도 2는도 1a-1b에 도시된 것과 같은 형상을 갖지만 상이한 수의 포인트 M을 갖는 컨투어 및 상이한 부동 소수점 정밀도를 사용하는 계산에 대해 CZT를 수행하고 ICZT를 수행하기 위한 수치 정확도의 예시를 제공하는 차트이다;
도 3은 상이한 유형의 구조화된 행렬에 대한 생성 벡터 및 행렬 형상의 예시를 제공하는 차트이다;
도 4a-도4b는 FFT 또는 IFFT에 의해 사용되는 고정 크기 복소 지수와 CZT 또는 ICZT에 의해 사용될 수 있는 지수적으로 증가 또는 지수적으로 감소하는 복소 지수 사이의 차이를 나타내는 예를 제공한다;
도 5a-도 5d는 점들이 단위 원 외부, 단위 원 내부에 위치하고, 단위 원 외부에서 시작하여 내부에서 끝나고, 단위 원 내부에서 시작하여 외부에서 끝나는 로그 나선 컨투어의 예를 도시한다;
도 6a-도 6c는 각각 90도, 180도 및 360도에 걸쳐있는 단위 원에 점이 위치된 로그 나선 컨투어의 예를 도시한다;
도 7a-도7b는 각각 2 개의 360도 회전 및 5 개의 360도 회전에 걸쳐있는 로그 나선 컨투어의 예를 도시한다.
본 발명이 특정한 바람직한 실시예와 관련하여 설명될 것이지만, 본 발명을 그러한 실시예로 제한하려는 의도는 없다. 반대로, 의도는 첨부된 청구 범위에 의해 정의된 바와 같이 본 발명의 사상 및 범위 내에 포함된 모든 대안, 수정 및 등가물을 포함하는 것이다.
본 개시의 실시예는
Figure 112020123923220-pat00103
에 대한 ICZT를 구현하는 효율적인 O(n log n) ICZT 알고리즘을 설명한다. ICZT는 단위 원 대신 복소 평면의 로그 나선 컨투어에 샘플 포인트를 분배할 수 있게 함으로써 역 고속 푸리에 변환 (IFFT)을 일반화한다. 2개의 예시적인 로그 나선 컨투어가 도 1a-1b에 도시되어있다. 샘플 포인트가 단위 원에 없을 때마다, 해당 주파수 성분이 지수적으로 증가 또는 감소한다. 도 4a-4b는 FFT/IFFT 및 CZT/ICZT에 의해 사용되는 증가, 감소 및 일정한 크기의 주파수 성분의 예를 도시한다.
ICZT 알고리즘은 CZT 공식을 구조화된 행렬의 곱으로 표현하고 행렬 방정식을 반전시키는 방법을 찾아 파생되었다. 보다 구체적으로, ICZT를 계산하는 것은 반데몬드 행렬 W 의 특별한 경우를 반전시키는 것으로 감소된다. 이것은 W 에서 파생된 토플리츠 행렬
Figure 112020123923220-pat00104
의 특별한 경우를 반전시킴으로써 달성될 수 있다.
구조화된 행렬은 총 요소 수보다 적은 수의 파라미터로 설명할 수 있는 행렬이다. 구조화된 행렬의 예로는 토플리츠(Toeplitz), 한켈(Hankel), 반데몬드(Vandermonde) 및 코치(Cauchy) 행렬을 포함한다. 다른 예로는 순환(circulant), 기울기 순환(skew-circulant) 및 DFT를 포함한다. 대각 행렬은 구조화된 행렬로 볼 수도 있다. 도 3은 이들 구조화된 행렬 중 일부의 일반적인 형상을 도시한다. 도 3에 도시된 예는 3 x 3 행렬이다. 또한, 도 3은 각각의 행렬을 생성하는데 사용될 수 있는 생성 벡터 (들)를 도시한다. 대부분의 경우, 이들은 행렬의 첫 번째 행과 첫 번째 열을 지정하는 rc로 표시된다.
고버그와 시멘컬(Gohberg and Semencul)은 토플리츠 행렬의 역함수가 토플리츠 행렬의 두 곱의 차이를 사용하여 표현될 수 있음을 보여 주었다. 이 연구는 I. Gohberg et al.,"유한 토플리츠 행렬과 그 연속적인 아날로그의 반전" issled, 2 (1) : 201-233, 1972 및 William Trench,"유한 토플리츠 행렬의 반전 알고리즘", Journal of the Society for Industrial and Applied Mathematics, 12(3):515-522, 1964 (두개의 문헌이 본 명세서에 전체적으로 참고로 포함됨)에서 발견될 수 있다. 문헌에서, 이 결과는 종종 "고버그-시멘컬 공식"이라고 한다. 이 공식에서 4 개의 행렬은 상부 삼각 또는 하부 삼각 토플리츠이며 두 벡터 uv에 의해 생성된다. ICZT에서, 반전될 토플리츠 행렬은 대칭이다. 이것은 하나의 생성 벡터, 즉 벡터 u만을 사용하여 반전을 표현하는 고버그-시멘컬 공식의 단순화된 버전으로 이어진다.
본 발명자들은 ICZT 경우에 복소수 W의 함수로서 생성 벡터 u를 정의하는 공식을 도출하는 것이 가능하다고 결정했다. 이 공식은 효율적인 ICZT 알고리즘으로 이어졌다. 이 알고리즘은 전체 토플리츠 행렬을 메모리에 저장하지 않고 O(n log n)에서 수행될 수 있는 벡터와 토플리츠 행렬을 곱하는 단계를 포함한다. 부록 C, D 및 E는이러한 곱(product)을 계산할 수 있는 이러한 참조를 기반으로 세 가지 알고리즘을 구현한다. 이러한 각 알고리즘은 ICZT 알고리즘의 빌딩 블록으로 사용될 수 있다. 부록 B에 명시된 FFT (Fast Fourier Transform) 알고리즘은 이 세 가지 알고리즘 각각에 사용된다.
광범위한 영향
이산 푸리에 변환 (DFT)과 고속 푸리에 변환 (FFT)을 사용한 효율적인 구현은 다양한 최신 애플리케이션에 깊이 내장되어 있다. CZT는 DFT의 일반화이고 ICZT는 역 DFT의 일반화이기 때문에, 본 발명의 잠재적인 애플리케이션의 수는 매우 많다. 지금까지, CZT 알고리즘 만이 FFT와 동일한 계산 복잡도, 즉 O(n log n)를 가졌다. 본 개시는 역 FFT (IFFT)와 동일한 복잡도를 갖는 ICZT 알고리즘을 소개하며, 이는 또한 O(n log n)이다.
다시 말해서, 본 발명은 역 FFT를 일반화하는 변환을 구현할 뿐만 아니라 새로운 알고리즘이 일반화하는 알고리즘과 동일한 런타임 복잡성을 갖기 때문에 변형 적이다.
ICZT와 함께 사용할 수있는 로그 나선 컨투어는 점이 단위 원 외부, 단위 원 내부, 단위 원 외부에서 시작하여 내부에서 끝나고, 단위 원 내부에서 시작하여 외부에서 끝나는 컨투어를 포함한다. 이러한 컨투어의 예는 도 5a-5d에 도시되어 있다. 또한, 컨투어 점은 단위 원의 부분 호, 예를 들어 90도 호, 180도 호 또는 심지어 완전한 360도 회전을 커버할 수 있으며, 이 경우 컨투어는 FFT/IFFT에 의해 사용되는 컨투어와 동일할 수 있다. 이러한 컨투어의 예는 도 6a-6c에 도시되어있다. 마지막으로 컨투어 점은 다수의 360도 회전을 포함할 수도 있다. 도 7a-7b는 2 회 및 5 회 완전 회전을 갖는 예를 도시한다. 일반적으로, 회전 수는 정수가 아닐 수도 있다.
구조화된 행렬을 사용하여 처프 Z-변환 표현
행렬 형태로 표현된 4 x 4 CZT의 예
이 예는 행렬 표기법을 사용하여 4 개의 입력과 4 개의 출력을 갖는 특수한 경우에 대한 CZT를 설명한다. 이 경우, CZT는 다음 공식을 사용하여 정의된다.
Figure 112020123923220-pat00105
x = (x0, x1, x2, x3)T는 CZT 입력 벡터를 나타내고 X = (X0, X1, X2, X3)T는 출력 벡터를 나타낸다. 이 두 벡터를 사용하여, 4 x 4 CZT는 다음 행렬 공식을 사용하여 표현할 수도 있다.
Figure 112020123923220-pat00106
즉, 예시적인 CZT는 입력 벡터 x에 복소 파라미터 A의 음의 거듭 제곱에 의해 생성 된 대각 행렬(diagonal matrix)을 곱하고 결과 벡터에 반데몬드 행렬 W를 곱하는 것으로 볼 수 있는데, 이는 복소 파라미터 W에 의해 결정된다.
이 예에서, 행렬 W는 다음과 같은 형태를 갖는다:
Figure 112020123923220-pat00107
행렬 W 를 반전 시키면 ICZT가 된다.
반데몬드 행렬 W 를 사용하여 CZT 표현
일반적인 경우, CZT는 일반적으로 다음 공식을 사용하여 정의된다.
Figure 112020123923220-pat00108
이 공식에서 AW는 로그 나선 컨투어와 그 위의 샘플 위치를 정의하는 변환에 대한 복소 파라미터이다. 파라미터 N은 입력 벡터 x의 크기를 지정하는 정수이다. 마지막으로, 파라미터 M은 출력 벡터 X의 크기를 지정하는 정수이다. 일반적으로, NM과 같지 않을 수 있다. 즉, 입력의 차원은 출력의 차원과 같지 않을 수 있다.
CZT는 행렬 형식으로 표현할 수도 있다:
Figure 112020123923220-pat00109
공식 (2.5)는 다음과 같은 단축된 형태로 재 형성될 수 있다 :
Figure 112020123923220-pat00110
여기서 W 는 다음과 같은 M x N 행렬이다:
Figure 112020123923220-pat00111
W 는 반데몬드 행렬인 것을 알 수 있다. 즉, W 의 각 행은 기하학적 진행을 형성한다. 또한, 이들 진행 각각의 공통 비율은 파라미터 W의 대응하는 정수 거듭제곱과 동일하다.
공식 (2.6)에서 A의 음의 정수 거듭제곱은 반데몬드 행렬 W 의 열을 스케일링한다. 행렬 W 는 반데몬드 행렬의 특별한 경우이므로, 아래에 설명된 바와 같이, 대각 행렬과 토플리츠 행렬
Figure 112020123923220-pat00112
의 곱으로 표현될 수 있다.
반데몬드 행렬 W 에서 토플리츠 행렬
Figure 112020123923220-pat00113
의 도출
행렬 W 는 반데몬드 행렬의 특별한 경우이므로, 두 개의 대각 행렬과 토플리츠 행렬
Figure 112020123923220-pat00114
의 곱으로 표현될 수 있다. 다음 공식을 사용하여 행렬 W 의 각 요소에서 파라미터 W의 거듭제곱을 표현할 수 있다.
Figure 112020123923220-pat00115
공식 (2.8)은 (2.4)의 오른쪽이 다음과 같이 표현될 수 있음을 의미한다:
Figure 112020123923220-pat00116
마지막 공식의 항들을 재정렬하여 행렬 곱에보다 쉽게 매핑할 수 있다:
Figure 112020123923220-pat00117
Figure 112020123923220-pat00118
는 M x M 대각 행렬 P 에 매핑된다. 항
Figure 112020123923220-pat00119
는 2 개의 N x N 대각 행렬 Q A 의 곱에 매핑된다. 마지막으로 항
Figure 112020123923220-pat00120
는, 아래에서 도시되는, M x N 토플리츠 행렬
Figure 112020123923220-pat00121
에 매핑된다:
Figure 112020123923220-pat00122
이는 행렬
Figure 112020123923220-pat00123
과 벡터의 곱이 이 연산을 구현하는 다수의 O(n log n) 알고리즘 중 하나를 사용하여 효율적으로 계산될 수 있음을 의미한다 (부록 C, D 및 E 참조). 다시 말해, 공식 (2.10)은 다음과 같은 행렬 형식을 갖는다.
Figure 112020123923220-pat00124
모든 행렬-벡터 곱은 O(n log n)로 계산될 수 있으며, 여기서 n = max (M, N)이다.
요약하면, CZT 알고리즘은 다음 행렬 공식의 효율적인 구현으로 볼 수 있다.
Figure 112020123923220-pat00125
여기서,
Figure 112020123923220-pat00126
,
Figure 112020123923220-pat00127
,
Figure 112020123923220-pat00128
, W 는 (2.7)에 정의된 반데몬드 행렬의 특별한 경우이고,
Figure 112020123923220-pat00129
는 (2.11)에 정의된 토플리츠 행렬의 특수한 경우이다. 전술한 바와 같이, x는 CZT에 대한 입력 벡터이고 X는 CZT로부터의 출력 벡터이다.
토플리츠 행렬의 역수를 표현함
4 x 4 경우에 대한 고버그-시멘컬 공식
T를 4 x 4 토플리츠 행렬로 하자. 즉,
 
Figure 112020123923220-pat00130
여기서 a, b, c, d, f, g 및 h는 행렬 T를 생성하는 7 개의 복소수이다.
고버그-시멘컬 공식은 다음과 같은 공식을 사용하여 난싱귤라(non-singular ) 4 x 4 토플리츠 행렬 T를 반전시킬 수 있다고 기술하고 있다.
 
Figure 112020123923220-pat00131
여기서 u = (u0, u1, u2, u3)는 4 개의 요소 벡터로서
Figure 112020123923220-pat00132
이고, v = (v0, v1, v2, v3) 은 다른 4개의 요소 벡터로서
Figure 112020123923220-pat00133
이다. 이러한 두 벡터 행렬 T를 생성하는 숫자 a, b, c, d, f, g, 및 h 에 의해 결정된다. 그러나, T를 생성하는 7 개의 숫자의 함수로서 명시적으로 표현하는 것은 어려울 수 있다.
요약하면, 공식 (3.2)는 4 개의 구조화 된 행렬을 사용하여 4 x 4 토플리츠 행렬 T 의 역수를 표현한다: 1) 벡터 u 에 의해 생성된 하부-삼각 토플리츠 행렬
Figure 112020123923220-pat00134
, 2) 벡터 v의 역수에 의해 생성된 상부-삼각 토플리츠 행렬
Figure 112020123923220-pat00135
, 3) 벡터 (0, v0 , v1, v2)에 의해 생성된 하부-삼각 토플리츠 행렬
Figure 112020123923220-pat00136
로서, 이는 v 를 한 요소만큼 오른쪽으로 이동하여 얻은 것, 4) 벡터 (0, u3, u2, u1)에 의해 생성된 상부-삼각 토플리츠 행렬
Figure 112020123923220-pat00137
, 이는 u 의 반전을 한 요소씩 오른쪽으로 이동하여 얻어진 것이다.
고버그-시멘컬 공식의 일반적인 경우
T 를 첫번째 행을 지정하는 벡터 r = (r0, r1, r2, ... , rn-1)과 첫번째 열을 지정하는 벡터 c =(c0, c1, c2, ... , cn-1)에 의해 생성된 N x N 토플리츠 행렬이라 하자. 구체적으로,
Figure 112020123923220-pat00138
토플리츠 행렬 T 의 역행렬 T -1 은 토플리츠 가 아닐 수 있다. 그럼에도 불구하고, 고버그-시멘컬 공식은 상부-삼각 및 하부-삼각 토플리츠 행렬들을 이용하여 T -1 을 표현할 수 있다.
즉, 고버그-시멘컬 공식은 다음 행렬 공식을 만족하는 벡터 u = (u0, u1, u2, ... , un-1) 및 v = (v0, v1, v2, ... , vn-1)가 존재하는 것을 설명하고 있다:
Figure 112020123923220-pat00139
다시 말해, 역행렬 T -1 은 벡터 u 및 벡터 v에 의해 생성되는 구조화 된 행렬로 볼 수 있다. 이 비유는 T -1 에 벡터를 곱하는 것으로 확장된다. 생성 벡터 uv가 결정되면, 행렬 T -1 및 벡터의 곱은 구조화된 행렬 곱셈을 사용하여 (3.4)를 구현함으로써 O(n log n) 에서 계산될 수 있다.
구조화된 행렬을 사용하여 ICZT 표현
공식 (2.13)은 CZT가 다음 토플리츠 행렬인
Figure 112020123923220-pat00140
을 제외한 모든 행렬이 대각선인 행렬-벡터 곱 시퀀스로 감소될 수 있음을 보여 주었다.
Figure 112020123923220-pat00141
이는 ICZT가 대각선 행렬, 역행렬
Figure 112020123923220-pat00142
및 벡터의 곱으로 볼 수 있음을 의미한다 (공식 (2.13) 참조).
고버그-시멘컬 공식을 사용하여
Figure 112020123923220-pat00143
을 생성하는 두 벡터를 uv라고 하자.
Figure 112020123923220-pat00144
행렬
Figure 112020123923220-pat00145
은 대칭이므로, 역
Figure 112020123923220-pat00146
도 대칭이다.
Figure 112020123923220-pat00147
의 공식은 고버그-시멘컬 공식의 특별한 경우이다. n의 처음 몇 개의 값에 대한 역행렬
Figure 112020123923220-pat00148
의 특수한 경우의 조사는 세 가지 유용한 가정을 제안했다. 먼저, 벡터 u
Figure 112020123923220-pat00149
의 첫 번째 열과 같다. 더 공식적으로,
Figure 112020123923220-pat00150
둘째, 벡터 v
Figure 112020123923220-pat00151
의 마지막 열과 같다.
Figure 112020123923220-pat00152
셋째, 벡터 v는 벡터 u의 반전(reverse)과 같다.
Figure 112020123923220-pat00153
다시 말하면, 벡터 u만이 구조화된 행렬 곱을 사용하여 역행렬
Figure 112020123923220-pat00154
에 벡터를 곱할 수 있도록 결정될 필요가 있다.
벡터 u를 계산하기 위한 명시적 공식을 도출하는 한 가지 접근법은 처음 몇 개의 n 값에 대해 특수한 경우에서 도출하는 것이다. 이러한 유도가 성공하면 각 유한 n에 대해 결과 공식을 사용할 수 있어야 한다. uv를 결정하므로, 고버그-시멘컬 공식과 구조화된 행렬곱을 사용하여 ICZT 알고리즘을 공식화하기에 충분하다.
토플리츠 행렬
Figure 112020123923220-pat00155
를 반전시키기 위한 공식의 특별한 경우
n = 1에 대한 특별한 경우
n = 1이라고 가정하자. 그러면,
Figure 112020123923220-pat00156
는 1과 동일한 단일 숫자로 구성되는 1x1 행렬이다. 보다 공식적으로,
Figure 112020123923220-pat00157
이는 역행렬
Figure 112020123923220-pat00158
도 단일 숫자 1로 구성된 1x1 행렬임을 의미한다, 즉,
Figure 112020123923220-pat00159
Figure 112020123923220-pat00160
의 첫 번째와 마지막 행은 동일하다: 둘 다 1과 동일한 단일 요소로 구성된다. 보다 공식적으로,
Figure 112020123923220-pat00161
이것은 고버그-시멘컬 공식의 축퇴된(degenerate) 특별한 경우를 초래한다 :
Figure 112020123923220-pat00162
n = 2에 대한 특별한 경우
n = 2라고 가정하자. 그러면,
Figure 112020123923220-pat00163
는 다음 공식으로 지정된 2 x 2 행렬이다.
Figure 112020123923220-pat00164
이는 각각의
Figure 112020123923220-pat00165
에 대해 잘 정의되어 있다.
이 경우에, 역행렬
Figure 112020123923220-pat00166
은 또한 2 x 2 행렬이며, 이는 제 1 열 u가 2 요소 벡터, 즉, u = (u0, u1) T 임을 암시한다. 이 요소는 다음 선형 시스템을 해결하여 W의 함수로 표현할 수 있다.
Figure 112020123923220-pat00167
이 식에서, e 0 은 제 1 요소가 1로 설정되고 나머지 요소가 0으로 설정되는 벡터를 나타낸다, 즉,
Figure 112020123923220-pat00168
다시 말해서,
Figure 112020123923220-pat00169
의 첫번째과 벡터 u의 행의 닷-곱(dot-product)은 1과 같아야 하고 그리고
Figure 112020123923220-pat00170
의 두번째 행과 벡터 u의 닷-곱은 0과 같아야 한다.
선형 시스템 (4.13)은
Figure 112020123923220-pat00171
의 네 가지 요소와 u의 두 가지 요소의 항으로 표현될 수 있다. 이는 다음과 같은 확장된 형태의 (4.13)으로 이어진다.
Figure 112020123923220-pat00172
이전 공식은 두 개의 스칼라 선형 방정식 시스템으로 볼 수도 있다.
Figure 112020123923220-pat00173
이들 공식 둘다는
Figure 112020123923220-pat00174
일 때마다 잘 정의된다.
Figure 112020123923220-pat00175
은 (4.17)의 양변에서 뺄 수 있으며, 이는 W 및 u0의 함수로서 u1 의 값에 대한 공식을 유도한다:
Figure 112020123923220-pat00176
이전 공식의 오른쪽을 (4.16)에 대입할 수 있다. 결과적으로 u0W 에만 의존하는 공식이 생성된다.
Figure 112020123923220-pat00177
이전 공식의 양변에
Figure 112020123923220-pat00178
를 곱하면 W의 함수로 u0 값에 대한 공식이 생성된다:
Figure 112020123923220-pat00179
이 값을 (4.18)의 오른쪽에 대입하면 W의 함수로 u1 값을 표현하는 공식이 생성된다.
Figure 112020123923220-pat00180
요약하면, 2 x 2 경우에 역행렬
Figure 112020123923220-pat00181
의 첫번째 열을 지정하는 열 벡터 u는 파라미터W의 다음 함수로 표현될 수 있다.
Figure 112020123923220-pat00182
벡터 vu의 요소를 반전하여 얻을 수 있다.
Figure 112020123923220-pat00183
역행렬
Figure 112020123923220-pat00184
에 대한 닫힌 형태의 표현은 uv 에 대한 표현을 결합하여 도출할 수 있다.
Figure 112020123923220-pat00185
이러한 특별한 경우, 고버그-시멘컬 공식은 다음과 같은 일련의 행렬 변환을 사용하여 확인될 수 있다. (3.4)에 명시된 공식의 왼쪽과 오른쪽의 차이에서 시작하여 이 차이가 0과 같다는 것을 보여준다.
Figure 112020123923220-pat00186
n = 3의 특수한 경우
이러한 특별한 경우에,
Figure 112020123923220-pat00187
는 3 x 3 토플리츠 행렬이다.
Figure 112020123923220-pat00188
의 각 요소는 변환 파라미터 W의 함수이다. 더 공식적으로,
Figure 112020123923220-pat00189
역행렬
Figure 112020123923220-pat00190
도 3 x 3 행렬이지만 2 x 2 경우와 달리 더 이상 토플리츠 가 아니다. u
Figure 112020123923220-pat00191
의 첫 번째 열로하자. 즉,
Figure 112020123923220-pat00192
2 x 2 경우와 마찬가지로 벡터 u는 다음 선형 시스템에 대한 솔루션이다.
Figure 112020123923220-pat00193
그러나 이전의 경우와 달리, 이 경우 e 0는 두 개의 요소 대신 세 개의 요소로 구성된 열 벡터를 나타낸다. e 0의 첫 번째 요소는 1과 같다. e 0의 나머지 두 요소는 0과 같다. 즉,
Figure 112020123923220-pat00194
선형 시스템 (4.28)은
Figure 112020123923220-pat00195
를 구성하는 9 개의 요소와 u를 구성하는 3 개의 요소의 항으로 표현될 수 있다. 이 확장의 결과는 다음과 같다:
Figure 112020123923220-pat00196
이 선형 시스템은 또한 3 개의 미지수를 갖는 3 개의 공식 시스템을 사용하여 스칼라 형태로 표현될 수 있다. 이 세 방정식 각각의 왼쪽은
Figure 112020123923220-pat00197
행과 벡터 u 사이의 닷-곱과 같다. 오른쪽은 e 0의 해당 요소와 같다. 더 공식적으로,
Figure 112020123923220-pat00198
이 선형 공식 시스템을 풀면 벡터 u를 파라미터 W의 함수로 표현하는 공식이 생기며, 이는 아래에 도시되어 있다:
Figure 112020123923220-pat00199
역행렬
Figure 112020123923220-pat00200
의 형식은 다음과 같다.
Figure 112020123923220-pat00201
벡터 v
Figure 112020123923220-pat00202
의 마지막 열을 지정하고 행렬의 첫번째 열을 지정하는 벡터 u의 반대 열과 같다. 다시 말해, 위의 공식은 세 가지 가정 (4.4), (4.5) 및 (4.6)을 확인한다.
n의 다른 값에 대해이 과정을 반복하면 u를 결정하는 일반 공식을 도출할 수 있다. 다음 섹션에서는이 공식에 대해 설명한다.
토플리츠 행렬
Figure 112020123923220-pat00203
의 반전을 위한 일반 공식
일반적인 경우
Figure 112020123923220-pat00204
의 첫번째 열을 지정하는 벡터 u의 요소는 다음 공식을 사용하여 계산할 수 있다.
Figure 112020123923220-pat00205
k에 대해, uk의 값은 (4.36)의 오른쪽 분모에 나타나는 다항식의 곱의 사전 계산 된 값을 사용하여 O(1)에서 계산될 수 있다. 이 값은 O(n)에서 실행되는 별도의 루프에서 계산된다.
uv와 같은 그 반전의 결과 값을 고버그-시멘컬 공식 (3.4)에 대입하여 역행렬
Figure 112020123923220-pat00206
을 계산할 수 있다. 또한 토플리츠 행렬과 벡터의 곱을 계산하는 효율적인 알고리즘을 위한 생성 벡터로 사용할 수 있다. 이 알고리즘은 실제로 메모리에
Figure 112020123923220-pat00207
을 저장하지 않고 행렬
Figure 112020123923220-pat00208
에 벡터를 곱하는 것을 구현하는 순서로 호출될 수 있다. 결과적으로 O(n log n)에서 실행되는 ICZT 알고리즘이 생성된다.
행렬 형태의 ICZT
다음 공식은 ICZT를 행렬 형태로 보여준다.
Figure 112020123923220-pat00209
여기서,
Figure 112020123923220-pat00210
,
Figure 112020123923220-pat00211
, 및
Figure 112020123923220-pat00212
이다.
즉, 공식은 출력 벡터 X에서 CZT 입력 벡터 x를 계산하는 방법을 보여준다.이 공식은 정방향 변환 공식 (2.13)에서 대각선 행렬을 반전시키고 행렬
Figure 112020123923220-pat00213
을 역
Figure 112020123923220-pat00214
로 대체하여 도출되었다.
공식 (4.37)의 각 행렬은 대각선 행렬이거나 토플리츠 행렬의 곱의 차이로 표현될 수 있다. 공식을 구현하면 ICZT를 계산하기 위한 O(n log n) 알고리즘이 생성되며, 이 알고리즘은 아래 알고리즘 5.2에 나와 있다. 알고리즘은 메모리에 중간 행렬을 저장하지 않고 모든 행렬-벡터 연산의 결과를 계산하기 위해 생성 벡터를 사용하여 모든 행렬 계산을 효율적으로 수행한다. 실행하려면 O(n) 메모리가 필요하다.
실시예
3×3의 경우에, CZT는 다음의 행렬 공식으로 표현될 수 있다 :
Figure 112020123923220-pat00215
이 경우에, ICZT에 대한 확장된 행렬 공식은 다음과 같다:
Figure 112020123923220-pat00216
역행렬
Figure 112020123923220-pat00217
은 (4.35)에 주어진다. 그러나 알고리즘은 이 행렬을 명시적으로 구성하지 않는다. 상술한 바와 같이,
Figure 112020123923220-pat00218
은 다음과 같이 표현될 수 있다.
Figure 112020123923220-pat00219
여기서, 벡터 u = (u0, u1, u2)는 (4.34)에 의해 주워지고 그리고 v = (v0, v1, v2) = (u2, u1, u0)는 u의 반전이다. uv의 이러한 값들을 위해, 공식 (4.40)은 다음의 형태를 갖는다:
Figure 112020123923220-pat00220
또한, 행렬
Figure 112020123923220-pat00221
는 행렬
Figure 112020123923220-pat00222
의 전치와 같고 행렬
Figure 112020123923220-pat00223
는 행렬
Figure 112020123923220-pat00224
의 전치와 같다. 따라서 역행렬
Figure 112020123923220-pat00225
은 다음과 같은 단순화 된 형태로 표현될 수 있다.
Figure 112020123923220-pat00226
또한, 벡터 u의 요소로부터
Figure 112020123923220-pat00227
Figure 112020123923220-pat00228
가 모두 생성될 수 있다.
(4.42)를 (4.37)로 치환하면 ICZT에 대해 다음의 행렬 방정식이 얻어진다.
Figure 112020123923220-pat00229
대신에, 공식 (4.43)은 이러한 행렬의 구조를 이용하여 효율적으로 계산된다. 전술한 바와 같이, 이들 4 개의 토플리츠 행렬은 명시적으로 구성되지 않는다.
CZT 알고리즘 및 ICZT 알고리즘
알고리즘 5.1은 CZT 알고리즘에 대한 의사 코드를 제공한다. 알고리즘은 부록 E에 설명된 컨볼루션 기반 알고리즘인 TOEPLITZMULTIPLYC를 사용하여 토플리츠 행렬에 벡터를 곱한다. 토플리츠 행렬과 벡터의 곱을 계산하기 위한 다른 알고리즘이 대신 사용될 수 있다. 예를 들어 부록 C에 설명된 TOEPLITZMULTIPLYE와 부록 D에 설명된 TOEPLITZMULTIPLYP는 계산 복잡성을 변경하지 않고 알고리즘 5.1의 TOEPLITZMULTIPLYC를 대체할 수 있다.
Figure 112020123923220-pat00230
알고리즘 5.2는 ICZT 알고리즘에 대한 의사 코드를 제공한다. 실제로 메모리에 행렬을 저장하지 않고 역 공식 (4.42)을 구현한다. 알고리즘은 O(n log n)에서 실행되며 여기서 n = max (M, N)이다. 이 구현은 n = M = N의 경우만 지원한다. 위에서 설명한대로 23-26 행에 사용되는 함수 TOEPLITZMULTIPLYC는 알고리즘의 계산 복잡성을 변경하지 않고 TOEPLITZMULTIPLYE 또는 TOEPLITZMULTIPLYP로 대체될 수 있다.
Figure 112020123923220-pat00231
도 2는 변환 크기 M과 계산 중 부동 소수점 숫자에 의해 사용되는 비트 수의 함수로서 ICZT의 수치 정확도를 제공한다. 도 1a-1b의 2 개의 로그 나선 컨투어는 도 2에서 M = 32 및 M = 64에 대응한다. A의 값은 도 2의 모든 행에 대해 1.1로 설정되었다. W의 값은 공식
Figure 112020123923220-pat00232
를 사용하여 결정되었다. CZT에 이어 ICZT를 수행하고 CZT의 입력과 ICZT의 출력 사이의 유클리드 거리를 계산하여 수치 정확도를 계산했다. 최종 정확도는 100 개의 랜덤 입력 벡터를 평균화했다. 도 2의 두번째 열은 변환 행렬의 조건 번호를 보여준다. 높은 조건 수에도 불구하고, 이 문제는 고정밀 부동 소수점 수를 사용하는 경우 큰 M 값에서도 해결할 수 있다.
알고리즘 5.3은 ICZT-RECT 알고리즘에 대한 의사 코드를 제공하며, 이는 N
Figure 112020123923220-pat00233
M 인 경우에 대한 역 알고리즘을 구현한다. 이 알고리즘은 두번째 파라미터를 M으로 설정하여 알고리즘 5.2를 호출한 다음 출력 벡터의 첫번째 N 요소만 반환한다.
Figure 112020123923220-pat00234
ICZT 알고리즘을 설명했으므로, 이제 알고리즘에 대한 애플리케이션이 제공된다. 이와 관련하여, 다음은 ICZT 알고리즘의 유용한 일부 애플리케이션 중 일부이다. 실시예에서, ICZT 알고리즘은 레이더 기반 센서로부터 수신되거나 레이더 기반 센서로 전송된 데이터를 생성 또는 분석하기 위한 애플리케이션에 사용된다. 다른 실시예에서, ICZT 알고리즘은 소나 센서로부터 수신되거나 소나 센서로 전송되는 데이터를 생성 또는 분석하기 위한 애플리케이션에서 사용된다. 또 다른 실시예에서, ICZT 알고리즘은 다른 범위 기반 센서로부터 수신되거나 다른 범위 기반 센서로 전송된 데이터를 생성 또는 분석하기 위한 애플리케이션에서 사용된다.
또 다른 실시예에서, ICZT 알고리즘은 ICZT 알고리즘의 하드웨어 구현에 사용된다. 실시예들에서, 하드웨어 구현은 메모리 장치 및 프로세서, 예를 들어, 개인용 컴퓨터, 칩 (예를 들어, 시스템-온-칩), 주문형 집적 회로 (ASIC)를 포함하는 시스템, 그래픽 처리 장치 (GPU)를 포함하는 시스템 또는 필드 프로그래밍 가능 게이트 배열 (FPGA)을 를 포함하는 다양한 시스템이다.
추가적인 구현에서, ICZT 알고리즘은 행렬을 명시적으로 반전하거나 명시적으로 구성된 선형 시스템을 해결하는 느린 방법을 대체하여 ICZT를 계산해야하는 애플리케이션의 속도를 개선하는 데 사용된다. 또한 ICZT 알고리즘은 기존에 사용된 FFT 및 IFFT를 전체 또는 부분적으로 대체할 수 있다. 이 대체는 계산 시스템의 범위를 확장하여 단위 원 내부 또는 외부에 있을 수 있는 로그 나선 컨투어의 점을 포함 할 수 있다. 또한, ICZT의 계산 전 또는 계산 중에, ICZT에 의해 리턴된 시간 도메인 벡터가 주파수 도메인 벡터를 생성하는데 사용된 시간 도메인 벡터와 다르도록 주파수 도메인 벡터가 수정될 수 있다. 예를 들어, 벡터로부터 특정 요소 또는 주파수를 필터링하는 것과 같이 주파수 도메인 벡터에 대해 연산이 수행될 수 있다.
또한, 실시예에서, ICZT 알고리즘은 의료 이미징 애플리케이션, 예를 들어 CT, PET 또는 MRI에 사용된다. 또한 ICZT 알고리즘은 신호 처리, 신호 분석, 신호 합성, 음성 및 오디오 처리 및 이미지 처리에 사용된다. 신호 처리 애플리케이션에서, CZT 또는 FFT의 입력 벡터는 신호를 샘플링함으로써와 같이 오디오 또는 이미지 신호로부터 도출된 시간 도메인 벡터일 수 있다. CZT 또는 FFT의 출력 벡터는 그 신호들의 주파수 도메인 벡터 표현일 수 있다.
다음의 부록 A-E는 ICZT 알고리즘의 구현에 관한 추가 정보를 제공한다.
부록 A : CZT와 ICZT의 수치 정확도를 향상시키기 위한 로그 나선 컨투어의 방향 반전
이 부록은 계산 변환의 수치 정확도를 향상시키는 CZT 및 ICZT 알고리즘의 대안 버전을 기술한다. 이는
Figure 112020123923220-pat00235
일 때 처프 컨투어의 방향을 반대로 하고
Figure 112020123923220-pat00236
일 때 원래의 방향을 유지함으로써 달성된다. 반전된 컨투어에 대한 파리미터는
Figure 112020123923220-pat00237
Figure 112020123923220-pat00238
이다. 변환 파라미터의 구체적인 값에 따라, 수치 정확도의 향상은 수십 배를 초과 할 수 있다.
알고리즘 A.1은
Figure 112020123923220-pat00239
일 때 컨투어 반전을 수행하는 CZT 알고리즘의 대안 버전에 대한 의사 코드를 제공한다. 알고리즘 A.2는 또한 이 경우에도 컨투어 반전을 수행하는 ICZT 알고리즘의 대안 버전에 대한 의사 코드를 제공한다.
이 알고리즘을 사용하면
Figure 112020123923220-pat00240
일 때 로그 나선이 커지는 처프 컨투어에 대해 CZT와 ICZT의 수치 정확도가 향상될 수 있다. 이 경우, 알고리즘 A.1과 알고리즘 A.2는 처프 컨투어의 방향을 뒤집는다. 또한 이러한 반전은 벡터 X의 요소 순서의 반전을 동반하는데, 이는 알고리즘 A.1의 CZT 출력 벡터와 알고리즘 A.2의 ICZT 입력 벡터이다.
Figure 112020123923220-pat00241
Figure 112020123923220-pat00242
부록 B : FFT 및 역 FFT 알고리즘
이 부록에서는 FFT 알고리즘과 역 FFT 알고리즘에 대해 설명한다. 알고리즘 B.1은 고속 푸리에 변환 (FFT)에 대한 의사 코드를 제공한다. 알고리즘 B.2는 역 고속 푸리에 변환 (IFFT)을 위한 의사 코드를 제공한다. FFT와 IFFT는 모두 O(n log n) 에서 실행된다.
Figure 112020123923220-pat00243
Figure 112020123923220-pat00244
부록 C : 토플리츠 행렬에 벡터 곱하기
이 부록은 토플리츠 행렬에 벡터를 곱하는 대중적인 방법을 설명한다. An x n 토플리츠 행렬로 하고 x를 벡터로 하자. 행렬 A는 첫 번째 행 r과 첫 번째 열 c로 지정되며, r0은 c0과 같다고 가정한다. 이 부록의 예에서는 n이 2의 거듭 제곱이라고 가정한다. 그러나 이 방법은 다른 n 값에 대해 작동하도록 수정할 수 있다. 더 공식적으로,
Figure 112020123923220-pat00245
FFT 기반 알고리즘을 사용하여 곱 y = Ax를 효율적으로 계산하려면 아래에 표시된 것처럼 A를 2n x 2n 순환 행렬
Figure 112020123923220-pat00246
에 포함시킬 수 있다.
Figure 112020123923220-pat00247
벡터 x의 끝에 n이 0으로 채워져 길이 2n의 벡터
Figure 112020123923220-pat00248
가 된다.
Figure 112020123923220-pat00249
Figure 112020123923220-pat00250
Figure 112020123923220-pat00251
의 곱은 O(n log n)에서 FFT 기반 알고리즘을 사용하여 계산될 수 있다. 즉, 목표는 길이 2n의 벡터
Figure 112020123923220-pat00252
를 계산하는 것이며, 이는
Figure 112020123923220-pat00253
와 같다. 더 공식적으로,
Figure 112020123923220-pat00254
Figure 112020123923220-pat00255
의 첫번째 n 요소는 y 의 대응하는 요소, 즉 각
Figure 112020123923220-pat00256
에 대해
Figure 112020123923220-pat00257
와 같다.
FFT와 IFFT를 사용하여 (2n) x (2n) 순환 행렬 B에 길이 2n의 벡터 v를 곱하는 방법 만 보여준다. 행렬 B는 첫번째 열 벡터 b에 의해 생성된다. 더 공식적으로,
Figure 112020123923220-pat00258
이 곱은 원형 컨볼루션 정리에 후속하는 DFT 및 역 DFT를 사용하여 계산될 수 있다. 다시 말해, 곱의 각 원소 (B v) k bv의 원형 컨벌루션에서 k 번째 원소와 같다.
Figure 112020123923220-pat00259
여기서 ×는 요소 별 곱셈을 나타낸다. 따라서,
Figure 112020123923220-pat00260
DFT 및 역 DFT는 FFT 및 역 FFT를 사용하여 계산될 수 있다.
Figure 112020123923220-pat00261
요약하면, N x N 토플리츠 행렬과 n이 2의 거듭 제곱으로 가정되는 벡터의 곱은 다음 6 단계를 사용하여 계산될 수 있다. 1) 첫 번째 열을 연결하여 Toeplitz에서 circulant로 이동, 단일 0, 및 첫 번째 행의 마지막 n-1 요소의 반전; 2) 벡터를 끝단에 n을 0으로 패딩 3) 순환 행렬의 첫 번째 열의 DFT를 계산 4) 패딩된 벡터의 DFT를 계산; 5) 두 DFT를 요소별로 곱함 6) 요소 별 곱의 역 DFT를 계산, 그리고 7) 역 DFT에 의해 계산된 결과 벡터의 처음 n 개의 요소를 반환. FFT 알고리즘을 사용하여 DFT를 계산하고 IFFT 알고리즘을 사용하여 역 DFT를 계산한다. 단계 1)에서, 토플리츠 행렬 또는 순환 행렬은 명시적으로 계산되지 않음에 유의한다. 대신, 생성 벡터 만 필요한 계산을 수행하는 데 사용된다.
알고리즘 C.1은 위에서 설명한 알고리즘에 대한 의사 코드를 제공한다. 이 알고리즘의 계산 복잡도는 O(n log n)이다. 함수의 이름은 TOEPLITZMULTIPLYE이며,'E'는'embedding'의 약자이다.
알고리즘에 FFT 계산을 포함시키는 대신에, FCIRCULANTMULTIPLY를 사용할 수 있다 (아래의 알고리즘 D.2 참조). 그러나 FCIRCULANTMULTIPLY는 각
Figure 112020123923220-pat00262
에 대해
Figure 112020123923220-pat00263
Figure 112020123923220-pat00264
을 계산해야 하기 때문에 FFT 계산 순서보다 O(n) 더 많은 작업을 수행한다.
Figure 112020123923220-pat00265
부록 D : 푸스타일니코프(Pustylnikov's)의 분해를 이용한 토플리츠 벡터 곱
토플리츠 행렬에 벡터를 곱하는 알고리즘은 푸스타일니코프 의 분해를 사용하여 공식화될 수 있다. 이러한 알고리즘은 부록 C에 설명된 대로 토플리츠 행렬을 순환 행렬에 포함하지 않는다. 대신 이 부록에서는 다른 버전의 TOEPLITZMULTIPLY에 대해 설명한다.
이 알고리즘을 보여주는 예가 아래에 나와 있다. A를 첫 번째 행 r과 첫 번째 열 c에 의해 생성된 다음의 4 x 4 토플리츠 행렬이라고 하자.
Figure 112020123923220-pat00266
그러면 A는 다음과 같이 두 행렬의 합으로 분해 될 수 있다.
Figure 112020123923220-pat00267
여기서
Figure 112020123923220-pat00268
는 순환 행렬이고
Figure 112020123923220-pat00269
는 f = -1 (즉, 왜곡 순환 행렬)을 갖는 f-순환 행렬이다. 이 예에서, 이러한 두 행렬의 형식은 다음과 같다.
Figure 112020123923220-pat00270
Figure 112020123923220-pat00271
Figure 112020123923220-pat00272
의 값을 계산하기 위한 공식은 아래에 제공된다.
Figure 112020123923220-pat00273
Figure 112020123923220-pat00274
의 첫 번째 열이라 하자. 즉,
Figure 112020123923220-pat00275
유사하게,
Figure 112020123923220-pat00276
Figure 112020123923220-pat00277
의 첫 번째 열이라 하자. 즉,
Figure 112020123923220-pat00278
그런 다음
Figure 112020123923220-pat00279
Figure 112020123923220-pat00280
의 요소는 다음 공식을 사용하여 계산할 수 있다.
Figure 112020123923220-pat00281
여기서 rA의 첫 번째 행이고 c는 첫 번째 열이다.
알고리즘 D.1은 전술한 알고리즘에 대한 의사 코드를 제공한다. 함수의 이름은 TOEPLITZMULTIPLYP이다. 여기서 'P'는'Pustylnikov'의 약자이다. 27 행과 28 행은 아래에 설명된 알고리즘 D.2를 호출한다. 알고리즘은 O(n log n) 시간으로 실행된다.
Figure 112020123923220-pat00282
알고리즘 D.2는 알고리즘 D.l에서 사용된 FCIRCULANTMULTIPLY (f-순환 행렬에 벡터를 곱하기 위한) 함수에 대한 의사 코드를 제공한다. 그것은 O(n log n)에서 실행된다.
Figure 112020123923220-pat00283
부록 E : FFT 기반 컨볼루션을 갖는 토플리츠 벡터 곱
알고리즘 E.1은 토플리츠 행렬에 벡터를 곱하기 위한 또 다른 알고리즘에 대한 의사 코드를 도시한다. 이 경우 함수 이름은 TOEPLITZMULTIPLYC이다. 여기서 'C'는 convolution의 약자이다. 알고리즘의 계산 복잡도는 O (n log n)이다. 이 알고리즘은 부록 C에 설명된 접근 방식과 유사하게 순환 임베딩(circulant embedding)의 형태로 해석될 수 있다.
Figure 112020123923220-pat00284
알고리즘 E.2는 이산 컨볼루션을 계산하기 위한 O(n log n) 방법인 FFT 기반 컨볼루션 알고리즘에 대한 의사 코드를 제공한다. 그것은 알고리즘 E.1.에서 사용되었다.
Figure 112020123923220-pat00285
본 명세서에 인용된 간행물, 특허 출원 및 특허를 포함한 모든 참고 문헌은 각각의 참고 문헌이 개별적으로 그리고 구체적으로 참고로 포함되고 본원에 전체적으로 제시된 것과 동일한 정도로 참고로 포함된다.
본 발명을 설명하는 맥락에서 (특히, 다음의 청구범위 맥락에서) 용어 "하나의(a)" 및 "하나의(an)" 및 "상기의(the)"및 이와 유사한 지시어의 사용은, 본 문서에 달리 명시되거나 문맥 상 명백히 모순되지 않는 한, 단수형 및 복수형을 모두 포함하는 것으로 해석되어야 한다. "포함하는(comprising)", "갖는(having)", "포함하는(including)" 및 "함유하는(containing)" 이라는 용어는 달리 언급되지 않는 한 개방형 용어로 해석되어야한다 (즉, "포함하지만 이에 제한되지 않는"을 의미 함). 본 명세서에서 값의 범위의 언급은 단지 다르게 지시되지 않는 한, 범위 내에 속하는 각각의 개별 값을 개별적으로 지칭하는 속기 방법으로서 기능하도록 의도되며, 각각의 개별 값은 마치 본원에서 개별적으로 인용된 것처럼 명세서에 통합된다. 본 명세서에 기술된 모든 방법은 본 명세서에서 달리 지시되거나 문맥 상 명백하게 모순되지 않는 한 임의의 적합한 순서로 수행될 수 있다. 본원에 제공된 임의의 모든 예 또는 예시적인 언어 (예를 들어, "와 같은")의 사용은 단지 본 발명을 더 잘 설명하기 위한 것이며 달리 청구되지 않는 한 본 발명의 범위를 제한하지 않는다. 본 명세서의 어떤 언어도 본 발명의 실시에 필수적인 것으로 주장되지 않은 요소를 나타내는 것으로 해석되어서는 안 된다.
본 발명을 수행하기 위해 본 발명자들에게 알려진 최상의 모드를 포함하여 본 발명의 바람직한 실시예가 본 명세서에 기술되어 있다. 이들 바람직한 실시예의 변형은 상기 설명을 읽으면 당업자에게 명백해질 수 있다. 본 발명자들은 당업자가 이러한 변형을 적절히 채택 할 것을 기대하며, 본 발명자들은 본 명세서에서 구체적으로 설명된 것과 다르게 본 발명을 실시하고자 한다. 따라서, 본 발명은 적용 가능한 법률에 의해 허용되는 바와 같이 여기에 첨부된 청구 범위에 인용된 주제의 모든 수정 및 등가물을 포함한다. 또한, 본 명세서에서 달리 지시되거나 문맥 상 명백하게 모순되지 않는 한, 모든 가능한 변형에서 상기 설명된 요소의 임의의 조합이 본 발명에 포함된다.

Claims (7)

  1. AW가 0이 아닌 복소수 및
    Figure 112020123923220-pat00286
    인 공식
    Figure 112020123923220-pat00287
    의 로그 나선 컨투어를 커버하기 위해, 하나 이상의 경우에, 고속 푸리에 변환(FFT) 또는 역 FFT(IFFT) 중 적어도 하나를 사용하여 메모리 장치 및 프로세서를 포함하는 계산 시스템의 범위를 확장하는 방법으로서, 프로세서에 의해, 적어도 하나의 경우에서, IFFT 또는 FFT 대신에 역처프 Z-변환(ICZT)을 이용하는 단계를 포함하고,
    ICZT는 M x N의 차원을 갖는 반데몬드 행렬로 표현될 수 있되, 계산 시스템에서 ICZT를 이용하는 계산 복잡도는 O(n2) 이하이고 n = max(M, N)인, 방법.
  2. 제 1 항에 있어서,
    계산 복잡도는 O(n log n) 인, 방법.
  3. 제 2 항에 있어서,
    계산 시스템은 ICZT의 수행 중에 O(n) 개 이하의 메모리를 사용하는, 방법.
  4. AW가 0이 아닌 복소수 및
    Figure 112020123923220-pat00288
    인 공식
    Figure 112020123923220-pat00289
    의 로그 나선 컨투어를 커버하기 위해, 하나 이상의 경우에, 고속 푸리에 변환(FFT) 또는 역 FFT(IFFT) 중 적어도 하나를 사용하여 메모리 장치 및 프로세서를 포함하는 계산 시스템의 범위를 확장하는 방법으로서, 프로세서에 의해, 적어도 하나의 경우에서, IFFT 또는 FFT 대신에 역처프 Z-변환 (ICZT)을 이용하는 단계를 포함하는, 방법.
  5. 제 4 항에 있어서,
    ICZT는 M x N의 차원을 갖는 반데몬드 행렬로 표현될 수 있되, 계산 시스템에서 ICZT를 이용하는 계산 복잡도는 O(n2) 이하이고 n = max(M, N)인, 방법.
  6. 제 5 항에 있어서,
    계산 복잡도는 O(n log n) 인, 방법.
  7. 제 6 항에 있어서,
    계산 시스템은 ICZT의 수행 중에 O(n) 개 이하의 메모리를 사용하는, 방법.
KR1020207033268A 2017-07-24 2018-07-24 처프 Z-변환을 O(n log n) 시간 및 O(n) 메모리로 반전시키기 위한 시스템 및 방법 KR102338456B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201762536361P 2017-07-24 2017-07-24
US62/536,361 2017-07-24
KR1020207004589A KR102183973B1 (ko) 2017-07-24 2018-07-24 처프 Z-변환을 O(n log n) 시간 및 O(n) 메모리로 반전시키기 위한 시스템 및 방법
PCT/US2018/043468 WO2019023220A1 (en) 2017-07-24 2018-07-24 SYSTEMS AND METHODS FOR INVERTING Z-TRANSFORMATION OF CHIRP SIGNAL IN O TIME (N LOG N) AND O (N) MEMORY

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020207004589A Division KR102183973B1 (ko) 2017-07-24 2018-07-24 처프 Z-변환을 O(n log n) 시간 및 O(n) 메모리로 반전시키기 위한 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20200133283A KR20200133283A (ko) 2020-11-26
KR102338456B1 true KR102338456B1 (ko) 2021-12-13

Family

ID=65041222

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020207033268A KR102338456B1 (ko) 2017-07-24 2018-07-24 처프 Z-변환을 O(n log n) 시간 및 O(n) 메모리로 반전시키기 위한 시스템 및 방법
KR1020207004589A KR102183973B1 (ko) 2017-07-24 2018-07-24 처프 Z-변환을 O(n log n) 시간 및 O(n) 메모리로 반전시키기 위한 시스템 및 방법

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020207004589A KR102183973B1 (ko) 2017-07-24 2018-07-24 처프 Z-변환을 O(n log n) 시간 및 O(n) 메모리로 반전시키기 위한 시스템 및 방법

Country Status (6)

Country Link
US (2) US20210141856A2 (ko)
EP (1) EP3659052A4 (ko)
JP (1) JP6928208B2 (ko)
KR (2) KR102338456B1 (ko)
CN (1) CN111033499B (ko)
WO (1) WO2019023220A1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009150452A1 (en) * 2008-06-13 2009-12-17 Bae Systems Plc A process and system for determining the position and velocity of an object

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4076960A (en) * 1976-10-27 1978-02-28 Texas Instruments Incorporated CCD speech processor
US5282154A (en) * 1992-06-01 1994-01-25 Thomson Consumer Electronics, Inc. System for determining and repairing instability in an IIR filter suitable for use in deghosting apparatus
US6895421B1 (en) * 2000-10-06 2005-05-17 Intel Corporation Method and apparatus for effectively performing linear transformations
US7296045B2 (en) * 2004-06-10 2007-11-13 Hasan Sehitoglu Matrix-valued methods and apparatus for signal processing
CN100525268C (zh) * 2006-11-15 2009-08-05 重庆邮电大学 一种基于时频变换的ofdm信道估计方法
CN103576147A (zh) * 2012-08-02 2014-02-12 中国科学院电子学研究所 合成孔径雷达大斜视模式下成像方法
US10371732B2 (en) * 2012-10-26 2019-08-06 Keysight Technologies, Inc. Method and system for performing real-time spectral analysis of non-stationary signal
WO2014120178A1 (en) * 2013-01-31 2014-08-07 Hewlett-Packard Development Company, L.P. Data interpolation and resampling
KR101607812B1 (ko) * 2015-07-21 2016-04-01 공주대학교 산학협력단 유한체 GF(2^n)상의 딕슨 기저를 이용한 병렬 곱셈 방법 및 장치
KR101687658B1 (ko) * 2015-11-25 2016-12-19 한국항공우주연구원 처프-지 역변환 방법 및 시스템

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009150452A1 (en) * 2008-06-13 2009-12-17 Bae Systems Plc A process and system for determining the position and velocity of an object

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
등록특허공보 제10-1607812호(2016.04.01.) 1부.*

Also Published As

Publication number Publication date
KR20200133283A (ko) 2020-11-26
JP6928208B2 (ja) 2021-09-01
KR102183973B1 (ko) 2020-12-03
WO2019023220A1 (en) 2019-01-31
US20200159808A1 (en) 2020-05-21
CN111033499A (zh) 2020-04-17
CN111033499B (zh) 2022-07-29
EP3659052A4 (en) 2022-05-04
US20210397674A1 (en) 2021-12-23
KR20200023486A (ko) 2020-03-04
JP2020526852A (ja) 2020-08-31
EP3659052A1 (en) 2020-06-03
US20210141856A2 (en) 2021-05-13

Similar Documents

Publication Publication Date Title
Van der Tol et al. Image Domain Gridding: a fast method for convolutional resampling of visibilities
Blahut Fast algorithms for signal processing
US8880575B2 (en) Fast fourier transform using a small capacity memory
Park Guaranteed-stable sliding DFT algorithm with minimal computational requirements
Ju et al. Derivation and analysis of fast bilinear algorithms for convolution
Argáez et al. Wendland Functions
Plonka et al. Fast fourier transforms
KR102338456B1 (ko) 처프 Z-변환을 O(n log n) 시간 및 O(n) 메모리로 반전시키기 위한 시스템 및 방법
EP0536242A1 (en) A number theory mapping generator for addressing matrix structures
Amerbaev et al. Efficient calculation of cyclic convolution by means of fast Fourier transform in a finite field
Meyer-Baese et al. Fourier transforms
CN110750249B (zh) 一种快速傅里叶变换代码的生成方法及装置
Xu et al. A fast algorithm for the convolution of functions with compact support using Fourier extensions
Ameli et al. Interpolating log-determinant and trace of the powers of matrix A+ t B
Bella et al. Fast inversion of polynomial-Vandermonde matrices for polynomial systems related to order one quasiseparable matrices
Muscat High-Performance Gridding For Radio Interferometric Image Synthesis
Milovich Filon-Clenshaw-Curtis Quadrature with Automatic Tone Removal
Thomas Computing Transforms Using Their Eigenstructure
Olsak et al. On the Usage of the Sparse Fourier Transform in Ultrasound Propagation Simulation
Gueron Methods for fast computation of integral transforms
Gasenko The differential Fourier transform method
Purushotham et al. Twiddle Factor Normalization Based Radix-2k Factorization for Improved Spectral Efficiency in Subcarrier Mapping
Charalampakis Fast Convolution Algorithms
Xue Fast Algorithms and Efficient Convolution Filters Based on the Discrete Hirschman Transform
Boussakta et al. Radix-4 decimation-in-frequency algorithm for the new Mersenne number transform

Legal Events

Date Code Title Description
A107 Divisional application of patent
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant