KR20060061796A - 리코드 radix-2 파이프라인 FFT 프로세서 - Google Patents

리코드 radix-2 파이프라인 FFT 프로세서 Download PDF

Info

Publication number
KR20060061796A
KR20060061796A KR1020067001201A KR20067001201A KR20060061796A KR 20060061796 A KR20060061796 A KR 20060061796A KR 1020067001201 A KR1020067001201 A KR 1020067001201A KR 20067001201 A KR20067001201 A KR 20067001201A KR 20060061796 A KR20060061796 A KR 20060061796A
Authority
KR
South Korea
Prior art keywords
fft
butterfly
multiplier
output
sequence
Prior art date
Application number
KR1020067001201A
Other languages
English (en)
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 KR20060061796A publication Critical patent/KR20060061796A/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

Landscapes

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

Abstract

단일경로 지연 피드백 파이프라인 고속 퓨리에 변환 프로세서가 개시되어 있는데, 이 프로세서는 적어도 한 세트의 트리플릿 FFT 스테이지 수단; radix-2 버터플라이, 피드백 메모리, 승산기를 갖는 제 1 FFT 스테이지 수단; 복소수 계수 예비승산기, radix-2 버터플라이, 피드백 메모리, 선택가능한 유닛 또는
Figure 112006003711709-PCT00063
에 의한 승산기를 갖는 제 2 FFT 스테이지 수단; 그리고 트위들 팩터 분해기술을 사용하여 결정된 계수들을 이용한 복소수 트위들 계수 승산기를 갖는 제 3 FFT 스테이지 수단을 포함한다.
고속 퓨리에 변환(FFT), radix-2, 피드백, 트위들 팩터,

Description

리코드 radix-2 파이프라인 FFT 프로세서{RECODED RADIX-2 PIPELINED FFT PROCESSOR}
본 출원은 여기에서는 참조문헌으로서 언급하는 것으로서 2003년 7월 18일자로 출원한 바 있는 미합중국 임시출원 제 60/487,975 호의 정규출원이다.
본 발명은 파이프라인 FFT 프로세서에 관한 것이다. 특히, 본 발명은 단일 경로 지연 피드백 파이프라인 고속 퓨리에 변환 프로세서에 관한 것이다.
퓨리에 변환은 시간변화신호의 주파수 변화 표시를 얻기 위하여 사용되는 주지의 수학적 연산이다. 역퓨리에 변환은 주파수 변화신호를 시간변화신호로 변환시키는 기술이다. 퓨리에 변환을 통해서 연속적인 함수들에 대한 유용한 해석의 도구를 얻을 수 있는데, 이것은 이산의 함수(discrete function)를 변환시킬 수 없고, 대부분의 응용에서 공통적으로 일어나는, 샘플들의 시퀀스를 변환시킬 수 없다. 이산 퓨리에 변환(Discrete Fourier Transform; DFT)은 이러한 목적을 수행한다.
DFT는 스펙트럴 해석(spectral analysis) 또는 상관 해석(correlation analysis)을 수행하는 장치들을 포함한 많은 디지털 신호-처리 장치들에서 중요한 기능적 요소이다. DFT의 목적은, 다음의 식으로 표현되는 바와 같이, 길이 N의 데이터{x(n)}의 또 다른 시퀀스로 주어진 N 복소수들의 {X(k)}의 시퀀스를 계산하는 것이다.
Figure 112006003711709-PCT00001
여기에서,
Figure 112006003711709-PCT00002
이다.
이러한 식을 통해서 각각의 값 k에 대하여 X(k)의 직접 계산은 N 복소수 승산 및 N-1 복소수 추가를 포함한다. 그러므로, DFT의 모든 N 값들을 계산하는데에는 N2 복소수 승산 및 N2-N 복소수 추가가 필요하다. 식으로부터 얻어지는 이러한 일반형태는 DFT와 연관된 연산상의 복잡성을 분할 및 공략(divide-and-conquer)을 사용하여 분해될 수 있다. 분할 및 공략을 사용함으로써, 데이터 시퀀스를 부분들과 프로세스들로 각각의 부분에서 분리하여 분할한다. 각각의 분리 부분은 추가적으로 분할될 수 있다. 이러한 분해는 기본적인 고속 퓨리에변환(FFT) 연산을 형성하며, 여기에서 가장 일반적으로 사용된 제거 팩터들(decimating factors)은 2 또는 4(DFT의 radix2 또는 radix4 FFT 실행을 유발함)이다. 분할 및 공략에 있어서, DFT의 계산은 DFT가 그것의 radix로 감소될 때까지 점진적으로 짧아지는 길이의 ㅇ완곡한(nested) DFTs로 분할된다. 복소수 평면에서 상 회전을 효과적으로 수행하는 트위들 팩터들은 분할 및 공략 알고리즘 진행으로서 언급된다. radix-2 분해에 대하여, 길이 2(length-2) DFT는 입력 데이터 시퀀스{x(n)} 상에서 수행된다. 길이 2(length-2) DFT의 제 1 스테이지의 결과들은 길이 2(length-2) DFT를 사용하여 결합되고, 그 결과의 값은 적절한 트위들 팩터들을 상기 결과의 값에 곱하여 복소수 평면에서 회전된다. 이러한 과정은 모든 N 값들이 처리되고 최종 출력 시퀀스{x(n)} 가 발생할 때까지 계속된다. 입력 시퀀스가 일련의 작은 시퀀스들로 분해되는 것은 오더 N2 내지 오더 Nlog2N의 복잡성으로부터 DFT를 완결하는 것으로부터 연관된 복잡성을 줄일 수 있다.
많은 사전의 해법들은 FFT 프로세서의 작업처리량을 개선하고 파이프라인 프로세서 기지 아키텍처를 사용하여 FFT 프로세서의 영역 요구조건들에 대한 FFT 잠복(latency)의 균형을 이룬다. 파이프라인 프로세서 아키텍처에 있어서, 초기 관심은 프로세서 아키텍처의 영역 요구조건들을 최소화시키도록 시도하는 동안에 작업 처리량을 증가시키고 잠복을 감소시키는 것이었다. 공통 파이프라인 FFT 아키텍처는 DFT 재조합 계산에 있어서 각각의 단계에 대하여 단일 길이 2(length-2) DFT를 실행함(버터플라이 유닛에서 수행된 radix-2 버터플라이 연산을 사용함)으로써 이것을 달성한다. 재계산 단계에 대하여 하나의 버터플라이 유닛 이하 또는 이상을 실행하는 것이 가능하다. 그러나, 실시간 디지털 장치에 있어서, FFT 프로세서의 연산속도를 입력 데이터 비율에 부합시키기에 충분하다. 만일 데이터 취득 속도가 사이클당 하나의 샘플이면, 재조합 단계당 하나의 버터플라이 유닛을 갖도록 하는 것이 충분하다.
사전의 파이프라인 FFT 아키텍처의 간략한 검토는 여기에서 본 발명에 따라 FFT 프로세서를 가시적으로 위치시키기 위하여 제공된다. 이러한 논의에 있어서, radix-2, radix-4 및 보다 복잡한 장치들을 이행하는 알고리즘들이 커버될 것이다. 입력 또는 출력 오더는 형태가 알고리즘에 대하여 최적이 되도록 가정될 것이다. 만일 다른 오더가 요구되면, 적절한 리오더링 버퍼(reording buffer)가 버퍼의 실행과 연관된 메모리의 비용에 대하여 파이프라인 FFT의 입력 또는 출력에서 제공될 수 있다. 인오더(in-order) 입력을 제공하는 장치들은 데이터가 단번에 하나의 샘플에 도달하고 즉시 처리되는 장치들에 대하여 가장 적합하다. 아웃-오브-오더(out-of-order) 입력은 데이터가 소정의 오더에서 버퍼로부터 취득될 수 있는 버퍼링된 데이터에서 최적이다. 모든 아키텍처들은 DFT의 Decimation-In-Frequency (DIF)를 기초로 한다. 입력 및 출력 데이터는 복소수이고 모든 산수 연산들 또한 복소수이다. radix-2 알고리즘은 N을 power-of-2로 강제 설정한다. radix-4 알고리즘은 N을 power-of-4로 강제 설정하고, radix-8 알고리즘(R23SDF)은 N을 power-of-8로 강제 설정한다. 설명의 명확성을 위하여, 모든 제어 및 트위들 팩터 하드웨어 필요조건들은 생략하였다.
도 1은 종래의 16-포인트 radix-2 다중경로 지연 전환기 (R2MDC) 파이프라인 FFT의 일반적인 실시 예를 나타낸 것이다. 일반적으로, R2MDC는 입력 시퀀스를 2개의 평행한 데이터 흐름으로 나눈다. 각각의 단계에서, 데이터 흐름의 절반이 메모리에서 버퍼링되고 데이터 흐름의 나머지 절반과 평행하게 처리된다. R2MDC 아키텍처에 있는 승산기들과 가산기들은 50%가 활용된다. R2MDC 아키텍처는
Figure 112006003711709-PCT00003
지연 레 지스터를 필요로 한다.
도 2는 종래의 256-포인트 radix-4 다중경로 지연 전환기 (R4MDC)의 일반적인 실시 예를 나타낸 것이다. 일반적으로, R4MDC는 R2MDC의 radix-4 버전이고, 입력 시퀀스를 4개의 평행한 데이터 흐름으로 나눈다. R4MDC 아키텍처는 모든 부품들을 한번에 단지 25%만 활용된다. R4MDC 아키텍처는
Figure 112006003711709-PCT00004
지연 레지스터를 필요로 한다.
도 3는 종래의 radix-2 단일경로 지연 전환기 (R2SDF) 파이프라인 16-비트 FFT의 일반적인 실시 예를 나타낸 것이다. 일반적으로, R2SDF는 버터플라이 유닛 출력을 피드백 시프트 레지스터에 저장시킴으로써 R2MDC 실행보다 효과적으로 레지스터를 이용한다. R2SDF 실행은 승산기들과 가산기들의 50%를 활용하고 N-1 지연 레지스터를 필요로 한다.
도 4는 종래의 256-포인트 radix-4 단일경로 피드백 (R4SDF) 파이프라인 FFT의 일반적인 실시 예를 나타낸 것이다. 일반적으로, R4SDF는 R2SDF의 radix-4 버전이다. 실시 예에 있어서, 승산기들의 이용은 75%까지 증가하지만, 가산기들은 단지 25%만 활용한다. R2SDF 아키텍처에서와 마찬가지로, R4SDF 아키텍처는 N-1 지연 레지스터를 필요로 한다. 메모리 저장은 R2SDF 경우와 마찬가지로 완전히 활용된다.
도 5는 종래의 256-포인트 radix-4 단일경로 지연 전환기 (R4SDC) 파이프라인 FFT의 일반적인 실시 예를 나타낸 것이다. 일반적으로, R4SDC는 승산기들의 75% 활용을 달성하도록 변형된 radix-4 알고리즘을 이용한다. R4SDC 실시 예의 메모리 필요조건은 2N-2이다.
도 6은 종래의 256-포인트 radix-22 단일경로 지연 전환기 (R22SDF) 파이프라인 FFT 아키텍처의 일반적인 실시 예를 나타낸 것이다. 일반적으로, R22SDF 아키텍처는 75%의 승산기 활용과 50%의 가산기 활용을 달성하도록 ±1과 j의 단순 곱셈을 통하여 하나의 radix-4 버터플라이 연산을 2개의 radix-2 버터플라이 연산으로 분할한다. R22SDF 실시 예의 메모리 필요조건은 N-1이다.
도 7은 종래의 512-포인트 radix-23 단일경로 지연 피드백 (R23SDF) 파이프라인 FFT 아키텍처의 일반적인 실시 예를 나타낸 것이다. 일반적으로, R23SDF 아키텍처는 R22SDF 아키텍처와 유사한 기술을 이용하여 radix-8 버터플라이 유닛의 하드웨어 조건들을 최소화한다. 단일 radix-8 버터플라이 유닛은 3개의 radix-2 버터플라이 유닛을 내부 버터플라이 지연 하드웨어와 ±1, ±j 및 0.707(±1-j)의 단순 곱셈의 조합으로서 실행된다. R23SDF 아키텍처의 메모리 필요조건은 N-1이다.
상기한 실시 예의 견지에서, 제공될 FFT 프로세서에 대하여 바람직한 것은 수행에 필요한 하드웨어의 복잡성을 줄이는 것이다. 또한, 감소된 반도체 면적에서 실행될 수 있도록 FFT 프로세서를 추가적으로 제공하는 것이 바람직하다. 모든 power-of-2 길이 FFT 연산에 대하여 이렇게 줄어든 하드웨어 복잡성과 반도체 면적을 얻을 수 있는 FFT를 만들어내는 것이 바람직하다.
본 발명의 목적은 사전 파이프라인 FFT 프로세서들의 적어도 하나의 단점을 회피하거나 완화시키는 것이다.
본 발명의 제 1의 실시 양태는 입력 시퀀스를 수용하기 위한 파이프라인 고속 퓨리에 변환(FFT)을 제공하는 것이다. 이 프로세서는 입력 시퀀스를 수용하여 입력 시퀀스의 FFT를 나타내는 최종 출력 시퀀스를 출력하기 위한 적어도 하나의 FFT 트리플릿(triplet)을 포함한다. 적어도 하나의 FFT 트리플릿은 선택가능한 승산기들에 의해 연속하여 연결된 제 1, 제 2 및 제 3 버터플라이 모듈들을 구비한다. 선택가능한 승산기들은 인접한 버터플라이 모듈들의 출력 시퀀스들에 대한 단순 계수 곱셈과 복소수 계수 곱셈을 선택적으로 수행한다. 적어도 하나의 트리플릿의 각각은 트위들 팩터 승산기(twiddle factor multiplier)에서 종결된다. 승산기는 각각의 트리플릿의 제 3 버터플라이 모듈의 출력에 트위들 팩터를 적용한다.
본 발명의 제 1의 실시 양태의 실시 예에 있어서, 각각의 버터플라이 모듈은 radix-2 버터플라이 유닛과 피드백 메모리를 포함하며, N 샘플들의 입력 시퀀스에 대하여, 각각의 버터플라이 모듈의 출력 시퀀스 X(k,n)는
Figure 112006003711709-PCT00005
와 동등하다. 본 발명의 다른 실시 예에 있어서, 선택가능한 승산기들중 적어도 하나는 인접한 버터플라이 모듈에 통합된다. 본 발명의 또 다른 실시 예에 있어서, 각각의 선택가능한 승산기는 승산기 및 상기 승산기를 우회(bypassing)하기 위한 스위치를 포함한다. 본 발명의 또 다른 실시 예에 있어서, 제 1 및 제 2 버터플라이 모듈들은 단순 계수 곱셈을 선택적으로 적용하기 위한 선택가능한 승산기들에 의해서 연결되고, 제 2 및 제 3 버터플라이 모듈들은 단순 계수 곱셈을 수행하기 위한 선택가능한 승산기들 및 복소수 계수 곱셈을 수행하기 위한 선택가능한 승산기에 의해서 연결된다.
본 발명의 또 다른 실시 예에 있어서, N 샘플들의 입력 시퀀스에 대하여, 제 1, 제 2 및 제 3 버터플라이 모듈에 대한 피드백 메모리들은 각각 N/2, N/4 및 N/8 샘플들을 보유한다. 본 발명의 또 다른 실시 예에 있어서, 길이 N의 입력 시퀀스를 수용하기 위하여, (log2N)mod3=1에서, 프로세서는 잇달아 다수의 FFT 트리플릿을 구비하고, 단일 샘플을 보유하도록 크기가 부여된 대응 메모리 및 버터플라이 유닛을 갖는 FFT 터미네이터(terminator)를 더 포함하며, 상기 FFT 터미네이터는, 최종 트위들 팩터 승산기로부터 출력 시퀀스를 수용하고, 입력 시퀀스의 FFT를 나타내도록 상기 수용된 출력 시퀀스에서 버터플라이 연산을 수행한다. 본 발명의 또 다른 실시 예에 있어서, 길이 N의 입력 시퀀스를 수용하기 위해서, (log2N)mod3=2에서, 프로세서는 잇달아 다수의 FFT 트리플릿을 구비하고, 2개의 샘플과 하나의 샘플을 각각 보유하도록 크기가 부여된 대응 메모리들 및 제 1, 제 2 버터플라이 유닛들을 갖는 FFT 터미네이터를 더 포함하며, 상기 제 1 버터플라이 유닛은 상기 제 1 버터 플라이 유닛의 출력에 -j를 선택적으로 곱하기 위한 선택가능한 승산기에 의해서 상기 제 2 버터플라이 유닛에 연결되고, 상기 FFT 터미네이터는, 최종 트위들 팩터 승산기로부터 출력 시퀀스를 수용하고, 입력 시퀀스의 FFT를 나타내도록 상기 수용된 출력 시퀀스에서 버터플라이 연산을 수행한다. 본 발명의 또 다른 실시 예에 있어서, 상기 트위들 팩터 승산기는 코르딕 로테이터(cordic rotator)이다.
본 발명의 제 2 실시 예에 있어서, N 샘플들의 입력 시퀀스를 수용하기 위한 파이프라인 고속 퓨리에 변환(FFT) 프로세서가 제공된다. 이 프로세서는 적어도 하나의 FFT 트리플릿(triplet)을 포함한다. 적어도 하나의 FFT 트리플릿은, 제 1 FFT 스테이지, 제 2 FFT 스테이지, 및 제 3 FFT 스테이지를 포함한다. 제 1 FFT 스테이지는, 입력 시퀀스를 수용하고 상기 입력 시퀀스에서 수행된 버터플라이 연산에 따라 제 1 스테이지 출력 시퀀스를 제공하기 위한 제 1 스테이지 radix-2 버터플라이 유닛을 구비한다. 상기 제 1 스테이지 radix-2 버터플라이 유닛은 여기에 연결된 제 1 피드백 메모리를 갖는다. 제 2 FFT 스테이지는, 상기 제 1 스테이지 출력 시퀀스에 단순 계수를 선택적으로 곱하기 위한 선택가능한 승산기를 구비하며, 상기 선택가능한 승산기의 출력에서 수행된 버터플라이 연산에 따라 제 2 스테이지 출력 시퀀스를 제공하기 위한 제 2 스테이지 radix-2 버터플라이 유닛을 구비하고, 상기 제 2 스테이지 radix-2 버터플라이 유닛은 여기에 연결된 제 2 피드백 메모리를 갖는다. 제 3 FFT 스테이지는, 상기 제 2 스테이지 출력 시퀀스에 적어도 하나의 단순 계수와 복소수 계수를 선택적으로 곱하기 위한 선택가능한 승산기를 구비하며, 상기 선택가능한 승산기의 출력에서 수행된 버터플라이 연산에 따라 버터플라이 출력을 제공하기 위한 제 3 스테이지 radix-2 버터플라이 유닛을 구비하고, 상기 제 3 스테이지 radix-2 버터플라이 유닛은 여기에 연결된 제 3 피드백 메모리, 및 상기 입력 시퀀스의 FFT에 대응하여 출력 시퀀스를 제공하도록 버터플라이 출력에 트위들 팩터를 곱하기 위한 승산기를 갖는다.
본 발명의 제 2 실시 양태의 실시 예에 있어서, 각각의 제 1, 제 2 및 제 3 스테이지 출력 시퀀스 X(k,n)는
Figure 112006003711709-PCT00006
와 동등하다. 다른 실시 예에 있어서, 상기 버터플라이 유닛들 중 적어도 하나는 수용된 입력 시퀀스에 단순 계수 곱셈을 적용하기 위한 통합된 예비곱셈 함수(integrated pre-multiplication function)를 포함한다. 다른 실시 예에 있어서, FFT 프로세서는 상기 입력 시퀀스의 길이 N에 따라서 결정된 FFT 터미네이터를 더 포함한다. 일 실시 예에 있어서, 상기 FFT 터미네이터는, 터미네이터 입력 및 상기 제 3 FFT 스테이지 승산기의 출력을 수용하고 상기 N 샘플들의 입력 시퀀스의 FFT를 나타내도록 상기 터미네이터 입력에서 버터플라이 연산을 수행하기 위하여, 하나의 샘플을 저장하도록 크기가 부여된 메모리를 갖는 버터플라이 모듈을 포함한다. 또 다른 실시 예에 있어서, 상기 FFT 터미네이터는, 터미네이터 입력 및 상기 제 3 FFT 스테이지 승산기의 출력을 수용하고 상기 터미네이터 입력에서 버터플라이 연산을 수행하기 위하여 한쌍의 샘플을 저장하도록 크기가 부여된 메모리를 갖는 제 1 버터플라이 모듈을 포함하며, 상기 출력 시퀀스의 FFT를 나타내도록 상기 터미네이터의 상기 제 1 버터플라이 모듈의 출력에서 버터플라이 연산을 수행하기 위하여 하나의 샘플을 저장하도록 크기가 부여된 메모리를 가지며 선택가능한 승산기에 의해서 상기 터미네이터의 상기 제 1 버터플라이 모듈에 연결된 제 2 버터플라이 모듈을 포함하며, 이때 상기 선택가능한 승산기는 상기 제 1 버터플라이 모듈의 출력에 -j를 선택적으로 곱하기 위한 것이다.
본 발명의 제 3 실시 예에 있어서, 버터플라이 모듈을 갖는 파이프라인 고속 퓨리에 변환(FFT) 프로세서에서 N 샘플들의 시퀀스를 수행하기 위한 방법이 제공된다. 이 방법은, 모든 정수에 대하여
Figure 112006003711709-PCT00007
에서, 수용하는 단계, 버퍼링하는 단계, 발생시키는 단계 및 선택적으로 곱하는 단계를 반복적으로 수행하는 단계들을 포함한다. 상기 수용하는 단계 및 버퍼링하는 단계는 N 샘플들을 갖는 시퀀스로부터 단번에
Figure 112006003711709-PCT00008
샘플들을 수용하여 버퍼링하는 단계를 포함한다. 상기 발생시키는 단계는,
Figure 112006003711709-PCT00009
Figure 112006003711709-PCT00010
샘플들을 사용하여 2-포인트 FFT를 발생시키는 단계를 포함한다. 상기 선택적으로 곱하는 단계는, 발생된 2-포인트 FFT 시퀀스에 복소수 피승수를 선택적으로 곱하는 단계를 포함한다. 상기 단계들을 반복적으로 수행한 다음, 본 발명에 따른 방법은
Figure 112006003711709-PCT00011
관계식에 따라서 결정된 최종 시퀀스를 사용하여 FFT를 종결하는 단계를 포함한다.
본 발명의 제 3 실시 양태의 실시 예에 있어서, 상기 복소수 피승수는 1, -j,
Figure 112006003711709-PCT00012
를 포함한 리스트와 복소수 트위들 팩터 계수로부터 선택된다. 실시 예들에 있어서,
Figure 112006003711709-PCT00013
에서, 상기 FFT를 종결하는 단계는, 최종의 선택적인 곱셈으로부터 수용된 샘플을 버퍼링하는 단계, 및 N 샘플들의 시퀀스의 FFT를 얻기 위하여 버퍼링된 샘플 및 부수적인 샘플을 사용하여 2-포인트 FFT를 수행하는 단계를 포함한다. 실시 예들에 있어서,
Figure 112006003711709-PCT00014
에서, 상기 FFT를 종결하는 단계는, 최종의 선택적인 곱셈으로부터 수용된 샘플을 버퍼링하는 단계, N 샘플들의 시퀀스의 FFT를 얻기 위하여 버퍼링된 샘플 및 부수적인 샘플을 사용하여 2-포인트 FFT를 수행하는 단계, pair-wise 2-포인트 FFT의 결과에 -j를 선택적으로 곱하는 단계, pair-wise 2-포인트 FFT의 선택적인 곱셈으로부터 수용된 샘플을 버퍼링하는 단계, 그리고 N 샘플들의 시퀀스의 FFT를 얻기 위하여 버퍼링된 샘플 및 부수적인 샘플을 사용하여 2-포인트 FFT를 수행하는 단계를 포함한다.
본 발명의 다른 실시 양태 및 특징들은 첨부된 도면들을 참조로 한 본 발명의 바람직한 특정 실시 예들에 대한 상세한 설명을 통해서 해당 기술분야의 숙련된 당업자들에게 분명하게 밝혀질 것이다.
도 1은 종래기술에 따른 16-포인트 R2MDC FFT 프로세서의 블록 다이어그램;
도 2는 종래기술에 따른 256-포인트 R4MDCX FFT 프로세서의 블록 다이어그램;
도 3은 종래기술에 따른 16-포인트 R2DSF FFT 프로세서의 블록 다이어그램;
도 4는 종래기술에 따른 256-포인트 R4SDF FFT 프로세서의 블록 다이어그램;
도 5는 종래기술에 따른 256-포인트 R4SDC FFT 프로세서의 블록 다이어그램;
도 6은 종래기술에 따른 16-포인트 R22SDF FFT 프로세서의 블록 다이어그램;
도 7은 종래기술에 따른 512-포인트 R22SDF FFT 프로세서의 블록 다이어그램;
도 8은 N=16에 대한 리코드 radix-2 DIF FFT 플로우 그래프;
도 9는 또 다른 N=16에 대한 리코드 radix-2 DIF FFT 플로우 그래프;
도 10은 N=128에 대한 RR2SDF 파이프라인 FFT의 바람직한 실시 예의 블록 다이어그램;
도 11은 RR2SDF FFT 아키텍처에 대한 바람직한 버터플라이 유닛 구조물을 나타낸 도면;
도 12는 단순 상수 계수 -j를 이용한 예비곱셈을 적용한 RR2SDF FFT 아키텍처에 대한 또 다른 바람직한 버터플라이 유닛 구조물을 나타낸 도면;
도 13은 N=128에 대한 또 다른 RR2SDF 파이프라인 FFT에 대한 블록 다이어그램;
도 14는 본 발명에 따른 FFT 트리플릿의 블록 다이어그램;
도 15는
Figure 112006003711709-PCT00015
일 때 사용하기 위한 FFT 터미네이터의 블록 다이어그램;
도 16은
Figure 112006003711709-PCT00016
일 때 사용하기 위한 FFT 터미네이터의 블록 다이어그램; 그리고
도 17은 본 발명에 따른 방법을 설명하는 흐름도.
본 발명은 트리플릿 방식으로 FFT를 수행하기 위한 장치 및 방법을 제공한다. 본 발명의 일 실시 예는 종래 기술에 따른 여러 장치들과 비교하여 하드웨어의 복잡성을 감소시켜서 줄어든 반도체 면적에서의 물리적인 이행을 가능하게 하는 트리플릿 기지 FFT 프로세서를 제공한다.
본 발명의 실시 예들은 간단한 버터플라이 아키텍처를 유지하는 반면에 버터플라이 곱셈의 복잡성을 최소화하여 종래의 작업을 개선한 것이다. radix-2 decimation-in-frequency FFT 프로세서에서 radix-8 분해의 곱셈의 복잡성이 설명된다. 버터플라이의 곱셈의 복잡성은 소정의 power-of-two radix가 될 수 있고, 설명하는 기술들을 사용하여 만들어진 하드웨어 이득을 불가항력적인 증가된 프로세스 제어 복잡성으로 인하여 프로세서에서 실제적인 한계에 달한다.
본 발명의 실시 예들에 의해서 만들어진 하드웨어 이득은 일반적으로 VLSI 칩에서 실행되고 FFT 연산을 기록함으로써 단일 경로 지연 피드백 파이프라인 고속 퓨리에 변환 프로세서에서 달성된다. N 샘플들을 갖는 x(n)의 입력 시퀀스로부터
Figure 112006003711709-PCT00017
의 출력 매핑(mapping)을 발생시키기 위한 버터플라이 유닛이 바람직하게 실행된다. 이러한 버터플라이 유닛은 2 대 1 승산기를 갖춘 적합한 단순 가산기 및 감산기를 채용한다.
버터플라이 유닛과 적절한 크기의 피드백 메모리를 갖는 버터플라이 모듈이 FFT 트리플릿을 형성하는 3개의 FFT 스테이지에서 사용된다. FFT 스테이지는 전체 데이터 처리율이 디지털 입력 신호로서 언급되는 입력 시퀀스 비율과 부합하거나 초과하도록 소오스(source) 신호들, 메모리들 또는 다른 FFT 스테이지로부터 다른 디지털 출력과 교신하여 제어 및 시간 회로를 거친다. 이것은 FFT 프로세서로 하여금 중단없이 연속적인 변환을 수행할 수 있게 한다.
본 발명의 바람직한 실시 예의 FFT 프로세서의 사이클은 그것의 데이터 처리율이 디지털 입력 신호의 비율과 부합하거나 또는 초과하고 그리하여 FFT가 중단없이 연속적인 변환으로 수행될 수 있다. 트위들 팩터 분해 기술은, FFT 연산이 표준 radix-2 단일경로 지연 피드백 아키텍처를 사용하여 수행될 수 있고 FFT 프로세서가 FFT의 최종 단계에서 radix-2 곱셈의 복잡한 FFT 아키텍처로 스위칭함으로써 소정의 power-of-2 FFT를 수행할 수 있을 정도로, 소정의 power-of-8 경계에서 종결되는 복소수 트위들 계수들을 결정하도록 사용된다. 이것은 power-of-4 길이 FFT 에서 1단계가 수행되고 소정의 power-of-2 FFT에서 2단계가 수행되는 트위들 팩터 분해를 종결함으로써 달성된다. a power of 2인 입력 시퀀스 길이에 대한 본 발명의 트리플릿을 사용하는 것은 첨부도면 도 14,15 및 16을 참조한 하기의 설명을 통해서 보다 분명하게 밝혀질 것이다.
본 발명에 따른 방법 및 장치의 발전에서 한가지 계기는 radix-2 알고리즘의 단순 버터플라이 아키텍처를 유지하는 동안에 버터플라이 승산기의 복잡성을 줄이는 것이다. 계수-기록 방법은 트위들 팩터 분해 기술을 기초로 한다. 리코드 radix-2 방법 및 장치는 radix-2 분해의 구조와 장점들을 유지하는 반면에 radix-8 분해의 곱셈의 복잡성을 갖는다.
상기한 바와 같이, 크기 N의 DFT는 다음 식으로 정의된다.
Figure 112006003711709-PCT00018
Figure 112006003711709-PCT00019
(1)
여기에서, WN은 Nth은 트위들 백터이고 다음 방정식으로 정의된다.
Figure 112006003711709-PCT00020
본 발명의 방법은 DFT 방정식의 분할 및 공략 분해의 처음 3단계를 고려하여 유도될 것이다. 3개의 분해 단계들을 수행한 후에, n 및 k에 대한 방정식은 다음의 식에 의해서 정의된다.
Figure 112006003711709-PCT00021
Figure 112006003711709-PCT00022
(2)
3개의 분해 단계들을 이용하여 상기 방정식 (2)를 DFT 방정식 (1)에 적용하면, 다음의 식이 얻어진다.
Figure 112006003711709-PCT00023
(3)
최 내부 방정식을 확장시키면 다음의 방정식이 얻어진다.
Figure 112006003711709-PCT00024
(4)
여기에서,
Figure 112006003711709-PCT00025
은 버터플라이 연산을 나타내며, 다음의 식을 만족시킨다.
Figure 112006003711709-PCT00026
(5)
식 (4)에서의 표현은 주파수 FFT에서 표준 radix-2 제거가 얻어질 때까지 표준 분할 및 공략 해법을 사용하여 더 분해될 수 있다. 그러나, 2차 분해 단계를 사용하여 트위들 계수들을 차감함으로써, 작은 회로 면적을 갖는 버터플라이 아키텍처들이 얻어질 수 있다. 2개의 트위들 팩터들을 식 (4)에 결합하여 최소화함으로써, 다음 식이 얻어진다
Figure 112006003711709-PCT00027
여기에서,
Figure 112006003711709-PCT00028
(7)
방정식 (6)을 방정식(4)에 대입하고 n2 와 n3로 확장하면 다음과 같은 식이 얻어진다.
Figure 112006003711709-PCT00029
(8)
여기에서, Y(k1+2k2+4k3+8k4)는 방정식 (9)와 (10)에 나타낸 형태들을 선택적으로 취할 수 있다
Figure 112006003711709-PCT00030
N=16 FFT에 대하여, 이 방정식은 도 8에 도시된 신호 흐름 그래프를 산출한다.
이와는 달리, 기록된 버터플라이 방정식 Y(k1,k2,k3,n4)는 다음의 식을 취할 수 있다.
Figure 112006003711709-PCT00031
이러한 기록을 위한 N=16 FFT에 대한 신호 흐름 그래프는 도 9에 도시되어 있다.
power-of-4에서 초기에 트위들 팩터 분해를 종결하거나 또는 power-of-2 길이 FFT를 고수하고 표준 radix-2 분해를 이용하여 계속적으로 수행함으로써, 2 길이의 모든 파워에 대하여 고속 퓨리에 변환을 조성할 수 있다. 노이즈 관련 근거들에 대하여, 식(9) 및 도 8에 나타낸 분해는 다소 바람직하나, 현재는 단순 곱셈을 통한 버터플라이 연산은 버터플라이 연산에
Figure 112006003711709-PCT00032
를 곱한 것이므로 식 (10)과 도 9에 나타낸 분해가 바람직하다. 주어진 노이즈 서술에 대한 이행에 있어서, 표준 분해는 제 2 스테이지 메모리 유닛이 다른 분해를 이용하여 얻어진 것보다 작아질 수 있게 한다.
상기한 방법을 사용하여 발생된 기록된 트위들 공통계수들을 R2SDF 아키텍처 내로 매핑(mapping)함으로써, 기록된 radix-2 단일경로 지연 피드백(RR2SDF) 아키텍처가 얻어진다. 도 10은 N=128에 대하여 RR2SDF FFT의 바람직한 실시 예를 나타낸다.
도 10은 RR2SDF를 사용하여 N=128FFT를 이행하기 위한 새로운 장치(90)를 나타낸 것이다. 샘플들의 시퀀스는 서술하지 않은 소오스로부터 64개 샘플들을 저장하기 위한 피드백 메모리(104)를 갖춘 radix-2 버터플라이 유닛(BF2)으로 제공된다. 해당 기술분야의 숙련된 당업자는 64개 샘플들의 피드백 메모리 크기가 입력 시퀀스에서 N=128의 절반을 보유하도록 선택되는 것을 이해하게 될 것이다. 또한, BF2와 피드백 메모리(104)의 조합은 버터플라이 유닛과 피드백 메모리들의 조합이 하기에서 설명되는 바와 같이 버터플라이 모듈(100)로서 언급될 수 있다. 메모리(104)는 BF2(102)의 출력을 수용하고, 부수적으로 수용된 샘플 세트와 연결하여 사용하기 위해서 그 컨텐츠들을 다시 BF2로 제공한다. BF2의 출력은 입력에 단순 공통계수 -j를 곱하는 승산기(106) 주위로 스위치된다. 이러한 배열은 선택가능한 승산기로서 언급된다. 스위칭 장치는 승산기의 바이패스로서 수행되는 -j에 의한 곱셈 또는 통합 팩터에 의한 곱셈의 선택을 가능하게 한다. 해당 기술분야의 숙련된 당업자는 곱셈의 영향이 복합 평면에서 BF2(102)의 출력을 간단하게 회전시키는 것으로 평가할 수 있다. BF2(102)와 승산기(106)의 출력들은 2차 버터플라이 유닛 BF2(108)로 선택적으로 제공된다. BF2(108)는 BF2(102)에 부착된 피드백 메모리(104)와 유사한 피드백 메모리(110)를 구비한다. 피드백 메모리(110)는 32개 샘플들을 보유하도록 크기가 결정된다. BF2(108)의 출력이 스위치되고
Figure 112006003711709-PCT00033
의 복소수 공통계수를 적용하도록 승산기(112)에 간헐적으로 제공된다. 승산기(112)와 BF2(102)의 출력들은 승산기(114)에 대한 입력으로서 스위치되고, -j의 팩터를 인 가한다. 이러한 배열은 다중의 선택가능한 승산기이며, 통합하는 경우, 팩터들의 어느 하나 또는 팩터들 모두는 시퀀스에 선택적으로 인가될 수 있다. 승산기(114)의 입력과 출력은 16 샘플 피드백 메모리(118)를 갖는 BF2(116)에 대한 입력으로서 스위치된다.
Figure 112006003711709-PCT00034
와 -j의 선택적인 적용은 단지 적절한 경우에 복합 평면에서 위상 회전을 수행하는 기능을 한다. BF2(116)는 16 샘플들을 저장하도록 크기가 부여된 피드백 메모리(118)를 구비한다. 이것은 제 1 트리플릿(92)의 완결이다. BF2(116)의 출력은 이 출력에 W1(n)의 트위들 팩터를 곱하는 승산기(120)에 제공된다. 트위들 팩터에 의한 위상 회전을 수행한 후, BF2(116)의 출력은 8개 샘플들을 보유하도록 크기가 부여된 피드백 메모리(124)를 갖는 BF2(122)에 입력으로서 제공된다. BF2(122)의 출력은 -j를 적용하도록 승산기(126)에 의해서 선택적으로 곱해진다. BF2(122)와 승산기(126)의 출력들은 4개 샘플들을 보유하도록 크기가 부여된 피드백 메모리(130)를 갖는 BF2(128)에 입력으로서 제공된다. 다중의 선택가능한 승산기 배열 BF(108)은 BF2(128) 후에 유사하게 적용된다. 여기에서, 1차 승산기(130)는
Figure 112006003711709-PCT00035
를 적용하고, 2차 승산기(132)는 -j를 적용한다. 승산기(132)의 입력과 출력은 2개 샘플들을 보유하도록 크기가 부여된 피드백 메모리(136)를 갖는 BF2(134)에 입력으로서 선택적으로 스위치된다. BF2(134)의 출력은 W2(n)의 트위들 팩터를 인가하는 승산기(138)에 제공된다. 이것은 제 2 트리플릿(94)의 완결을 나타낸다. 상이 회전된 후에, BF2(134)의 출력은 1개의 샘플을 보유하도록 크기가 부 여된 피드백 메모리(142)를 갖는 BF2(122)에 제공된다. BF2(140)의 출력은 입력 시퀀스의 완결된 FFT이다. 해당 기술분야의 숙련된 당업자는 상기한 아키텍처가 2개의 FFT 트리플릿을 갖는 파이프라인 FF 프로세서로서 설명되는 것을 이해할 수 있을 것이다. 제 1 트리플릿(92)은, 대응하는 피드백 메모리들과 트위들 팩터 유닛들 또는 승산기들과 함께, 제 1 스테이지 BF2(102), 제 2 스테이지 BF2(108) 및 제 3 스테이지 BF2(116)로 그룹화한다. 제 2 트리플릿(94)은, 대응하는 피드백 메모리들과 트위들 팩터 유닛들 또는 승산기들과 함께, 제 1 스테이지 BF2(102), 제 2 스테이지 BF2(108) 및 제 3 스테이지 BF2(116)에 대응하는 모듈들로 그룹화한다. FFT 프로세서는 BF2(140), 및 FFT 터미네이터(96)를 형성하는 그에 대응하는 피드백 메모리에 의해 종결된다. 해당 기술분야의 숙련된 당업자는 이것들이 피드백 메모리 크기의 차이로 인한 것이며 제 1 및 제 2 트리플릿이 실제적으로는 유사한 것임을 이해할 수 있을 것이다.
실행은 다음의 방정식으로 표현되는 버터플라이 연산을 수행하는 버터플라이 유닛을 이용한다. 이것은 도 11에 설명된 버터플라이 유닛을 사용하여 실행될 수 있으며 다음과 같이 표현된다.
Figure 112006003711709-PCT00036
1차 N/2S사이클에 있어서, s는 버터플라이 유닛에서 시작하는 버터플라이 스테이지 수이고, 가산기와 감산기 하드웨어를 우회함으로써 피드백 메모리에 데이터를 수집한다. 이것은 Sn에서 제로(0)까지 선택된 신호를 세팅함으로써 달성된다. 다 음의 N/2S사이클에 있어서, 버터플라이 유닛은 1차 N/2S사이클 도중에 습득 데이터 및 피드백 레지스터에 저장된 상에서 2-포인트 FFT을 수행한다. 버터플라이 유닛의 1차 출력 X(n)은 통합 승산기(즉, 와이어)에 이어지는 스테이지 승산기로 보내지고,
Figure 112006003711709-PCT00037
에 의한 일정한 곱셈후에 복소수 트위들 계수 승산기로 보내진다. 승산기들의 선택은 프로세스 제어에 의해서 프로그램된다. 버터플라이 유닛의 2차 출력 X(n+N/2)은 N/2S사이클에 대하여 지연되도록 피드백 메모리로 다시 보내진다. 지연된 후에, 2차 출력 X(n+N/2)은 스테이지 승산기로 보내진다. 이러한 사이클은 모든 N 데이터 포인트들이 처리될 때까지 반복된다. 완결된 FFT 출력은 비트 역전 순서에 따라 최종 유닛에 남겨질 것이다. FFT 프로세서의 파이프라인 특성으로 인하여, 다중 FFTs는 중단없이 연속적으로 수행될 수 있다.
도 11은 논리 레이아웃의 설명을 통해서 바람직한 radix-2 버터플라이 유닛(148)을 나타낸 것이다. 이러한 바람직한 버터플라이 유닛(148)의 연산은 상기한 바와 같은 버터플라이 연산의 방법에 대응한다. 대규모 집적 (VLSI) 디자인, 디지털 신호 프로세서(DSP) 디자인, 및 다수의 관련 분야들에 있어서 숙련된 당업자는, 이것이 전용 하드웨어, 프로그램화 가능한 게이트 어레이들 또는 거기에서 실행되는 소프트웨어 또는 특정한 목적의 프로세서나 칩들을 사용하여 실현될 수 있음을 이해할 수 있을 것이다. 도 10의 피드백 메모리들은 버터플라이 연산의 일부가 부수적인 샘플들과 사용하기 위하여 저장될 수 있게 한다. 노드(150)는 nth샘플, xr(n)의 실제 성분을 수용하는 반면에, 노드(154)는 nth샘플의 상상의 성분인 xi(n)을 수용한다. 노드(158)는 (n+N/2)th샘플, xr(n+N/2)의 실제 성분을 수용하는 반면에, 노드(160)는 (n+N/2)th샘플의 상상의 성분인 xi(n+N/2)을 수용한다. 가산기(152)는 2개 샘플들의 실제 성분들에 대응하는 값을 노드들(150,158)에서 합산하여 그 합산치를 노드(150a)로 보낸다. 가산기(156)는 2개 샘플들의 실제 성분들에 대응하는 값을 노드들(154,162)에서 합산하여 그 합산치를 노드(154a)로 보낸다. 가산기(160)는 2개 샘플들의 실제 성분들의 차이를 얻기 위하여 노드(150)의 값과 노드(158)의 음의 값을 합산한다. 실제 값들의 차이는 노드(158a)로 보내진다. 합산기(164)는 두 샘플들의 상상의 값들의 차이를 얻기 위하여 노드(154)의 값과 노드(162)의 음의 값을 합산한다. 상상의 값들의 차이는 노드(162a)로 보내진다. 해당 기술분야의 숙련된 당업자는 합산기들(160) 및 (164)가 감산기로서 기능하고 본 발명의 범위를 벗어나지 않으면서 그러한 기능을 실행할 수 있음을 이해할 수 있을 것이다. 버터플라이 유닛(148)의 출력은 각각의 출력에서 스위치를 제어하는 동기신호(Sn)에 의해서 조절된다. Xi(n)은 노드(154)와 (154a)에서의 값들 사이를 선택하도록 상기한 바와 같이 스위칭 신호에 따라서 결정된다.
Figure 112006003711709-PCT00038
은 노드(158)와 (158a)에서의 값들 사이를 선택하도록 상기한 바와 같이 스위칭 신호에 따라서 결정된다.
Figure 112006003711709-PCT00039
은 노드(162)와 (162a)에서의 값들 사이를 선택하도록 상기한 바와 같이 스위칭 신호에 따라서 결정된다.
도 11의 버터플라이 연산은 도 12에 설명된 바람직한 실행 예에 대하여 다음의 방정식을 산출하는 상수 계수(-j)k에 의해서 미리 곱해질 수 있다.
Figure 112006003711709-PCT00040
버터플라이 유닛에 있어서, 1차 N/2S 사이클들에 있어서, S는 한번에 시작하는 버터플라이 스테이지 수이고, FFT는 버터플라이 유닛 가산기와 감산기 하드웨어를 바이패스함에 의해서 피드백 메모리에 데이터를 수집한다. 이것은 2 대 1 출력 multiplexers 내지 제로(0)에서 선택 신호 Sn를 세팅함으로써 달성된다. 다음 N/2S 사이클들에 있어서, 버터플라이 유닛은 1차 N/2S 사이클들 동안에 수용 데이터와 피드백 레지스터들에 저장된 데이터에 대해 2-포인트 FFT를 수행한다. -j에 의한 예비곱셈이 요구되는 FFT 스테이지에 대하여, 이러한 곱셈은, 교환될 입력 신호의 실제 성분 및 상상의 성분을 요구하고 버터플라이 유닛을 통해서 상상의 데이터 경로 상에 가산-감산 센스의 도치를 요구하는 단순 연산이다. 1차 3N/2S+2 입력들에 대하여, 통합 예비곱셈이 수행되고, 최종 N/2S+2 입력들에 대하여 -j 복소수 곱셈이 수행된다. 버터플라이 유닛의 1차 출력 X(n)은 통합 승산기(즉, 와이어),
Figure 112006003711709-PCT00041
에 의한 상수 곱셈 또는 복소수 트위들 계수 승산기 다음에 이어지는 스테이지 승산기로 보내지고, 프로세스 제어에 의해서 선택이 프로그램된다. 버터플라이 유닛의 2차 출력 X(n+N/2)은 N/2S 사이클들에 대하여 지연될 피드백 메모리 내로 다시 보내진다. 지연된 후에, 2차 출력 X(n+N/2)은 스테이지 승산기로 보내진다. 완결된 FFT 출력은 비트 역전 순서로 최종 유닛에 남겨질 것이다. FFT 프로세서의 파이프라인 특성으로 인하여, 다중 FFTs는 중단없이 연속적으로 수행될 수 있다.
도 12는 그것의 논리적인 레이아웃의 설명을 통해 바람직한 예비 곱셈 radix-2 버터플라이 유닛(170)을 나타낸 것이다. 이러한 바람직한 예비 곱셈 버터플라이 유닛(170)의 연산은 상기한 바와 같은 버터플라이 연산의 방법에 대응한다. 해당 기술분야의 숙련된 당업자는 임의의 수의 플랫폼들에서 이러한 바람직한 버터플라이의 실행을 이해할 것이다. 노드(172)는 nth샘플, xr(n)의 실제 성분을 수용하는 반면에, 노드(176)는 nth샘플의 상상의 성분인 xi(n)을 수용한다. 노드(180)과 (184)는 제어신호로서 결정되는 바와 같이, (n+N/2)th샘플, xr(n+N/2) 및 xi(n+N/2)의 실제 성분과 상상의 성분들을 수용한다. 제어신호는 가산기에서 그들의 도착 전에 모든 노드들에 대한 실제-상상의 치환의 적용이 값들에 대한 것을 결정한다. 제어 신호는 다음에서 설명하게 되는 바와 같이 가산기 후에 값들 사이에서 치환되도록 사용되는 입력 스위칭 신호들 Sn-1
Figure 112006003711709-PCT00042
를 수용하는 논리 AND 게이트(188)에 제공된다. 가산기(174)는 값을 노드들(172,180)에서 합산하여 그 합산치를 노드 (172a)로 보낸다. 가산기(178)는 논리적인 AND 게이트(188)의 제어신호로서 결정되는 바와 같이, 노드(176)에서의 값을 노드(184)에서의 값 또는 노드(184)에서의 값의 음의 값과 합한다. 값들의 합이나 차이는 노드(176a)로 보내진다. 합산기(182)는 두 노드에서의 값들의 차이를 얻기 위하여 노드(172)의 값과 노드(180)의 음의 값을 합산한다. 값들의 차이는 노드(180a)로 보내진다. 가산기(186)는 논리적인 AND 게이트(188)의 제어신호로서 결정되는 바와 같이, 노드(176)에서의 값을 노드(184)에서의 값 또는 노드(184)에서의 값의 음의 값과 합한다. 값들의 합이나 차이는 노드(184a)로 보내진다. 해당 기술분야의 숙련된 당업자는 가산기(182)가 감산기 및 가산기(178,186)로서 기능하고 본 발명의 범위를 벗어나지 않으면서 가산기-감산기 블록들로서 -j 함수의 각각의 예비 곱셈을 통해 그러한 기능을 실행할 수 있음을 이해할 수 있을 것이다. 버터플라이 유닛(170)의 출력은 각각의 출력에서 스위치를 제어하는 동기신호(Sn)에 의해서 조절된다. Xr(n)은 노드(172)와 (172a)에서의 값들 사이를 선택하도록 상기한 바와 같이 스위칭 신호에 따라서 결정된다. Xi(n)은 노드(176)와 (176a)에서의 값들 사이를 선택하도록 상기한 바와 같이 스위칭 신호에 따라서 결정된다.
Figure 112006003711709-PCT00043
은 노드(180)와 (180a)에서의 값들 사이를 선택하도록 상기한 바와 같이 스위칭 신호에 따라서 결정된다.
Figure 112006003711709-PCT00044
은 노드(184)와 (184a)에서의 값들 사이를 선택하도록 상기한 바와 같이 스위칭 신호에 따라서 결정된다. 해당 기술분야의 숙련된 당업자는 이러한 버터플라이 유닛에 의해 수행된 예비곱셈이 선택적으로 적용될 수 있고, 이행 크기와 복잡성의 견지에서 잇점을 제공할 수 있는 인접한 버터플라이 유닛과 함께 선택적인 단순 곱셈의 일체화를 가능하게 함을 이해할 수 있을 것이다.
도 13은 N=128에서 RR2SDF를 사용하여 FFT를 실행하기 위한 새로운 장치(200)를 나타낸 것이다. 샘플들의 시퀀스는 설명하지 않은 소오스로부터 64개 샘플을 저장하기 위한 피드백 메모리(204)를 갖는 radix-2 버터플라이 유닛(BF2)으로 제공된다. 메모리는 BF2(202)의 출력을 수용하고, 부수적으로 수용된 샘플 세트와 연결하여 사용하기 위해서 그 컨텐츠들을 다시 BF2(202)로 제공한다. BF2(202)의 출력은 복소수 계수
Figure 112006003711709-PCT00045
를 적용하도록 승산기(112)에 간헐적으로 제공되는 다중의 선택가능한 승산기로 제공된다. 승산기(112)의 출력과 BF2(202)의 출력은 단순 공통계수 -j를 곱하는 승산기(114)에 대한 입력으로서 스위치된다. 승산기(114)의 입력과 출력은 BF2(208)에 대한 입력으로서 스위치된다. BF2(208)는 BF2(202)에 부착된 피드백 메모리(204)와 유사한 피드백 메모리(210)를 구비한다. 피드백 메모리(210)는 32개 샘플들을 보유하도록 크기가 결정된다. BF2(208)의 출력은 선택가능한 승산기, 본 실시 예에서는 -j를 적용하도록 사용된 승산기(106)로 제공된다. BF2(208)과 승산기(106)의 출력들은 16 샘플 피드백 메모리(218)를 갖는 BF2(216)에 대한 입력으로서 제공된다. BF2(216)의 출력은 이 출력에 W1(n)의 트위들 팩터를 곱하는 승산기(120)에 제공된다. 그러므로, 상기한 바와 같은 장치는 도 13의 장치의 1차 트리플릿(92a)을 형성한다. 해당 기술분야의 숙련된 당업자는 1차 트리플릿 (92a)의 아키텍처가 도 10에 도시된 실시 예의 1차 트리플릿(92)의 아키텍처에 대한 구조물에서의 유사성이 있음을 이해할 수 있을 것이다. 도 10 및 도 13의 1차 트리플릿(92,92a)에 있어서, BF2 유닛은 유사하게 배열되지만, 트위들 팩터들의 적용은 재조정되며, 그래서 도 10의 실시 예에 있어서 1차 2개의 BF2 유닛 사이에 적용된 트위들 팩터는 도 13의 실시 예에 있어서 2차 및 3차 BF2 유닛 사이에 적용되고, 그 역으로도 가능하다. 장치의 2차 트리플릿(94a)에 있어서, 승산기(120)의 출력은 8개 샘플들을 보유하도록 크기가 부여된 피드백 메모리(224)를 갖는 BF2(222)에 입력으로서 제공된다. BF2(222)의 출력은 승산기들(130) 및 (132)의 다중 선택가능한 승산기 배열로 제공되는데, 여기에서 초기 승산기(130)는 복소수공통 계수
Figure 112006003711709-PCT00046
를 적용하고, 2차 승산기(132)는 단순 공통계수 -j를 적용한다. 승산기(132)의 입력과 출력은 4개 샘플들을 보유하도록 크기가 부여된 피드백 메모리(229)를 갖는 BF2(228)에 입력으로서 선택적으로 스위치된다. BF2(228)의 출력은 단순 공통계수 -j를 적용시키는 승산기(126) 주위로 스위치된다. BF2(228) 및 승산기(126)의 출력은 2개 샘플들을 보유하도록 크기가 부여된 피드백 메모리(236)를 갖는 BF2(234)에 입력으로서 스위치된다. BF2(234)의 출력은 W2(n)의 트위들 팩터에 의해서 상이 회전하는 승산기(138)에 제공된다. 이것은 장치에서 제 2 트리플릿의 완결을 나타낸다. 승산기(138)의 출력은 1개의 샘플을 보유하도록 크기가 부여된 피드백 메모리(242)를 갖는 BF2(240)을 구비한 FFT 터미네이터로 제공된다. BF2(240)의 출력은 입력 시퀀스의 완결된 FFT이다.
도 10 및 도 13을 참조로 하여 설명한 실시 예들은 승산기들, 선택가능한 승산기들, 및 다중의 선택가능한 승산기들을 채용한다. 승산기는 2개의 입력들을 수용하고 그 입력들의 산물로서 출력을 제공한다. 승산기들은 도 10 및 도 13을 참조로 하여 설명한 실시 예들에 있어서 트위들 팩터들을 적용하기 위해서 사용된다. 선택가능한 승산기들은 승산기가 바이패스될 수 있을 정도로 배열된 승산기들과 스위치들의 조합이다. 선택가능한 승산기들은 도 10 및 도 13을 참조로 하여 설명한 실시 예들에 있어서 2개의 버터플라이 모듈들 사이에서 단순 공통계수 -j를 적용하고 복소수 공통계수
Figure 112006003711709-PCT00047
를 적용하기 위해서 사용된다. 다중의 선택가능한 승산기들은 둘 또는 그이상의 선택가능한 승산기들의 배열로서 연속하여 배열된다. 선택가능한 승산기들을 연속하여 배열함으로써, 바이패스될 승산기들을 전혀 없는 상태, 또는 일부는 있고 일부는 없는 상태 또는 모두 있는 상태가 가능하다. 다중의 선택가능한 승산기들은 도 10 및 도 13을 참조로 하여 설명한 실시 예들에 있어서 단순 공통계수 -j, 복소수 공통계수
Figure 112006003711709-PCT00048
, 단순 공통계수 -j와 복소수 공통계수
Figure 112006003711709-PCT00049
모두, 또는 통합 팩터를 적용하기 위해서 사용된다. 선택가능한 승산기나 다중의 선택가능한 승산기중 어느 하나가 승산기들을 바이패스함으로써 통합 곱셈을 선택적으로 적용하도록 사용될 수 있다.
2개의 RR2SDF 사이에서의 버터플라이 아키텍처는 분해가 동일하고
Figure 112006003711709-PCT00050
에 의한 단순 곱셈의 배치가 다르다는 것을 주목해야 한다. 노이즈 내역과 만나기를 시도하는 경우, 2차와 5차 버퍼들의 메모리 버퍼 요구조건은 이미 알려진 표준 분해의 범위를 넘어서서 대안적인 RR2SDF 분해에서 커지게 될 것이다. 이것은 2차 버퍼의 경우에 상당히 중요하며, N/4 복소수 메모리 저장 요소들을 갖는다.
복합 승산기들, 가산기들 및 이미 서술한 파이프라인 프로세서 FFT 아키텍처에 대한 메모리 유닛들의 수에 대한 비교가 다음의 표 1에 나타나 있다. 이 표에서, 모든 값들은 radix-2, radix-4 및 radix-8 아키텍처의 용이한 비교를 위해서 적용가능한 기초-4 logarithm을 사용하여 나타내었다.
승산기 # 가산기 # 메모리 크기
R2MDC 2(log4N-1) 4log4N 3N/2-2
R4MDC 3(log4N-1) 8log4N 5N/2-4
R2SDF 2(log4N-1) 4log4N N-1
R4SDF log4N-1 8log4N N-1
R4SDC log4N-1 3log4N 2N-2
R22SDF log4N-1 4log4N N-1
R23SDF log4N-1 4log4N N-1
R2SDP log4N-1 2log4N N-1
R2SP(in-order) log4N-1 2log4N 2N-2
RR2SDF log 4 N-1 4log 4 N N-1
표 1-복합 승산기들, 가산기들 및 이미 서술한 파이프라인 프로세서 FFT 아키텍처에 대한 메모리 유닛들의 수에 대한 비교
표 1에 있어서, RR2SDF 아키텍처의 성능은 R22SDF 아키텍처의 성능과 동일함을 보여준다. 그런데, 실제로 RR2SDF 아키텍처는 종래의 R22SDF 아키텍처에 있는 log8N-1 복소수 승산기들과 비교하여, 단지 log8N-1 복소수 승산기들(복소수 승산기당 4개의 실제 승산기들과 2개의 실제 가산기들을 필요로함)과 log8N-1 상수 복소수 승산기들(연산당 2개의 실제 상수 승산기들과 2개의 실제 가산기들을 필요로함)을 갖는다. RR2SDF 아키텍처와 R22SDF 아키텍처는 비교가능한 수의 연산자들을 갖지만, R22SDF 아키텍처와는 달리 RR2SDF 아키텍처는 power-of-8 FFT 길이로 제한되지 않으며, 모든 power-of-2 FFT 길이가 될 수 있다. R22SDF 아키텍처는 RR2SDF 아키텍처에서는 존재할 필요가 없는 버터플라이 유닛에 추가적인 레지스터링 스테이지들을 필요로 한다. 표준 RR2SDF 아키텍처에서 상수 곱셈의 순서는 주어진 노이즈 성능 상세내역에 대한 제 2 스테이지 메모리에 대한 양호한 실제적인 하드웨어 성능이 대안적인 RR2SDF 아키텍처 또는 R22SDF 아키텍처에 걸쳐서 가능하게 한다.
도 14는 본 발명의 트리플릿을 설명한다. 버터플라이 모듈(100a)은 버터플라이 유닛(248)과 피드백 메모리(250)를 포함한다. 피드백 메모리(250)는 M/2 샘플들을 보유하도록 크기가 주어지고, 여기에서 트리플릿에 대한 시퀀스 길이는 N이고 파워는 2이다. 버터플라이 모듈(100a)은 선택가능한 승산기(256)로 2-포인트 FFT 출력을 제공한다. 선택가능한 승산기(256)는 버터플라이 모듈(100a)의 2-포인트 출력에 복소수 공통계수 -j를 선택적으로 곱하게 된다. 선택가능한 승산기(256)의 출력은 버터플라이 모듈(100b)로 제공된다. 이때 버터플라이 모듈(100b)은 버터플라이 유닛(248) 및 N/4 샘플들을 보유하도록 크기가 주어진 피드백 메모리(252)를 포함한다. 버터플라이 모듈(100b)은 선택가능한 승산기(256)에 의해서 제공된 샘플들의 시퀀스 상에 2-포인트 FFT 출력을 제공한다. 버터플라이 모듈(100b)의 2-포인트 FFT 출력은 다중의 선택가능한 승산기(258)로 제공된다. 이때, 다중의 선택가능한 승산기(258)는 버터플라이 모듈(100b)의 출력에
Figure 112006003711709-PCT00051
및/또는 -j를 적절하게 선택적으로 곱하게 된다. 다중의 선택가능한 승산기(258)의 결과 출력은 버터플라이 모듈(100c)로 제공된다. 이때 버터플라이 모듈(100c)은 버터플라이 유닛(248) 및 N/8 샘플들을 보유하도록 크기가 주어진 피드백 메모리(254)를 포함한다. 결과적인 2-포인트 FFT 출력은 그 출력에 적절한 트위들 팩터 W1(n)을 곱하는 승산기로 제공된다.
해당 기술분야의 숙련된 당업자는 입력 줄의 소정의 power-of-8 길이에 대한 FFT 프로세서를 설계하도록 본 발명의 트리플릿이 다른 트리플릿들과 연관시켜서 사용될 수 있음을 이해하게 될 것이다. 본 발명의 FFT 프로세서는 주어진 길이의 시퀀스에 대하여 최소 수의 버터플라이 연산을 필요로 한다. 길이 N의 시퀀스 상에서의 FFT 연산에 대하여, 소정의 power-of-2 길이 FFT가 실행될 수 있게 하는 FFT에 대한 3개의 다른 종결 조건들이 존재하게 된다. 이러한 3개의 종결 조건들은 입력 시퀀스 N의 길이와 관련되고, (log2N)mod3의 평가에 의해서 빠르게 결정될 수 있다. (log2N)mod3 = 0 일 때, 필요한 버터플라이 연산들의 수가 일련의 FFT 트리플릿들에 의해서 수행됨에 따라서, FFT는 FFT 터미네이터를 요구하지 않는다. (log2N)mod3 = 1 일 때, 트리플릿들은 필요한 버터플라이 연산들의 전부가 가능하나 하나를 수행한다. 그러므로, (log2N)mod3 = 1 일 때, FFT 프로세서는 도 15에 도시된 바와 같이 하나의 종결 버터를라이를 갖는 FFT 터미네이터를 필요로 한다. (log2N)mod3 = 1인 경우, 터미네이터(260)는 하나의 샘플을 보유하도록 크기가 부여된 메모리(260)를 갖는 버터플라이 유닛(262)을 포함한다. (log2N)mod3 = 2일 때, 트리플릿들은 필요한 버터플라이 연산들의 전부가 가능하나 2가지 연산을 수행한다. 그러므로, (log2N)mod3 = 2 일 때, FFT 프로세서는 도 16에 도시된 바와 같은 FFT 터미네이터를 필요로 한다. (log2N)mod3 = 2인 경우, 터미네이터는 2개의 샘플을 보유하도록 크기가 부여된 메모리(270)를 갖는 버터플라이 유닛(268)을 포함한다. 버터플라이 유닛(268)의 출력은 -j를 선택적으로 적용하는 승산기(272)에 의해서 선택적으로 곱해진다. 선택가능한 승산기(272)의 출력은 버터플라이 유닛(274)으로 제공되는데, 이때 버터플라이 유닛(274)은 1개의 샘플을 보유하도록 크기가 부여된 피드백 메모리(276)에 연결된다. 적절한 일련의 트리플릿들 다음에 위치하는 경우에, 터미네이터들(260,266)은 N이 power-of-2인 경우 소정의 입력 시퀀스 길이 N에 대하여 프로세서들의 설계를 가능하게 하는 FFT 프로세서에 종결을 제공한다.
도 17은 본 발명의 방법을 설명하는 흐름도이다. 단계(300)에서, N 샘플들의 입력 시퀀스가 수신된다. 단계(306,308,310)은 1차 버터플라이 모듈의 연산에 대응하며 단계(302)를 형성한다. 단계(306)에 있어서, 샘플들의 1차 절반이 버퍼링된다. 버퍼링된 샘플들은 버퍼링되지 않은 새롭게 도달한 샘플들과 연결하여 단계(308)에서 2-포인트 FFT를 발생시키도록 쌍으로 사용된다. 2-포인트 FFT의 쌍의 발생은 각각의 쌍에 대하여 반복된다. 각각의 2-포인트 FFT 시퀀스는 단계(310)에서 복소수 피승수에 의해서 선택적으로 곱해진다.
단계(312)는 트리플릿에서 2차 버터플라이 모듈의 연산에 대응한다. 단계(314)에서, 샘플들의 1/4이 버퍼링된다. N/4 샘플들이 버퍼링될 때, 버퍼링된 샘플들은 버퍼링되지 않은 새롭게 도달한 샘플들과 연결하여 단계(316)에서 2-포인트 FFT를 발생시키도록 쌍으로 사용된다. 단계(316)과 (314)는 시퀀스에서 모든 N 샘플들이 적절하게 처리될 때까지 반복된다. 단계(316)의 쌍의 FFT 시퀀스는 단계(318)에서 복소수 피승수에 의해서 선택적으로 곱해진다.
단계(320)는 트리플릿에서 3차 버터플라이 모듈의 연산에 대응한다. 단계(322)에서, 단계(318)에 의해 제공된 샘플들의 1/8이 버퍼링된다. 버퍼링된 샘플들 및 단계(324)에 새롭게 도달한 샘플들을 기초로 하여 2-포인트 FFT가 발생된다. FFT 시퀀스의 발생은 메모리에서 모든 쌍들에 대하여 계속되고, 단계(322)과 (324)는 모든 N 샘플들이 적절하게 처리될 때까지 반복된다. 단계(324)의 결과는 단계(326)에서 복소수 트위들 팩터에 의해서 선택적으로 곱해진다.
단계(328)에 있어서, [log2N]mod3 관계식에 따라서 결정된 적절한 종결 절차가 트리플릿에서 3차 버터플라이 모듈의 출력에 적용된다.
본 발명의 방법 및 장치는 단순화한 디자인이 FFT 프로세서에 대하여 실행되도록 할 수 있다. 본 발명의 FFT 프로세서는 종결요소를 용이하게 결정하도록 시퀀스 터미네이터와 함께 반복적인 구조, FFT 트리플릿을 사용한다. 적절한 터미네이터와 함께 FFT 트리플릿을 반복적으로 사용함으로써, 본 발명의 FFT 프로세서를 N = 2Q, 이고 Q는 양의 정수인 경우 소정 길이 N의 입력 시퀀스를 수용하도록 폭넓게 활용할 수 있다.
상기한 바와 같이, 본 발명의 아키텍처는 종래 기술의 방법보다는 크지않은 실행을 제공하며, 동시에 종래의 R23SDF 실행에 의해서 사용된 power-of-8에 대응하여, power-of-2의 길이를 갖는 모든 시퀀스들에 적용이 가능하다.
본 발명의 상기한 실시 예들은 단지 설명을 위한 것이다. 그러므로, 첨부된 특허청구범위에 정의되어 있는 본 발명의 사상을 벗어나지 않는 범위 내에서 다양한 수정 및 변경이 가능함을 해당 기술분야의 숙련된 당업자는 능히 이해할 수 있을 것이다.

Claims (22)

  1. 입력 시퀀스(input sequence)를 수용하기 위한 파이프라인 고속 퓨리에 변환(FFT) 프로세서로서,
    인접한 버터플라이 모듈들의 출력 시퀀스들에 대한 단순 계수 곱셈과 복소수 계수 곱셈을 선택적으로 수행하기 위하여 선택가능한 승산기들(multipliers)에 의해 연속하여 연결된 제 1, 제 2 및 제 3 버터플라이 모듈들을 갖는 적어도 하나의 FFT 트리플릿(triplet)을 포함하며, 적어도 하나의 FFT 트리플릿 각각은 각각의 트리플릿의 제 3 버터플라이 모듈의 출력에 트위들 팩터(twiddle factor)를 적용하기 위하여 트위들 팩터 승산기에서 각각 끝나며, 입력 시퀀스를 수용하여 최종 출력 시퀀스를 출력하기 위한 상기 적어도 하나의 FFT 트리플릿은 입력 시퀀스의 FFT를 나타내는 것을 특징으로 하는 파이프라인 고속 퓨리에 변환 프로세서.
  2. 제 1 항에 있어서, 각각의 버터플라이 모듈은 radix-2 버터플라이 유닛 및 피드백 메모리를 포함하는 것을 특징으로 하는 파이프라인 고속 퓨리에 변환 프로세서.
  3. 제 2 항에 있어서, N 샘플들의 입력 시퀀스에 대하여, 각각의 버터플라이 모듈의 입력 시퀀스 X(k,n)는
    Figure 112006003711709-PCT00052
    와 동등한 것을 특징으로 하는 고속 퓨리에 변환 프로세서.
  4. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서, 단순 계수 곱셈을 수행하기 위한 적어도 하나의 선택가능한 승산기는 인접한 버터플라이 모듈에 통합된 것을 특징으로 하는 고속 퓨리에 변환 프로세서.
  5. 제 1 항 내지 제 4 항 중 어느 한 항에 있어서, 적어도 하나의 선택가능한 승산기는 각각 승산기 및 상기 승산기를 우회(bypassing)하기 위한 스위치를 포함하는 것을 특징으로 하는 고속 퓨리에 변환 프로세서.
  6. 제 1 항 내지 제 5 항 중 어느 한 항에 있어서, 상기 제 1 및 제 2 버터플라이 모듈들은 단순 계수 곱셈을 선택적으로 적용하기 위한 선택가능한 승산기들에 의해서 연결되는 것을 특징으로 하는 고속 퓨리에 변환 프로세서.
  7. 제 6 항에 있어서, 상기 제 2 및 제 3 버터플라이 모듈들은 단순 계수 곱셈을 수행하기 위한 선택가능한 승산기들 및 복소수 계수 곱셈
    Figure 112006003711709-PCT00053
    을 수행하기 위한 선택가능한 승산기에 의해서 연결되는 것을 특징으로 하는 고속 퓨리에 변환 프로세서.
  8. 제 2 항에 있어서, N 샘플들을 갖는 입력 시퀀스에 대하여, 상기 제 1, 제 2 및 제 3 버터플라이 모듈에 대한 피드백 메모리들은 각각 N/2, N/4 및 N/8 샘플들을 보유하는 것을 특징으로 하는 고속 퓨리에 변환 프로세서.
  9. 제 1 항 내지 제 8 항 중 어느 한 항에 있어서, 상기 입력 시퀀스는 길이 N이고, (log2N)mod3=1에서, 프로세서는 잇달아 다수의 FFT 트리플릿을 구비하고, 하나의 샘플을 보유하도록 크기가 부여된 대응 메모리 및 버터플라이 유닛을 갖는 FFT 터미네이터를 더 포함하며, 상기 FFT 터미네이터는, 최종 트위들 팩터 승산기로부터 출력 시퀀스를 수용하고, 입력 시퀀스의 FFT를 나타내도록 상기 수용된 출력 시퀀스에서 버터플라이 연산을 수행하는 것을 특징으로 하는 고속 퓨리에 변환 프로세서.
  10. 제 1 항 내지 제 9 항 중 어느 한 항에 있어서, 상기 입력 시퀀스는 길이 N이고, (log2 N)mod3 = 2에서, 상기 프로세서는 잇달아 다수의 FFT 트리플릿을 구비하고, 2개의 샘플과 하나의 샘플을 각각 보유하도록 크기가 부여된 대응 메모리들 및 제 1, 제 2 버터플라이 유닛들을 갖는 FFT 터미네이터를 더 포함하며, 상기 제 1 버터플라이 유닛은 상기 제 1 버터 플라이 유닛의 출력에 -j를 선택적으로 곱하기 위한 선택가능한 승산기에 의해서 상기 제 2 버터플라이 유닛에 연결되고, 상기 FFT 터미네이터는, 최종 트위들 팩터 승산기로부터 출력 시퀀스를 수용하고, 입력 시퀀스의 FFT를 나타내도록 상기 수용된 출력 시퀀스에서 버터플라이 연산을 수행하는 것을 특징으로 하는 고속 퓨리에 변환 프로세서.
  11. 제 1 항 내지 제 10 항 중 어느 한 항에 있어서, 상기 트위들 팩터 승산기는 코르딕 로테이터(cordic rotator)인 것을 특징으로 하는 고속 퓨리에 변환 프로세서.
  12. N 샘플들의 입력 시퀀스를 수용하기 위한 파이프라인 고속 퓨리에 변환(FFT) 프로세서로서,
    적어도 하나의 FFT 트리플릿(triplet)을 포함하며, 상기 트리플릿은,
    입력 시퀀스를 수용하고 상기 입력 시퀀스에서 수행된 버터플라이 연산에 따라 제 1 스테이지 출력 시퀀스를 제공하기 위한 제 1 스테이지 radix-2 버터플라이 유닛을 구비하고, 상기 제 1 스테이지 radix-2 버터플라이 유닛은 여기에 연결된 제 1 피드백 메모리를 갖는, 제 1 FFT 스테이지;
    상기 제 1 스테이지 출력 시퀀스에 단순 계수를 선택적으로 곱하기 위한 선택가능한 승산기를 구비하며, 상기 선택가능한 승산기의 출력에서 수행된 버터플라이 연산에 따라 제 2 스테이지 출력 시퀀스를 제공하기 위한 제 2 스테이지 radix-2 버터플라이 유닛을 구비하고, 상기 제 2 스테이지 radix-2 버터플라이 유닛은 여기에 연결된 제 2 피드백 메모리를 갖는, 제 2 FFT 스테이지; 그리고
    상기 제 2 스테이지 출력 시퀀스에 적어도 하나의 단순 계수와 복소수 계수 를 선택적으로 곱하기 위한 선택가능한 승산기를 구비하며, 상기 선택가능한 승산기의 출력에서 수행된 버터플라이 연산에 따라 버터플라이 출력을 제공하기 위한 제 3 스테이지 radix-2 버터플라이 유닛을 구비하고, 상기 제 3 스테이지 radix-2 버터플라이 유닛은 여기에 연결된 제 3 피드백 메모리, 및 상기 입력 시퀀스의 FFT에 대응하여 출력 시퀀스를 제공하도록 버터플라이 출력에 트위들 팩터를 곱하기 위한 승산기를 갖는, 제 3 FFT 스테이지;를 포함하는 것을 특징으로 하는 파이프라인 고속 퓨리에 변환 프로세서.
  13. N 샘플들의 입력 시퀀스를 수용하기 위한 파이프라인 고속 퓨리에 변환(FFT) 프로세서로서,
    적어도 하나의 FFT 트리플릿(triplet)을 포함하며, 상기 트리플릿은,
    입력 시퀀스를 수용하고 상기 입력 시퀀스에서 수행된 버터플라이 연산에 따라 제 1 스테이지 출력 시퀀스를 제공하기 위한 제 1 스테이지 radix-2 버터플라이 유닛을 구비하고, 상기 제 1 스테이지 radix-2 버터플라이 유닛은 여기에 연결된 제 1 피드백 메모리를 갖는, 제 1 FFT 스테이지;
    상기 제 1 스테이지 출력 시퀀스에 적어도 하나의 단순 계수와 일정한 복소수 계수를 선택적으로 곱하기 위한 선택가능한 승산기를 구비하며, 상기 선택가능한 승산기의 출력에서 수행된 버터플라이 연산에 따라 제 2 스테이지 출력 시퀀스를 제공하기 위한 제 2 스테이지 radix-2 버터플라이 유닛을 구비하고, 상기 제 2 스테이지 radix-2 버터플라이 유닛은 여기에 연결된 제 2 피드백 메모리를 갖는, 제 2 FFT 스테이지; 그리고
    상기 제 2 스테이지 출력 시퀀스에 단순 계수를 선택적으로 곱하기 위한 선택가능한 승산기를 구비하며, 상기 선택가능한 승산기의 출력에서 수행된 버터플라이 연산에 따라 버터플라이 출력을 제공하기 위한 제 3 스테이지 radix-2 버터플라이 유닛을 구비하고, 상기 제 3 스테이지 radix-2 버터플라이 유닛은 여기에 연결된 제 3 피드백 메모리, 및 상기 입력 시퀀스의 FFT에 대응하여 출력 시퀀스를 제공하도록 버터플라이 출력에 트위들 팩터를 곱하기 위한 승산기를 갖는, 제 3 FFT 스테이지;를 포함하는 것을 특징으로 하는 파이프라인 고속 퓨리에 변환 프로세서.
  14. 제 12 항 또는 13 항에 있어서, 제 1, 제 2 및 제 3 스테이지 출력 시퀀스 X(k,n)는
    Figure 112006003711709-PCT00054
    와 동등한 것을 특징으로 하는 고속 퓨리에 변환 프로세서.
  15. 제 12 항 내지 제 14 항 중 어느 한 항에 있어서, 상기 버터플라이 유닛들 중 적어도 하나는 수용된 입력 시퀀스에 단순 계수 곱셈을 적용하기 위한 통합된 예비곱셈 함수(integrated pre-multiplication function)를 포함하는 것을 특징으로 하는 고속 퓨리에 변환 프로세서.
  16. 제 12 항 내지 제 15 항 중 어느 한 항에 있어서, 상기 입력 시퀀스의 길이 N에 따라서 결정된 FFT 터미네이터를 더 포함하는 것을 특징으로 하는 고속 퓨리에 변환 프로세서.
  17. 제 16 항에 있어서, 상기 FFT 터미네이터는, 터미네이터 입력 및 상기 제 3 FFT 스테이지 승산기의 출력을 수용하고 상기 N 샘플들의 입력 시퀀스의 FFT를 나타내도록 상기 터미네이터 입력에서 버터플라이 연산을 수행하기 위하여, 하나의 샘플을 저장하도록 크기가 부여된 메모리를 갖는 버터플라이 모듈을 포함하는 것을 특징으로 하는 고속 퓨리에 변환 프로세서.
  18. 제 16 항에 있어서, 상기 FFT 터미네이터는, 터미네이터 입력 및 상기 제 3 FFT 스테이지 승산기의 출력을 수용하고 상기 터미네이터 입력에서 버터플라이 연산을 수행하기 위하여 한쌍의 샘플을 저장하도록 크기가 부여된 메모리를 갖는 제 1 버터플라이 모듈을 포함하며, 상기 출력 시퀀스의 FFT를 나타내도록 상기 터미네이터의 상기 제 1 버터플라이 모듈의 출력에서 버터플라이 연산을 수행하기 위하여 하나의 샘플을 저장하도록 크기가 부여된 메모리를 가지며 선택가능한 승산기에 의해서 상기 터미네이터의 상기 제 1 버터플라이 모듈에 연결된 제 2 버터플라이 모듈을 포함하며, 이때 상기 선택가능한 승산기는 상기 제 1 버터플라이 모듈의 출력에 -j를 선택적으로 곱하기 위한 것을 특징으로 하는 고속 퓨리에 변환 프로세서.
  19. 버터플라이 모듈을 갖는 파이프라인 고속 퓨리에 변환(FFT) 프로세서에서 N 샘플들의 시퀀스를 수행하기 위한 방법으로서,
    모든 정수에 대하여
    Figure 112006003711709-PCT00055
    에서, N 샘플들을 갖는 시퀀스로부터 단번에
    Figure 112006003711709-PCT00056
    샘플들을 수용하여 버퍼링하는 단계;
    Figure 112006003711709-PCT00057
    Figure 112006003711709-PCT00058
    샘플들을 사용하여 2-포인트 FFT를 발생시키는 단계;
    발생된 2-포인트 FFT 시퀀스에 복소수 피승수를 선택적으로 곱하는 단계; 그리고
    Figure 112006003711709-PCT00059
    관계식에 따라서 결정된 최종 시퀀스를 사용하여 FFT를 종결하는 단계;를 반복적으로 수행하는 것을 특징으로 하는 방법.
  20. 제 19 항에 있어서, 상기 복소수 피승수는 1, -j,
    Figure 112006003711709-PCT00060
    를 포함한 리스트와 복소수 트위들 팩터 계수로부터 선택되는 것을 특징으로 하는 방법.
  21. 제 19 항 또는 제 20 항에 있어서,
    Figure 112006003711709-PCT00061
    에서, 상기 FFT를 종결하는 단계는, 최종의 선택적인 곱셈으로부터 수용된 샘플을 버퍼링하는 단계, 및 N 샘플들의 시퀀스의 FFT를 얻기 위하여 버퍼링된 샘플 및 부수적인 샘플을 사용하여 2-포인트 FFT를 수행하는 단계를 포함하는 것을 특징으로 하는 방법.
  22. 제 19 항 또는 제 20 항에 있어서,
    Figure 112006003711709-PCT00062
    에서, 상기 FFT를 종결하는 단계는,
    최종의 선택적인 곱셈으로부터 수용된 한쌍의 샘플을 버퍼링하고, 2개의 버퍼링된 샘플과 2개의 부수적인 샘플들을 사용하여 페어-와이즈(pair-wise) 2-포인트 FFT를 수행하는 단계;
    상기 페어-와이즈(pair-wise) 2-포인트 FFT의 결과에 -j를 선택적으로 곱하는 단계; 그리고
    페어-와이즈(pair-wise) 2-포인트 FFT의 선택적인 곱셈으로부터 수용된 샘플을 버퍼링하고, N 샘플들의 시퀀스의 FFT를 얻기 위하여 버퍼링된 샘플 및 부수적인 샘플을 사용하여 2-포인트 FFT를 수행하는 단계;를 포함하는 것을 특징으로 하는 방법.
KR1020067001201A 2003-07-18 2004-06-21 리코드 radix-2 파이프라인 FFT 프로세서 KR20060061796A (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US48797503P 2003-07-18 2003-07-18
US60/487,975 2003-07-18
US10/760,379 2004-01-21
US10/760,379 US20050015420A1 (en) 2003-07-18 2004-01-21 Recoded radix-2 pipeline FFT processor

Publications (1)

Publication Number Publication Date
KR20060061796A true KR20060061796A (ko) 2006-06-08

Family

ID=34068377

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067001201A KR20060061796A (ko) 2003-07-18 2004-06-21 리코드 radix-2 파이프라인 FFT 프로세서

Country Status (6)

Country Link
US (1) US20050015420A1 (ko)
EP (1) EP1646953A2 (ko)
KR (1) KR20060061796A (ko)
CA (1) CA2532710A1 (ko)
IL (1) IL172572A0 (ko)
WO (1) WO2005008516A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100890768B1 (ko) * 2007-03-21 2009-04-02 (주)카이로넷 데이터 변환 프로세서 및 이를 갖는직교주파수분할다중변조 수신장치

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100378719C (zh) * 2005-06-16 2008-04-02 中国航天时代电子公司第七七一研究所 基2单路深度延时反馈的流水线构成fft处理器的实现方法
CN100390782C (zh) * 2005-07-15 2008-05-28 北京大学深圳研究生院 一种实时快速傅立叶变换电路
DE102005045519A1 (de) * 2005-09-23 2007-03-29 Newlogic Technologies Ag Verfahren und Vorrichtung zur FFT Berechnung
KR100762281B1 (ko) * 2005-12-08 2007-10-01 한국전자통신연구원 고속 푸리에 변환 시스템의 메모리 주소 생성 방법 및 그를이용한 트위들 팩터 생성 장치
US7685220B2 (en) * 2005-12-14 2010-03-23 Telefonaktiebolaget L M Ericsson (Publ) Circular fast fourier transform
US7801228B2 (en) * 2006-03-22 2010-09-21 Virginia Tech Intellectual Properties, Inc. Analog fourier transform channelizer and OFDM receiver
ATE466342T1 (de) * 2006-07-18 2010-05-15 Ericsson Telefon Ab L M Faltung von eingabedatenwerten für eine transformation
US8161093B2 (en) * 2006-12-06 2012-04-17 Samsung Electronics Co., Ltd. Complex multiplier and twiddle factor generator
TW200828044A (en) * 2006-12-21 2008-07-01 Univ Nat Chiao Tung Pipeline structure reconfigurable mixed-radix Fast Fourier Transform
KR100929393B1 (ko) 2007-07-26 2009-12-02 연세대학교 산학협력단 4×4 다중입출력 직교주파수분할다중화 무선랜 시스템을위한 고속푸리에변환 방법 및 그 장치
WO2009110022A1 (ja) * 2008-03-03 2009-09-11 富士通株式会社 無線通信装置
CN101937423B (zh) * 2009-07-01 2012-06-13 中兴通讯股份有限公司 一种流水式fft/ifft的处理***
CN102592601B (zh) 2011-01-10 2014-09-17 华为技术有限公司 一种信号处理方法和装置
CN102129419B (zh) * 2011-03-04 2016-02-03 中山大学 基于快速傅立叶变换的处理器
CN102184160B (zh) * 2011-05-18 2013-01-09 电子科技大学 基于余数***的快速傅立叶变换***
US8990281B2 (en) * 2012-09-21 2015-03-24 International Business Machines Corporation Techniques for improving the efficiency of mixed radix fast fourier transform
CN103488611B (zh) * 2013-09-02 2016-08-10 电子科技大学 基于IEEE802.11.ad协议的FFT处理器
US10282387B2 (en) 2013-11-06 2019-05-07 Nxp Usa, Inc. FFT device and method for performing a Fast Fourier Transform
US20190332642A1 (en) * 2018-04-25 2019-10-31 SiliconIntervention Inc. System and Method for Computing Oscillating Functions
CN109117188B (zh) * 2018-08-06 2022-11-01 合肥工业大学 一种多路混合基fft可重构蝶形运算器
CN112364589A (zh) * 2020-11-11 2021-02-12 河北民族师范学院 用于fft处理器芯片设计的新型改良蝶形单元算法结构
US20220237259A1 (en) * 2021-01-28 2022-07-28 Stmicroelectronics, Inc. Methods and devices for fast fourier transforms
CN112966209B (zh) * 2021-03-11 2023-05-05 北京理工大学 一种fft处理器及其处理数据的方法
US12014068B2 (en) 2021-04-27 2024-06-18 Microchip Technology Inc. System and method for double data rate (DDR) chip-kill recovery
WO2022256220A1 (en) 2021-06-01 2022-12-08 Microchip Technology Inc. Memory address protection
US11843393B2 (en) 2021-09-28 2023-12-12 Microchip Technology Inc. Method and apparatus for decoding with trapped-block management

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4393457A (en) * 1981-03-26 1983-07-12 Advanced Micro Devices, Inc. Method and apparatus for sequencing addresses of a fast Fourier transform array
JPS5922165A (ja) * 1982-07-28 1984-02-04 Nippon Telegr & Teleph Corp <Ntt> アドレス制御回路
US4821224A (en) * 1986-11-03 1989-04-11 Microelectronics Center Of N.C. Method and apparatus for processing multi-dimensional data to obtain a Fourier transform
DE3900349A1 (de) * 1989-01-07 1990-07-12 Diehl Gmbh & Co Schaltungsanordnung zur echtzeit-durchfuehrung der schnellen fouriertransformation
US5091875A (en) * 1990-03-23 1992-02-25 Texas Instruments Incorporated Fast fourier transform (FFT) addressing apparatus and method
US5694347A (en) * 1991-12-19 1997-12-02 Hughes Electronics Digital signal processing system
US5371696A (en) * 1992-12-24 1994-12-06 Sundararajan; Duraisamy Computational structures for the fast Fourier transform analyzers
US6081821A (en) * 1993-08-05 2000-06-27 The Mitre Corporation Pipelined, high-precision fast fourier transform processor
US5717620A (en) * 1995-10-24 1998-02-10 Airnet Communications Corporation Improved-accuracy fast-Fourier-transform butterfly circuit
US6098088A (en) * 1995-11-17 2000-08-01 Teracom Ab Real-time pipeline fast fourier transform processors
US5890098A (en) * 1996-04-30 1999-03-30 Sony Corporation Device and method for performing fast Fourier transform using a butterfly operation
US5831883A (en) * 1997-05-27 1998-11-03 United States Of America As Represented By The Secretary Of The Air Force Low energy consumption, high performance fast fourier transform
FR2772951B1 (fr) * 1997-12-19 2000-03-17 St Microelectronics Sa Procede de commande d'un etage radix 4 d'un dispositif electroonique de calcul d'une transformee de fourier a architecture dite "pipelinee", et dispositif correspondant
FR2772950B1 (fr) * 1997-12-19 2000-03-17 St Microelectronics Sa Dispositif electronique de calcul d'une transformee de fourier a architecture dite "pipelinee" et procede de commande correspondant
US6061705A (en) * 1998-01-21 2000-05-09 Telefonaktiebolaget Lm Ericsson Power and area efficient fast fourier transform processor
US6490672B1 (en) * 1998-05-18 2002-12-03 Globespanvirata, Inc. Method for computing a fast fourier transform and associated circuit for addressing a data memory
FR2788869B1 (fr) * 1999-01-25 2001-04-13 St Microelectronics Sa Dispositif electronique de calcul de la transformee de fourier directe ou inverse du produit d'un symbole complexe par une forme d'onde sinusoidale complexe, en particulier a architecture dite "pipelinee"
KR20020034746A (ko) * 2000-11-03 2002-05-09 윤종용 고속 및 면적효율적인 알고리즘을 적용한 고속 프리에변환 프로세서
JP2002351858A (ja) * 2001-05-30 2002-12-06 Fujitsu Ltd 処理装置
US7082451B2 (en) * 2002-09-09 2006-07-25 Freescale Semiconductor, Inc. Reconfigurable vector-FFT/IFFT, vector-multiplier/divider
US20040059766A1 (en) * 2002-09-23 2004-03-25 Yeou-Min Yeh Pipelined low complexity FFT/IFFT processor

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100890768B1 (ko) * 2007-03-21 2009-04-02 (주)카이로넷 데이터 변환 프로세서 및 이를 갖는직교주파수분할다중변조 수신장치

Also Published As

Publication number Publication date
IL172572A0 (en) 2006-04-10
WO2005008516A3 (en) 2005-12-29
WO2005008516A2 (en) 2005-01-27
CA2532710A1 (en) 2005-01-27
US20050015420A1 (en) 2005-01-20
EP1646953A2 (en) 2006-04-19

Similar Documents

Publication Publication Date Title
KR20060061796A (ko) 리코드 radix-2 파이프라인 FFT 프로세서
He et al. A new approach to pipeline FFT processor
US6073154A (en) Computing multidimensional DFTs in FPGA
Jia et al. A new VLSI-oriented FFT algorithm and implementation
US6098088A (en) Real-time pipeline fast fourier transform processors
US4821224A (en) Method and apparatus for processing multi-dimensional data to obtain a Fourier transform
KR20010034300A (ko) 파이프라인 고속 푸리에 변환 프로세서
US6993547B2 (en) Address generator for fast fourier transform processor
Wang et al. Design of pipelined FFT processor based on FPGA
US20100128818A1 (en) Fft processor
US7653676B2 (en) Efficient mapping of FFT to a reconfigurable parallel and pipeline data flow machine
Singh et al. Design of radix 2 butterfly structure using vedic multiplier and CLA on xilinx
US6728742B1 (en) Data storage patterns for fast fourier transforms
Fang et al. A pipelined algorithm and area-efficient architecture for serial real-valued FFT
Mahesh et al. Performance evaluation of FFT through Adaptive Hold Logic (AHL) booth multiplier
Hazarika et al. Low-complexity continuous-flow memory-based FFT architectures for real-valued signals
Szedo et al. High-performance FFT processing using reconfigurable logic
CN1823333A (zh) 重新编码的基-2流水线fft处理器
Nikara et al. Discrete cosine and sine transforms—regular algorithms and pipeline architectures
Chien et al. Design and realisation of a new hardware efficient IP core for the 1-d discrete Fourier transform
US20180373676A1 (en) Apparatus and Methods of Providing an Efficient Radix-R Fast Fourier Transform
Dawwd et al. Reduced Area and Low Power Implementation of FFT/IFFT Processor.
Kannan et al. FPGA implementation of FFT architecture using modified Radix-4 algorithm
Suleiman et al. A family of scalable FFT architectures and an implementation of 1024-point radix-2 FFT for real-time communications
Pyrgas et al. An FPGA design for the two-band fast discrete Hartley transform

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid