KR100923892B1 - 고속 푸리어 변환 트위들 승산 - Google Patents

고속 푸리어 변환 트위들 승산 Download PDF

Info

Publication number
KR100923892B1
KR100923892B1 KR1020077023078A KR20077023078A KR100923892B1 KR 100923892 B1 KR100923892 B1 KR 100923892B1 KR 1020077023078 A KR1020077023078 A KR 1020077023078A KR 20077023078 A KR20077023078 A KR 20077023078A KR 100923892 B1 KR100923892 B1 KR 100923892B1
Authority
KR
South Korea
Prior art keywords
memory
values
fft
butterfly
row
Prior art date
Application number
KR1020077023078A
Other languages
English (en)
Other versions
KR20070112244A (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 KR20070112244A publication Critical patent/KR20070112244A/ko
Application granted granted Critical
Publication of KR100923892B1 publication Critical patent/KR100923892B1/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L5/00Arrangements affording multiple use of the transmission path
    • H04L5/003Arrangements for allocating sub-channels of the transmission path
    • H04L5/0058Allocation criteria
    • H04L5/0064Rate requirement of the data, e.g. scalable bandwidth, data priority
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L27/00Modulated-carrier systems
    • H04L27/26Systems using multi-frequency codes
    • H04L27/2601Multicarrier modulation systems
    • H04L27/2647Arrangements specific to the receiver only
    • H04L27/2649Demodulators
    • H04L27/265Fourier transform demodulators, e.g. fast Fourier transform [FFT] or discrete Fourier transform [DFT] demodulators
    • H04L27/26522Fourier transform demodulators, e.g. fast Fourier transform [FFT] or discrete Fourier transform [DFT] demodulators using partial FFTs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L5/00Arrangements affording multiple use of the transmission path
    • H04L5/003Arrangements for allocating sub-channels of the transmission path
    • H04L5/0078Timing of allocation
    • H04L5/0082Timing of allocation at predetermined intervals
    • H04L5/0083Timing of allocation at predetermined intervals symbol-by-symbol
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/02Details ; arrangements for supplying electrical power along data transmission lines
    • H04L25/0202Channel estimation
    • H04L25/022Channel estimation of frequency response
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/02Details ; arrangements for supplying electrical power along data transmission lines
    • H04L25/0202Channel estimation
    • H04L25/0224Channel estimation using sounding signals
    • H04L25/0226Channel estimation using sounding signals sounding signals per se
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L27/00Modulated-carrier systems
    • H04L27/26Systems using multi-frequency codes
    • H04L27/2601Multicarrier modulation systems
    • H04L27/2647Arrangements specific to the receiver only
    • H04L27/2655Synchronisation arrangements
    • H04L27/2656Frame synchronisation, e.g. packet synchronisation, time division duplex [TDD] switching point detection or subframe synchronisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L5/00Arrangements affording multiple use of the transmission path
    • H04L5/0001Arrangements for dividing the transmission path
    • H04L5/0003Two-dimensional division
    • H04L5/0005Time-frequency
    • H04L5/0007Time-frequency the frequencies being orthogonal, e.g. OFDM(A), DMT
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L5/00Arrangements affording multiple use of the transmission path
    • H04L5/003Arrangements for allocating sub-channels of the transmission path
    • H04L5/0048Allocation of pilot signals, i.e. of signals known to the receiver

Landscapes

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

Abstract

다중 스테이지에서 트위들 승산을 적용하는 사이클 카운트 방법을 구현하는 FFT 엔진이 제공된다. 다중 스테이지 FFT 를 구현하는 경우, 중간값은 다양한 트위들 팩터로써 승산될 필요가 있다. FFT 엔진은 승산기의 최소 개수를 이용하여 효율적인 파이프라인에서 트위들 승산을 수행한다. FFT 래딕스 (Radix) 에 기초하여 복소 승산기의 개수를 최적화하고 메모리의 각각의 행의 값의 개수를 최적화하는 것은 적당한 양의 영역을 이용하여 최소한의 개수의 사이클에서 FFT 기능이 수행되도록 한다. 값의 전략적인 배열 및 분류는 FFT 연산이 보다 적은 개수의 사이클에서 수행되도록 한다.
Figure R1020077023078
고속 푸리어 변환, 트위들

Description

고속 푸리어 변환 트위들 승산{FAST FOURIER TRANSFORM TWIDDLE MULTIPLICATION}
본 출원은 본 명세서에 참조로써 명백하게 일체화되고 발명의 명칭이 "고속 푸리어 변환" 이고, 2005 년 3 월 11 일자로 출원되어 본원의 양수인에게 양도된 미국 임시출원번호 제60/660,855호에 우선권을 주장한다.
본 출원은 본 명세서에 참조로써 명백하게 일체화되고 비-임시 미국 특허 출원으로서 발명의 명칭이 "OFDM 시스템에서의 고속 푸리어 변환 프로세싱" 이고 2006 년 3 월 10 일에 출원된, 대리인 도켓 번호 제0505071U1호에 관한 것이다.
본 개시내용은 무선 통신 및 무선 통신 신호를 프로세싱하는 분야에 관련된다. 보다 구체적으로는, 본 개시내용은 직교 주파수 분할 다중화 (Orthogonal Frequency Division Multiplex ; OFDM) 신호의 고속 푸리어 변환 (Fast Fourier Transform ; FFT) 프로세싱에 관한 것이다.
직교 주파수 분할 다중화 (OFDM) 는 전체 시스템 대역폭을 다수의 (N) 직교 서브밴드로 효과적으로 구분하는 다중 캐리어 변조 기술이다. 이들 서브밴드는 또한 톤, 서브캐리어, 빈, 및 주파수 채널이라 할 수도 있다. OFDM 에 있어서, 각각의 서브밴드는 데이터로 변조될 수도 있는 각각의 서브캐리어와 연관된다.
무선 통신 시스템에서, 무선 주파수 (Radio Frequency ; RF) 변조 신호는 송신기로부터 수신기로 많은 신호 경로를 통하여 이동할 수도 있다. 신호 경로가 상이한 지연을 가지는 경우, 수신기에서 수신된 신호는 상이한 이득과 지연을 가지는 여러가지 경우의 송신된 신호를 포함한다. 무선 채널에서의 이러한 시간 분산은 주파수 선택적인 페이딩을 초래하고, 이는 시스템 대역폭에 걸쳐 다변하는 주파수 응답에 의하여 특징 지워진다. OFDM 시스템에 대하여, N 서브밴드는 상이한 효과를 가진 채널을 경험하게 될 수도 있고 따라서 상이한 복소 채널 이득에 관련되게 될 수도 있다.
OFDM 시스템의 프로세싱은 다른 통신 시스템에서 수신된 신호의 프로세싱에 비하여 보다 상당히 복잡하다. 요구되는 프로세싱의 많은 양은, 프로세싱 성능의 면에서, 수신기에 많은 부담을 지운다. OFDM 수신기의 프로세싱 성능을 증가시키는 능력은 변조 방식을 사용하는 통신 시스템의 보다 많은 확산을 위하여 허용하는 것이 바람직하다.
OFDM 수신기를 위한 FFT 프로세서 및 OFDM 시스템에서 수신된 심볼을 프로세싱하는 방법이 본 명세서에서 설명된다. FFT 프로세서는, 수신된 OFDM 심볼에 데이터 복조, 채널 추정, 및 정밀한 타이밍 획득을 수행하도록 구성되는 다수의 상호 밀접한 연산 블록을 포함한다. FFT 프로세서는 채널 추정과 복조 블록에서 공유되는 메모리 구조를 이용하는 파이프라인 FFT 엔진을 통합한다. 공유된 메모리 구조 및 파이프라인 FFT 연산의 조합은 채널 추정 및 복조 프로세싱이 후속 수신 심볼을 캡쳐하는 데 이용되는 시간 동안 완료될 수 있게 한다.
공유된 메모리는 그들이 지원하는 기능 블록과 관련되는 다수의 메모리 뱅크로 배열될 수 있다. FFT 프로세서의 타이밍은 메모리 뱅크, 데이터 및 다양한 뱅크를 어드레스 지정하는 데 이용되는 제어 승산기의 동작을 지시한다.
파이프라인 FFT 엔진은 FFT 프로세서의 백본이고 FFT 프로세서에 의하여 수행되는 채널 추정 및 타임 획득 프로세스에 이용된다. 채널 추정 값은 잠재 데이터의 후속 프로세싱에 이용된다.
다중 스테이지에서 트위들 승산을 적용하는 사이클 카운트 방법을 구현하는 FFT 엔진이 개시된다. 래딕스-8 (Radix-8) 코어에 기초한 구현과 같은 다중 스테이지 FFT 를 구현하는 경우, 중간 값은 다양한 트위들 팩터에 의하여 승산될 필요가 있다. FFT 엔진은 승산기의 최소 개수를 이용하여 효율적인 파이프라인으로 트위들 승산을 수행한다. FFT 래딕스에 기초하여 복소 승산기의 개수를 최적화하고 메모리의 각각의 행의 값의 개수를 최적화하는 것은 FFT 기능이 적합한 양의 영역을 이용하고 최소한의 개수의 사이클에서 수행되도록 한다. 값의 전략적인 배열 및 분류는 FFT 연산이 보다 적은 개수의 사이클에서 수행되도록 한다.
일 양태는, FFT 의 래딕스와 동등한 각각의 행에 저장된 개수의 샘플 값을 가지는 샘플 메모리, 트랜스포즈 (transpose) 메모리, 샘플 메모리로부터의 값의 행을 수신하고, 그 값에 버터플라이 연산을 수행하고 결과를 트랜스포즈 메모리의 열에 기입하는 버터플라이 코어, 및 소정의 개수의 인접한 값을 트랜스포즈 메모리로부터 추출하고 그 값의 각각을 트위들 팩터로 승산하는 승산기 모듈을 포함하는 FFT 프로세싱 장치를 포함한다.
다른 양태는, 8 개의 복소 샘플 값을 각각의 행에 저장하도록 구성되는 샘플 메모리, 8×8 저장 위치로서 배열되는 트랜스포즈 메모리, 값의 행을 추출하고, 래딕스-8 버터플라이를 수행하고, 트랜스포즈 메모리에 열 방향으로 출력 값을 기입하도록 구성되는 래딕스-8 버터플라이 코어, 각각의 행에 4 개의 트위들 값을 저장하도록 구성되는 트위들 메모리, 및 트위들 메모리로부터 행을, 트랜스포즈 메모리로부터 4 개의 인접한 값을 추출하고, 트위들 메모리로부터의 값을 이용하여 인접한 트랜스포즈 메모리 위치로부터의 4 개의 값에 복소 승산을 수행하고, 그 승산결과를 4 개의 인접한 트랜스포즈 메모리 위치에 기입하는, 4 개의 복소 승산기를 가지는 승산기 모듈을 포함하는, FFT 프로세싱 장치를 포함한다.
다른 양태는 FFT 프로세싱 연산을 수행하는 방법을 포함한다. 상술한 방법은 FFT 의 래딕스와 동등한 샘플 메모리의 복수개의 행을 판독하는 단계, 샘플 메모리의 행의 값에 대한 버터플라이를 결정하고 트랜스포즈 메모리에 버터플라이 값을 열 방향으로 기입하는 단계, 트위들 팩터의 행을 추출하는 단계로서, 복수개의 트위들 팩터 값이 행에 저장된, 추출 단계, 단일 사이클에서 트위들 팩터 값으로써 복수개의 버터플라이 값을 승산하여 트위들된 버터플라이 값을 생성하는 단계, 및 복수개의 버터플라이 값의 메모리 위치에 상기 트위들된 버터플라이 값을 기입하는 단계를 포함한다.
다른 양태는, FFT 의 래딕스와 동등한 각각의 행에 저장된 개수의 샘플 값을 저장하는 수단, 복수개의 값을 트랜스포징하는 수단, 샘플 메모리로부터 값의 행을 수신하고, 그 값에 버터플라이 연산을 수행하고, 결과를 트랜스포즈 메모리의 열에 기입하도록 구성되는 버터플라이를 계산하는 수단, 및 트랜스포즈 메모리로부터의 소정의 개수의 인접한 값을 대응하는 트위들 팩터로써 승산하는 수단을 포함하는, FFT 프로세싱 장치를 포함한다.
다른 양태는, FFT 의 래딕스와 동등한 샘플 메모리의 복수개의 행을 판독하는 단계, 샘플 메모리의 행의 값에 대하여 버터플라이를 결정하고 버터플라이 값을 트랜스포즈 메모리에 열 방향으로 기입하는 단계, 트위들 팩터의 행을 추출하는 단계로서, 복수개의 트위들 팩터 값이 행에 저장되는, 추출 단계, 단일 사이클에서 복수개의 버터플라이 팩터를 상기 트위들 팩터 값으로써 승산하여 트위들된 버터플라이 값을 생성하는 단계, 및 복수개의 버터플라이 값의 메모리 위치에 트위들된 버터플라이 값을 기입하는 단계를 수행하는 컴퓨터 프로그램으로 인코딩된 컴퓨터-판독가능 매체를 포함한다.
본 개시내용의 실시형태들의 특징, 목적 및 장점은 도면을 함께 고려하면서 후술하는 상세한 설명으로부터 보다 명백해질 것이고, 동일한 요소는 동일한 도면부호를 가진다.
도 1 은 무선 통신 시스템의 일 실시형태의 기능 블록도이다.
도 2 는 OFDM 수신기의 일 실시형태의 간략한 기능 블록도이다.
도 3 은 OFDM 시스템을 위한 FFT 프로세서의 일 실시형태의 간략한 기능 블록도이다.
도 4 는 OFDM 시스템을 위한 FFT 프로세서의 일 실시형태의 간략한 기능 블록도이다.
도 5 는 OFDM 인터레이스 프로세싱의 일 실시형태의 간략한 기능 블록도이다.
도 6 은 OFDM 프로세서의 공유된 메모리 사용의 간략한 타임라인이다.
도 7 은 파일럿 채널 프로세싱의 일 실시형태의 간략한 기능 블록도이다.
도 8 은 논리 채널 제어 로직의 일 실시형태의 간략한 상태도이다.
도 9 는 FFT 프로세성의 일 실시형태의 간략한 상태도이다.
도 10 은 FFT 엔진의 일 실시형태의 간략한 기능 블록도이다.
도 11 은 래딕스-8 FFT 버터플라이의 일 실시형태의 간략한 기능 블록도이다.
도 12 는 래딕스-8 FFT 버터플라이의 최초 2 상태의 일 실시형태의 간략한 기능 블록도이다.
도 13 은 래딕스-8 FFT 버터플라이의 스테이지의 일 실시형태의 간략한 기능 블록도이다.
도 14 는 래딕스-8 FFT 의 트위들 승산의 간략한 표시도이다.
도 15 는 파이프라인 래딕스-8 FFT 연산의 간략한 타이밍도이다.
도 16 은 파이프라인 256-포인트 FFT 의 간략한 타이밍도이다.
도 17 은 OFDM 신호의 프로세싱 방법의 간략한 순서도이다.
도 18 은 심볼 샘플의 복조 방법의 간략한 순서도이다.
도 19 는 OFDM 신호의 프로세싱 방법의 간략한 순서도이다.
도 20 은 FFT 프로세서의 간략한 기능 블록도이다.
도 21 은 FFT 엔진의 간략한 기능 블록도이다.
도 1 은 무선 통신 시스템 (100) 의 일 실시형태의 간략한 기능 블록도이다. 본 시스템은 사용자 단말기 (110) 와 통신할 수 있는 하나 이상의 고정된 요소를 포함한다. 사용자 단말기 (110) 는, 예를 들어, 하나 이상의 통신 표준에 따라 동작하도록 구성되는 무선 전화기일 수 있다. 예를 들어, 사용자 단말기 (110) 는 제 1 통신 네트워크로부터 무선 전화기 신호를 수신하도록 구성될 수 있고 제 2 통신 네트워크로부터 데이터 및 정보를 수신하도록 구성될 수 있다.
사용자 단말기 (110) 는 휴대용 유닛, 이동 유닛, 또는 고정 유닛일 수 있다. 사용자 단말기 (110) 는 또한 이동 유닛, 이동 단말기, 이동국, 사용자 장비, 휴대용, 전화기 등이라고 할 수도 있다. 비록 단지 하나의 사용자 단말기 (110) 가 도 1 에 도시되어 있지만, 일반적인 무선 통신 시스템 (100) 은 다수의 사용자 단말기 (110) 와 통신하는 능력을 가지는 것을 알 수 있다.
일반적으로 사용자 단말기 (110) 는, 분할된 셀룰러 타워로서 도시된 하나 이상의 기지국 (120a 및 120b) 과 통신한다. 사용자 단말기 (110) 는 일반적으로 사용자 단말기 (110) 내의 수신기에 가장 강한 신호 강도를 제공하는 기지국, 예를 들어 (120b) 와 통신한다.
각각의 기지국 (120a 및 120b) 은 적절한 기지국 (120a 및 120b) 로의/로부터의 통신 신호를 라우팅하는 기지국 제어기 (BSC ; 140) 에 접속될 수 있다. BSC (140) 는 사용자 단말기 (110) 와 공중 스위치 전화기 네트워크 (PSTN) 사이의 인터페이스로서 동작하도록 구성되는 이동 스위칭 센터 (MSC ; 150) 에 접속된다. MSC 는 또한 사용자 단말기 (110) 와 네트워크 (160) 사이의 인터페이스로서 동작하도록 구성될 수 있다. 네트워크 (160) 는, 예를 들어, 근거리 네트워크 (LAN) 또는 광역 네트워크 (WAN) 일 수 있다. 일 실시형태에서, 네트워크 (160) 는 인터넷을 포함한다. 따라서, MSC (150) 는 PSTN (130) 및 네트워크 (160) 에 접속된다. MSC (150) 는 또한 하나 이상의 미디어 소스 (170) 에 접속될 수 있다. 미디어 소스 (170) 는, 예를 들어, 사용자 단말기 (110) 에 의하여 액세스될 수 있는 시스템 제공자에 의하여 제안되는 미디어의 라이브러리일 수 있다. 예를 들어, 시스템 제공자는 사용자 단말기 (110) 에 의한 요구로 액세스될 수 있는 비디오 또는 어떤 다른 형태의 미디어를 제공할 수도 있다. MSC (150) 는 또한 다른 통신 시스템 (미도시) 와 시스템간 핸드오프를 조정하도록 구성될 수 있다.
무선 통신 시스템 (100) 은 사용자 단말기 (110) 에 신호를 송신하도록 구성되는 브로드캐스트 송신기 (180) 를 포함할 수 있다. 일 실시형태에서, 브로드캐스트 송신기 (180) 는 기지국 (120a 및 120b) 과 연관될 수 있다. 다른 실시형태에서, 브로드캐스트 송신기 (180) 는 기지국 (120a 및 120b) 를포함하는 무선 전화기 시스템과 구별되고 독립적일 수 있다. 브로드캐스트 송신기 (180) 는 오디오 송신기, 비디오 송신기, 라디오 송신기, 텔레비전 송신기 등, 또는 송신기 들의 임의의 조합일 수 있지만 이에 제한되지는 않는다. 비록 단지 하나의 브로드캐스트 송신기 (180) 만이 무선 통신 시스템 (100) 에 도시되었지만, 무선 통신 시스템 (100) 은 다수의 브로드캐스트 송신기 (180) 을 지원하도록 구성될 수 있다.
복수의 브로드캐스트 송신기 (180) 는 겹치는 커버리지 영역에 신호를 송신할 수 있다. 사용자 단말기 (110) 는 복수의 브로드캐스트 송신기 (180) 로부터 신호를 동시에 수신할 수 있다. 복수의 브로드캐스트 송신기 (180) 는 동일한, 구별되는, 또는 유사한 브로드캐스트 신호를 브로드캐스팅하도록 구성된다. 예를 들어, 제 1 브로드캐스트 송신기의 커버리지 영역과 겹치는 커버리지 영역을 가지는 제 2 브로드캐스트 송신기는 또한 제 1 브로드캐스트 송신기에 의하여 브로드캐스팅된 정보의 부분 집합을 브로드캐스팅할 수도 있다.
브로드캐스팅 송신기 (180) 는 브로드캐스트 미디어 소스 (182) 로부터 데이터를 수신하도록 구성될 수 있고 그 데이터를 인코딩하고, 인코딩된 데이터에 기초하여 신호를 변조하고, 변조된 데이터를 사용자 단말기 (110) 에 의하여 수신될 수 있는 서비스 영역으로 브로드캐스팅하도록 구성될 수도 있다.
일 실시형태에서, 기지국 (120a 및 120b) 의 하나 또는 양자 모두 및 브로드캐스트 송신기 (180) 는 직교 주파수 분할 다중화 (OFDM) 신호를 송신한다. OFDM 신호는 소정의 동작 대역에서의 하나 이상의 캐리어로 변조된 복수개의 OFDM 심볼을 포함할 수 있다.
OFDM 통신 시스템은 데이터 및 파일럿 송신을 위하여 OFDM 을 이용한다. OFDM 은 전체 시스템 대역폭을 다수의 (K) 직교 주파수 서브밴드로 구분하는 다중-캐리어 변조 기술이다. 이 서브밴드는 또한 톤, 캐리어, 서브캐리어, 빈, 및 주파수 채널이라 한다. OFDM 에 있어서, 각각의 서브밴드는 데이터로 변조될 수도 있는 각각의 서브캐리어와 연관된다.
브로드캐스트 송신기 (180) 과 같은 OFDM 시스템의 송신기는 무선 디바이스로 다수의 데이터 스트림을 동시에 송신할 수도 있다. 이 데이터 스트림은 연속적이거나 또는 사실상 폭주성 (bursty) 일 수도 있고, 고정되거나 또는 가변 데이터 레이트를 가질 수도 있으며, 동일하거나 또는 상이한 코딩 및 변조 방식을 이용할 수도 있다. 송신기는 또한 파일럿을 송신하여 무선 디바이스가 시간 동기화, 주파수 트래킹, 채널 추정 등의 많은 기능을 수행하도록 보조한다. 파일럿은 송신기와 수신기 양자 모두에 의하여 선험적으로 알려져 있는 송신이다.
브로드캐스트 송신기 (180) 는 OFDM 심볼을 인터레이스 서브밴드 구조에 따라서 송신할 수 있다. OFDM 인터레이스 구조는 K 개의 총 서브밴드를 포함하고, 여기서 K > 1 이다. U 개의 서브밴드가 데이터 및 파일럿 송신을 위하여 이용될 수도 있고, 이는 이용가능 서브밴드라 하며, 여기서 U ≤ K 이다. 나머지 G 개의 서브밴드는 사용되지 않으며 가드 서브밴드라 하고, 여기서 G = K - U 이다. 예를 들어, 시스템은 K = 4096 총 서브밴드, U = 4000 이용가능 서브밴드, 및 G = 96 가드 서브밴드인 OFDM 구조를 이용할 수도 있다. 요컨대, 후술하는 설명은 모든 K 개의 총 서브밴드가 이용가능하여 0 내지 K-1 의 인덱스가 할당되는 것으로 가정하며, 따라서 U = K 이고 G = 0 이다.
K 개의 총 서브밴드는 M 개의 인터레이스 또는 겹치지 않는 서브밴드 집합으로 정렬된다. M 개의 인터레이스는 겹치지 않거나 또는 연결되지 않아서 K 개의 총 서브밴드는 오직 하나의 인터레이스에 속한다. 각각의 인터레이스는 P 개의 서브밴드를 포함하고, 여기서 P = K / M 이다. 각각의 인터레이스의 P 개의 서브밴드는 K 개의 총 서브밴드에 걸쳐서 균일하게 분포될 수도 있어, 인터레이스의 연속적인 서브밴드는 M 개의 서브밴드만큼 이격된다. 예를 들어, 인터레이스 0 는 서브밴드 0, M, 2M 등을 포함하고, 인터레이스 1 은 서브밴드 1, M + 1, 2M + 1 등을 포함하며, 인터레이스 M - 1 은 서브밴드 M - 1, 2M - 1, 3M - 1 등을 포함할 수도 있다. 전술한 K = 4096 인 예시적인 OFDM 구조에 대하여, M = 8 인터레이스가 형성될 수도 있고, 각각의 인터레이스는 8 개의 서브밴드만큼 균일하게 이격된 P = 512 서브밴드를 포함할 수도 있다. 따라서, 각각의 인터레이스의 P 개의 서브밴드는 다른 M - 1 인터레이스 각각의 P 개의 서브밴드와 인터레이싱된다.
일반적으로, 브로드캐스트 송신기 (180) 는 임의의 개수의 총, 사용가능, 및 가드 서브밴드를 가지는 어떠한 OFDM 구조도 구현할 수 있다. 임의의 개수의 인터레이스 역시 형성될 수도 있다. 각각의 인터레이스는 임의의 개수의 서브밴드 및 K 개의 총 서브밴드의 임의의 하나를 포함할 수도 있다. 인터레이스는 동일한 또는 상이한 개수의 서브밴드를 포함할 수도 있다. 요컨대, 후술하는 설명의 대부분은 M = 8 인터레이스인 인터레이스 서브밴드 구조에 대한 것이고 각각의 인터레이스는 P = 512 인 균일하게 분포된 서브밴드를 포함한다. 이러한 서브밴드 구조는 몇몇 장점을 제공한다. 우선, 각각의 인터레이스가 전체 시스템 대역폭에 전반으로부터 취한 서브밴드를 포함하기 때문에, 주파수 다이버시티가 달성된다. 다음으로, 무선디바이스가 풀 K-포인트 FFT 대신에 부분 P-포인트 고속 푸리어 변환 (FFT) 를 수행함으로써 주어진 인터레이스에 송신되는 데이터 또는 파일럿을 리커버할 수 있고, 이는 무선 디바이스에서의 프로세싱을 단순화할 수 있다.
브로드캐스트 송신기 (180) 는 주파수 분할 다중화 (FDM) 파일럿을 하나 이상의 인터레이스로 송신하여 무선 디바이스가 채널 추정, 주파수 트래킹, 시간 트래킹 등의 다양한 기능을 수행하도록 할 수도 있다. 파일럿은 기지국과 무선 디바이스 양자 모두에 선험적으로 알려진 복조 심볼로 이루어지고, 이는 파일럿 심볼이라고 한다. 사용자 단말기 (110) 는 수신된 파일럿 심볼 및 알려진 송신된 파일럿 심볼에 기초하여 무선 채널의 주파수 응답을 추정할 수 있다. 사용자 단말기 (110) 는 파일럿 송신에 이용된 각각의 서브밴드에서 무선 채널의 주파수 스펙트럼을 샘플링할 수 있다.
시스템 (100) 은 OFDM 시스템에서 M 개의 슬롯을 정의하여 데이터 스트림을 인터레이스로 맵핑 (mapping) 하는 것을 용이하게 한다. 각각의 슬롯은 송신 유닛 또는 데이터 또는 파일럿을 송신하는 수단으로서 간주될 수도 있다. 데이터에 대하여 사용된 슬롯은 데이터 슬롯이라 하고, 파일럿에 대하여 사용된 슬롯은 파일럿 슬롯이라 한다. M 개의 슬롯은 0 내지 M - 1 의 인덱스가 할당될 수도 있다. 슬롯 0 은 파일럿에 대하여 사용되고, 슬롯 1 내지 M - 1 은 데이터에 대하여 사용될 수도 있다. 데이터 스트림은 슬롯 1 내지 M - 1 상으로 송신될 수도 있다. 고정된 인덱스를 가진 슬롯을 사용하는 것은 슬롯들을 데이터 스트림에 할당하는 것을 단순화한다. 각각의 슬롯은 하나의 시간 간격에서 하나의 인터레이스에 맵핑될 수도 있다. 주파수 다이버시티 및 양호한 채널 추정 및 검출 성능을 달성할 수 있는 어떠한 슬롯-대-인터레이스 맵핑 방식에 기초하여, M 개의 슬롯이 상이한 시간 간격에서 M 개의 인터레이스의 상이한 하나에 맵핑될 수도 있다. 일반적으로, 시간 간격은 하나 또는 다수의 심볼 주기에 이른다. 후술하는 설명은 시간 간격이 하나의 심볼 주기에 이르는 것으로 가정한다.
도 2 는, 예를 들어, 도 1 의 사용자 단말기에 구현될 수 있는 OFDM 수신기 (200) 의 간략한 기능 블록도이다. 수신기 (200) 는 본 명세서에 설명된 바와 같이 수신된 OFDM 심볼의 프로세싱을 수행하기 위해 FFT 프로세싱 블록을 구현하도록 구성될 수 있다.
수신기 (200) 는, RF 채널을 통하여 송신된 RF OFDM 심볼을 수신하고, 그것들을 프로세싱하고 그것들을 베이스밴드 OFDM 심볼 또는 실질적으로 베이스밴드 신호로 주파수 변환하도록 구성되는 수신 RF 프로세서 (210) 을 포함한다. 베이스밴드 신호로부터의 주파수 오프셋이 신호 대역폭의 분수인 경우, 또는 신호가 충분히 낮은 중간 주파수에 있어서 부가적인 주파수 변환 없이 신호를 직접 프로세싱하도록 하는 경우에, 신호는 실질적으로 베이스밴드 신호라 할 수 있다. 수신 RF 프로세서 (210) 으로부터의 OFDM 심볼은 프레임 동기화기 (220) 에 접속된다.
프레임 동기화기 (220) 는 수신기 (200) 를 심볼 타이밍에 동기화시키도록 구성된다. 일 실시형태에서 프레임 동기화기는 수신기를 수퍼프레임 타이밍에, 또한 수퍼프레임 내의 심볼 타이밍에 동기화하도록 구성될 수 있다.
프레임 동기화기 (220) 는 슬롯-대-인터레이스 맵핑이 반복되기 위하여 요구되는 심볼의 개수에 기초하여 인터레이스를 결정하도록 구성될 수 있다. 일 실시형태에서, 슬롯-대-인터레이스 맵핑은 매 14 심볼 후에 반복될 수도 있다. 프레임 동기화기 (220) 는 심볼 카운트로부터 모듈로-14 (modulo-14) 심볼 인덱스를 결정할 수 있다. 수신기 (200) 는 모듈로-14 인덱스를 이용하여, 할당된 데이터 슬롯에 대응하는 하나 이상의 인터레이스 뿐만 아니라 파일럿 인터레이스를 결정할 수 있다.
프레임 동기화기 (220) 는 인가의 개수에 기초하고 임의의 개수의 기술을 사용하여 수신기 타이밍을 동기화할 수 있다. 예를 들어, 프레임 동기화기 (220) 는 OFDM 심볼을 복조할 수 있고, 복조된 심볼로부터 수퍼프레임 타이밍을 결정할 수 있다. 다른 실시형태에서, 프레임 동기화기 (220) 는, 예를 들어, 오버헤드 채널의 하나 이상의 심볼 내에서 수신된 정보에 기초하여 수퍼프레임 타이밍을 결정할 수 있다. 다른 실시형태에서, 프레임 동기화기 (220) 는, OFDM 심볼로부터 구분되는 수신된 오버헤드 채널을 복조함에 의하는 것과 같이, 구분되는 채널을 통한 정보를 수신함에 의하여 수신기 (200) 을 동기화시킬 수 있다. 물론, 프레임 동기화기 (220) 는 동기화를 달성하는 임의의 방식을 이용할 수 있고, 동기화를 달성하는 방식은 모듈로 심볼 카운트를 결정하는 방식을 반드시 제한하는 것은 아니다.
프레임 동기화기 (220) 의 출력은, OFDM 심볼을 복조하고 심볼 샘플 또는 직렬 데이터 경로로부터의 칩을 복수개의 병렬 데이터 경로의 임의의 하나에 맵핑하도록 구성될 수 있는 샘플 맵 (230) 에 접속된다. 예를 들어, 샘플 맵 (230) 은, OFDM 칩의 각각을, OFDM 시스템의 서브캐리어 또는 서브밴드의 개수에 대응하는 복수개의 병렬 데이터 경로의 하나에 맵핑하도록 구성될 수 있다.
샘플 맵 (230) 의 출력은, OFDM 심볼을 대응하는 주파수 도메임 서브밴드로 변환하도록 구성되는 FFT 모듈 (240) 에 접속된다. FFT 모듈 (240) 은 모듈로-14 심볼 카운트에 기초하여 파일럿 슬롯에 대응하는 인터레이스를 결정하도록 구성될 수 있다. FFT 모듈 (240) 은, 소정의 파일럿 서브밴드와 같은 하나 이상의 서브밴드를 채널 추정기 (250) 에 접속하도록 구성될 수 있다. 파일럿 서브밴드는, 예를 들어, OFDM 심볼의 대역폭에 이르는 OFDM 서브밴드의 균등하게 이격된 세트의 하나 이상일 수 있다.
채널 추정기 (250) 는, 수신된 OFDM 심볼 상에 효과를 가지는 다양한 채널을 추정하기 위해 파일럿 서브밴드를 이용하도록 구성된다. 일 실시형태에서, 채널 추정기 (250) 는 데이터 서브밴드의 각각에 대응하는 채널 추정을 결정하도록 구성될 수 있다.
FFT 모듈 (240) 으로부터의 서브밴드와 채널 추정은 서브캐리어 심볼 디인터리버 (260) 에 접속된다. 심볼 디인터리버 (260) 는, 하나 이상의 할당된 데이터 슬롯에 대한 지식, 및 할당된 데이터 슬롯에 대응하는 인터리빙된 서브밴드에 기초하여 인터레이스를 결정하도록 구성될 수 있다.
심볼 디인터리버 (260) 는, 예를 들어, 할당된 데이터 인터레이스에 대응하는 서브캐리어의 각각을 복조하고 복조된 데이터로부터 직렬 데이터 스트림을 생성하도록 구성될 수 있다. 다른 실시형태에서, 심볼 디인터리버 (260) 는 할당된 데이터 인터레이스에 대응하는 서브캐리어의 각각을 복조하여 병렬 데이터 스트림을 생성하도록 구성될 수 있다. 다른 실시형태에서, 심볼 디인터리버 (260) 는 할당된 슬롯에 대응하는 데이터 인터레이스의 병렬 데이터 스트림을 생성하도록 구성될 수 있다.
심볼 디인터리버 (260) 의 출력은, 수신된 데이터를 더 프로세싱하도록 구성된 베이스밴드 프로세서 (270) 에 접속된다. 예를 들어, 베이스밴드 프로세서 (270) 은 수신된 데이터를, 오디오 및 비디오를 가지는 멀티미디어 데이터 스트림으로 프로세싱하도록 구성될 수 있다. 베이스밴드 프로세서 (270) 는 프로세싱된 신호를 하나 이상의 출력 디바이스 (미도시) 로 송신할 수 있다.
도 3 은 OFDM 시스템에서의 수신기 동작에 대한 FFT 프로세서 (300) 의 일 실시형태의 간략한 기능 블록도이다. FFT 프로세서 (300) 는, 예를 들어, 도 1 의 무선 통신 시스템 또는 도 2 의 수신기에서 이용될 수 있다. 일 실시형태에서, FFT 프로세서 (300) 는 도 2 의 수신기 실시형태의 프레임 동기화기, FFT 모듈, 및 채널 추정기의 기능의 일부 또는 전부를 수행하도록 구성될 수 있다.
FFT 프로세서 (300) 는, 단일 IC 기판 상에 집적 회로 (IC) 로 구현되어 OFDM 수신기 설계의 프로세싱 부분에 대한 단일 칩 솔루션을 제공할 수 있다. 또는, FFT 프로세서 (300) 는 복수개의 IC 또는 기판 상에 구현되어 하나 이상의 칩 또는 모듈로서 패키징될 수 있다. 예를 들어, FFT 프로세서 (300) 는 제 1 IC 상에 수행되는 프로세싱 부분을 가질 수 있고, 프로세싱 부분은 제 1 IC 와 구분되는 하나 이상의 저장 다비이스 상의 메모리와 인터페이스할 수 있다.
FFT 프로세서 (300) 는 FFT 계산 블록 (360) 과 채널 추정기 (380) 을 상호연결하는 메모리 구조 (320) 에 접속되는 복조 블록 (310) 을 포함한다. 로그 가능도율 블록 (350) 은, FFT 프로세서 (300) 의 일부분으로서 선택적으로 포함되거나, 또는 FFT 프로세서 (300) 과 동일한 기판 또는 IC 상에 구현되거나 구현되지 않을 수도 있는 구분되는 블록 내에 구현될 수도 있다.
복조, FFT 채널추정 및 로그 가능도율 모듈은 샘플 값에 동작을 수행한다. 메모리 구조 (320) 은 이들 모듈의 임의의 것이 주어진 시간에 임의의 블록에 액세스하도록 한다. 스위칭 로직은 일시적으로 메모리 뱅크를 분할함으로써 간략화된다.
메모리의 하나의 뱅크는 복조 블록 (310) 에 의하여 반복적으로 사용된다. FFT 계산 블록 (320) 은 능동적으로 프로세싱되고 있는 뱅크에 액세스한다. 채널 추정 블록 (380) 은 현재 프로세싱되고 있는 뱅크의 파일럿 정보에 액세스한다. 로그 가능도율 (LLR) 블록 (350) 은 가장 오래된 샘플을 포함하는 뱅크에 액세스한다.
복조 블록 (310) 은 계수 ROM (314) 에 접속된 복조기 (312) 를 포함한다. 복조 블록 (310) 은 시간 동기화된 OFDM 심볼을 프로세싱하여 파일럿 및 데이터 인터레이스를 리커버한다. 상술한 실시예에서, OFDM 심볼은 8 개의 구분되는 인터레이스로 분할된 4096 서브밴드를 포함하고, 각각의 인터레이스는 전체 4096 서브밴드에 걸쳐 균일하게 이격된 서브밴드를 가진다.
복조기 (312) 는 착신되는 4096 샘플을 8 개의 인터레이스로 조직한다. 복조기는 각각의 착신 샘플을
Figure 112007072409407-pct00001
에 의하여 회전하고, n 은 인터레이스 0 내지 7 을 나타낸다. 최초 512 값은 회전되고 각각의 인터레이스에 저장된다. 후속하는 512 샘플의 각각의 세트에 대하여, 복조기 (312) 는 회전하고 값들을 가산한다. 각각의 인터레이스의 각각의 메모리 위치는 누산된 8 개의 회전된 샘플을 가지게 된다. 인터레이스 0 의 값은 회전되지 않고, 단지 누산만 된다. 복조기 (312) 는 회전되고 누산된 값을, 입력 샘플을 나타내는 데 이용되는 것보다 큰 수의 비트로 나타내어, 누산 및 회전으로 인한 증가를 수용할 수 있다.
계수 ROM (314) 는 복소 회전 계수를 저장하는 데 이용될 수 있다. 인터레이스 0 은 어떠한 회전도 요구하지 않으므로, 7 개의 계수가 각각의 착신 샘플에 요구된다. 계수 ROM (314) 는 상승-에지 트리거링될 수 있어, 복조 블록 (310) 이 샘플을 수신한 때로부터 1 사이클의 딜레이의 결과가 될 수 있다.
복조 블록 (310) 은 계수 ROM (314) 으로부터 추출된 각각의 계수 값을 레지스터하도록 구성될 수 있다. 계수 값을 레지스터하는 행동은 계수 값 자체가 이용되기 전에 또 다른 사이클 딜레이를 더한다.
각각의 착신 샘플에 대하여, 7 개의 상이한 계수가 이용되고, 각각은 상이한 어드레스를 가진다. 7 개의 카운터가 상이한 계수를 검색하기 위하여 이용된다. 각각의 카운터는 그 인터레이스 숫자에 의하여 증분되고, 매 새로운 샘플에 대하여, 예를 들어, 인터레이스 1 의 1 만큼 증분되고, 인터레이스 7 은 7 만큼 증분된다. 하나의 행에 요구되는 7 개의 계수 모두를 담는 ROM 이미지를 생성하거나, 7 개의 상이한 ROM 을 이용하는 것은 일반적으로 실용적이지 않다. 따라서, 복조 파이프라인은 새로운 샘플이 도착하는 경우 계수 값을 꺼내는 것에 의하여 시작된다.
계수 메모리의 크기를 감소하기 위하여, 0 과 π / 4 사이의 COS 및 SIN 값만이 저장된다. 메모리로 송신되지 않은 계수 어드레스의 3 개의 최상위 비트 (MSB) 는 값을 적합한 4 분면으로 보내는 데 이용된다. 따라서, 계수 ROM (314) 로부터 판독된 값은 즉시 레지스터되지 않는다.
메모리 구조 (320) 는 복수의 메모리 뱅크 (324a - 324c) 에 접속된 입력 다중화기 (422) 를 포함한다. 메모리 뱅크 (324a - 324c) 는, 메모리 뱅크 (324a - 324c) 각각으로부터의 값을 다양한 모듈로 라우팅할 수 있는 다중화기를 포함하는 메모리 제어 블록 (326) 에 접속된다.
메모리 구조 (320) 는 메모리 및 파일럿 관측 프로세싱에 대한 제어를 또한 포함한다. 메모리 구조 (320) 는 파일럿 관측을 복수개의 파일럿 관측 메모리 (332a - 332c) 의 어느 하나로 접속하는 입력 파일럿 선택 다중화기 (330) 을 포함한다. 복수개의 파일럿 관측 메모리 (332a - 332c) 는 출력 파일럿 선택 다중화기 (334) 에 접속되어 임의의 메모리의 콘텐츠가 프로세싱을 위해 선택되도록 한 다. 메모리 구조 (320) 는 복수개의 메모리 부분 (342a - 342b) 을 또한 포함하여 파일럿 관측으로부터 결정되는 프로세싱된 채널 추정을 저장할 수 있다.
OFDM 을 생성하는 데 이용된 직교 주파수는 FFT 와 같은 푸리어 변환을 이용하여 편리하게 프로세싱될 수 있다. FFT 계산 블록 (360) 은, 하나 이상의 소정 차원의 효율적인 FFT 및 역-FFT (IFFT) 연산을 수행하도록 구성되는 많은 요소를 포함한다. 일반적으로 차원은 2 의 거듭제곱이지만, FFT 또는 IFFT 연산은 2 의 거듭제곱인 차원에 한정되지는 않는다.
FFT 계산 블록 (360) 은, 메모리 구조 (320) 또는 트랜스포즈 레지스터 (364) 로부터 추출된 복소 데이터를 연산할 수 있는 버터플라이 코어 (370) 를 포함한다. FFT 계산 블록 (360) 은, 메모리 구조 (320) 및 트랜스포즈 레지스터 (354) 사이에서 선택하도록 구성되는 버터플라이 입력 다중화기 (362) 를 포함한다. 버터플라이 코어 (370) 는 복소 다중화기 (366) 및 트위들 메모리 (368) 와 함께 동작하여 버터플라이 연산을 수행한다.
채널 추정기 (380) 는, ON 시퀀스기 (384) 와 함께 동작하여 파일럿 샘플을 디스크램블링하는 파일럿 디스크램블기 (382) 를 포함할 수 있다. 위상 램프 (phase ramp) 모듈 (386) 은 파일럿 인터레이스로부터 임의의 다양한 데이터 인터레이스로 파일럿 관측을 회전하도록 동작한다. 위상 램프 계수 메모리 (388) 는 샘플을 소망하는 주파수로 회전하기 위해 필요한 위상 램프 정보를 저장하는 데 이용된다.
시간 필터 (392) 는 복수의 심볼에 걸쳐 복수의 파일럿 관측을 시간 필터링 하도록 구성될 수 있다. 시간 필터 (392) 로부터의 필터링된 출력은 메모리 구조 (320) 에 저장되어, 잠재 서브밴드 데이터의 디코딩을 수행하는 로그 가능도율 블록 (350) 에서 이용되기 위해 메모리 구조 (320) 로 리턴되기에 앞서 임계치기 (394) 에 의하여 더 프로세싱될 수 있다.
채널 추정기 (380) 는, 중간 및 최종 출력 값을 포함하는 다양한 채널 추정기 출력 값을 메모리 구조 (320) 로 인터페이스하는 채널 추정 출력 다중화기 (390) 을 포함할 수 있다.
도 4 는 OFDM 수신기에서 다른 신호 프로세싱 블록과 관련한 FFT 프로세서 (400) 의 일 실시형태의 간략한 기능 블록도이다. TDM 파일럿 획득 모듈 (402 은, FFT 프로세서 (400) 에 대한 최초 심볼 동기화 및 타이밍을 생성한다. 착신 동상 (I) 및 이상 (Q) 샘플은, 신호를 소망하는 크기 및 주파수 에러 내에 유지하는 이득 및 주파수 제어 루프를 구현하도록 동작하는 AGC 모듈 (404) 에 접속된다.
FFT 프로세서 (400) 는, AGC 모듈 (404) 의 AFC 기능을 이용하여 획득될 수 있는 것보다 더 정확한 심볼 주파수를 유지하기 위해 정밀한 주파수 획득 모듈 (406) 에 타이밍 및 주파수 정보를 제공하는 데 이용될 수 있다. 제어 프로세서 (408) 는 FFT 프로세서 (400) 의 높은 레벨의 제어를 수행한다. 제어 프로세서 (408) 는, 예를 들어, ARMTM 에 의하여 설계된 것과 같은, 범용 프로세서 또는 RISC (Reduced Instruction Set Computer) 프로세서일 수 있다. 제어 프로세서 (408) 는, 예를 들어, 심볼 동기화를 제어하거나, FFT 프로세서 (400) 의 상태를 작동 또는 슬립 상태로 선택적으로 제어하거나, 또는 다른 식으로 FFT 프로세서 (400) 의 동작을 제어함으로써 FFT 프로세서 (408) 의 동작을 제어할 수 있다.
FFT 프로세서 (400) 내의 제어 로직 (410) 은 FFT 프로세서 (400) 의 다양한 내부 모듈을 인터페이싱하는 데 이용될 수 있다. 제어 로직 (410) 은 또한 FFT 프로세서 (400) 의 외부의 다른 모듈과 인터페이싱하는 로직을 포함할 수 있다.
I 및 Q 샘플은 FFT 프로세서 (400) 에 접속되고, 보다 상세하게는, FFT 프로세서 (400) 의 복조 블록 (310) 에 접속된다. 복조 블록 (310) 은 샘플을 소정의 개수의 인터레이스로 분리하도록 동작한다. 복조 블록 (310) 은 메모리 구조 (320) 와 인터페이스하여, 프로세싱 및 잠재 데이터를 디코딩하기 위해 로그 가능도율 블록 (350) 으로 전달하기 위한 샘플을 저장한다.
메모리 구조 (320) 는 메모리 구조 (320) 내의 다양한 메모리 뱅크의 액세스를 제어하기 위한 메모리 제어기 (412) 를 포함할 수 있다. 예를 들어, 메모리 제어기 (412) 는 다양한 메모리 뱅크 내의 위치에 행 기입하도록 구성될 수 있다.
메모리 구조 (320) 는 FFT 데이터를 저장하기 위하여 복수의 FFT RAM (420a - 420c) 를 포함할 수 있다. 또한, 복수의 타임 필터 메모리 (430a - 430c) 는, 채널 추정을 생성하는 데 이용되는 파일럿 관측과 같은 타임 필터 데이터를 저장하는 데 이용될 수 있다.
분리된 채널 추정 메모리 (440a - 440b) 는 채널 추정기 (380) 으로부터의 중간 채널 추정 결과를 저장하는 데 이용될 수 있다. 채널 추정기 (380) 는 채 널 추정을 결정하는 경우 채널 추정 메모리 (440a - 440b) 를 이용할 수 있다.
FFT 프로세서 (400) 는 FFT 연산의 적어도 일부분을 수행하는 데 이용되는 FFT 계산 블록을 포함한다. 도 4 의 실시형태에서, FFT 계산 블록은 8-포인트 FFT 엔진 (460) 이다. 8-포인트 FFT 엔진 (460) 은, 전술한 OFDM 심볼 구조의 예시적인 실시예의 프로세싱하는 데 유리할 수 있다. 전술한 바와 같이, 각각의 OFDM 심볼은, 각각 512 개 서브밴드의 8 인터레이스로 분할되는, 4096 서브밴드를 포함한다. 각각의 인터레이스의 서브밴드의 개수, 512 는 8 의 세제곱이다 (83 = 512). 따라서, 512-포인트 FFT 는 래딕스-8 FFT 를 이용하는 3 개의 스테이지에서 수행될 수 있다. 실제로, 4096 은 8 의 네제곱이므로, 4096-포인트 FFT 는 단지 하나의 부가적인 FFT 스테이지, 총 4 개의 스테이지로써 수행될 수 있다.
8-포인트 FFT 엔진 (460) 은, 래딕스-8 FFT 를 수행하도록 구성되는 버터플라이 코어 (370) 및 트랜스포즈 레지스터 (364) 를 포함한다. 정규화 블록 (462) 은 버터플라이 코어 (370) 에 의하여 생성된 산출물을 정규화하는 데 이용된다. 정규화 블록 (462) 는, FFT 의 각각의 스테이지에 뒤따르는 버터플라이 코어로부터 출력되는 값을 나타내기에 필요한 메모리 위치의 비트 증가를 제한하도록 동작할 수 있다.
도 5 는 OFDM 인터레이스 프로세싱의 일 실시형태의 간략한 기능 블록도이다. 도 3 또는 4 의 FFT 프로세서는 도 5 에 도시된 OFDM 인터레이스 프로세싱 을 수행하도록 구성될 수 있다. 간략한 기능 블록도는 2 개의 데이터 인터레이스 프로세서 (510k 및 510j), 및 하나의 파일럿 인터레이스 프로세서 (510p) 를 도시하고 있다. 그러나, FFT 프로세서는 OFDM 심볼의 인터레이스의 개수에 의존하는 임의의 개수의 인터레이스 프로세서를 구현할 수 있다. 예를 들어, 전술한 OFDM 심볼 실시형태를 프로세싱하기 위해, FFT 프로세서는 (510k) 와 같은 7 개의 데이터 인터레이스 프로세서, 및 하나의 파일럿 인터레이스 프로세서 (510p) 를 통합할 수 있다.
데이터 인터레이스 프로세서 (510k, 510j) 의 각각은 유사하게 배열되고 임의의 데이터 인터레이스에 효과적으로 동작할 수 있다. 각각의 데이터 인터레이스 프로세서 (510lk, 510j) 는, 착신 샘플의 위상을 회전하도록 구성되는 회전기 (514k, 514j) 를 포함한다. 위상 회전은 각각의 인터레이스를 프로세싱에 이용되는 공통 인터레이스로 효과적으로 회전한다. 각각의 데이터 인터레이스 프로세서 (510k, 510j) 는 각각의 연속적인 M 개의 샘플들 중에서 하나의 샘플에 동작하고, 여기서 M 은 인터레이스의 총 개수를 나타낸다.
각각의 회전기 (514k, 514j) 의 출력은, 샘플을 8 인터레이스에 걸쳐서 누산하는 누산기 (520k, 520j) 에 접속된다. 4096 서브밴드 및 8 인터레이스를 가지는 OFDM 심볼 에 대하여, 각각의 인터레이스는 512 서브밴드를 포함하고, 누산기 (520k, 520j) 는 512 샘플의 8 단계를 합한다. 설명된 OFDM 심볼 실시예에서, 최초 512 개의 값은 각각의 인터레이스에 대하여 회전되고 저장된다. 후속하는 512 샘플의 각각의 세트에 대해서, 회전기 (514k, 514j) 는 샘플을 회전하고, 누산 기 (520k, 520j) 는 앞서 저장된 샘플에 값을 가산한다. 각각의 인터레이스의 512 메모리 위치의 각각은 누산된 8 회전된 샘플을 가지게 된다.
데이터 인터레이스 프로세서 (510k, 510j) 는, 누산된 샘플, 또는 또는 누산된 샘플의 중간 값을 저장하기 위하여 메모리 (530k, 530j) 를 포함한다. 일 실시예에서, 각각의 메모리 (530k, 530j) 는 512 샘플, 또는 누산된 샘플을 저장할 수 있다. 각각의 심볼의 시작에서, 메모리 위치는 리셋되거나 또는 제 1 세트의 데이터 인터레이스 샘플로써 중복 기입된다.
카운터 (540) 는, 입력 값이 액세스되고 누산된 값이 리턴되는 메모리 (530k, 530j) 의 위치를 포인팅하는 데 이용될 수 있다. 비록 도 5 는 파일럿 샘플 메모리 (530p) 에 접속된 오직 하나의 모듈로-512 카운터 (540) 을 도시하고 있지만, 카운터 (540) 는 누산된 데이터 샘플을 저장하는 데 이용되는 메모리 (530k, 530j) 의 각각에 카운트 값을 제공할 수 있다. 또는, 각각의 데이터 인터레이스 프로세서 (510k, 510j) 는 분리된 카운터를 포함할 수 있고, 또는 하나 이상의 데이터 인터레이스 프로세서 (510k, 510j) 는 파일럿 인터레이스 프로세서 (510p) 에 의하여 이용되는 카운터 (540) 과 구별되거나 공통인 카운터를 공유할 수 있다.
일 실시형태에서, 카운터 (540) 는 각각의 심볼의 시작에서 리셋된다. 유사하게, 데이터 메모리 (530k, 530j), 및 파일럿 샘플 메모리 (530p) 는 리셋되거나, 또는 매 심볼의 시작에서 다른 식으로 클리어될 수 있다. 회전기 (514k, 514j) 는 소망하는 인터레이스 샘플을 소정의 위상만큼 회전하고, 회전된 샘플을 연관되는 누산기 (520k, 520j) 에 접속시킨다. 누산기 (520k, 520n) 은 가산기 (522k, 522j) 를 포함하고, 카운터 (540) 에 의하여 포인팅되는 미리 누산된 값을 메모리 (530k, 530j) 로부터 판독한다.
가산기 (522k, 522j) 는 추출된 값을 회전기 (514k, 514j) 로부터의 값과 합한다. 누산기 (520k, 520j) 는, 가산기 (522k, 522j) 로 입력을 제공하는 데 이용된 동일한 메모리 위치로 재기입하기 전에, 레지스터 (524k, 524j) 로 합을 로딩한다.
카운터 (540) 는 모든 인터레이스가 샘플을 프로세싱한 후에 오른다. 따라서, 카운트는, 파일럿 인터레이스를 포함하는 인터레이스의 전체 개수에 걸쳐서 각각의 사이클에 대하여 동일하게 유지된다.
FFT 모듈 (550k, 550j) 는 메모리 (530k, 530j) 에 저장된 누산된 인터레이스 데이터에 FFT 를 수행한다. 도 5 의 실시예에서, FFT 모듈 (550k, 550j) 는 512 개의 누산된 샘플에 512-포인트 FFT 를 수행한다. 512-포인트 FFT 모듈 (550k, 550j) 의 출력은 데이터 인터레이스의 서브밴드를 나타낸다.
512-포인트 FFT 모듈 (550k, 550j) 의 출력은, 각각의 서브밴드가 디코딩될 수 있는 정보를 가지는, 연관되는 로그 가능도율 (LLR) 블록 (580k, 580j) 에 접속된다. 비록 본 명세서에 설명된 FFT 프로세서 및 데이터 인터레이스 프로세서 (510k, 510j) 가 LLR 블록 (580k, 580j) 을 구현하지만, 서브밴드를 디코딩하기 위해, 다른 FFT 프로세서는 다른 방식의 디코더를 이용할 수 있다. FFT 프로세서에 대하여 선택된 디코더의 형식은, 부분적으로, 송신기에서 이용된 인코딩 프로세 스에 의존한다. 예를 들어, FFT 프로세서는, 데이터가 컨볼루션하게 인코딩된 경우, 비터비 디코더를 이용할 수 있다.
LLR 블록 (580k, 580j) 는 파일럿 인터레이스 프로세서 (510p) 에 의하여 부분적으로 생성된 채널 추정을 이용하여 서브밴드 데이터를 디코딩할 수 있다. 도 5 에 도시된 실시예에서, 파일럿 인터레이스 프로세서 (510p) 는, 각각의 데이터 인터레이스 프로세서 (510k, 510j) 와 같이, 회전기 (510p) 및 누산기 (520p) 를 포함한다.
누산기 (520p) 는, 데이터 인터레이스 프로세서 (510k, 510j) 에서 수행된 것과 동일한 방식으로 메모리 (530p) 에서 파일럿 샘플을 누산한다. FFT 모듈 (550p) 는 누산된 파일럿 샘플에 512-포인트 FFT 를 수행하여 시간 도메인 표현을 주파수 도메인 파일럿 서브밴드로 변환한다.
FFT 모듈 (550p) 의 출력은 파일럿 외삽 (extrapolation) 및 복조 모듈 (560) 에 접속된다. OFDM 시스템은, 송신이 할당된 대역폭을 넘어서지 않도록, 주파수 서브밴드 정의의 밴드 에지 근처에 소정의 가드 밴드를 정의할 수 있다. 어떠한 파일럿 또는 데이터 정보도 가드 밴드 내의 서브밴드 상으로 송신되지 않는다.
파일럿 외삽 및 복조 모듈 (560) 은 파일럿 서브밴드에서 값을 외삽하여 가드 밴드의 서브밴드의 파일럿 값을 추정하도록 동작할 수 있다. 외삽은 파일럿 서브밴드가 복조되어 채널 추정을 리커버하는 파일럿 복조에 앞서 발생할 수 있다. 파일럿 서브밴드는 알려진 심볼 또는 시퀀스로써 복조된다. 알려진 심볼 또 는 시퀀스는 의사랜덤 (pseudorandom) 시퀀스에 의하여 스크램블링될 수 있고, 파일럿 외삽 및 복조 모듈 (560) 은 복조 프로세스 동안에 파일럿 서브밴드를 디스크램블링할 수 있다.
복조되고, 외삽된 파일럿 서브밴드는 파일럿 서브밴드에서 거친 (raw) 채널추정을 표현한다. IFFT 모듈 (562) 은 거친 채널 추정에 동작하여 채널 추정을 채널 임펄스 응답으로 변환한다. 도 5 의 실시예에서, IFFT 모듈 (562) 는 512-포인트 IFFT 를 수행하고, 이로써 512-탭 채널 임펄스 응답을 생성한다.
채널 임펄스 응답은, 파일럿 인터레이스 프로세서 (510p) 의 최초 회전기 (514p) 에 의하여 수행된 회전에 실질적으로 반대를 수행하는 회전기 (564) 에 접속된다. 회전기 (564) 의 출력은 타임 필터 (566) 에 접속되고, 채널 임펄스 응답이 타임 필터링될 수 있다. 타임 필터 (566) 는 현재 채널 임펄스 응답 및 부가적인 채널 임펄스 응답 값에 부분적으로 기초하여 채널 임펄스 응답을 필터링하도록 구성될 수 있다. 부가적인 채널 임펄스 응답 값은, 미래 채널 임펄스 응답 값 뿐만 아니라 과거 채널 임펄스 응답 값을 포함할 수 있고, 미래 채널 임펄스 응답 값은 후속하는 수신된 OFDM 심볼에 기초하는 채널 임펄스를 표현한다.
FFT 프로세서는 다수의 심볼을 저장할 수 있고 저장된 심볼의 각각에 대하여 채널 임펄스 응답을 결정할 수 있다. 따라서, 타임 필터 (566) 는 충분한 개수의 OFDM 심볼을 저장하고 그들의 채널 추정의 각각을 결정함으로써, 비-인과 (non-causal) 필터를 구현할 수 있다. 따라서, 타임 필터는 과거에 충분하게 결정된 채널 추정에 동작하여, 필터링된 채널 임펄스 응답에 대한 "미래" 심볼을 표현하는 후속 심볼의 프로세싱 및 샘플링을 하도록 할 수 있다.
물론, 타임 필터 (566) 는, FIR, IIR 또는 어떤 다른 형식의 필터를 포함하는 가상적으로 임의의 형식의 필터로 구현할 수 있다. 또한, 타임 필터 (566) 는 인과 (causal) 또는 비-인과 (non-causal) 필터 응답을 구현할 수 있다.
타임 필터링된 파일럿 임플스 응답은 각각의 데이터 인터레이스 프로세서 (510k, 510j) 에 접속되어, 개별적인 데이터 인터레이스에 관련되는 파라미터에 의존하여 더 필터링되거나 프로세싱된다. 파일럿 필터 (572k, 572j) 는, 특정 데이터 인터레이스에 부분적으로 기초하여 다양한 임펄스 응답 탭을 임계화하거나 또는 파일럿 임펄스 응답을 절단하도록 동작할 수 있다.
파일럿 필터 (572k, 572j) 의 출력은, 파일럿 임펄스 응답을 특정 데이터 이터레이스로 회전시키는 회전기 (574k, 574j) 에 접속된다. 회전기 (574k, 574j) 의 출력은 FFT 모듈 (576k, 576j) 에 접속되고, 최종 채널 임펄스 응답은 데이터 인터레이스 주파수에서 채널 주파수 응답 추정으로 변환된다. 채널 주파수 응답 추정은, 데이터 인터레이스의 서브밴드를 디코딩하기 위해, LLR 블록 (580k, 580j) 에 접속된다.
도 6 은 OFDM 프로세서에서의 공유된 메모리 사용의 간략한 타임라인 (600) 이다. FFT 프로세서의 메모리 구조는 다수의 뱅크로 배열될 수 있다. 도 3 또는 도 4 의 FFT 프로세서와 같은 FFT 프로세서의 일 실시형태에서, 메모리는 8 개의 구분되는 뱅크로 배열될 수 있다. 뱅크 1, 2 및 3 은 착신 샘플용이다. 뱅크 4, 5 및 6 은 파일럿 정보를 저장한다. 뱅크 7 은 정밀한 주파수 결과를 저장하고, 뱅크 8 은 채널 추정 결과를 저장한다. 타임라인 (600) 은 메모리 뱅크 어드레스, 데이터 및 제어 다중화기의 동작을 지시한다.
타임라인 (600) 은 입력 샘플 스트림 (610) 의 예시적인 프레임 구조를 설명한다. 착신 샘플 스트림 (610) 은 특정 순서로 배열될 수 있다. 정보의 각각의 심볼은, 예를 들어, (612) 는 인접한 심볼로부터 사이클릭 프리픽스 (614) 만큼 떨어진다. 몇몇의 심볼은 전체 심볼 주기에 이르는 데이터를 포함할 수 있고, 다른 심볼들은 전체 심볼 주기보다 작게 캡쳐링될 수 있는 데이터를 가질 수 있다.
착신 샘플 저장 (620) 은 착신 샘플 (620) 을 메모리 뱅크 1, 2 또는 3 의 하나로 보낸다. 최초 TDM 파일럿 및 오버헤드 (OIS) 정보는 메모리 뱅크 1 에 저장된다. 그 후, 착신 샘플은 메모리 뱅크 1, 2 및 3 을 통하여 순환된다.
복조 (630) 는, 현재 착신 샘플을 저장하는 메모리 뱅크에 동작한다. FFT 엔진 (640) 은 심볼이 캡쳐되고 메모리 뱅크 1 을 사용한 후에 동작하며 메모리 뱅크 4, 5 및 6 을 통하여 순환한다.
정밀한 타이밍 연산 (650) 은 TDM 파일럿 2 심볼의 절반 동안 발생하고 뱅크 1 및 7 을 이용하여 동작한다. 채널 추정 연산 (660) 은 메모리 뱅크 4, 5 및 6 에서 FFT 결과에 동작하고, 결과에 대해 메모리 뱅크 8 을 역시 이용한다. LLR 블록 (670) 은 착신 샘플에 대하여 사용된 메모리 뱅크를 통하여 순환한다.
타임라인 (600) 은 메모리 뱅크가 FFT 프로세서의 다수의 연산 사이에서 어떻게 공유되는지 도시한다. 타임라인 (600) 은 다수의 연산이 서로 어떻게 의 존하는지 도시한다.
샘플 메모리 제어 로직은 심볼에 대한 어떤 데이터가 프로세싱되어야 하는지 여부를 결정한다. 프로세싱될 데이터가 없다면, 그 심볼에 대한 착신 샘플은 복조, 저장, 또는 프로세싱되지 않는다. 그러나, 소망하는 데이터의 시작 전의 심볼에서, 파일럿 신호는 채널 추정을 위하여 복조된다.
FFT 프로세서의 다양한 연산의 타이밍은 많은 데이터 의존성을 생성한다. FFT 및 정밀한 타이밍 블록은 OIS 정보의 시작 전에 완료되어야만 한다. 구체적으로는, 정밀한 타이밍 블록은 최초 OIS 심볼 데이터가 수신되지 한 사이클 전에 준비되어야만 한다. FFT, 채널 추정, 및 LLR 블록은 착신 샘플이 메모리 뱅크를 채우는 시간 보다 적은 시간 내에 완료되어야만 한다.
FFT 프로세서는 3 심볼의 데이터를 유지할 충분한 메모리를 가진다. 채널-추정 알고리즘은, 데이터에 대하여 현재 프로세싱되는 심볼의 전, 동안, 후에 심볼로부터 파일럿 정보를 요구한다. 파일럿 값과 인터레이싱된 데이터 값으로 구성되는 샘플은 직렬로 도착한다. 전체 심볼이 수신되기 전까지 프로세싱은 수행될 수 없다. 따라서, 3 심볼의 데이터를 유지하기 위해 충분한 메모리가 요구된다.
3 메모리 블록은, 후술하는 방식으로 착신 심볼을 캡쳐하는 데 이용될 수 있다. 제 1 메모리, 예를 들어, 뱅크 1 은 AFC 블록으로부터 착신 샘플을 수집한다. 제 2 메모리, 예를 들어, 뱅크 2 는 데이터 값을 유지한다. 이 메모리는 FFT 프로세싱 유닛의 상이한 계산 엔진 - FFT 코어 및 채널 추정 블록에 의하여 이용된다. 제 3 메모리, 예를 들어, 뱅크 3 은 심볼 인터레이스 데이터를 유지한다. 이 메모리는 대부분의 계산을 수행하는 데 이용된다.
수신된 샘플은 특정 순서인 행 방향으로 저장되어 FFT 프로세싱을 최적화한다. 4096 샘플은 8 개의 블록으로 분할된다. 블록 0 은 파일럿 정보를 포함하고, 블록 1 내지 7 은 데이터를 포함한다.
래딕스-8 FFT 엔진은, 버터플라이 회로로 입력되는 8 개의 샘플을 요구한다. 이들 8 개의 샘플을 하나의 메모리 행에 그룹화함으로써, 래딕스-8 FFT 엔진은 매 사이클에 값을 계산할 수 있다.
착신 샘플 데이터에 대하여, 적합한 행의 메모리 뱅크가 꺼내진다. 8 의 행의 하나의 값은 다시 기입되기 전에 업데이트된다. 래딕스-8 이 512-포인트 FFT 를 수행하기 위해 3 스테이지가 요구된다. 메모리의 8 행의 상이한 세트가 액세스되어 512-포인트 FFT 가 수행된다.
전술한 샘플 메모리에 부가하여, 채널 추정 블록은 5 개의 부가적인 메모리를 이용한다. 각각의 메모리는 64 행, 각각의 행에 8 개의 샘플을 가지고, 크기가 512 사이즈이다. 3 채널 추정 메모리는 과거, 현재 및 미래 파일럿 관측을 유지한다. 다른 2 채널 추정 메모리는 2 타임-필터 회로를 위하여 출력을 유지한다. 채널 추정 블록의 최종 출력은 샘플 메모리의 활성 뱅크의 파일럿 인터레이스에 다시 저장된다.
도 7 은 공유된 메모리를 이용하는 파일럿 프로세싱의 간략한 기능 블록도이다. 파일럿 데이터는 샘플 메모리 파일럿 인터레이스 (710) 을 저장하는 메모 리로부터 판독된다. 파일럿 데이터는 회전기 (720) 에서 회전되고 3 채널 추정 메모리 (740) 의 하나에 저장된다. 카운터는, 활성 데이터가 있고, 3 채널 추정 메모리 (740) 의 어느 것이 파일럿 데이터를 저장하는지 다중화기 (730) 에 표시하는 경우, 매 심볼마다 증분한다.
채널 추정 메모리 (740) 에 저장된 채널 추정은 타임 필터 (750) 에서 이용되어 타임 필터링된 채널 추정을 생성한다. 타임 필터 (750) 는 다수의 타임 필터링된 채널 추정을 생성할 수 있고, 다수의 타임 필터링된 채널 추정을 대응하는 필터링된 채널 추정 메모리 (760) 에 저장할 수 있다.
제 2 회전기 (770) 는 필터링된 채널 추정을 조합하거나 또는 다른 방식으로 선택할 수 있고, 조합된 채널 추정을 회전할 수 있다. 결과적인 채널 추정은 샘플 메모리의 뱅크로 리턴된다.
도 8 은 채널 프로세싱 상태 머신의 간략한 상태도 (800) 이다. 채널 프로세싱 상태 머신은 레지스터 설정을 사용하여 데이터의 착신 심볼에 언제 그리고 어떻게 행동할지 결정할 수 있다. 어떠한 주어진 심볼에 대해서도, 채널 프로세싱 상태 머신은 FFT 프로세서가 다수의 기능의 임의의 하나를 수행하는 것을 결정할 수도 있다.
채널 프로세서에 대한 상태 머신은 유휴 상태 (890) 로부터 착신 샘플의 복조에 후속하는 동작 결정 상태 (801) 로 천이할 수 있다. 채널 프로세싱 상태 머신은 채널 추정에 대한 파일럿 관측의 추출 및 채널 추정의 계산 (803), IFT 블록으로부터 동적 시간 트래킹 조절 (DMTT) 의 요청 (811), 7 데이터 슬롯의 어느 것/전부에 대한 데이터 프로세싱 (802), 7 데이터 슬롯의 어느 것/전부로부터 LLR 블록으로 데이터를 송신 (810), 및 특별 프레임 0 심볼, WIC (809), LIC (813), 및 TDM2 정밀 타이밍 프로세싱 (804) 에 대한 특별 프로세싱으로 천이할 수 있다.
도 9 는 FFT 프로세서의 일 실시형태에 대한 상태도 (900) 이다. 상태도는, 파일럿 프로세싱, 채널 추정, LLR 프로세싱, 및 FFT 프로세싱의 수행에 대한 상태 천이를 설명한다. 상태도에서 보는 바와 같이, FFT 및 IFFT 연산은 기계 전체에서의 액세스, 및 FFT 연산 또는 IFFT 연산의 어느 하나로 또는 어느 하나를 통한 많은 상태 천이이다.
도 10 은 FFT 엔진 (1000) 의 일 실시형태의 간략한 기능 블록도이다. FFT 및 IFFT 연산의 유사성으로 인하여, FFT 엔진 (1000) 은 FFT 연산 또는 IFFT 연산의 어느 하나를 수행하도록 구성될 수 있다. FFT 엔진은 512-포인트 FFT 의 문맥 내에 설명된다. 그러나, FFT 엔진 (1000) 은 그러한 실시형태에 제한되지 않고, FFT 엔진 (1000) 의 다양한 요소의 변화는 다른 FFT 차원을 수행하도록 한다.
FFT 엔진 (1000) 은 주파수에서의 데시메이션 (decimation) 을 이용하여 구현되는 512-포인트 FFT 를 수행하도록 구성된다. 주파수에서의 데시메이션과 시간에서의 데시메이션의 차이점은 트위들 메모리 계수이다. FFT 엔진 (1000) 은 래딕스-8 FFT 를 유리하게 이용하여, 512-포인트 FFT 가 3 스테이지에서 수행될 수 있다. 물론, 다른 래딕스 값 또는 래딕스 값의 조합이 FFT 엔진 (1000) 에서 이용될 수 있다. 예를 들어, FFT 엔진 (1000) 은 래딕스-2, 래딕스-4, 래딕 스-8 FFT 또는 상이한 래딕스 FFT 의 조합을 이용할 수 있다.
FFT 엔진 (1000) 은 FFT 연산이 수행되는 복소 샘플의 저장을 위하여 샘플 메모리 (1010) 을 포함한다. 전술한 바와 같이, 샘플 메모리는 다수의 블록 중에서 공유될 수 있고, 중간 값은 물론 프로세싱된 FFT 결과도 다른 모듈에 의한 액세스를 위하여 샘플 메모리 위치에 저장될 수 있다.
FFT 엔진 (1000) 은 샘플 메모리에 액세스하여 샘플을 버터플라이 코어 (1030) 으로 행 순으로 판독하기 위한 레지스터 (1020) 을 포함한다. 샘플 메모리 행은, 레지스터 메모리일 수 있는 트랜스포즈 메모리 (1040) 로 직접 판독될 수도 있다. 버터플라이 코어 (1030) 은 FFT 및 IFFT 를 수행하도록 설정되고, 이들을 단일 래딕스-8 계산 또는 2 래딕스-4 계산의 하나로서 계산한다.
각각의 버터플라이 연산의 결과는, 예를 들어 트랜스포즈 레지스터의 8 × 8 구성을 포함할 수 있는 트랜스포즈 메모리 (1040) 에 열 방향 방식으로 기입된다. 트랜스포즈 메모리 (1040) 로부터의 결과는 행 또는 열 방식으로 판독되고 샘플 메모리 (1010) 에 열 방식으로 기입된다. 행 판독에 후속하는 열 방향 기입은 메모리의 콘텐츠의 트랜스포지션 (transposition) 으로 귀결된다.
FFT 의 각각의 스테이지의 트위들 팩터는, 트위들 ROM 일 수 있는 트위들 메모리 (1070) 에 저장될 수 있다. 트위들 팩터는 메모리의 행 마다 4 트위들 팩터로서 배열될 수 있다.
4 복소 승산기를 포함하는 승산기 모듈 (1060) 은 트위들 팩터를 이용하여 트랜스포즈 메모리 (1040) 의 값을 회전할 수 있다. 4 복소 승산기는 트위들 메모리의 단일 행의 트위들 팩터의 개수가 일치하여 단일 사이클에서 4 복소 승산을 하도록 한다.
트랜스포즈 메모리 (1040) 의 가중된 값은, 샘플 메모리 (1010) 의 발생 위치에 다시 기입되기 전에 정규화 레지스터 (1050) 에서 정규화된다.
도 11 은 래딕스-8 FFT 에 대한 완전 버터플라이 연산 (1100) 을 도시한다. 영역 A 및 B 에서 트위들 승산 값을 조절함으로써, 버터플라이 코어는 래딕스-8 포인트 IFFT 를 수행하도록 변경될 수 있다. 래딕스-4 계산을 수행하기 위하여, 제 2 스테이지 가산기 (도 11 에 Out4 로서 도시됨) 의 결과가 최종 합산 (도 11 에 Out8 로서 도시됨) 대신에 이용된다.
메모리로부터 판독되는 모든 값이 즉시 레지스터될 수 있다. 도 11 은 코어가 래딕스-8 모드에서 동작되는 경우 이용되는 레지스터를 도시한다. 코어가 2 래딕스-4 섹션으로서 동작되는 경우, 입력 값은 레지스터 트랜스포지션 블록의 레지스터로부터 도출되고, 따라서, 다시 레지스터될 필요가 없다.
제 1 세트의 가산기에 앞서 입력이 또한 비트-리버스 된다. 래딕스-8 연산에 대하여, 이는 풀 3-비트 리버스 : 0->0, 1->4, 2->2, 3->6, 4->1, 5->5, 6->3, 7->7 이다. 래딕스-4 연산에 대하여, 4 입력의 각각의 세트는 2-비트 리버스 : 0->0; 1->2; 2->1; 3->3; 4->4; 5->6; 6->5; 7->7 를 이용한다.
값이 각각의 세트의 가산기를 통하여 전파하면서, 그 비트 폭은 1 만큼 증가하여 포화를 방지한다. 입력 값은 9 비트에 의하여 표현된다. 제 1 합은 10 비트에 의하여 표현된다. Out4 값은 11 비트에 의하여 표현되고, Out8 값은 12 비트에 의하여 표현된다.
도 11 에 도시된 바와 같이, A 영역의 4 번째 및 8 번째 합은 FFT 를 위하여 w(2) 에 의하여 승산되어야만 한다. IFFT 에 대하여, 값은 w(6) 이 된다. 트위들 팩터 W(k) 의 결정은 다음과 같이 결정된다 : W(k) = exp (-j2πk / 8).
w(*) 승산은 후술하는 바와 같이 구현된다;
w0 는 (I + jQ) * (1 + j0) = I + jQ 와 같고, 어떠한 수정에 대한 필요도 제거한다.
w1 는 (I + jQ) * (1 / sqrt(2) - j / sqrt(2)) 와 같다. 복소 승산기가 요구된다. 1 / sqrt (2) 의 값에 대하여, 9 비트 부호 상수 (signed constant) 가 이용된다.
w2 는 (I + jQ) * (0 - j1) = Q - jI 와 같다. 입력의 실수부에 대한 2 의 보수 부정을 수행하고 가산하는 대신, 실수부의 값은 변경되지 않고 남겨지며 후속 가산기가 부호 변경을 제거하기 위하여 감산기로 변경된다.
w3 는 (I + jQ) * (-1 / sqrt(2) - j / sqrt(2)) 와 같다. 복소 승산기가 요구된다. 1 / sqrt (2) 의 값에 대하여, 9 비트 부호 상수가 이용된다.
w4 는 (I + jQ) * (-1 + j0) = -I -jQ 와 같다. 그러나, 이 값은 어떤 FFT 계산에도 이용되지 않는다.
w5 는 (I + jQ) * (-1 + j / sqrt(2)) 와 같다. 복소 승산기가 요구된다. 1 / sqrt (2) 의 값에 대하여, 9 비트 부호 상수가 이용된다.
w6 은 (I + jQ) * (0 + j1) = -Q + jI 와 같다. 입력의 허수부에 대한 2 의 보수 부정을 수행하고 가산하는 대신, 허수부의 값은 변경되지 않고 남겨지며 후속 가산기가 부호 변경을 제거하기 위하여 감산기로 변경된다.
w7 은 (I + jQ) * (1 / sqrt (2) + j / sqrt(2)) 와 같다. 복소 승산기가 요구된다. 1 / sqrt (2) 의 값에 대하여, 9 비트 부호 상수가 이용된다.
도 12 는 래딕스-8 FFT 버터플라이의 최초 2 스테이지의 일 실시형태의 기능 블록도이다. 부분적인 버터플라이 코어 (1200) 는 도 11 에 도시된 버터플라이 코어 (1100) 의 Out4 를 통한 입력으로부터의 계산을 포함한다.
2 세트의 가산기가 4 번째 및 8 번째 합산에 대하여 이용된다. 하나의 세트는 w(2) 를 계산하고, 다른 세트는 w(6) 을 계산한다. fft_ifft_n 신호가 어떤 합산을 이용할지 제어한다.
도 13 은 래딕스-8 FFT 버터플라이의 최종 스테이지의 일 실시형태의 기능 블록도이다. 부분적인 버터플라이 코어 (1200) 는 도 11 에 도시된 Out4 로부터 버터플라이 코어의 출력으로의 계산을 포함한다.
실 복소 승산기가 B 영역의 6 번째 및 8 번째 값에 대하여 요구된다.
FFT 를 수행하는 경우, 이들은 w(1) 및 w(3) 이다.
IFFT 를 수행하는 경우, 이들은 각각 w(7) 및 w(5) 이다.
w(1) / w(7) 에 대하여, 프로덕트 합은:
P = 1 / sqrt(2),
W(1) = PI + PQ + j(-PI + PQ),
W(7) = PI - PQ + j(PI + PQ) 이다.
fft_ifft_n 신호가, 입력 값을 가산기 및 감산기로 보내고, 그 합 및 차를 최종 목적지로 보내는 데 이용된다. 이 구현에는 단지 2 승산기 및 2 가산기 (1 가산기 및 1 감산기) 만 요구된다.
w(3) / w(7) 에 대하여, 프로덕트 합은:
P = 1/sqrt(2),
W(3) = -PI + PQ + j(-PI - PQ),
W(5) = -PI - PQ + j(PI - PQ) 이다.
P 를 이용하는 대신, fft_core 는 프로덕트 합에 대하여 R = -1 / sqrt(2) 를 이용한다. R 을 이용하면, 방정식은:
W(3) = RI - RQ + j(RI + RQ),
W(5) = RI + RQ + j(-RI + RQ) 가 된다.
이 프로덕트 합은 20 비트 폭이고, 2 부호 비트를 가진다. 프로덕트 합이 가산되는 경우, 20 비트 폭이 되고, 1 부호 비트를 가진다. 이 합산은, 8 최하위 비트 (LSB) 를 라운딩하고 1 MSB 를 포화시킴으로써 11 비트로 정규화된다.
신호 fft_ifft_n 가 입력 값을 가산기 및 감산기로 보낼 뿐만 아니라, 그 합 및 차를 최종 목적지로 보내는 데 이용된다. 전술한 바와 같이, 단지 2 승산기 및 2 가산기 (1 감산기 및 1 감산기) 가 요구된다.
명백한 승산, 영역 B 에서의 w(2) 및 w(6) 가 영역 A 에서와 동일하게 다루어진다.
타이밍을 맞추기 위하여, 초과 하드웨어를 합치지 않고서는 단일 클록 사이클 내에 이들 계산이 일반적으로 이루어질 수 없다. 레지스터의 세트가 Out4 값을 캡쳐링하기 위하여 부가된다. 6 번째 및 8 번째에 대한 Out4 값은 레지스터되기 전에 상수 P 및 R 에 의하여 승산된다. 이 레지스터의 배치는 다음과 같이 최악의 경우의 경로에 대한 계산의 균형을 맞춘다.
제 1 사이클 : 다중화기 => 가산기 => 가산기 => 다중화기 => 승산기
제 2 사이클 : 가산기 => 다중화기 => 가산기 => 가산기
결국, fft512_4_n 신호는 Out4 또는 Out8 값의 어느 하나를 송신하는 데 이용된다. Out4 값은 11 비트에서 12 비트로 부호-확장된다.
FFT 블록은 단일 512 포인트 FFT 를 수행하기 위하여 래딕스-8 버터플라이 코어를 통하여 3 패스를 이용한다. 이를 달성하기 위하여, 최초 2 패스로부터의 결과는 그 값의 일부를 트위들 팩터에 의하여 승산하고 정규화하여야만 한다. 8 값이 메모리의 단일 행에 저장되므로, 값이 판독되는 순서는 값이 다시 기입되는 순서와 상이하다. 2k I/FFT 가 수행되는 경우, 메모리 값은 버터플라이 코어에 보내어지기 전에 트랜스포즈되어야만 한다.
래딕스-8 FFT 는 8 × 8 레지스터를 이용한다. 모든 64 레지스터가 버터플라이 코어로부터 입력을 수신한다. 56 레지스터는 복소 승산기로부터 입력을 수신힌다. 32 레지스터는 메모리 구조의 메인 메모리로부터 입력을 수신한다. 각각의 레지스터는 2:1 또는 3:1 다중화기를 그 입력에 가진다. 메인 메모리로부터의 입력은 레지스터의 행에 기입된다. 버터플라이 코어로부터의 입력은 레지스터의 열에 기입된다. 복소 승산기로부터의 입력은 그룹으로 수행된다.
모든 64 레지스터는 정규화 계산 및 레지스터를 통하여 메인 메모리로 출력을 송신한다. 정규화의 차수는 I/FFT 의 형식 및 스테이지 각각 마다 상이하다.
모든 64 레지스터는 복소 승산기로 출력을 송신한다. 56 레지스터는 트위들 승산을 요구하고 32 레지스터는 제곱을 요구한다. 32 레지스터는 그 값을 버터플라이 코어로 송신한다.
데이터 FFT, 채널추정 FFT, WIC/LIC 프로세싱, 및 정밀한 타이밍 IFFT 를 위하여 값이 정규화 회로로 행 순으로 송신된다.
채널 추정 IFFT, 파일럿 FFT 및 IFFT 를 위하여 값이 열 순으로 송신된다.
값이 버터플라이 코어로 송신되는 경우, 열 순으로 송신된다. 값이 복소 승산기로 송신되는 경우 그룹으로 이루어진다.
도 14 는 래딕스-8 FFT 에서 트위들 승산 순서를 도시하는 트랜스포즈 메모리 (1400) 의 간략한 표현이다. 전체 래딕스-8 FFT 를 수행하는 데 요구되는 사이틀의 총 개수를 감소하기 위하여, FFT 연산은 고도로 파이프라인된다. 값이 버터플라이 코어로부터 출력되고 트랜스포즈 메모리 (1400) 에 레지스터되면, 트위들 승산을 위해 송신된다.
트위들 승산의 순서는, 버터플라이 코어로부터 열 순으로 레지스터되는 값에 기초하고, 트위들 승산된 값을 행 순으로 메모리로 송신한다. 최소한, 8 판독 플러스 8 기입 사이클이 전체 래딕스-8 FFT 연산에 요구된다. 최소 16 사이클이 이용가능한 경우, 트위들 연산에 4 복소 승산기를 이용하는 것은 14 사이클을 요구한다. 임의의 보다 작은 수의 승산기는 메모리 재기입 연산을 지연시킬 것이고, 임의의 추가 승산기는 하드웨어를 과잉되게 하고 파이프라인의 최소 반 동안 유휴하여, 낭비된 리소스로 귀결된다. 도 10 에 도시된 실시형태에서, 전체 래딕스-8 FFT 연산에 21 사이클이 요구된다.
도 14 의 트랜스포즈 메모리 (1400) 의 제 1 열의 값은 트위들 승산을 요구하지 않는다. 제 2 열이 기입되면, 그룹 1 의 값은 복소 승산기로 송신될 수 있다. 이는 그룹 7 까지 반복된다. 최초 7 그룹의 모든 값은 열 방향 방식으로 인접한다. 여기서, 최초 4 행은, 마지막 4 행이 트위들 승산되는 동안, 메인 메모리로 송신되도록 준비된다.
값의 나머지 그룹은 행 방향으로 그룹화되어 추출된다. 행 방향 그룹화의 각각은 인접한 행 값으로 간주되고, 그 값들은 순환 형식으로 인접한다. 따라서, 그룹 9 에서, 예를 들어, 값 [4, 0] 은 행 [4, 7] 의 마지막 값에 순환적으로 인접한다.
도 15 는 파이프라인된 래딕스-8, 512-포인트, FFT 연산의 간략한 타이밍도이다. 도 15 의 파이프라인 타임라인 (1500) 은, 래딕스-8 계산에 대한 버터플 라이 계산, 트위들 계산 및 정규화 계산의 겹치는 성질을 도시한다.
사이클 0 동안, 메모리의 제 1 행의 8 값 중의 제 1 값이 판독된다 (도 14 의 값 0). 메모리로부터의 값은 후속하는 사이클에 대하여 FFT 에 이용가능한다. 메모리로부터의 값은 실행되기 이전에 레지스터된다. 이 결과는 메모리 액세스에 대하여 1-사이클 딜레이로 귀결된다. 따라서, cycle_count = 2 까지는 입력 코어 레지스터가 제 1 메모리 행에 대하여 유효한 데이터를 가지지 않는다. 타이밍 요구를 맞추기 위하여, 버터플라이 계산은 2 사이클이 소요된다. cycle_count = 3 인 경우, 버터플라이 계산의 반이 제 1 메모리 행에 대하여 수행된다. cycle_count = 4 인 경우, 버터플라이 계산은 완료되고 결과가 트랜스포지션 레지스터 뱅크에 레지스터된다.
정확한 트위들 계수 값이 cycle_count = 4 에 준비되도록 하려면, 트위들 메모리로의 어드레스, tw_addr 가 cycle_count = 3 에 넘겨져야만 한다. 계수는 cycle_count = 4 에 레지스터되고, cycle_count = 5 에 제 2 세트의 버터플라이 결과에 대하여 승산되도록 이용가능하다.
cycle_count = 11 인 경우, 그룹 7 에 대한 값이 트랜스포지션 레지스터에 다시 기입된다. 여기서, 도 14 의 최초 4 행은 완료되고 정규화되어 메모리에 다시 판독될 수 있다.
cycle_count = 12 인 경우, 레지스터의 제 1 행이 판독되고 값이 정규화된다. 정규화된 값은 정규화 레지스터에 저장되고, 트랜스포지션 레지스터를 포함하는 64 제리스터로부터 분리된다. cycle_count = 13 인 경우, 정규화 레지 스터로부터의 값은 메인 메모리로 다시 송신된다. 임의의 I/FFT 의 제 3 스테이지 동안 어떤 트위들 승산도 발생하지 않는다. 따라서, 파이프라인 타이밍으로써 (데이터 FFT 에 대하여) 행 순으로 다시 기입하는 것에 문제는 없다.
도 16 은 파이프라인된 2048-포인트 FFT 의 간략화된 타이밍도 (1600) 이다. 파이프라인된 타이밍도 (1600) 는 512-포인트 FFT 결과의 세트로부터 2048-포인트 FFT 를 수행하기 위한 동작을 도시한다.
2048-포인트 FFT 의 동작은 512-포인트 FFT 와 매우 유사하다. 그러나, 2048 은 8 의 거듭제곱이 아니므로, FFT 는 512-포인트 FFT 의 결과에 래딕스-4 연산을 수행한다.
2048-포인트 I/FFT 를 수행하는 경우, 4 개의 상이한 512 포인트 I/FFT 의 결과는 래딕스-4 연산을 겪는다. 하나의 행은 각각 4 인터레이스, 512-포인트 I/FFT 를 각각 겪은 512 값으로부터 판독된다.
메모리 구조는 인터레이스 값이, 어드레스로서가 아닌, 해당 4 개의 상이한 인터레이스 중에서 선택하는 다중화기로서 사용되도록 한다. 따라서, cycle_cnt = 1 인 경우, 4 개의 모든 인터레이스에 대한 메모리 위치 0 으로부터의 값이 준비되고, fft_intl 이 적합한 값을 선택하기 위하여 이용된다. cycle_cnt = 5 인 경우, 모든 4 행이 판독되었고 최초 2 열이 버터플라이 코어로 송신된다. 버터플라이 코어는 하나의 사이클에서 2 래딕스-4 계산을 수행하고, 트랜스포지션 레지스터로 그 값을 리턴한다. 개별적인 레지스터 입력이 복잡성을 감소하기 위하여, 각각의 쌍에서의 제 2 열에 대한 4 값은 그들이 생성된 열의 마지막 4 레지스터에서 캡쳐링된다. 그 후, 래딕스-4 결과는, 트위들 승산을 수행하는 샘플 복소 승산기를 이용하여 제곱된다. cycle_cnt = 6 인 경우, 제곱된 값은 메모리에 재기입되기 전에 정규화에 대하여 준비된다. 비트 폭 제한으로 인하여, 제곱된 값에 상이한 정규화가 수행된다. 정규화된 값은 초기 정밀한 타이밍 블록, IFT 에 기입된다.
트위들 계수는 각각의 행에 4 값으로써 메모리에서 편성된다. 값을 계산하려 시도하거나 또는 비-잉여 (non-redundant) 세트의 트위들 값을 저장하고 소망하는 값을 어드레스하려 시도하는 것 보다, FFT 의 특정 스테이지에 연관되는 메모리의 행에 트위들 값을 저장하는 것이 유리할 수 있다.
56 승산은 사이클 마다 4 번 수행되어, 14 사이클이 요구된다. 다양한 트위들 계수의 위치를 결정하기 위하여, 512-포인트 및 64-포인트 계수 메트릭스들이 도 14 에서 주어진 승산 순서로써 오버레이될 필요가 있다. 데이터의 행이 완료되는 경우, 그것은 메모리 뱅크로 다시 기입된다.
최초 8 행 (0, 8, 16 등) 이 다시 기입된 후, 다음 8 행이 판독된다. 제 1 스테이지에 대하여, 이는 행 1, 9, 17 등이다. 행 7, 15, 23 등이 프로세싱된 후, FFT 는 제 2 스테이지로 진행한다. 제 2 및 제 3 스테이지에서, 행은 순차적으로 액세스된다.
레지스터 값은 12 비트 폭이다. 트위들 계수는 8 비트 폭이다. 결과적인 20-비트 프로덕트는 트랜스포지션 레지스터에 저장되기 전에 다시 12 비트로 라운딩된다. 라운딩은 채널 추정의 제 1 또는 제 3 스테이지가 수행되는 경우 발생한다. 13 번째 비트가 12 최상위비트에 부가된다. 다른 모든 경우에 대해서, 라운딩은 수행되지 않고 모든 정규화가 후에 남겨진다. 12 최상위비트는 단순히 리턴된다.
동일한 12 × 8 승산기가 제곱을 수행하기 위하여 이용된다. 레지스터 값은 래딕스-4 여산 후에 11 비트 폭이다. 레지스터 값은 하나의 승산기 입력에 대하여 12 비트로 부호 확장된다. 다른 승산기 입력에 대하여 8 비트를 획득하기 위하여, 레지스터 값은 2 최하위비트를 라운드 오프하고, 최상위비트에 대하여 포화가 체크된다. 20-비트 프로덕트는 14 비트로 라운딩되고 11 비트로 포화 체크된다. 이 11 비트 값은 더 계산되기 위하여 IFT 블록으로 송신된다.
도 17 은 OFDM 신호 프로세싱 방법 (1700) 의 간략한 흐름도이다. 상술한 방법은, 예를 들어, 도 3 또는 4 의 FFT 프로세서, 또는 도 1 의 시스템의 사용자 단말기에 의하여 수행될 수 있다.
방법 (1700) 은 FFT 프로세서가 샘플을 수신하는 블록 (1710) 에서 시작하고, 샘플은 수신된 OFDM 심볼의 복소 샘플이거나, 또는 수신된 OFDM 심볼 칩일 수 있다. FFT 프로세서는 블록 (1720) 으로 진행하고 각각의 수신된 샘플을 복조한다. FFT 프로세서는 블록 (1730) 으로 진행하고 복조된 샘플을 메모리에, 예를 들어, 도 3 에 도시된 메모리 구조의 샘플 메모리 뱅크에 저장한다.
FFT 프로세서는 블록 (1740) 으로 진행하고 복조된 샘플로부터 채널 추정을 결정한다. 일 실시형태에서, 복조된 샘플은 다수의 인터레이스 샘플로서 저장되고, FFT 프로세서는 파일럿 인터레이스에 기초하여 채널 추정을 결정한다.
FFT 프로세서는 블록 (1750) 으로 진행하고 하나 이상의 데이터 인터레이스에 대응하는 데이터 서브밴드를 결정한다. 각각의 서브밴드는 인코딩된 데이터를 가질 수 있고, FFT 프로세서 또는 관련 모듈은 서브밴드 데이터의 디코딩을 수행할 수 있다. 일 실시형태에서, 서브밴드 데이터는, 인터레이스의 각각의 서브밴드에 대한 채널 추정과 관련하여 LLR 모듈에서 프로세싱된다.
도 18 은 심볼 샘플 복조 방법 (1720) 의 간략한 흐름도이다. 방법 (1720) 은 도 17 의 방법에서 수행되는 복조 동작에 대응할 수 있다. 샘플을 복조하는 방법 (1720) 은 도 3 또는 도 4 의 FFT 프로세서에 의하여 수행될 수 있다. 보다 상세하게는, 심볼 샘플을 복조하는 방법은 도 3 의 복조 블록에 의하여 수행될 수 있다.
복조 블록은 많은 수의 카운터를 포함할 수 있고, 심볼의 시작에서 모든 카운터를 리셋함으로써 방법 (1720) 을 시작할 수 있다. 심볼의 시작은 적은 양만큼 변화할 수 있으나, 시작 시간의 에러가 임의의 OFDM 사이클릭 프리픽스의 지속기간보다 작은 경우, 복조 방법 (1720) 의 목적에서 작은 양은 무의미할 수 있다.
복조 블록은 블록 (1820) 으로 진행하고 OFDM 심볼 내에서 복수개의 인터레이스로부터 인터레이스를 결정한다. 복조 블록은, 예를 들어, 모듈로-M 카운터로써 인터레이스를 트래킹할 수 있고, 숫자 M 은 인터레이스의 개수에 대응한다. 최초에, 카운터는 0 으로 설정될 수 있고, 각각의 샘플 이후에 증분할 수 있다.
복조 블록은 블록 (1830) 으로 진행하고 수신된 샘플을 회전한다. 일 실 시형태에서, 복조 블록은 인터레이스에 기초하여 결정되는 고정된 값 만큼 수신된 샘플을 회전한다. 따라서, 8 개의 인터레이스를 가지는 OFDM 심볼에 대하여, 입력 샘플은 8 위상의 하나 만큼 회전된다.
샘플을 회전한 후, 복조 블록은 블록 (1840) 으로 진행하고 회전된 샘플을 누산한다. 복조 블록은 P 인터레이스 값의 M 회전 샘플을 누산하도록 구성될 수 있다. 즉, OFDM 심볼이 M 인터레이스를 포함하고, 각각의 인터레이스는 P 서브밴드를 가지고, 복조 블록은 최초 P 샘플을 회전하여 그들을 저장할 수 있고, 그 후, 심볼의 모든 샘플이 수신되고, 회전되고, 그리고 누산되기까지, 모듈로-P 구성에서 샘플을 회전 및 누산한다.
각각의 누산 이후에, 복조 블록은 판정 블록 (1850) 으로 진행하고 모든 심볼 샘플이 복조되었는지 판정한다. 복조 블록은 심볼 샘플의 완료를, 예를 들어, M 번째 인터레이스의 P 번째 값이 M 값을 누산하였는지를 판정함으로써, 판정할 수 있다.
심볼 샘플이 복조된 경우, 복조 블록은 블록 (1860) 으로 진행하고 심볼 복조는 완료된다. 복조 블록은 다음 심볼 복조로 진행할 수 있다. 판정 블록 (1850) 에서, 복조 블록이 모든 심볼 샘플이 프로세싱되지 않은 것으로 판정하는 경우, 복조 블록은 블록 (1820) 으로 다시 진행하여 다음 도착하는 심볼 샘플의 인터레이스를 결정한다.
도 19 는 OFDM 신호 처리의 방법 (1900) 의 간략한 흐름도이다. 방법 (1900) 은 도 3 및 도 4 에 도시된 FFT 프로세서에 의하여 수행될 수 있다. 상 세하게는, 방법 (1900) 은 도 10 의 FFT 엔진에 의하여 수행될 수도 있다.
방법 (1900) 은 FFT 엔진이 복수개의 행의 샘플 메모리를 판독하는 블록 (1910) 에서 시작한다. 일 실시형태에서, FFT 엔진은 샘플 메모리로부터 판독되는 각각의 값을 레지스터한다.
FFT 엔진은 블록 (1920) 으로 진행하고 하나의 행의 값에 버터플라이를 수행한다. 유리하게는, 샘플 메모리의 각각의 행은 FFT 래딕스 값에 동등한 개수의 샘플 값을 저장할 수 있다. 따라서, 단일 행 판독은 단일 래딕스-R FFT 에 대한 모든 값을 로딩할 수 있다.
FFT 엔진은 블록 (1930) 으로 진행하고 트위들 메모리로부터 트위들 팩터의 행을 추출한다. 트위들 팩터의 행은 샘플 메모리의 행보다 더 작은 값을 가질 수 있다. 일 실시형태에서, 샘플 메모리의 각각의 행은 8 샘플 값을 포함하고, 트위들 메모리는 각각의 행에 4 트위들 팩터를 저장한다.
FFT 엔진은 블록 (1940) 으로 진행하고 버터플라이 값을 트위들 팩터로써 승산한다. 일 실시형태에서, 복소 승산기의 개수는 트위들 메모리의 행의 트위들 팩터의 개수와 동일하고, 트위들 팩터 승산은 하나의 사이클에서 실행될 수 있다. 버터플라이 값이 트위들 팩터보다 많을 수 있기 때문에, 래딕스-R FFT 의 각각의 스테이지를 완료하기 위하여 하나 이상의 승산 단계가 수행될 필요가 있을 수도 있다. 각각의 버터플라이 값은 일반적으로 FFT 의 스테이지 당 단지 하나의 트위들 팩터에 의하여 승산된다. 트위들 팩터가 승산 없이 수행될 수 있기 때문에, 어떤 버터플라이 값은 복소 승산 기능을 필요로 하지 않을 수도 있다.
버터플라이 값을 트위들 팩터로써 승산한 후에, FFT 엔진은 트위들된 값을 메모리, 또는 레지스터로 다시 기입하고, 값의 행의 프로세싱이 완료된다. 따라서, FFT 엔진은 래딕스-8 FFT 와 같은 래딕스-R FFT 를 메모리로부터의 단지 8 판독으로써 수행할 수 있다.
도 20 은 FFT 프로세서 (2000) 의 간략한 기능 블록도이다. FFT 프로세서는 데이터를 저장하는 수단에 접속되는 복조하는 수단을 포함한다. 데이터를 저장하는 수단은 다양한 모듈 사이에서 공유된다. 샘플을 변환하는 수단은 데이터를 저장하는 수단에 접속될 수 있다. 채널을 추정하는 수단 역시 데이터를 저장하는 수단에 접속될 수 있고, 저장된 값에 동작할 수 있다. 샘플 값을 변환하는 수단에 의하여 생성되는 서브밴드 정보를 디코딩하는 수단은 변환된 샘플 값에 동작할 수 있다.
도 21 은 FFT 엔진 (2100) 의 간략한 기능 블록도이다. FFT 엔진 (2100) 은 복조된 OFDM 심볼 샘플일 수 있는 샘플을 저장하는 수단을 포함한다. 샘플을 저장하는 수단은 버터플라이를 계산하는 수단에 접속된다. 프로세싱하는 수단은, 버터플라이를 계산하는 수단에 의한 동작을 위하여, 샘플을 저장하는 수단으로부터 레지스터로 값을 로딩할 수 있다.
버터플라이를 계산하는 수단은 추출된 샘플에 버터플라이를 계산하고, 값을 트랜스포징하는 수단에 계산된 버터플라이 값을 기입하도록 구성된다. 데이터는 값을 트랜스포징하는 수단에, 예를 들어, 열 방향 방식으로 기입되고, 행 방향 방식으로 판독되어, 값의 트랜스포지션이 가능하게 할 수 있다.
계수를 저장하는 수단은 다수의 행에 트위들 팩터를 저장하는데 이용될 수 있다. 값을 정규화하는 수단은 값을 트랜스포징하는 수단으로부터의 값을 정규화하는데 이용될 수 있다.
많은 FFT 프로세서, FFT 엔진, 및 OFDM 심볼을 프로세싱하는 방법이 설명되었다. 공유된 메모리 구조를 이용하는 다수의 모듈의 집적화는 OFDM 수신기 설계를 매우 단순화할 수 있다. FFT 엔진은 FFT 사이클 카운트를 매우 감소하면서, 복소 승산기와 같은 고가의 리소스를 충분히 이용하는 방식으로 구현될 수 있다.
본 명세서에 사용된 바와 같이, 접속되는 또는 연결되는 이라는 용어는 직접 접속 또는 연결뿐만 아니라 간접 접속을 의미하도록 사용되었다. 2 이상의 블록, 모듈, 디바이스 또는 장치가 접속되는 경우, 두개의 접속된 블록 사이에는 하나 이상의 개재 블록이 있을 수도 있다.
본 명세서에 개시된 실시형태와 관련된 다양한 예시적인 로직 블록, 모듈, 및 회로는 범용 프로세서, 디지털 신호 프로세서 (DSP), RISC 프로세서, 주문형 집적 회로 (ASIC), FPGA (Field Programmable Gate Array) 또는 다른 프로그램 가능한 로직 디바이스, 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 컴포넌트, 또는 이들을 본 명세서에 설명된 기능을 수행하도록 설계된 임의로 조합한 것으로써 수행되거나 구현될 수도 있다. 범용 프로세서는 마이크로 프로세서일 수도 있으나, 대신, 프로세서는 임의의 프로세서, 제어기, 마이크로 제어기, 또는 상태 머신일 수도 있다. 프로세서는 역시 계산 디바이스의 조합, 예를 들어, DSP 및 마이크로 프로세서, 복수개의 마이크로 프로세서, DSP 코어와 관련되는 하나 이상의 마이크로 프로세서, 또는 그러한 임의의 다른 구성으로서 구현될 수도 있다.
본 명세서에 개시된 실시형태와 관련되어 설명된 방법, 프로세스, 또는 알고리즘의 단계는 직접적으로 하드웨어로, 프로세서에 의하여 실행되는 소프트웨어 모듈로, 또는 이들 둘의 조합으로 구현될 수 있다. 방법 또는 프로세스의 다양한 단계 또는 동작은 개시된 순서로 수행될 수도 있고, 또는 다른 순서로 수행될 수도 있다. 또한, 하나 이상의 프로세스 또는 방법 단계가 생략될 수도 있고, 또는 하나 이상의 프로세스 또는 방법 단계가 상술한 방법 및 프로세스에 부가될 수도 있다. 부가적인 단계, 블록, 또는 동작이 시작, 종료에 부가되거나, 또는 상술한 방법 또는 프로세스의 기존 요소에 개재될 수도 있다.
개시된 실시형태의 전술한 설명은 당업계의 일반적인 기술을 가지는 어떤 자라도 개시내용을 이루거나 이용할 수 있도록 제공된다. 이들 실시형태의 다양한 변형은 당업자에게 용이하게 명백하고, 본 명세서에 정의된 일반적인 원리는 본 개시내용의 정신 또는 범위를 벗어남이 없이 다른 실시형태에 적용될 수도 있다. 따라서, 개시내용은 본 명세서에 개시된 실시형태에 제한되는 것이 아니라, 본 명세서에 개시된 신규한 특징 및 원리에 부합하는 가장 넓은 범위에 일치하도록 의도된다.

Claims (20)

  1. 고속 푸리어 변환 (FFT) 프로세싱 장치로서,
    FFT 의 래딕스 (Radix) 와 동등한 각각의 행에 저장된 개수의 샘플 값을 가지는 샘플 메모리;
    트랜스포즈 메모리;
    상기 샘플 메모리로부터 값의 행을 수신하고, 상기 값에 버터플라이 연산을 수행하고, 상기 트랜스포즈 메모리의 열에 결과를 기입하도록 구성되는 버터플라이 코어; 및
    상기 트랜스포즈 메모리로부터 소정의 개수의 인접한 값을 추출하고 상기 값의 각각을 트위들 팩터로 승산하도록 구성되는 승산기 모듈을 포함하는, 고속 푸리어 변환 프로세싱 장치.
  2. 제 1 항에 있어서,
    상기 소정의 개수의 인접한 값은 열 방향으로 인접한 값인, 고속 푸리어 변환 프로세싱 장치.
  3. 제 1 항에 있어서,
    상기 소정의 개수의 인접한 값은 행 방향으로 인접한 값인, 고속 푸리어 변환 프로세싱 장치.
  4. 제 1 항에 있어서,
    상기 소정의 개수의 인접한 값은 행 방향 순환 인접한 값인, 고속 푸리어 변환 프로세싱 장치.
  5. 제 1 항에 있어서,
    상기 버터플라이 코어는 래딕스-R FFT 를 수행하도록 구성되고,
    상기 트랜스포즈 메모리는 R×R 레지스터를 포함하는, 고속 푸리어 변환 프로세싱 장치.
  6. 제 1 항에 있어서,
    단일 클록 사이클에 수행될 수 있는 복소 승산의 개수와 동등한 개수의 트위들 팩터를 동일한 행 내에 저장하도록 구성되는 트위들 메모리를 더 포함하는, 고속 푸리어 변환 프로세싱 장치.
  7. 제 1 항에 있어서,
    상기 승산기 모듈은 복수개의 복소 승산기를 포함하는, 고속 푸리어 변환 프로세싱 장치.
  8. 제 1 항에 있어서,
    상기 승산기 모듈은,
    트위들 연산의 최대 개수와 버터플라이 래딕스 값의 2 배와 동등한 클록 사이클의 최소 개수에 기초한 개수의 복소 승산기를 포함하는, 고속 푸리어 변환 프로세싱 장치.
  9. 고속 푸리어 변환 (FFT) 프로세싱 장치로서,
    8 개의 복소 샘플 값을 각각의 행에 저장하도록 구성되는 샘플 메모리;
    8×8 저장 위치로서 배열되는 트랜스포즈 메모리;
    값의 행을 추출하고, 래딕스-8 버터플라이를 수행하고, 상기 트랜스포즈 메모리에 열 방향으로 출력 값을 기입하도록 구성되는 래딕스-8 버터플라이 코어;
    각각의 행에 4 개의 트위들 값을 저장하도록 구성되는 트위들 메모리; 및
    상기 트위들 메모리로부터 행을, 상기 트랜스포즈 메모리로부터 4 개의 인접한 값을 추출하고, 상기 트위들 메모리로부터의 값을 이용하여 인접한 트랜스포즈 메모리 위치로부터의 상기 4 개의 값에 복소 승산을 수행하고, 그 승산결과를 상기 4 개의 인접한 트랜스포즈 메모리 위치에 기입하는, 4 개의 복소 승산기를 가지는 승산기 모듈을 포함하는, 고속 푸리어 변환 프로세싱 장치.
  10. 제 9 항에 있어서,
    상기 인접한 트랜스포즈 메모리 위치는 열 방향으로 인접한 메모리 위치를 포함하는, 고속 푸리어 변환 프로세싱 장치.
  11. 제 9 항에 있어서,
    상기 인접한 트랜스포즈 메모리 위치는 행 방향 순환 인접한 메모리 위치를 포함하는, 고속 푸리어 변환 프로세싱 장치.
  12. 제 9 항에 있어서,
    상기 인접한 트랜스포즈 메모리 위치는, 사이클의 부분 집합에 대한 열 방향 메모리 위치, 및 사이클의 구별되는 부분 집합에 대한 행 방향 순환 인접 메모리 위치를 포함하는, 고속 푸리어 변환 프로세싱 장치.
  13. 고속 푸리어 변환 (FFT) 프로세싱 연산을 수행하는 방법으로서,
    FFT 의 래딕스와 동등한 샘플 메모리의 복수개의 행을 판독하는 단계;
    상기 샘플 메모리의 행의 값에 대한 버터플라이를 결정하고 트랜스포즈 메모리에 상기 버터플라이 값을 열 방향으로 기입하는 단계;
    트위들 팩터의 행을 추출하는 단계로서, 복수개의 트위들 팩터 값이 상기 행에 저장된, 추출 단계;
    단일 사이클에서 상기 트위들 팩터 값으로써 복수개의 버터플라이 값을 승산하여 트위들된 버터플라이 값을 생성하는 단계; 및
    상기 복수개의 버터플라이 값의 메모리 위치에 상기 트위들된 버터플라이 값을 기입하는 단계를 포함하는, 고속 푸리어 변환 프로세싱 연산 수행 방법.
  14. 제 13 항에 있어서,
    상기 트랜스포즈 메모리의 인접한 레지스터로부터 상기 복수개의 버터플라이 값을 추출하는 단계를 더 포함하는, 고속 푸리어 변환 프로세싱 연산 수행 방법.
  15. 제 14 항에 있어서,
    상기 인접한 레지스터는 열 방향으로 인접한 레지스터를 포함하는, 고속 푸리어 변환 프로세싱 연산 수행 방법.
  16. 제 14 항에 있어서,
    상기 인접한 레지스터는 순환 인접한 행 방향 레지스터를 포함하는, 고속 푸리어 변환 프로세싱 연산 수행 방법.
  17. 제 13 항에 있어서,
    트위들 팩터의 행을 추출하는 단계는,
    최대 FFT 차원에 기초하여 결정된 개수의 행을 가지는 트위들 메모리로부터 행을 추출하는 것을 포함하는, 고속 푸리어 변환 프로세싱 연산 수행 방법.
  18. 제 13 항에 있어서,
    상기 복수개의 버터플라이 값을 승산하는 단계는,
    상기 트위들 팩터로써 상기 버터플라이 값의 복소 승산을 수행하는 것을 포함하는, 고속 푸리어 변환 프로세싱 연산 수행 방법.
  19. 고속 푸리어 변환 (FFT) 프로세싱 장치로서,
    FFT 의 래딕스와 동등한 각각의 행에 저장된 개수의 샘플 값을 저장하는 수단;
    복수개의 값을 트랜스포징하는 수단;
    샘플 메모리로부터 값의 행을 수신하고, 상기 값에 버터플라이 연산을 수행하고, 결과를 트랜스포즈 메모리의 열에 기입하도록 구성되는 버터플라이를 계산하는 수단; 및
    상기 트랜스포즈 메모리로부터의 소정의 개수의 인접한 값을 대응하는 트위들 팩터로써 승산하는 수단을 포함하는, 고속 푸리어 변환 프로세싱 장치.
  20. FFT 의 래딕스와 동등한 샘플 메모리의 복수개의 행을 판독하는 단계;
    상기 샘플 메모리의 행의 값에 대하여 버터플라이를 결정하고 상기 버터플라이 값을 트랜스포즈 메모리에 열 방향으로 기입하는 단계;
    트위들 팩터의 행을 추출하는 단계로서, 복수개의 트위들 팩터 값이 상기 행에 저장되는, 추출 단계;
    단일 사이클에서 복수개의 버터플라이 팩터를 상기 트위들 팩터 값으로써 승산하여 트위들된 버터플라이 값을 생성하는 단계; 및
    상기 복수개의 버터플라이 값의 메모리 위치에 상기 트위들된 버터플라이 값을 기입하는 단계를 수행하는 컴퓨터 프로그램으로 인코딩된 컴퓨터-판독가능 매체.
KR1020077023078A 2005-03-11 2006-03-13 고속 푸리어 변환 트위들 승산 KR100923892B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US66085505P 2005-03-11 2005-03-11
US60/660,855 2005-03-11
US11/373,433 US8266196B2 (en) 2005-03-11 2006-03-10 Fast Fourier transform twiddle multiplication
US11/373,433 2006-03-10

Publications (2)

Publication Number Publication Date
KR20070112244A KR20070112244A (ko) 2007-11-22
KR100923892B1 true KR100923892B1 (ko) 2009-10-28

Family

ID=36917408

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077023078A KR100923892B1 (ko) 2005-03-11 2006-03-13 고속 푸리어 변환 트위들 승산

Country Status (5)

Country Link
US (1) US8266196B2 (ko)
EP (1) EP1856626A2 (ko)
JP (1) JP2008533873A (ko)
KR (1) KR100923892B1 (ko)
WO (1) WO2006099526A2 (ko)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8229014B2 (en) * 2005-03-11 2012-07-24 Qualcomm Incorporated Fast fourier transform processing in an OFDM system
KR100711088B1 (ko) * 2005-04-13 2007-04-24 광주과학기술원 동화상 인코더를 위한 정수 변환 장치
US7664187B2 (en) * 2005-04-25 2010-02-16 Sirf Technology, Inc. Memory reduction in digital broadcast receivers
US7685220B2 (en) * 2005-12-14 2010-03-23 Telefonaktiebolaget L M Ericsson (Publ) Circular fast fourier transform
US7706328B2 (en) 2006-01-04 2010-04-27 Qualcomm Incorporated Methods and apparatus for position location in a wireless network
US7702713B2 (en) * 2006-03-24 2010-04-20 Debashis Goswami High speed FFT hardware architecture for an OFDM processor
US20070239815A1 (en) * 2006-04-04 2007-10-11 Qualcomm Incorporated Pipeline fft architecture and method
KR100836624B1 (ko) * 2006-12-08 2008-06-10 한국전자통신연구원 가변 고속 푸리에 변환 장치 및 그 방법
US9466307B1 (en) * 2007-05-22 2016-10-11 Digimarc Corporation Robust spectral encoding and decoding methods
EP2028808A3 (en) * 2007-07-25 2009-06-03 Qualcomm Incorporated Methods and apparatus for transmitter identification in a wireless network
US20090055459A1 (en) * 2007-08-24 2009-02-26 Michael Speth Frequency-domain equalizer
US8165064B2 (en) 2008-01-28 2012-04-24 Qualcomm Incorporated Enhancements to the positioning pilot channel
US8520500B2 (en) 2008-03-28 2013-08-27 Qualcomm Incorporated Buffered demod and demap functions
US8738680B2 (en) * 2008-03-28 2014-05-27 Qualcomm Incorporated Reuse engine with task list for fast fourier transform and method of using the same
US20100082722A1 (en) * 2008-09-26 2010-04-01 Sinnokrot Mohanned O Methods and Apparatuses for Detection and Estimation with Fast Fourier Transform (FFT) in Orthogonal Frequency Division Multiplexing (OFDM) Communication Systems
TWI396096B (zh) * 2008-12-31 2013-05-11 Ind Tech Res Inst 快速傅利葉轉換處理器
EP2538345A1 (en) * 2010-02-16 2012-12-26 Nec Corporation Fast fourier transform circuit
US8516027B2 (en) 2010-04-30 2013-08-20 Src, Inc. Method and system for bit stacked fast Fourier transform
JP5724739B2 (ja) * 2011-08-09 2015-05-27 富士通株式会社 離散フーリエ演算装置、無線通信装置及び離散フーリエ演算方法
JP5592966B2 (ja) * 2013-02-27 2014-09-17 株式会社東芝 情報処理装置、受信機および情報処理方法
CN104462016B (zh) * 2013-09-22 2018-06-05 南京中兴软件有限责任公司 一种矢量运算核以及矢量处理器
US9740663B2 (en) * 2014-05-21 2017-08-22 Nxp Usa, Inc. Processing device and method for performing a stage of a Fast Fourier Transform
US9940303B2 (en) * 2015-07-10 2018-04-10 Tempo Semiconductor, Inc. Method and apparatus for decimation in frequency FFT butterfly
EP3232321A1 (en) * 2016-04-12 2017-10-18 AptCore Ltd Signal processing apparatus with register file having dual two-dimensional register banks
KR102356708B1 (ko) 2017-09-28 2022-01-27 삼성전자주식회사 컨볼루션 연산을 수행하는 연산 장치 및 연산 방법
US10853446B2 (en) 2018-06-15 2020-12-01 Apple Inc. Methods and systems for complexity reduction in discrete Fourier transform computations
US10984808B2 (en) * 2019-07-09 2021-04-20 Blackberry Limited Method for multi-stage compression in sub-band processing
KR102479480B1 (ko) * 2021-03-16 2022-12-20 국방과학연구소 공유 메모리 기반 시스토릭 어레이 고속 푸리에 변환 장치 및 그 방법
US11764942B2 (en) * 2021-06-01 2023-09-19 Huawei Technologies Co., Ltd. Hardware architecture for memory organization for fully homomorphic encryption

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990079171A (ko) * 1998-04-02 1999-11-05 구자홍 패스트 퓨리에 변환(fft) 장치와 제어방법

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4736307A (en) * 1982-04-21 1988-04-05 Neuroscience, Inc. Microcomputer-based system for the on-line analysis and topographic display of human brain electrical activity
US4768159A (en) * 1984-11-26 1988-08-30 Trw Inc. Squared-radix discrete Fourier transform
JPS6473457A (en) 1987-09-14 1989-03-17 Oki Electric Ind Co Ltd Operation system for fast fourier transformation
JPH0795320B2 (ja) * 1988-10-11 1995-10-11 日本電子株式会社 大容量高速フーリエ変換装置
JPH03100863A (ja) 1989-09-14 1991-04-25 Hitachi Ltd Fft演算方式及び装置
JPH0540777A (ja) 1991-08-06 1993-02-19 Fujitsu Ltd バタフライ演算方式
JP3938238B2 (ja) 1997-02-04 2007-06-27 沖電気工業株式会社 高速フーリエ変換処理装置
TW465234B (en) * 1997-02-18 2001-11-21 Discovision Ass Single chip VLSI implementation of a digital receiver employing orthogonal frequency division multiplexing
JP3668356B2 (ja) 1997-04-07 2005-07-06 シャープ株式会社 高速フーリエ変換演算回路
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
JP3709291B2 (ja) 1998-10-14 2005-10-26 日本電気株式会社 高速複素フーリエ変換方法及び装置
US6658441B1 (en) * 1999-08-02 2003-12-02 Seung Pil Kim Apparatus and method for recursive parallel and pipelined fast fourier transform
EP1085773A1 (en) * 1999-09-20 2001-03-21 Nortel Matra Cellular Mobile telecommunications network with distributed base stations
US6990061B2 (en) * 2000-05-31 2006-01-24 Interuniversitair Micro-Elektronica Centrum Method and apparatus for channel estimation
GB2363924A (en) * 2000-06-20 2002-01-09 Virata Ltd Processor for FIR filtering
JP4560187B2 (ja) * 2000-08-30 2010-10-13 株式会社アドバンテスト インターリーブad変換方式波形ディジタイザ装置
JP3757782B2 (ja) 2000-10-30 2006-03-22 日本電気株式会社 Fft演算回路
US7333422B2 (en) 2003-09-12 2008-02-19 Zarbana Digital Fund Llc Optimized FFT/IFFT module
WO2002069182A1 (fr) * 2001-02-28 2002-09-06 Fujitsu Limited Dispositif a transformee de fourrier
KR100692997B1 (ko) * 2001-04-17 2007-03-12 삼성전자주식회사 패스트퓨리에변환 장치
KR100836050B1 (ko) * 2001-05-23 2008-06-09 엘지전자 주식회사 고속 푸리에 변환 연산 장치
US7248559B2 (en) * 2001-10-17 2007-07-24 Nortel Networks Limited Scattered pilot pattern and channel estimation method for MIMO-OFDM systems
US7315934B2 (en) * 2002-03-06 2008-01-01 Matsushita Electric Industrial Co., Ltd. Data processor and program for processing a data matrix
WO2004004265A1 (en) 2002-06-27 2004-01-08 Samsung Electronics Co., Ltd. Modulation apparatus using mixed-radix fast fourier transform
US20040059766A1 (en) * 2002-09-23 2004-03-25 Yeou-Min Yeh Pipelined low complexity FFT/IFFT processor
AU2003288477A1 (en) * 2002-11-01 2004-05-25 Mtel Limited Method and system for efficient character-based processing
US7471745B2 (en) * 2002-11-26 2008-12-30 Texas Instruments Incorporated Method and apparatus for channel quality metric generation within a packet-based multicarrier modulation communication system
TW594502B (en) * 2003-01-30 2004-06-21 Ind Tech Res Inst Length-scalable fast Fourier transformation digital signal processing architecture
US20040172435A1 (en) * 2003-02-27 2004-09-02 Texas Instruments Incorporated Architecture and method for performing a fast fourier transform and OFDM reciever employing the same
JP2004320168A (ja) 2003-04-11 2004-11-11 Matsushita Electric Ind Co Ltd 無線受信装置および無線受信方法
US7177297B2 (en) * 2003-05-12 2007-02-13 Qualcomm Incorporated Fast frequency hopping with a code division multiplexed pilot in an OFDMA system
US7702712B2 (en) * 2003-12-05 2010-04-20 Qualcomm Incorporated FFT architecture and method
US7551545B2 (en) 2004-02-09 2009-06-23 Qualcomm Incorporated Subband-based demodulation for an OFDM-based communication system
US7296045B2 (en) * 2004-06-10 2007-11-13 Hasan Sehitoglu Matrix-valued methods and apparatus for signal processing
TWI237773B (en) * 2004-06-24 2005-08-11 Univ Nat Chiao Tung Fast fourier transform processor and dynamic scaling method thereof and radix-8 fast Fourier transform computation method
US7496618B2 (en) * 2004-11-01 2009-02-24 Metanoia Technologies, Inc. System and method for a fast fourier transform architecture in a multicarrier transceiver
US7529789B2 (en) * 2004-11-01 2009-05-05 Metanoia Technologies, Inc. Method for representing complex numbers in a communication system
US20060221810A1 (en) * 2005-03-10 2006-10-05 Bojan Vrcelj Fine timing acquisition
US8229014B2 (en) * 2005-03-11 2012-07-24 Qualcomm Incorporated Fast fourier transform processing in an OFDM system
US20070239815A1 (en) * 2006-04-04 2007-10-11 Qualcomm Incorporated Pipeline fft architecture and method

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990079171A (ko) * 1998-04-02 1999-11-05 구자홍 패스트 퓨리에 변환(fft) 장치와 제어방법

Also Published As

Publication number Publication date
WO2006099526A2 (en) 2006-09-21
US20060248135A1 (en) 2006-11-02
US8266196B2 (en) 2012-09-11
KR20070112244A (ko) 2007-11-22
WO2006099526A3 (en) 2008-04-10
JP2008533873A (ja) 2008-08-21
EP1856626A2 (en) 2007-11-21

Similar Documents

Publication Publication Date Title
KR100923892B1 (ko) 고속 푸리어 변환 트위들 승산
KR100958231B1 (ko) 직교 주파수 분할 다중 시스템에서의 고속 푸리에 변환처리
CN100585582C (zh) 一种用于部分式快速傅里叶变换fft处理的装置、处理器和方法
US7693034B2 (en) Combined inverse fast fourier transform and guard interval processing for efficient implementation of OFDM based systems
JP2009535678A (ja) パイプラインfftのアーキテクチャおよび方法
CN106685887B (zh) 一种用于fpga的ufmc发射机的频域实现方法
CN101300572A (zh) 快速傅里叶变换旋转乘法
CN101669312A (zh) Ofdm接收装置、ofdm接收方法、ofdm接收电路、集成电路及程序
WO2013171823A1 (ja) 受信装置および受信方法
Krishna et al. A study on PAPR reduction and channel estimation in MIMO-OFDM system using wavelet transform
KR100862350B1 (ko) Drm 수신을 위한 가변 포인트 프라임 팩터 fft 방법
Merlyn FPGA implementation of FFT processor with OFDM transceiver
CN109948112B (zh) 一种用于电力线载波通信芯片的fft运算装置及方法
WO2008089595A1 (en) Time domain interpolation method and apparatus for channel estimation
Prithivirajan et al. FFT implementation of OFDM for future 5G communication
Lee et al. A new interpolation method for channel estimation of OFDM systems
Karachalios Real-time base band processing architectures for wireless MIMO communication systems
RAJU et al. VLSI Implementation of MIMO-OFDM for Low Power Applications
KR101259834B1 (ko) 다중 입출력시스템에서 수신 장치 및 방법
Abdullah et al. Performance of Quadrature OFDM System in Rayleigh Fading Channels
Sangeetha et al. Design and implementation of OFDM transceiver for ISI reduction using Sinc filter

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee