KR100692997B1 - 패스트퓨리에변환 장치 - Google Patents

패스트퓨리에변환 장치 Download PDF

Info

Publication number
KR100692997B1
KR100692997B1 KR1020010020552A KR20010020552A KR100692997B1 KR 100692997 B1 KR100692997 B1 KR 100692997B1 KR 1020010020552 A KR1020010020552 A KR 1020010020552A KR 20010020552 A KR20010020552 A KR 20010020552A KR 100692997 B1 KR100692997 B1 KR 100692997B1
Authority
KR
South Korea
Prior art keywords
processing
data
memory
redox
digit
Prior art date
Application number
KR1020010020552A
Other languages
English (en)
Other versions
KR20020080789A (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 삼성전자주식회사
Priority to KR1020010020552A priority Critical patent/KR100692997B1/ko
Priority to US10/101,743 priority patent/US20020165683A1/en
Publication of KR20020080789A publication Critical patent/KR20020080789A/ko
Application granted granted Critical
Publication of KR100692997B1 publication Critical patent/KR100692997B1/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

Abstract

데이터 처리구조가 단순하면서 처리속도를 향상시킬 수 있는 패스트퓨리에변환 장치가 개시된다. 패스트퓨리에변환장치는 메모리와, 메모리에 저장된 처리대상 데이터에 대해 레딕스 연산기중 단위 처리 비트수가 많은 레딕스 연산기 순서로 부여된 우선순위에 따라 대응하는 데이터 처리군을 분류하고, 분류된 데이터 처리군 순서에 따라 대응하는 레딕스 연산기에 의해 처리되도록 메모리를 제어하되, 레딕스 연산기에 의해 연산처리되어 메모리에 저장된 데이터 처리군을 연산처리순서에 대응되게 설정된 역전방식에 의해 재배열처리하여 복원시키는 연산처리부를 구비한다. 이러한 패스트퓨리에변환 장치는 레딕스 연산 수행 후 한번의 디지트 역전과정에 의해 데이터를 복원시킬수 있어 처리가 단순화된다.
패스트퓨리에변환, FFT, 버터플라이, 디지트, 어드레스

Description

패스트퓨리에변환 장치{Fast fourier transform apparatus}
도 1은 이산 퓨리에변환에 대한 방정식을 레딕스-2 버터플라이부로 표현한 신호흐름도,
도 2는 16-포인트 레딕스-2 FFT 프로세서의 신호흐름도,
도 3은 이산 퓨리에변환에 대한 방정식을 레딕스-4 버터플라이부로 표현한 신호흐름도,
도 4는 16-포인트 레딕스-4 FFT 프로세서의 신호흐름도,
도 5는 종래의 패스트퓨리에변환(FFT) 장치를 개략적으로 나타낸 블록도,
도 6은 도 5의 어드레스발생기를 나타낸 도면,
도 7은 도 5의 장치에 의해 FFT 크기가 32포인트인 경우의 디지트역전된 예를 도시한 도면,
도 8은 본 발명에 따른 패스트퓨리에변환 장치의 일 실시예를 나타낸 블록도,
도 9는 도 8의 디지트역전용 어드레스발생기를 나타낸 도면,
도 10은 도 8의 장치에 의해 FFT 크기에 따라 변환된 디지트역전의 예를 나타낸 도면, 그리고
도 11은 도 8의 장치에 의해 FFT 크기가 32-포인트인 경우의 디지트역전된 예를 도시한 도면이다.
* 도면의 주요부분에 대한 부호의 설명 *
100 : 어드레스발생기 200 : 제1램
201 : FFT 컨트롤러 203 : 버터플라이연산용 어드레스발생기
205 : 디지트역전용 어드레스발생기 207 : 제1멀티플렉서
209 : 램 211 : 제2멀티플렉서
213 : 레딕스-4 연산기 215 : 레딕스-2 연산기
본 발명은 패스트퓨리에변환(FFT:Fast Fourier Transform) 장치에 관한 것이다.
디지털 기술의 발전에 따라 방송방식이 아날로그방식에서 디지털방식으로 전환되고 있는 추세이다. 라디오 방송은 이미 디지털 방송을 시행하고 있거나, 준비 중인 상황이다. 디지털 오디오 방송(DAB:Digital Audio Broadcasting)은 전송방식으로 OFDM(Orthogonal Frequency Division Multiplex)을 사용하고 있다. 이는 패스트퓨리에변환(FFT:Fast Fourier Transform)을 이용한 방식으로 이에 의하면, 다양한 입력의 포워드(Forward) FFT를 처리할 수 있어야 하며 또, 전체 시스템을 구성할 때 동기부의 설계에 따라 인버어스(Inverse) FFT를 처리할 수 있어야 한다.
패스트퓨리에변환(FFT)은 디지털신호처리(DSP:Digital Signal Processing) 분야에서 사용되는 가장 중요한 알고리즘 중의 하나이며, 이산 퓨리에변환(DFT:Discrete Fourier Transform)을 구현하는 알고리즘의 일반적인 명칭이다. 패스트퓨리에변환(FFT)의 알고리즘은 실시간으로 신호를 처리하기 위하여, 하나 또는 그 이상의 집적회로로서 구현된다. 그리고, 패스트퓨리에변환(FFT)의 연산은 프로그래머블 디에스피(DSP:Digital Signal Processor)에 구현된 소프트웨어 또는 전용 FFT프로세세에 의해 수행된다. 복수(N) 포인트 순방향(direct) 이산 퓨리에변환(DFT)에 대한 기본 방정식은 다음과 같이 표현된다.
Figure 112001008720406-pat00001
여기서, k=0,1,2,.....,N-1 이다.
Figure 112001008720406-pat00002
여기서,
Figure 112001008720406-pat00003
는 트위들 요소(Twiddle factor)이다.
도 1은 식(1)을 버터플라이로 표현한 레딕스-2(radix-2) 버터플라이부의 기본구성으로서, 입력과 출력사이의 관계는 다음과 같다.
Figure 112001008720406-pat00004
도 2는 16-포인트 레딕스-2 FFT의 프로세서의 신호흐름도이다. 16-포인트 FFT의 버터플라이 연산은 4개의 버터플라이 스테이지(I,II,III,IV)에 의해 수행되며, 각 스테이지는 8개의 버터플라이부로 구성된다.
도 3은 식(1)을 버터플라이로 표현한 레딕스-4 버터플라이부의 신호흐름도이다. 그리고, 도 4는 16-포인트 레딕스-4 FFT 프로세서의 신호흐름도이다. 16-포인트 FFT의 버터플라이 계산은 2개의 버터플라이 스테이지에 의해 수행되며, 각 스테이지는 4개의 버터플라이부로 구성된다.
레딕스-2 구조는 256, 512, 1024, 2048 등의 2n으로 구성되는 모든 입력을 처리할 수 있으나, 상대적으로 처리속도가 느린 단점이 있다. 레딕스-4 구조는 256, 1024 등의 4n으로 구성되는 입력을 처리할 수 있으나, 512, 2048 등의 입력모드의 경우는 4n의 형태가 아니기 때문에 처리할 수 없는 단점이 있다. 따라서, 이런점을 감안하면, 레딕스-2 구조와 레딕스-4 구조를 조합하여 이용하는 것이 바람직하다.
도 5는 종래의 패스트퓨리에변환 장치를 개략적으로 나타낸 블록도이다.
도면을 참조하면, FFT 장치는 어드레스발생기(100), 제1램(200), 사용자 프로그래머블 디에스피(DSP)(300) 및 제2램(400)을 구비한다.
어드레스발생기(100)와 사용자프로그래머블 DSP(300)는 FFT 연산처리 대상의 데이터를 수신한다. 어드레스발생기(100)는 FFT 연산처리 대상의 데이터에 대하여 어드레스를 발생시키고, 발생한 어드레스를 제1램(200)에 송신할 수 있도록 연결되어 있다. 제1램(200)은 어드레스발생기(100)로부터 발생된 어드레스를 수신하고, 사용자 프로그래머블 DSP(300)로부터는 FFT 연산처리 대상의 데이터를 수신하여 수신한 연산처리 대상 데이터를 수신한 어드레스로 재배치한다.
사용자 프로그래머블 DSP(300)는 제1램(200)로부터 어드레스데이터를 수신하고, 수신한 어드레스데이터를 연산처리를 하여 연산처리된 데이터를 제2램(400)에 송신할 수 있도록 연결되어 있다. 제2램(400)은 사용자 프로그래머블 DSP(300)로부터 연산처리된 데이터를 수신하여 저장한다.
도 6은 도 5의 어드레스발생기를 나타낸 도면이다.
도면을 참조하면, 어드레스발생기(100)는 사용자프로그램 레지스터(115), 시퀀스역전 어드레스발생기(120), 및 디지트비역전 컨트롤러(135)를 구비한다.
사용자프로그램 레지스터(115)는 시퀀스역전발생기(120)로 FFT 연산처리대상 데이터에 대한 바이너리코드 신호를 제공한다. 사용자프로그램 레지스터(115)에 의해 제공되는 바이너리코드는 N/2로 표현될 수 있다. 여기서, N은 사용자프로그램 DSP(300)에서 수행되는 버터플라이연산의 모든 레딕스들의 곱과 동일한 값이다.
시퀀스역전발생기(120)는 사용자프로그램 레지스터(115)로부터 입력된 데이터의 최상위비트(MSB:Most Significant Bit)가 최하위비트(LSB:Least Significant Bit)로 그리고, 입력된 데이터의 최하위비트(LSB)가 최상위비트(MSB)로 변환되도록, 입력된 데이터를 역전시켜 출력한다. 입력된 데이터의 최상위비트와 최하위비트 사이의 중간 비트들도 역전에 의해 재배열된다. 따라서, 시퀀스역전발생기(120)는 사용자프로그램 레지스터(115)로부터 수신한 바이너리코드 신호의 시퀀스를 역전시키게 된다.
디지트비역전 컨트롤러(135)는 시퀀스역전발생기(120)에서 출력되는 데이터의 비트수에 대응되는 수의 스위치를 제어한다. 예컨대, 시퀀스역전발생기(120)에서 출력되는 데이터가 20-비트 폭이라고 하면, 디지트비역전 컨트롤러(135)는 20개의 스위치를 제어한다.
기타 어드레스시퀀스발생기(110)는 소정의 트위들팩터 W(k)를 사용자프로그램 DSP(300;도 5참조)에 제공하는 소위 버터플라이 가중시퀀스이다.
N=32인 경우에 사용자프로그램 레지스터(115)로부터 000010...000, 000100...000, 000110...000, 001000...000, ... , 111110...000 등의 바이너리코드신호가 시퀀스역전발생기(120)로 송신되는 경우를 살펴본다. 이 경우, 시퀀스역전발생기(120)는 사용자프로그램 레지스터(115)로부터 수신한 바이너리코드신호를 000...010000, 000...001000, 000...011000, 000...000100, ... , 000...011111 등으로 시퀀스를 역전시키고, 역전된 시퀀스 어드레스데이터를 출력버스(131)를 통해 출력한다.
시퀀스역전발생기(120)의 출력버스(131)는 입력된 어드레스데이터가 20-비트 폭일 경우에, E00부터 E19까지의 라인으로 출력된다. 여기서, 라인 E00는 출력버스(131)의 최하위비트를 전송하고, 라인 E19는 출력버스(131)의 최상위비트를 전송한다.
라인 E00부터 E19까지에는 대응되는 수의 스위치(SW0, SW1, SW2, ... , SW19)가 배치되어 있다. 디지털비역전컨트롤러(135)는 각 스위치(SWj) 중의 어느 하나를 선 택함으로써, 선택된 스위치를 통해 전송된 비트는 역전되지 않도록 한다. 이로써, 어드레스발생기(100)는 시퀀스역전발생기(120)에서 발생된 어드레스를 디지트비역전 컨트롤러(135)에 의해 선택된 비트는 역전되지 않도록 하면서 제1램(200)에 송신하게 된다.
제1램(200)은 어드레스발생기(100)로부터 수신한 어드레스데이터를 수신하여 저장한다. 사용자프로그램 DSP(300)는 제1램(200)으로부터 저장된 어드레스데이터를 수신하고, 수신된 어드레스에 따라 저장되어 있는 프로그램에 의하여 버터플라이 연산을 수행한다. 이 때, 디지트비역전 컨트롤러(135)에 의하여 선택된 비트는 버터플라이 연산이 수행될 때, 역전되지 않고 그 위치를 유지하게 된다.
도 7은 도 5의 32-포인트인 경우의 디지트역전의 예를 나타낸 도면이다.
종래기술에 따른 FFT 장치가 32-포인트인 경우의 레딕스 4-4-2 를 수행하는 경우에, 1단계로 시퀀스역전발생기(120;도 6참조)는 상술한 바와 같이 시퀀스를 역전시킨다. 즉, a4 a3 a2 a1 a0로 배열된 어드레스데이터는 1단계에서 a0 a1 a2 a3 a4로 그 시퀀스가 역전된다. 2단계에서 시퀀스역전된 어드레스는 사용자프로그램 DSP에서 버터플라이 연산이 수행된다. 이 때, 디지트비역전 컨트롤러(135;도 6참조)에 의해 선택된 비트는 디지트역전이 수행되지 않는다. 예컨대, 레딕스 4-4-2의 경우에는 시퀀스 역전된 a0 a1 a2 a3 a4 배열에서 a0와 a1이 디지트역전되고, a2와 a3가 디지트역전 되지만, a4는 디지트역전되지 않는다.
종래의 기술에 따른 FFT 장치는 어드레스발생기를 구현함에 있어서, 먼저 시퀀스의 배열을 역전시키고, 시퀀스가 역전된 어드레스에서 디지트비역전 비트를 선 택한 후에, 사용자프로그램 DSP에 의한 디지트역전을 수행하는 2단계의 구성을 취하였다. 또한, 이러한 FFT 장치는 각 스테이지를 구성하는 레딕스의 구조에 따라 디지트비역전 컨트롤러가 별도의 복잡한 로직을 구비하여야 한다. 특히, 레딕스-4 와 레딕스-2가 혼합된 구조에서 레딕스-2를 먼저 처리하거나, 레딕스-2를 중간에 처리하는 구조에서는 더욱 그러하다.
본 발명은 상기와 같은 문제점을 해결하기 위하여 창안된 것으로서, 데이터 처리구조가 단순하면서 처리속도를 향상시킬 수 있는 패스트퓨리에변환 장치를 제공하는데 그 목적이 있다.
상기의 목적을 달성하기 위하여 본 발명에 따르는 패스트퓨리에변환 장치는, 단위 처리 비트 수가 상호 다른 복수의 레딕스 연산기에 의해 버터 플라이 연산을 수행하는 패스트 퓨리에 변환장치에 있어서, 메모리와; 상기 메모리에 저장된 처리대상 데이터에 대해 상기 레딕스 연산기중 단위 처리 비트수가 많은 레딕스 연산기 순서로 부여된 우선순위에 따라 대응하는 데이터 처리군을 분류하고, 분류된 데이터 처리군 순서에 따라 대응하는 레딕스 연산기에 의해 처리되도록 상기 메모리를 제어하되, 상기 레딕스 연산기에 의해 연산처리되어 상기 메모리에 저장된 데이터 처리군을 연산처리순서에 대응되게 설정된 역전방식에 의해 재배열처리하여 복원시키는 연산처리부;를 구비한다.
바람직하게는 상기 연산처리부는 상기 메모리에 저장된 연산처리 대상의 데 이터에 대한 처리속성정보로부터 데이터 처리군에 대응하는 연산 어드레스를 발생시키는 버트플라이 연산용 어드레스 발생기와; 상기 처리속성정보로부터 상기 레딕스 연산기에 의해 연산처리되어 상기 메모리에 저장된 데이터의 배열을 복원시키기 위한 디지트 역전용 어드레스를 발생시키는 디지트 역전용 어드레스 발생기와; 제1 스위칭제어신호에 따라 상기 연산 어드레스와 상기 디지트 역전용 어드레스를 선택하여 상기 메모리에 출력하는 제1스위칭부와; 제2 스위칭 제어신호에 따라 상기 메모리와 상기 레딕스 연산기중 어느 하나를 선택적으로 접속시키는 제2스위칭부와; 처리대상 데이터를 분석하고, 분석결과에 대응되는 버터플라이 연산의 수행 및 데이터 배열복귀가 이루어지도록 하기 위한 상기 처리속성정보를 생성 및 출력하고, 상기 처리속성정보에 따라 상기 제1스위칭 제어신호와 상기 제2스위칭 제어신호를 출력하는 FFT 콘트롤러;를 구비한다.
상기 처리속성정보는 연산처리 대상 데이터에 대해 분류한 데이터 처리군들의 처리순서에 따라 순차적으로 부여하는 스테이지 카운터값, 전체 스테이지 수를 포함한다.
상기 레딕스 연산기는 레딕스-4 연산기와 레딕스-2 연산기를 구비하고,
상기 FFT 콘츄롤러는 상기 스테이지 카운트값이 상기 전체 스테이지 개수 보다 크면 상기 디지트 역전용 어드레스가 상기 메모리에 출력되도록 상기 제1스위칭부를 제어한다.
상기 레딕스 연산기는 레딕스-4 연산기와 레딕스-2 연산기를 구비하고, 상기 FFT 콘츄롤러는 처리대상 데이터의 전체 비트 수가 홀수이고, 상기 스테이지 카운 트값이 상기 전체 스테이지 개수와 같으면 상기 메모리와 상기 레딕스-2 연산기가 접속될 수 있도록 상기 제2스위칭부를 제어한다.
이하에서는 첨부된 도면을 참조하여 본 발명을 보다 상세하게 설명한다.
도 8은 본 발명에 따른 패스트퓨리에변환 장치의 일 실시예를 나타낸 도면이다.
도면을 참조하면, 패스트퓨리에 변환(FFT) 장치는, FFT 컨트롤러(201), 버터 플라이 연산용 어드레스 발생기(203), 디지트 역전용 어드레스 발생기(205), 제1멀티플렉서(207), 메모리(209), 제2멀티플렉서(211), 레딕스-4 연산기(213) 및 레딕스-2 연산기(215)를 구비한다.
FFT 컨트롤러(201)는 처리대상 데이터의 버터플라이 연산 및 연산된 데이터의 배열을 복원시킬 수 있도록 각 요소를 제어한다. FFT 컨트롤러(201)는 처리대상 데이터의 전체 비트 수에 대응되게 각 요소의 제어를 위해 요구되는 처리속성정보를 생성한다. FFT 컨트롤러(201)는 외부로부터 입력된 FFT 연산처리대상 데이터를 메모리(209)에 저장시킨다.
FFT 컨트롤러(201)는 메모리(209)에 저장된 처리대상 데이터에 대해 레딕스 연산기중 단위 처리 비트수가 상대적으로 많은 레딕스 연산기에 의해 처리가능한 데이터 처리군에 우선순위를 부여하고, 단위 처리 비트수가 상대적으로 적은 레딕스 연산기에 의해 처리가능한 잔류 데이터 처리군을 후순위로 부여하는 방식에 의해 데이터 처리군의 분류 및 처리 순서를 결정한다. 데이터 처리군 순서는 처리대상 데이터에 대해 단위 처리 비트수가 상대적으로 많은 레딕스 연산기에 대응되는 처리단위 비트수에 대응되는 개수의 비트씩을 하위비트 순서로 구획하여 결정한다.
또한, FFT 컨트롤러(201)는 분류된 데이터 처리군이 대응하는 레딕스 연산기에 의해 처리되도록 버터플라이 연산용 어드레스 발생기(203), 제1멀티플렉서(207), 메모리(209) 및 제2멀티플렉서(211)를 제어한다. 또한, FFT 컨트롤러(201)는 레딕스 연산기(213)(215)에 의해 연산처리되어 메모리(209)에 저장된 데이터를 데이터 처리군의 연산처리순서에 대응되는 디지트 역전방식에 의해 재배열처리하여 복원시키도록 디지트 역전용 어드레스 발생기(205)와 제1멀티플렉서(207)를 통해 메모리(209)를 제어한다.
도시된 예와 같이 적용되는 연산기가 레딕스-4 연산기(213)와 레딕스-2 연산기(215)일 경우, FFT 컨트롤러(201)는 처리대상 데이터를 최하위비트부터 2개의 디지트 단위로 분류하여 데이터 처리군 순서를 결정한다. 여기서 데이터 처리군 순서는 후술하는 스테이지 카운터값에 해당한다.
또한, FFT 컨트롤러(201)는 결정된 데이터 처리군 순서에 따라 현재의 처리군 데이터가 2개의 비트로 이루어져 있으면, 레딕스-4연산기에 의해 연산처리되게 각 요소를 제어한다. 또한 FFT 컨트롤러(201)는 최후 순위 처리군의 데이터가 1비트로 이루어진 경우 레딕스-2 연산기에 의해 처리되도록 각 요소를 제어한다. 최 후 순위 까지의 데이터 처리군의 연산처리가 완료되면, 각 처리군의 연산처리순서에 대응되는 디지트 역전 어드레스에 의해 연산처리된 데이터의 배열이 복원되도록 각 요소를 제어한다.
처리속성정보는 처리대상데이터에 대해 현재 처리군에 대한 스테이지 카운터 값, 전체 스테이지개수, 바이너리 카운터값 및 log2(FFT크기)가 있다.
버터플라이연산용 어드레스발생기(203)는 FFT 연산처리대상 데이터에 대한 처리속성정보 예컨대, 스테이지 카운터값, 전체 스테이지개수를 FFT 콘트롤러(201)로부터 제공받고, 제공된 처리속성정보에 따라 처리대상 데이터에 대한 버터플라이 연산용 어드레스를 발생시킨다.
디지트역전용 어드레스발생기(205)도 도 9에 도시된 바와 같이, FFT 컨트롤러(201)로부터 연산처리대상 데이터에 대한 스테이지 카운터값, 전체 스테이지개수, 바이너리 카운터값, 및 log2(FFT크기)을 포함하는 처리속성정보에 따라 디지트역전된 어드레스를 발생시킨다.
제1멀티플렉서(207)는 제1스위칭부로 적용된 것으로서, FFT 컨트롤러(201) 및 메모리(209)와 연결되어 있다. 제1멀티플렉서(207)는 FFT 컨트롤러(201)에 제어되어 처리대상 데이터의 버터 플라이 연산이 수행되는 동안은 버터 플라이 연산용 어드레스 발생기에서 출력되는 연산용 어드레스를 메모리(209)에 출력하고, 연산기(213)(215)에 의해 연산이 완료된 다음에는 디지트 역전용 어드레스 발생기에서 출력되는 어드레스를 메모리(209)에 출력한다.
바람직하게는 제1멀티플렉서(207)는 연산처리대상 데이터에 대한 현재 스테이지 카운터값이 전체 스테이지개수 보다 작거나 같은 경우에는 버터플라이 연산용 어드레스 발생기(203)와 접속한다. 또한, 제1멀티플렉서(207)는 연산처리대상 데이터에 대한 스테이지 카운터값이 전체 스테이지개수 보다 크면 디지트 역전용 어드 레스 발생기(205)와 접속한다.
메모리(209)는 레딕스 연산기(213)(215)에 의한 연산처리기간동안 제1멀티플렉서(207)로부터 입력된 어드레스에 대응되는 데이터를 제2멀티플렉서(211)를 통해 출력한다.
메모리(209)는 레딕스 연산기(213)(215)에 의한 연산처리가 완료된 다음에 제1멀티플렉서(207)로부터 입력된 어드레스에 따라 연산처리된 데이터를 재배열한다.
제2멀티플렉서(211)는 제2스위칭부로서 적용된 것으로서, FFT 컨트롤러(201)에 제어되어 메모리(209)와 레딕스 연산기(213)(214)중 어느 하나를 선택 접속시킨다. 제2멀티플렉서(211)는 처리대상 데이터의 전체 비트 수가 짝수이면, 스테이지 카운트값이 전체 스테이지에 도달할 때 까지 메모리(209)와 레딕스-4 연산기(213)가 접속될 수 있도록 FFT콘트롤러(201)에 의해 제어된다.
제2멀티플렉서(211)는 처리대상 데이터의 전체 비트가 홀수이면, 스테이지 카운트값이 전체 스테이지에 도달하기 전까지는 메모리(209)와 레딕스-4 연산기(213)가 접속될 수 있도록 FFT콘트롤러(201)에 제어된다. 또한, 제2멀티플렉서(211)는 처리대상 데이터의 전체 디지트 개수가 홀수일 경우, 스테이지 카운트값이 전체 스테이지에 도달하면 메모리(209)와 레딕스-2 연산기(215)가 접속될 수 있도록 FFT콘트롤러(201)에 제어된다.
제2멀티플렉서(211)는 FFT콘트롤러(201)로부터 연산처리대상 데이터에 대한 스테이지 카운터값, 전체 스테이지개수, 및 r 값에 대한 처리속성 정보를 제공받아 스위칭 제어가 이루어지도록 구성될 수 있다. 여기서, r 값은 [log2(FFT크기=N)]%2 를 말한다. 또한, [log2(FFT크기)]%2는 log2(FFT크기)를 2로 나누었을 때의 나머지를 말한다. 제2멀티플렉서(211)는 나머지가 0인 경우에는 레딕스-4연산기(213)에 의해서만 연산이 이루어 지도록 제어되고 , 나머지가 0이 아닌 경우에는 스테이지 카운터값이 전체 스테이지에 도달할 때 레딕스-2연산기(215)에 의해 연산처리되도록 제어된다.
레딕스-4 연산기(213)와 레딕스-2 연산기(215)는 제2멀티플렉서(211)를 통해 메모리(209)로부터 입력된 데이터를 알려진 버터플라이 연산 방식에 의해 버터플라이 연산을 하고 대응되는 어드레스에 연산처리된 데이터를 다시 저장시킨다.
이러한 패스트퓨리에변환 장치의 작용을 설명하면 다음과 같다.
FFT 컨트롤러(201)는 FFT 연산처리대상 데이터를 수신하면, 메모리(209)에 저장시킨다. 그리고, FFT 컨트롤러(201)는 FFT 연산처리대상 데이터를 분석하여 전체 스테이지개수, 스테이지 카운터값, FFT크기, log2(FFT크기), 바이너리 카운터값 및 r값 등을 산출한다. 전체 스테이지개수는 2개의 디지트 단위로 구획하고, 나머지가 하나인 경우에도 한 스테이지로 정한다. 예컨대, 이진수로 표현된 FFT 연산처리대상 데이터가 5개의 비트 즉, a4 a3 a2 a1 a0 일 경우에, 앞서 설명된 처리군 분류 방식에 따라 (a1 a0), (a3 a2), (a4)의 3개의 스테이지로 분류한다. 또한, FFT크기는 5개의 바이너리 코드에 대해 가능한 수의 조합인 4×4×2 = 32 즉, 32로 산출하고, 이경우 log2(FFT크기)=log232=5 가 된다. 바이너리 카운터값은 FFT 연산 처리대상 데이터의 오른쪽부터 왼쪽으로 바이너리 수를 카운팅하는 카운터값을 말한다. r은 [log2(FFT크기)]%2=[log232]%2=1 이 된다.
FFT 컨트롤러(201)는 버터플라이연산용 어드레스발생기(203)에 분석한 연산처리속성정보 즉, 연산처리대상 데이터의 스테이지 카운터값, 전체 스테이지개수, 및 r값에 대한 정보를 제공한다.
버터플라이연산용 어드레스발생기(203)는 FFT 컨트롤러(201)로부터 수신한 처리속성정보에 대응하는 연산용 어드레스를 발생시킨다. 예컨대, 상기한 예의 FFT 연산처리대상 데이터의 경우에, 전체 스테이지개수는 3이고, FFT크기는 32, 그리고, r=1이므로 2번의 레딕스-4 연산처리와 1번의 레딕스-2 연산은 순차적으로 처리하기 위한 어드레스를 스테이지 카운터 값에 따라 순차적으로 발생시킨다. 즉, FFT 컨트롤러(201)로부터 제공받는 스테이지 카운터값에 따라 스테이지 카운터값 1에서는 레딕스-4 연산을 위한 어드레스를, 그리고, 스테이지 카운팅 2에서도 레딕스-4 연산을 위한 어드레스를, 스테이지 카운팅 3에서는 레딕스-2 연산을 위한 어드레스를 발생시킨다. 즉, 상술한 FFT 연산처리대상 데이터가 a4 a3 a2 a1 a0 인 경우에, 버터플라이연산용 어드레스발생기(203)는 FFT 컨트롤러(201)로부터 스테이지 카운터값으로 1이 입력되면, a1 a0 데이터가 레딕스-4 연산기(213)에 의해 처리될 수 있도록 하기 위한 어드레스를 발생시킨다. 다음으로, 버터플라이연산용 어드레스발생기(203)는 FFT 컨트롤러(201)로부터 스테이지 카운터값으로 2가 입력되면, a3 a2 데이터가 레딕스-4 연산기(213)에 의해 처리될 수 있도록 하기 위한 어드레스를 발 생시킨다. 그리고, 버터플라이연산용 어드레스발생기(203)는 FFT 컨트롤러(201)로부터 스테이지 카운터값으로 3이 입력되면, a4 데이터가 레딕스-2 연산기(215)에 의해 처리될 수 있도록 하기 위한 어드레스를 발생시킨다.
스테이지 카운터값이 3에 도달하는 동안, 제1멀티플렉서(207)는 버터플라이연산용 어드레스발생기(203)로부터 수신한 어드레스를 메모리(209)에 전송한다. 그러면, 메모리(209)에 저장된 처리대상 데이터중 버터플라이 연산용 어드레스 발생기(203)에 의해 출력된 어드레스에 대응되는 데이터는 대응하는 레딕스 연산기(213)(215)에 의해 연산처리된다.
즉, 제2멀티플렉서(211)는 FFT 컨트롤러(201)로부터 제공받은 데이터의 전체 스테이지개수와 스테이지 카운터값을 비교하여 전체 스테이지개수와 스테이지 카운터값이 일치하고 또한, r = [log2(FFT크기)]%2 = 1 이면, 레딕스-4 연산기(213)로부터 레딕스-2 연산기(215)로 전환된다. 예컨대, 상기의 예의 경우에는 전체 스테이지개수는 3이고, FFT 크기는 32 이므로, r = [log2(32)]%2 = 1 이다. 따라서, 스테이지 카운팅이 1이면, 제2멀티플렉서(211)는 메모리(209)로부터 수신한 데이터를 레딕스-4 연산기(213)로 전송하여 연산처리 시키고, 스테이지 카운팅 2에서도 메모리(209)로부터 수신한 데이터는 레딕스-4 연산기(213)로 전송되어 연산처리된다. 스테이지 카운팅이 3이면, 전체 스테이지개수와 일치하게 되고, 또한 r값도 1이므로, 제2멀티플렉서(211)는 레딕스-2 연산기(215)와 메모리(209)를 접속시킨다.
한편, 각 스테이지에 대응되는 데이터가 해당 연산기(213)(215)에 의해 연산 처리되는 동안 디지트 역전 어드레스 발생기(202)는 수신된 처리속성정보로부터 디지트 역전 어드레스를 생성한다.
또한, 제1멀티플렉서(207)는 FFT 컨트롤러(201)로부터 제공받은 스테이지 카운터값과 전체 스테이지 개수를 비교하여 스테이지 카운터값이 전체 스테이지개수보다 큰 경우에는 버터플라이연산용 어드레스발생기(203)와의 스위치 접속을 끊고 디지트역전용 어드레스발생기(205)로 스위치 접속한다. 상기의 FFT 연산처리대상 데이터가 a4 a3 a2 a1 a0 경우에는, 전체 스테이지개수는 3이므로 스테이지 카운팅값이 4가 되면, 제1멀티플렉서(207)는 버터플라이연산용 어드레스발생기(203)로부터 디지트역전용 어드레스발생기(205)로 스위치 전환된다.
디지트역전용 어드레스발생기(205)는 FFT 컨트롤러(201)로부터 제공된 처리속성정보 즉, FFT 연산처리대상 데이터에 대한 전체 스테이지개수, 스테이지 카운터값, 바이너리 카운터값 및 r값에 따라 전체 스테이지에 도달할 때까지 생성된 디지트 역전 어드레스를 제1멀티플렉서(207)를 통해 출력한다. 디지트역전용 어드레스는 FFT 연산처리대상 데이터가 적어도 3개 이상의 비트로 이루어진 경우, 최하위 2개의 비트가 비역전상태로 최상위2비트로 전환되고, 다음 순위의 최하위 1비트 또는 2비트가 비역전 상태로 다음 최상위 1비트 또는 2비트로 그 배열이 변환되도록 하는 방식에 대응되는 디지트 역전어드레스를 발생시킨다. 처리대상 데이터의 전체 비트수에 따라 도 9의 디지트 역전용 어드레스 발생기에 의해 생성되는 디지트 역전용 어드레스에 따른 데이터의 재배열관계가 도 10에 도시되어 있다.
도시된 바와 같이 처리대상 데이터가 a4 a3 a2 a1 a0 순서로 메모리(209)저 장된 경우 디지트 역전 어드레스에 의해 a1 a0 a3 a2 a4 로 재배열된다.
또한, 도면을 참조하면, FFT 크기에 따라 일련의 규칙이 있음을 알 수 있다. 즉, FFT 크기가 22n인 경우에는 레딕스-4 연산기만으로 연산처리될 수 있으며, FFT 크기가 22n+1 인 경우에는 n번의 레딕스-4 연산과 1번의 레딕스-2 연산만으로 처리될 수 있다. 여기서, FFT 크기가 2인 경우나, FFT 크기가 4인 경우는 디지트역전을 시킬 필요가 없으므로 생략하여 도시하였다.
도 11은 도 8의 장치에 의해 FFT 크기가 32-포인트인 경우의 디지트역전의 예를 도시한 도면이다.
도면을 참조하면, FFT 크기가 32-포인트인 경우에 패스트퓨리에변환 장치는 버터플라이연산용 어드레스에 데이터가 저장된 상태에서 디지트역전을 수행하게 된다. 그 디지트역전된 어드레스의 구조가 종래의 것(도 7 참조)과 동일한 것은 말할 필요도 없다.
본 발명의 또 다른 측면에 따르면, 도 10에 도시한 것과 같은 디지트 역전용 어드레스데이터를 저장한 부가 메모리를 구비하고, FFT 컨트롤러(201)는 FFT 연산처리대상 데이터가 입력되었을 경우에, 연산처리 대상 데이터로부터 분석된 처리속성정보에 대응하는 디지트 역전용 어드레스를 부가 메모리로부터 찾아 메모리(209)에 출력하는 방법도 가능할 것이다.
본 발명에 따른 패스트퓨리에변환 장치는 레딕스-4 구조와 레딕스-2 구조가 혼합된 구조에 있어서, FFT 연산처리대상 데이터에 대한 FFT크기에 따라 먼저 레딕스-4 연산처리를 하고, 레딕스-2 연산 처리를 마지막에 처리함으로써, 한번의 디지트 역전에 의해 연산이 완료될 수 있어 연산처리 및 복원 절차가 단순하게 된다.

Claims (7)

  1. 단위 처리 비트수가 상호 다른 복수의 레딕스 연산기에 의해 버터 플라이 연산을 수행하는 패스트 퓨리에 변환장치에 있어서,
    메모리와;
    상기 메모리에 저장된 처리대상 데이터에 대해 상기 레딕스 연산기중 단위 처리 비트수가 많은 레딕스 연산기 순서로 부여된 우선순위에 따라 대응하는 데이터 처리군을 분류하고, 분류된 데이터 처리군 순서에 따라 대응하는 레딕스 연산기에 의해 처리되도록 상기 메모리를 제어하되, 상기 레딕스 연산기에 의해 연산처리되어 상기 메모리에 저장된 데이터 처리군을 연산처리순서에 대응되게 설정된 역전방식에 의해 재배열처리하여 복원시키는 연산처리부;를 구비하는 것을 특징으로 하는 패스트 퓨리에 변환장치.
  2. 제1항에 있어서,
    상기 연산처리부는
    상기 메모리에 저장된 연산처리 대상의 데이터에 대한 처리속성정보로부터 데이터 처리군에 대응하는 연산 어드레스를 발생시키는 버트플라이 연산용 어드레 스 발생기와;
    상기 처리속성정보로부터 상기 레딕스 연산기에 의해 연산처리되어 상기 메모리에 저장된 데이터의 배열을 복원시키기 위한 디지트 역전용 어드레스를 발생시키는 디지트 역전용 어드레스 발생기와;
    제1 스위칭제어신호에 따라 상기 연산 어드레스와 상기 디지트 역전용 어드레스를 선택하여 상기 메모리에 출력하는 제1스위칭부와;
    제2 스위칭 제어신호에 따라 상기 메모리와 상기 레딕스 연산기중 어느 하나를 선택적으로 접속시키는 제2스위칭부와;
    처리대상 데이터를 분석하고, 분석결과에 대응되는 버터플라이 연산의 수행 및 데이터 배열복귀가 이루어지도록 하기 위한 상기 처리속성정보를 생성 및 출력하고, 상기 처리속성정보에 따라 상기 제1스위칭 제어신호와 상기 제2스위칭 제어신호를 출력하는 FFT 콘트롤러;를 구비하는 것을 특징으로 하는 패스트 퓨리에 변환장치.
  3. 제2항에 있어서, 상기 처리속성정보는 연산처리 대상 데이터에 대해 분류한 데이터 처리군들의 처리순서에 따라 순차적으로 부여하는 스테이지 카운터값, 전체 스테이지 수를 포함하는 것을 특징으로 하는 패스트 퓨리에 변환장치.
  4. 제3항에 있어서,
    상기 레딕스 연산기는
    레딕스-4 연산기와 레딕스-2 연산기를 구비하고,
    상기 FFT 콘트롤러는 상기 스테이지 카운트값이 상기 전체 스테이지 개수 보다 크면 상기 디지트 역전용 어드레스가 상기 메모리에 출력되도록 상기 제1스위칭부를 제어하는 것을 특징으로 하는 패스트 퓨리에 변환장치.
  5. 제3항에 있어서,
    상기 레딕스 연산기는
    레딕스-4 연산기와 레딕스-2 연산기를 구비하고,
    상기 FFT 콘트롤러는 처리대상 데이터의 전체 비트 수가 홀수이고, 상기 스테이지 카운트값이 상기 전체 스테이지 개수와 같으면 상기 메모리와 상기 레딕스-2 연산기가 접속될 수 있도록 상기 제2스위칭부를 제어하는 것을 특징으로 하는 패스트 퓨리에 변환장치.
  6. 버터 플라이 연산을 수행하는 패스트 퓨리에 변환장치에 있어서,
    레딕스-4 연산기 및 레딕스-2 연산기;
    메모리에 저장된 처리대상 데이터를 최하위비트부터 2개의 디지트를 단위 처리군으로 분류하여 처리군 순서를 결정하고, 결정된 처리군 순서에 따라 2개의 디지트를 갖는 데이터 처리군에 대해서는 상기 레딕스-4연산기에 의해 연산처리되게 하고, 최후 순위 처리군의 디지트가 1개인 경우 상기 레딕스-2 연산기에 의해 처리되도록 하며, 연산처리순서에 대응되는 디지트 역전에 의해 연산처리된 전체 데이 터의 배열을 조정하여 복원시키는 연산처리부;를 구비하는 것을 특징으로 하는 패스트 퓨리에 변환장치.
  7. 제 6 항에 있어서,
    상기 연산처리부는 상기 처리대상 데이터의 최하위비트에서부터 순번을 정해 분류된 처리군이 최상위비트 위치에서부터 처리군단위로 배열되되, 배열된 각 처리군 내의 내부적인 비트순위는 연산처리 이전의 순위를 유지하도록 하는 디지트역전용 어드레스를 발생시키는 것을 특징으로 하는 패스트 퓨리에 변환장치.
KR1020010020552A 2001-04-17 2001-04-17 패스트퓨리에변환 장치 KR100692997B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020010020552A KR100692997B1 (ko) 2001-04-17 2001-04-17 패스트퓨리에변환 장치
US10/101,743 US20020165683A1 (en) 2001-04-17 2002-03-21 Fast fourier transform apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020010020552A KR100692997B1 (ko) 2001-04-17 2001-04-17 패스트퓨리에변환 장치

Publications (2)

Publication Number Publication Date
KR20020080789A KR20020080789A (ko) 2002-10-26
KR100692997B1 true KR100692997B1 (ko) 2007-03-12

Family

ID=19708373

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020010020552A KR100692997B1 (ko) 2001-04-17 2001-04-17 패스트퓨리에변환 장치

Country Status (2)

Country Link
US (1) US20020165683A1 (ko)
KR (1) KR100692997B1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100557160B1 (ko) * 2002-06-27 2006-03-03 삼성전자주식회사 고속 퓨리에 변환을 이용한 혼합-기수 방식의 변조 장치
KR100492124B1 (ko) * 2002-12-12 2005-06-02 삼성전자주식회사 구현이 간단한 고속 퓨리에 변환 장치를 가지는 유럽향디지털 오디오 방송 수신기 및 그의 동작방법
US8266196B2 (en) * 2005-03-11 2012-09-11 Qualcomm Incorporated Fast Fourier transform twiddle multiplication
US8229014B2 (en) * 2005-03-11 2012-07-24 Qualcomm Incorporated Fast fourier transform processing in an OFDM system
KR100668674B1 (ko) * 2005-12-10 2007-01-12 한국전자통신연구원 고속 푸리에 변환 장치 및 고속 푸리에 변환 방법
KR100862350B1 (ko) * 2006-11-30 2008-10-13 전자부품연구원 Drm 수신을 위한 가변 포인트 프라임 팩터 fft 방법
KR100836625B1 (ko) * 2006-12-08 2008-06-10 한국전자통신연구원 이산 푸리에 변환 장치 및 방법
TW200926821A (en) * 2007-12-12 2009-06-16 Altek Corp Method for determining synchronization code under SMIA
US8898212B2 (en) * 2008-10-24 2014-11-25 Freescale Semiconductor, Inc Methods and apparatus for reordering data
CN103186503B (zh) * 2011-12-27 2017-05-17 深圳市中兴微电子技术有限公司 一种fft/dft倒序排列系统与方法及其运算系统
KR101688303B1 (ko) 2015-01-20 2016-12-20 전남대학교산학협력단 진동 모드의 파라미터 추정 장치 및 방법
CN107632199A (zh) * 2017-09-26 2018-01-26 天津光电通信技术有限公司 快速傅里叶变换测频的实现方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10307812A (ja) * 1997-05-02 1998-11-17 Nec Corp Fft演算回路
KR19990079171A (ko) * 1998-04-02 1999-11-05 구자홍 패스트 퓨리에 변환(fft) 장치와 제어방법
JP2000122999A (ja) * 1998-10-14 2000-04-28 Nec Corp 高速複素フーリエ変換方法及び装置
US6098088A (en) * 1995-11-17 2000-08-01 Teracom Ab Real-time pipeline fast fourier transform processors

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5093801A (en) * 1990-07-06 1992-03-03 Rockwell International Corporation Arrayable modular FFT processor
JP2950703B2 (ja) * 1992-04-30 1999-09-20 シャープ株式会社 高速フーリエ変換用ディジット反転のためのアドレス発生器及び反転フィールドシーケンス発生器並びにディジット反転シーケンス信号発生方法
EP0855657B1 (en) * 1997-01-22 2007-03-14 Matsushita Electric Industrial Co., Ltd. Fast fourier transforming apparatus and method
US5991787A (en) * 1997-12-31 1999-11-23 Intel Corporation Reducing peak spectral error in inverse Fast Fourier Transform using MMX™ technology
US6061705A (en) * 1998-01-21 2000-05-09 Telefonaktiebolaget Lm Ericsson Power and area efficient fast fourier transform processor
US6658441B1 (en) * 1999-08-02 2003-12-02 Seung Pil Kim Apparatus and method for recursive parallel and pipelined fast fourier transform
KR20020034746A (ko) * 2000-11-03 2002-05-09 윤종용 고속 및 면적효율적인 알고리즘을 적용한 고속 프리에변환 프로세서

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6098088A (en) * 1995-11-17 2000-08-01 Teracom Ab Real-time pipeline fast fourier transform processors
JPH10307812A (ja) * 1997-05-02 1998-11-17 Nec Corp Fft演算回路
KR19990079171A (ko) * 1998-04-02 1999-11-05 구자홍 패스트 퓨리에 변환(fft) 장치와 제어방법
JP2000122999A (ja) * 1998-10-14 2000-04-28 Nec Corp 高速複素フーリエ変換方法及び装置

Also Published As

Publication number Publication date
KR20020080789A (ko) 2002-10-26
US20020165683A1 (en) 2002-11-07

Similar Documents

Publication Publication Date Title
KR100692997B1 (ko) 패스트퓨리에변환 장치
JP2950703B2 (ja) 高速フーリエ変換用ディジット反転のためのアドレス発生器及び反転フィールドシーケンス発生器並びにディジット反転シーケンス信号発生方法
JP2605039B2 (ja) 多重ステージデジタル信号乗算加算装置
EP0074401B1 (en) Method and apparatus for sequencing addresses of a fast fourier transform array
US5471412A (en) Recycling and parallel processing method and apparatus for performing discrete cosine transform and its inverse
US6189021B1 (en) Method for forming two-dimensional discrete cosine transform and its inverse involving a reduced number of multiplication operations
JPH05189518A (ja) 論理ネットワークを最適化する方法および装置
EP0953175B1 (en) Method and apparatus for fft computation
JPH05189471A (ja) バタフライ形演算装置
WO2011036918A1 (ja) データ並べ替え回路、可変遅延回路、高速フーリエ変換回路、およびデータ並べ替え方法
JP2015503785A (ja) Fft/dftの逆順ソーティングシステム、方法およびその演算システム
JP5549442B2 (ja) Fft演算装置
USH570H (en) Fast Fourier transform data address pre-scrambler circuit
US6728742B1 (en) Data storage patterns for fast fourier transforms
JPH08320858A (ja) フーリエ変換演算装置および方法
JP2000515654A (ja) 最大ビットスライスを用いてビットストリングにブール演算を施すための方法とシステム
JPH08137832A (ja) バタフライ演算回路および同回路を用いた高速フーリエ変換装置
JP4083387B2 (ja) 離散フーリエ変換の計算
KR100518797B1 (ko) 처리속도가 향상된 고속 퓨리에 변환 장치 및 그의 처리방법
CN110780849B (zh) 矩阵处理方法、装置、设备及计算机可读存储介质
Wang et al. Implementing a scalable ASC processor
JPH09245109A (ja) 関数変換演算器
RU2666321C1 (ru) Способ и устройство формирования физического спектра сигнала
JPH0784966A (ja) データ処理装置
JP3231713B2 (ja) 巡回冗長検査計算方法および装置

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130227

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140227

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150226

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee