KR970011794B1 - 메모리 소자를 이용한 하다마드 변환기 - Google Patents
메모리 소자를 이용한 하다마드 변환기 Download PDFInfo
- Publication number
- KR970011794B1 KR970011794B1 KR1019940030896A KR19940030896A KR970011794B1 KR 970011794 B1 KR970011794 B1 KR 970011794B1 KR 1019940030896 A KR1019940030896 A KR 1019940030896A KR 19940030896 A KR19940030896 A KR 19940030896A KR 970011794 B1 KR970011794 B1 KR 970011794B1
- Authority
- KR
- South Korea
- Prior art keywords
- memory
- data
- hadamard
- output
- input
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
- G06F17/145—Square transforms, e.g. Hadamard, Walsh, Haar, Hough, Slant transforms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Algebra (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Error Detection And Correction (AREA)
- Read Only Memory (AREA)
- Complex Calculations (AREA)
Abstract
내용없음
Description
제1도는 종래 기술의 가감산기를 이용한 하다마드 변환기의 구현 예시도.
제2A도 및 제2B도는 본 발명의 일 실시예에 따른 메모리 소자를 이용한 하다마드 변환기의 구성도.
제3도는 메모리 소자의 번지 할당을 나타내는 도면.
제4도 내지 제6도는 가감산부를 위한 번지 발생기의 번지 상태 이동도.
제7도는 샘플데이타 클럭 구간 동안의 메모리 소자의 동작 상태도.
제8도는 상기 제2도의 각 부분의 신호 파형도.
제9A도 내지 제9C도는 본 발명의 다른 실시예에 따른 한 개의 메모리 소자를 이용한 여러개의 하다마드 변환기의 구성도.
본 발명은 메모리(RAM) 소자를 이용한 하다마드(Hadamard) 변환기에 관한 것이다.
직교성을 갖는 직교 신호 집합은 디지탈 신호 변조 방식에 유용하게 사용될 수 있다.
특히, 왈쉬(Walsh) 함수열과 그 변환인 하다마드(Hadamard) 함수열은 완전한 직교성을 갖음으로 현재 CDMA 확산대역 이동통신 시스템에서 사용되고 있으며, 또한 디지탈 영상처리 분야, 디지탈 통신분야 및 디지탈 계측기 분야에서 널리 사용되고 있다.
하다마드 함수열을 사용한 디지탈 신호처리기의 경우 송신측에서 하다마드 함수열로 변환된 전송신호는 수신단에서 하다마드 변환을 거쳐서 전송된 원래 신호로 복원된다.
본 발명을 상세히 설명하기에 앞서 하다마드 함수열에 대하여 설명하기로 한다.
왈쉬(Walsh) 함수열과 그 변환인 하다마드 함수열은 완전한 직교성을 갖고 있으며, 이러한 직교성으로 인하여 디지탈 신호변조 방식에 유용하게 사용되고 있다.
하다마드 함수는 왈수 함수와 깊은 연관이 있으며, 왈수 행렬에서 행의 순서만 바꾸면 하다마드 행렬이 된다.
표 1에서 하다마드 함수열의 길이가 8인 함수열의 예를 보였다.
표 1에서 "1"와 "-1"은 (1,-1)값을 갖는 2진 신호의 경우이며, (0,1)값을 갖는 디지타 신호에서의 표현은 "1→0", "-1→1"의 대응 관계를 갖는다.
[표 1] 함수열의 길이가 8인 하다마드 함수열과 계수의 예
하다마드 함수열을 사용한 디지탈 신호처리기의 경우 송신측에서 하다마드 함수열로 변환된 전송신호는 수신단에서 하다마드 변환을 거쳐서 전송된 신호로 복원된다.
변조단에서는 하다마드 횡렬 인덱스(row index)중에서 하나의 계수 Ii에 해당하는 하다마드 함수열 Hi을 선택하여 전송하게 되며, 복조단에서는 채널을 거쳐 수신된 신호로부터 최대 유사(maximum likelihood) 하다마드 함수열을 찾아내어 전송 데이타인 하다마드 계수를 복조한다.
표 1의 하다마드 함수열을 행렬로 표시하면 식(0)과 같다.
하다마드 행렬식은 규칙성이 있으며, 보다 큰 행렬식도 작은 행렬식으로부터 반복적인 과정을 거쳐서 생성할 수 있다.
그 규칙성과 일반식은 식(1)과 같다.
입력신호 x(t)와 출력신호 y(t)를 H8의 경우를 예로 들어 행렬식으로 표현하면 식(2)와 같다.
하다마드 행렬의 일반식(1)에 나타나 있는 규칙성을 이용하여, 식(2)는 식(3)과 같이 표현할 수 있다.
식(3)과 마찬가지로 H4에 대하여서는 식(4)로 나타낼 수 있다.
식(1), 식(2), 식(3) 그리고 식(4)에서 알 수 있듯이, 하다마드 함수열은 함수열을 반으로 접는 2분법에 의한 가산과 감산을 통하여 계산할 수 있다.
이러한 방법을 사용하면 효율적으로 하다마드 변환기를 구현할 수 있으며, 그 하나의 방법이 "가감감산기를 이용한 하다마드 변환기"이다.
제1도는 함수열의 길이가 8인 하다마드 함수열에 대하여 가산기 및 감산기를 이용하여 하다마드 변환기를 구현한 것이다.
그 구성은, 샘플데이타 클럭의 일정 계수신호(C1,C1,C0)에 따라 입력되는 신호를 다수개의 가감산부(11∼13)에 출력하는 3비트 계수기(10)와, 상기 3비트 계수기(10)로부터 출력된 계수신호에 따라 소정의 샘플 순차 지연소지(11e∼13e)에 데이타를 출력하고, 이 출력된 데이타와 입력신호의 가감산 동작을 수행한 결과를 상기 샘플 순차 지연소자(11e∼13e)에 기록하는 다수개의 가감산부(11∼13)와, 하다마드 함수열의 매 주기마다 상기 최종의 가감산부(13)의 출력값을 비교하여 최대 유사(maimum likelihood) 하다마드 함수열을 검출하는 비교기(50)로 구성되어져 있다.
상기에서 다수개의 가감산부(11∼13)는 상기 3비트 계수기(10)의 출력 신호에 따라 입력신호(2의 보수 데이타)와 감산된 데이타중 어느 하나를 선택하여 출력하는 스위치(11a∼13a)와, 상기 스위치(11a∼13a)에 의해 선택된 데이타가 기록되는 4샘플 순차 지연소자(11e), 2샘플 순차 지연소자(12e) 및 1샘플 순차 지연소자(13e)와, 입력신호와 상기 샘플 순차 지연소자들에 기록된 데이타를 가산하는 가산기(11c∼13c)와, 입력신호와 상기 샘플 순차 지연소자들에 기록된 데이타를 감산하여 상기 스위치(11a∼13a)에 입력하는 감산기(11d∼13d)와, 상기 가산기(11c∼13c)를 통해 출력된 가산데이타와 상기 샘플 순차 지연소자(11e∼13e)에서 출력된 데이타중 어느 하나를 상기 3비트 계수기(10)에 의한 계수신호에 따라 선택하는 스위치(11b∼13b)로 구성되어져 있다.
이와 같이 구성된 가감산부(11∼13)의 동작은 다음과 같이 두가지로 설명할 수가 있다.
먼저, 3비트 계수기(10)의 출력신호(C2,C1,C0)가 하이(High)('1')일 경우 입력신호 x(t)(입력데이타열 또는 하다마드 함수열)과 순차 지연소자(11e∼13e)의 출력은 가산기(11c,12c,13c)와 스위치(11b,12b,13b)를 거쳐서 출력되고, 또한 입력신호 x(t)와 순차 지연소자의 출력이 감산되어 순차 지연소자에 저장된다.
반면에, 3비트 계수기(10)의 계수기 출력신호(C2,C1,C0)가 로우(Low)('0')일 경우, 입력신호 x(t)(하다마드 함수열)은 순차 지연소자에 차례대로 저장되고, 순차 지연소자에 저장되어 있던(즉, 이전에 감산되어 저장되어 있던) 정보는 차례로 스위치(11b∼13b)를 통해 출력된다.
그 결과로, 최종 가감산부(13)에서 출력된 가감산 동작의 결과는 비교기(50)에 입력된다.
이에 따라, 비교기(50)는 하다마드 함수열의 매 주기마다 최종 가감산부(13)에서 출력된 데이타들의 값을 비교하여 최대 유사 하다마드 함수열을 검출한다.
그러므로, 최대 유사 하다마드 함수열의 최대값이 검출된 위치는 하다마드 행렬식의 계수와 일치하게 되는 것이다.
이와 같이 가감산기를 이용한 하다마드 변환기를 구현할 경우 가감산 수에 상응하게 많은 순차 지연소자가 필요하다.
즉, 표 2에 도시된 바와 같이 순차 지연소자(shifter register)의 수를 나타내었다.
[표 2] 가감산기를 이용한 하다마드 변환기에 필요한 순차 지연소자(shifter register)의 수
상기 표 2에 도시된 바와 같이 순차 지연회로의 수는 하다마드 함수열의 크기가 커질수록, 입력 데이타의 비트수가 많을수록 심각한 문제점이 있다.
가감산기를 이용한 하다마드 변환기를 IC로 구현할 때 순차 지연회로가 차지하는 비중이 대략 70-95% 정도이다.
하다마드 변환기를 IC로 구현할 경우 이러한 순차 지연소자가 칩 면적의 대부분을 차지하여 집적도를 높이는데 장애 요인이 되며, 여러개의 변환기를 동시에 구현하는 경우 더욱 심각한 문제점이 있다.
따라서 본 발명은 상기 문제점을 해결하기 위해 메모리 소자를 사용하여 집적도가 높으며 여러개가 동시에 효율적으로 구현될 수 있는 하다마드 변환기를 제공하는데 그 목적이 있다.
상기 목적을 달성하기 위한 본 발명은, 샘플데이타 클럭을 받아 복수의 가감산 수단과 메모리 소자 번지 발생수단에 계수신호를 출력하는 카운팅 수단과, 상기 카운팅 수단으로부터 출력된 계수신호에 따라 입력신호와 메모리 수단으로부터 읽은 데이타를 가산 및 감산한 결과를 메모리 수단에 기록하는 복수의 가감산 수단과, 상기 샘플데이타클럭과 카운팅 수단으로부터 출력된 계수신호에 따라 메모리 수단에 데이타를 기록 및 상기 메모리 수단으로부터 데이타를 읽기 위한 메모리 번지를 발생하는 메모리 소자 번지 발생수단과, 상기 복수의 가감산수단에 각각 입력되는 데이타 또는 상기 복수의 가감산수단에서 감산되어 출력된 각각의 데이타가 상기 메모리 소자 번지 발생수단에서 발생된 메모리 번지에 저장되는 메모리 수단과, 그리고 하다마드 함수열의 매 주기마다 최종의 상기 가감산수단의 출력값들을 비교하여 최대유사(maximum likelihood) 하다마드 함수열을 검출하는 비교수단으로 구성되어 디지탈 통신시 송신단에서 하다마드 함수열로 변조된 신호를 수신단에서 복조하는데 있어서 회로구조가 간단한 특징이 있다.
또 다른 특징은, 하나의 메모리 소자를 사용하여 동시에 여러개의 변환기를 효율적으로 구현할 수가 있는 것이다.
이하, 첨부된 도면을 참조하여 본 발명에 대해서 상세히 설명한다. 제2A도는 메모리 소자를 이용한 하다마드 변환기의 구현 예시도이다. 하다마드 변환기의 구성은, 제2A도에 도시된 바와 같이, 8진 계수기로서 샘플데이타 클럭을 받아 제1 내지 제3가감산부(20,30,40)와 메모리 소자 번지 발생기(70)에 계수기 출력신호 C0,C1,C2를 출력하는 3비트 계수기(10)와, 상기 3비트 계수기(10)의 출력신호에 따라 입력신호 x(t)(2의 보수 데이타로서, 하다마드 함수열)와 메모리 소자(60)(RAM)로부터 읽은 데이타를 가산 및 감산한 결과를 메모리 소자(60)에 기록하는 제1 내지 제3가감산부(20,30,40)와, 상기 샘플데이타 클럭과 3비트 계수기(10)으로부터 출력된 계수신호에 따라 메모리 소자(60)에 데이타를 기록하고 상기 메모리 소자(60)에서 데이타를 읽기 위한 메모리 번지를 발생하는 메모리 소자 번지 발생기(70)와, 상기 제1 내지 제3가감산부(20,30,40)에 각각 입력되는 데이타(즉, 입력신호 x(t), a(t), b(t)) 또는 상기 제1 내지 제3가감산부(20,30,40)에서 감산되어 출력된 각각의 데이타가 상기 메모리 소자 번지 발생기(70)에서 발생된 메모리 번지에 저장되는 메모리 소자(60)와, 그리고 하다마드 함수열의 매 주기마다 최종의 상기 제3가감산부(40)의 출력의 값들을 비교하여 최대 유사(maximum likelihood) 하다마드 함수열을 검출하는 비교기(50)로 구성되어 있다.
또한, 상기에서 3비트 계수기(10)는 8진 계수기이며, 샘플데이타 클럭을 받아 출력 C0,C1,C2 신호를 출력하는 동작에는 제8도의 C0,C1,C2에 예시되어 있다.
또한, 본 발명의 예에서 이용되는 메모리 소자(60)의 크기는 후술할 표 3의 H8과 같다.
그리고, 상기에서 가감산부들의 각 내부 구성은, 제2B도에 도시된 바와 같이, 상기 3비트 계수기(10)의 출력신호에 따라 입력되는 데이타 또는 감산된 출력 데이타를 선택적으로 상기 메모리 소자(60)에 기록하는 제1스위치(81)와, 상기 3비트 계수기(10)으로부터 출력된 계수신호에 따라 상기 메모리 소자(60)에서 읽은 데이타 또는 상기 메모리 소자(60)에서 읽은 데이타와 입력되는 데이타가 가산된 출력 데이타를 선택적으로 나눗셈기(85)에 출력하는 제2스위치(84)와, 입력되는 데이타와 상기 메모리 소자(60)에서 읽은 데이타를 가산하여 상기 제2스위치(84)에 출력하는 가산기(82)와, 상기 메모리 소자(60)에서 읽은 데이타에서 입력되는 데이타를 가산하여 상기 제1스위치(81)에 출력하는 감산기(83)와, 디지탈 신호처리의 유효 데이타의 자릿수를 맞추기 위해 상기 제2스위치(84)로부터 출력된 값을 나누는 나눗셈기(85)로 구성된 것이다.
이와 같은 구성에서 제1 및 제2스위치(81)는 계수기 출력신호에 따라 신호의 흐름을 바꾸기 위한 멀티플렉서(Mux)를 사용할 수가 있다.
또한, 상기 나눗셈기(Devider)(85)는 디지탈 신호처리의 유효데이타의 자릿수를 맞추기 위해 우측으로 2비트 쉬프트하고, 이때 자릿수의 제한이 없으면 자릿수를 맞추는 동작은 생략될 수 있다.
제3도는 메모리 소자의 번지 할당을 나타낸 도면이다.
일반적으로, 메모리 소자의 번지 할당은 가감산부의 구성방법과 메모리 번지 발생의 용이성을 감안하여 이루어진다.
메모리 소자 번지 발생기(70)의 번지 상태 이동은 제4도에 도시된 바와 같이, 제1가감산부(20)에 대해 할당된 번지가 0번지→1번지→2번지→3번지→0번지순으로 이동되고, 제5도에 도시된 바와 같이 제2가감산부(30)에 대해 할당된 번지가 4번지→5번지→4번지순으로 이동되며, 제6도에 도시된 바와 같이 제3가감산부(40)에 대해 할당된 번지가 6번지→6번지순으로 이동된다.
이와 같은 번지 상태이동은 샘플데이타 클럭과 3비트 계수기(10)의 출력(C0,C1,C2)을 사용하여 쉽게 만들 수 있고, 본 발명의 다른 실시예에서는 샘플데이타 클럭과 1/N 샘플데이타 클럭의 주기를 사용하여 쉽게 만들 수 있다.
이와 같은 구성에 따라 본 발명의 일 실시예에 대한 동작을 설명하면 다음과 같다.
제7도는 샘플데이타 클럭 구간동안 메모리 소자(60)의 동작 상태를 나타내는 도면이다.
메모리 소자 번지 발생기(70)는 상기 메모리 소자(60)의 동작에 맞는 번지를 제공하도록 구성되었다.
제7도에 도시된 바와 같이, 1샘플데이타 클럭 구간동안 메모리 소자(60)는 제1가감산부(20)를 위한 한번의 읽기와 쓰기를 0번지, 1번지, 2번지, 3번지에 대해 순차적으로 수행하고, 제2가감산부(30)를 위한 한번의 읽기와 쓰기를 4번지, 5번지에 대해 순차적으로 수행하며, 제3가감산부(40)를 위한 한번의 읽기와 쓰기를 6번지에 대해 수행한다.
또한, 샘플데이타 클럭 구간 동안에 메모리 소자(60)는 식(7)에 나타낸 바와 같은 가감산부의 수에 상응하게 읽기와 쓰기 동작을 수행한다.
그리고, 메모리 소자 번지 발생기(70)는 가감산부에 필요한 메모리 소자의 번지 할당에 따라서 상기 제4도, 제5도 및 제6도와 같은 번지 상태 이동을 한다.
이에 따라, 메모리 소자(60)는 가감산부의 수에 상응하게 읽기와 쓰기 동작을 수행하게 된다.
제8도는 상기 제2A도에서의 각 부분의 파형을 나타낸 것이다.
제8도에서 x(t)는 제2도의 입력신호를 시간함수(t)를 갖고 표현한 것이며, 시간함수(t)가 작을수록 먼저 들어온 신호이다.
이 경우 입력된 데이타의 순서는 x(0), x(1), x(2), … , x(15)이다.
제8도에서 a(t)는 제2도의 제1가감산부(20)의 출력을 시간함수(t)를 갖고 표현한 것이며, 시간함수(t)가 작을수록 시간적으로 빠르다.
3비트 계수기(10)의 계수기 출력신호 C(2)가 '0'인 4클럭 구간 동안 입력은 제4도의 번지 상태 이동도와 같은 '모듈로 4'번지 발생에 따라 메모리 소자(60)에 일정시간 동안 순차적으로 저장되고, 메모리 소자에 저장되어 있던 데이타 d(0), d(1), d(2), d(3)가 출력된다.
상기 데이타 d(0), d(1), d(3)은 x(0) 이전 신호에 대한 감산기(83)의 출력이 제1스위치(81)에 의해 선택되어 메모리 소자(60)에 일정 시간동안 저장되어 있다가 제2스위치(84)에 선택된 후 나눗셈기(85)를 통해 출력되는 값이다.
또한, C(2)가 "1"인 4클럭 구간 동안 입력과 메모리 소자(60)에서 읽은 데이타가 가산기(82)를 통해 가산된 후 그 가산된 결과는 제2스위치(84)에 의해 선택되어 나눗셈기(85)를 통해 a(t)로 출력된다.
이와 동시에, 메모리 소자(60)에서 읽은 데이타는 감산기(83)를 통해 입력과 감산되어 메모리 소자(60)에 일정시간 동안 순차적으로 저장된 후 다음 C(2)가 "0"인 구간에서 a(t)로 출력된다.
이와 같이 출력된 a(t)는 다음의 제2가감산부(30)로 입력된다.
이때, 상기 나눗셈기(85)는 자릿수의 제한이 없을 경우에 생략될 수 있다.
a(t)에서 4샘플 클럭 이후의 출력을 x(t)로 표현하면 다음과 같다.
a(0)=x(0)+x(4)
a(1)=x(1)+x(5)
a(2)=x(2)+x(6)
a(3)=x(3)+x(7)
a(4)=x(0)-x(4)
a(5)=x(1)-x(5)
a(6)=x(2)-x(6)
a(7)=x(3)-x(7)
a'(0)=x(8)+x(12)
a'(1)=x(9)+x(13)
a'(2)=x(10)+x(14)
a'(3)=x(11)+x(15)
제8도에서 b(t)는 상기 제2A도에 도시된 제2가감산부(30)의 출력을 시간함수(t)를 갖고 표현한 것이며, 시간함수(t)가 작을수록 시간적으로 빠르다.
3비트 계수기(10)의 계수기 출력신호 C(1)가 '0'인 2클럭 구간 동안 입력은 제5도의 번지 상태 이동도와 같은 '모듈로 2'번지 발생에 따라서 메모리 소자(60)에 일정시간 동안 순차적으로 저장되고, 메모리 소자에 저장되어 있던 데이타 d(4), d(5)가 출력된다.
이 데이타 d(4), d(5)는 x(0) 이전 신호에 대한 감산기(83)의 출력이 제1스위치(81)에 의해 선택되어 메모리 소자(60)에 일정시간 동안 저장되어 있다가 제2스위치(84)와 나눗셈기(85)를 통해 출력되는 값이다.
한편, C(1)가 '1'인 2클럭 구간 동안 입력과 메모리 소자(60)의 출력이 가산기(82)에 의해 가산되고, 그 가산된 결과는 제2스위치(84)에 의해 선택되어 나눗셈기(85)를 통해 b(t)로 출력된다.
이와 동시에, 메모리 소자(60)의 출력은 입력과 감산되어 메모리 소자(60)에 일정시간 동안 순차적으로 저장된 후 다음 C(1)가 '0'인 구간에서 감산된 결과의 b(t)를 나눗셈기(85)를 통해 출력한다.
이와 같이 출력된 b(t)는 제3가감산부(40)로 입력된다.
상기에서, 나눗셈기(85)는 자릿수의 제한이 없을 경우 생략될 수 있다.
이에 따라, b(t)에서 6샘플 클럭 이후의 출력을 x(0)으로 표현하면 다음과 같다.
b(0)=a(0)+a(2)=x(0)+x(4)+x(2)+x(6)
b(1)=a(1)+a(3)=x(1)+x(5)+x(3)+x(7)
b(2)=a(0)-a(2)=x(0)+x(4)-x(2)-x(6)
b(3)=a(1)-a(3)=x(1)+x(5)-x(3)-x(7)
b(4)=a(4)+a(6)=x(0)-x(4)+x(2)-x(6)
b(5)=a(5)+a(7)=x(1)-x(5)+x(3)-x(7)
b(6)=a(4)-a(6)=x(0)-x(4)-x(2)+x(6)
b(7)=a(5)-a(7)=x(1)-x(5)-x(3)+x(7)
b'(0)=a'(0)+a'(2)=x(8)+x(12)+x(10)+x(14)
b'(1)=a'(1)+a'(3)=x(9)+x(13)+x(11)+x(15)
제8도에서 y(t)는 제2A도에 도시된 바와 같이 제3가감산부(40)의 출력을 시간함수(t)를 갖고 표현한 것이며, 시간함수(t)가 작을수록 시간적으로 빠르다.
3비트 계수기(10)의 계수기 출력신호 C(0)가 '0'인 1클럭 구간 동안 입력은 제6도의 번지 상태 이동도와 같은 '모듈로 1'번지 발생에 따라서 메모리 소자(60)에 일정시간 동안 순차적으로 저장되고, 메모리 소자(60)에 저장되어 있던 데이타 d(6)가 출력된다.
이 데이타 d(6)은 x(0) 이전 신호에 대한 감산기(83)의 출력이 메모리 소자(60)에 일정시간 동안 저장되어 있다가 제2스위치(84)와 나눗셈기(85)를 통해 출력되는 값이다.
한편, C(0)가 '1'인 1클럭 구간동안 입력과 메모리 소자(60)의 출력이 가산기(83)에 의해 가산되고, 그 가산된 결과는 제2스위치(84)에 의해 선택되어 나눗셈기(85)를 통해 y(t)로 출력된다.
이와 동시에, 메모리 소자(60)의 출력은 입력과 감산기(83)에 의해 감산되고, 그 감산된 결과는 제1스위치(81)에 의해 선택되어 메모리 소자(60)에 일정시간 동안 순차적으로 저장된 후 다음 C(0)가 '0'인 구간에서 제2스위치(84)와 나눗셈기(85)를 통해 y(t)로 출력된다.
이와 같이 출력된 y(t)는 비교기(50)로 입력된다.
y(t)에서 7샘플 클럭 이후의 출력을 x(t)로 표현하면 다음과 같다.
y(0)=b(0)+b(1)
=x(0)+x(1)+x(2)+x(3)+x(4)+x(5)+x(6)+x(7)
y(1)=b(0)-b(1)
=x(0)-x(1)+x(2)-x(3)+x(4)-x(5)+x(6)-x(7)
y(2)=b(2)+b(3)
=x(0)+x(1)-x(2)-x(3)+x(4)+x(5)-x(6)-x(7)
y(3)=b(2)-b(3)
=x(0)-x(1)-x(2)+x(3)+x(4)-x(5)-x(6)+x(7)
y(4)=b(4)+b(5)
=x(0)+x(1)+x(2)+x(3)-x(4)-x(5)-x(6)-x(7)
y(5)=b(4)-b(5)
=x(0)-x(1)+x(2)-x(3)-x(4)+x(5)-x(6)+x(7)
y(6)=b(6)+b(7)
=x(0)+x(1)-x(2)-x(3)-x(4)-x(5)+x(6)+x(7)
y(7)=b(6)-b(7)
=x(0)-x(1)-x(2)+x(3)-x(4)+x(5)+x(6)-x(7)
y'(0)=b'(0)+b'(1)
=x(8)+x(9)+x(10)+x(11)+x(12)+x(13)+x(14)+x(15)
y'(1)=b'(0)-b'(1)
=x(8)-x(9)+x(10)-x(11)+x(12)-x(13)+x(14)-x(15)
y(t)의 출력은 식(5)와 같이 행렬식으로 표현할 수 있다.
식(5)의 중간 부분의 행렬은 식(0)과 일치하며, 식(5)을 하다마드 행렬식으로 표현하면 식(6)과 같다.
식(5), 식(6)으로부터 제2도의 하다마드 변환기의 동작 상태가 올바름을 알 수 있다.
제2A도에서 비교기(50)는 하다마드 함수열의 매 주기마다 상기 제3가감산부(50)로부터 출력된 y(t)의 값을 비교하여 최대 유사(maximum likelihood) 하다마드 함수열을 검출하는 기능을 수행하며, 최대값이 검출된 위치가 바로 하다마드 행렬식의 계수와 일치한다.
제8도에서 비교 구간은 y(0), …, y(7)이며, y(t)을 1클럭 지연시켜서 비교하면 최대값이 검출된 위치가 3비트 계수기(10)의 값과 일치하는 하다마드 행렬식의 계수를 얻을 수 있다.
이와 같이 본 발명의 하다마드 변환기의 하다마드 행렬식의 계수의 검출은 하다마드 함수열이 입력된 다음 1 하다마드 함수열 주기 이후이다. 가감산기를 사용한 하다마드 변환기는 하다마드 함수열의 길이에 따라서 가감부의 갯수가 결정되며 필요한 가감산부의 갯수는 식(7)과 같다.
하다마드 함수열의 길이=2N(N:필요한 가감산부의 갯수)……………(7)
메모리 소자를 이용한 하드마드 변환기에서 필요한 메모리 소자의 크기를 표 3에 나타내었다.
[표 3] 메모리 소자를 이용한 하다마드 변환기에 필요한 메모리 소자의 크기
상기 표 3에 나타낸 바와 같이, 필요한 메모리 소자의 크기는 함수열의 크기에 비례한다.
한편, 하다마드 함수열을 사용한 디지탈 통신의 경우, 송신단에서 하다마드 함수열로 변조된 신호를 수신단에서 복조하기 위하여 여러개의 하다마드 변환기가 필요할 경우가 있다.
따라서, 여러개의 하다마드 변환기가 동시에 필요한 경우, 하나의 메모리를 사용하여 여러개의 하다마드 변환기를 구현하는 경우는 본 발명의 다른 실시예인 제9A도에서 나타낸다.
제9A도는 함수열의 길이가 8인 (H8)하다마드 변환기 4개를 구현한 예이다.
제9A도에서의 제1 내지 제4변환기(110∼140)는 각각 제9B도 및 제9C도에 도시된 바와 같은 내부 구성을 갖기 때문에 상기 제2A도 및 제2B도에서 설명한 구성 및 동작과 동일하다.
이와 같은 본 발명의 다른 실시예의 구성은 샘플데이타 클럭을 받아 복수의 가감산부(20,30,40)와 메모리 소자 번지 발생기(70)에 입력되는 신호를 출력하는 3비트 계수기(10)와, 상기 3비트 계수기(10)의 출력 신호(C1,C1,C0)에 따라 입력신호와 메모리 소자(RAM)(60)로부터 읽은 데이타를 가산 및 감산하여 각각 출력하는 복수의 가감산부와, 및 하다마드 함수열의 매 주기마다 최종 가감산부(40)의 출력값들을 비교하여 최대유사(maximum likelihood) 하다마드 함수열을 검출하는 비교기(50)로 구성되는 다수의 변환기(110,120,130,140)와; 다수의 입력데이타 또는 상기 복수의 가감산부(20,30,40)에서 감산되어 출력된 각각의 데이타를 저장하기 위한 하나의 메모리 소자(60)와, 그리고 상기 샘플데이타 클럭과 상기 메모리 소자(60)에 따라 가변적인 1/N 샘플데이타 클럭에 따라 상기 메모리 소자(60)에 데이타를 기록하고 그리고 상기 메모리 소자로부터 데이타를 읽기 위한 메모리 번지를 발생하는 메모리 소자 번지 발생기(70)로 구성된 것이다.
상기 메모리 소자(60)는 함수열의 길이가 8인 하다마드 제1 내지 제4변환기(110∼140)에 필요한 저장영역을 갖고 있으며, 하나의 샘플데이타 클럭 구간 동안 12번 즉, 변환기 하나당 3번의 읽기와 쓰기가 행해진다.
즉, 하나의 샘플데이타 클럭 구간동안 메모리 동작은 12번의 읽기와 12번의 쓰기가 일어난다.
그리고, 상기 메모리 소자 번지 발생기(70)에서 사용한 클럭(1/N 샘플데이타 클럭 주기)에서 'N'은 사용하는 메모리 소자에 따라 가변적일 수 있는 숫자이며, 필요한 충분한 메모리 동작을 수행할 수 있는 주파수의 클럭을 의미한다.
이에 따라, 제1변환기(110)는 하나의 샘플데이타 클럭 구간 동안에 메모리 소자(60)에 대한 3번의 쓰기와 읽기 동작을 수행하고, 이와 동일한 방법으로 제2,3,4변환기(120,130,140)는 메모리 소자(60)에 대한 3번의 읽기와 쓰기 동작을 수행한다.
즉, 메모리 소자(60)의 동작은 상기 제2A도의 동작을 4번 겹친 동작이다.
이때, 상기 변환기들(110∼140)내에 각각의 제1가감산부(20)는 각각 한번씩의 읽기와 쓰기 동작을 순서대로 수행하고, 그 다음 제2가감산부(30), 제3가감산부(40)에 대하여서도 마찬가지로 한번의 읽기와 쓰기 동작을 수행한다.
그리고, 제9C도는 상기 제1 내지 제3가감산부(20,30,40)에 대한 내부 구성으로서, 상기 제2B도에서 설명한 바와 같은 동일한 구성 및 동작을 수행하므로 그에 대한 상세 설명은 생략한다.
상기와 같이 구성되는 본 발명에 의해 하다마드 변환기를 IC로 구현할 경우 구조가 간단하여 칩면적과 소비전력을 줄일 수 있는 효과가 있다.
또한, 하나의 집적도가 높은 메모리 셀을 사용하여 동시에 여러개의 하다마드 변환기를 효율적으로 구현할 수 있다.
이와 같은 하다마드 변환기 구현의 용이성은 하다마드 함수열을 사용하는 시스템 설계의 폭을 넓히고 성능을 개선한다.
Claims (15)
- 하다마드 함수열을 사용한 디지탈 신호처리기에서 송신측에서 하다마드 함수열로 변환된 전송신호를 수신단에서 전송된 원래 신호로 복원하기 위한 하다마드 변환기에 있어서, 샘플데이타 클럭을 받아 복수의 가감산 수단과 메모리 소자 번지 발생수단에 계수신호를 출력하는 카운팅 수단과, 상기 카운팅 수단으로부터 출력된 계수신호에 따라 입력신호와 메모리 수단에서 읽은 데이타를 가산 및 감산한 결과를 메모리 수단에 기록하는 복수의 가감산 수단과, 상기 샘플데이타 클럭과 카운팅 수단으로부터 출력된 계수신호에 따라 메모리 수단에 데이타를 기록 및 상기 메모리 수단에서 데이타를 읽기 위한 메모리 번지를 발생하는 메모리 소자 번지 발생수단과, 상기 복수의 가감산 수단에 각각 입력되는 데이타 또는 상기 복수의 가감산 수단에서 감산되어 출력된 각각의 데이타가 상기 메모리 소자 번지 발생수단에서 발생된 메모리 번지에 저장되는 메모리 수단과, 그리고 하다마드 함수열의 매 주기마다 최종의 상기 가감산 수단의 출력값들을 비교하여 최대유사(maximum likelihood) 하다마드 함수열을 검출하는 비교수단으로 구성된 메모리 소자를 이용한 하다마드 변환기.
- 제1항에 있어서, 상기 복수의 가감산 수단은 상기 카운팅 수단으로부터 출력된 계수신호에 따라 입력되는 데이타 또는 감산된 출력 데이타를 선택적으로 상기 메모리 수단에 기록하는 제1스위칭부; 상기 카운팅 수단으로부터 출력된 계수신호에 따라 상기 메모리 수단에서 읽은 데이타 또는 상기 메모리 수단에서 읽은 데이타와 입력되는 데이타가 가산된 출력 데이타를 선택적으로 나눗셈부에 출력하는 제2스위칭부와; 입력되는 데이타와 상기 메모리 수단으로부터 읽은 데이타를 가산하여 상기 제2스위칭부에 출력하는 가산부와; 상기 메모리 수단에서 읽은 데이타에서 입력되는 데이타를 감산하여 상기 제1스위칭부에 출력하는 감산부와; 디지탈 신호처리시 유효 데이타의 자릿수를 맞추기 위해 상기 제2스위칭부로부터 출력된 값을 나누는 나눗셈부로 각각 구성되는 것을 특징으로 하는 메모리 소자를 이용한 하다마드 변환기.
- 하다마드 함수열을 사용한 디지탈 신호처리기에서 송신측에서 하다마드 함수열로 변환된 전송신호를 수신단에서 전송된 원래 신호로 복원하기 위한 하다마드 변환기에 있어서, 샘플데이타 클럭을 받아 복수의 가감산 수단과 메모리 소자 번지 발생수단에 계수신호를 출력하는 카운팅 수단과, 상기 카운팅 수단으로부터 출력된 계수신호에 따라 입력신호와 메모리 수단에서 읽은 데이타를 가산 및 감산한 결과를 메모리 수단에 기록하는 복수의 가감산 수단과, 하다마드 함수열의 매 주기마다 최종의 상기 복수의 가감산 수단의 출력값들을 비교하여 최대유사(maximum likelihood) 하다마드 함수열을 검출하는 비교수단으로 구성되는 다수의 변환수단과; 다수의 입력데이타 또는 상기 복수의 가감산 수단에서 감산되어 출력된 각각의 데이타를 저장하기 위한 하나의 메모리 수단과; 그리고 샘플데이타 클럭과 상기 메모리 소자(60)에 따라 가변적인 1/N 샘플데이타 클럭에 따라 상기 메모리 수단에 데이타를 기록하고 상기 메모리 수단에서 데이타를 읽기 위한 메모리 번지를 발생하는 메모리 소자 번지 발생수단으로 구성된 메모리 소자를 이용한 하다마드 변환기.
- 제1항에 있어서, 상기 비교수단은 상기 복수의 가감산 수단으로부터의 출력들을 소정 클럭 지연시켜 비교하는 것을 특징으로 하는 메모리 소자를 이용한 하다마드 변환기.
- 제1항에 있어서, 상기 메모리 수단은 상기 복수의 가감산 수단으로부터 각각 출력된 데이타가 소정 시간동안 메모리 수단에 할당된 번지에 순차적으로 저장되는 것을 특징으로 하는 메모리 소자를 이용한 하다마드 변환기.
- 제1항에 있어서, 상기 메모리 수단은 상기 복수의 가감산 수단의 수에 상응하게 읽기와 쓰기를 수행하는 것을 특징으로 하는 메모리 소자를 이용한 하다마드 변환기.
- 제1항에 있어서, 상기 메모리 수단은 상기 복수의 가감산 수단의 각각에 상응한 메모리 번지가 상기 메모리 소자 번지 발생수단에 의해서 할당되는 것을 특징으로 하는 메모리 소자를 이용한 하다마드 변환기.
- 제1항에 있어서, 상기 메모리 수단의 크기는 입력되는 하다마드 함수열의 크기에 비례하는 것을 특징으로 하는 메모리 소자를 이용한 하다마드 변환기.
- 제3항에 있어서, 상기 복수의 가감산 수단은 상기 카운팅 수단으로부터 출력된 계수신호에 따라 입력되는 데이타 또는 감산된 출력 데이타를 선택적으로 상기 메모리 수단에 기록하는 제1스위칭부; 상기 카운팅 수단의 출력신호에 따라 상기 메모리 수단에서 읽은 데이타 또는 상기 메모리 수단에서 읽은 데이타와 입력되는 데이타가 가산된 출력 데이타를 선택적으로 나눗셈부에 출력하는 제2스위칭부와; 입력되는 데이타와 상기 메모리 수단에서 읽은 데이타를 가산하여 상기 제2스위칭부에 출력하는 가산부와; 상기 메모리 수단에서 읽은 데이타에서 입력되는 데이타를 감산하여 상기 제1스위칭부에 출력하는 감산부와; 디지탈 신호처리시 유효 데이타의 자릿수를 맞추기 위해 상기 제2스위칭부로부터 출력된 값을 나누는 나눗셈부로 각각 구성되는 것을 특징으로 하는 메모리 소자를 이용한 하다마드 변환기.
- 제3항에 있어서, 상기 비교수단은 상기 가감산 수단의 출력을 소정 클럭 지연시켜 비교하는 것을 특징으로 하는 메모리 소자를 이용한 하다마드 변환기.
- 제3항에 있어서, 상기 메모리 수단은 상기 복수의 가감산 수단으로부터 각각 출력된 데이타가 소정 클럭 구간동안 메모리 수단에 할당된 번지에 순차적으로 저장되는 것을 특징으로 하는 메모리 소자를 이용한 하다마드 변환기.
- 제3항에 있어서, 상기 메모리 수단은 상기 복수의 가감산 수단의 수에 상응하게 읽기와 쓰기를 수행하는 것을 특징으로 하는 메모리 소자를 이용한 하다마드 변환기.
- 제3항에 있어서, 상기 메모리 수단은 상기 복수의 가감산 수단의 각각에 상응한 메모리 번지가 상기 메모리 소자 번지 발생수단에 의해서 할당되는 것을 특징으로 하는 메모리 소자를 이용한 하다마드 변환기.
- 제3항에 있어서, 상기 메모리 수단의 크기는 입력되는 하다마드 함수열의 크기에 비례하는 것을 특징으로 하는 메모리 소자를 이용한 하다마드 변환기.
- 제3항에 있어서, 상기 메모리 수단은 읽기와 쓰기가 가능한 램(RAM)으로 구성된 것을 특징으로 하는 메모리 소자를 이용한 하다마드 변환기.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019940030896A KR970011794B1 (ko) | 1994-11-23 | 1994-11-23 | 메모리 소자를 이용한 하다마드 변환기 |
US08/557,275 US5726925A (en) | 1994-11-23 | 1995-11-14 | Hadamard transformer using memory cell |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019940030896A KR970011794B1 (ko) | 1994-11-23 | 1994-11-23 | 메모리 소자를 이용한 하다마드 변환기 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR960020187A KR960020187A (ko) | 1996-06-17 |
KR970011794B1 true KR970011794B1 (ko) | 1997-07-16 |
Family
ID=19398727
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019940030896A KR970011794B1 (ko) | 1994-11-23 | 1994-11-23 | 메모리 소자를 이용한 하다마드 변환기 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5726925A (ko) |
KR (1) | KR970011794B1 (ko) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5856935A (en) * | 1996-05-08 | 1999-01-05 | Motorola, Inc. | Fast hadamard transform within a code division, multiple access communication system |
US6311202B1 (en) * | 1999-03-12 | 2001-10-30 | Lucent Technologies Inc. | Hardware efficient fast hadamard transform engine |
US6615163B1 (en) * | 1999-12-13 | 2003-09-02 | Dell Usa, L.P. | System and method for developing testing configurations |
JP3716695B2 (ja) * | 1999-12-24 | 2005-11-16 | 日本電気株式会社 | 高速アダマール変換器 |
US6304196B1 (en) * | 2000-10-19 | 2001-10-16 | Integrated Device Technology, Inc. | Disparity and transition density control system and method |
US7003536B2 (en) * | 2002-08-15 | 2006-02-21 | Comsys Communications & Signal Processing Ltd. | Reduced complexity fast hadamard transform |
US6996163B2 (en) * | 2003-03-27 | 2006-02-07 | Arraycomm, Inc. | Walsh-Hadamard decoder |
US8219782B2 (en) * | 2008-09-18 | 2012-07-10 | Xilinx, Inc. | Address generation |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3859515A (en) * | 1972-08-21 | 1975-01-07 | Burroughs Corp | Method and apparatus for signal spectrum analysis by hadamard transform |
US3795864A (en) * | 1972-12-21 | 1974-03-05 | Western Electric Co | Methods and apparatus for generating walsh functions |
-
1994
- 1994-11-23 KR KR1019940030896A patent/KR970011794B1/ko not_active IP Right Cessation
-
1995
- 1995-11-14 US US08/557,275 patent/US5726925A/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
KR960020187A (ko) | 1996-06-17 |
US5726925A (en) | 1998-03-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU647343B2 (en) | Novel spread spectrum codec apparatus and method | |
JP3884115B2 (ja) | デジタルマッチドフィルタ | |
KR100383266B1 (ko) | Cdma모뎀용멀티채널디지털필터및그필터링방법(명칭정정) | |
RU2150141C1 (ru) | Способ, устройство и схема для осуществления преобразования адамара | |
JP3399420B2 (ja) | 固定パターン検出装置 | |
KR100229042B1 (ko) | 하드웨어소모 감소 및 탐색성능이 향상된 레이크 수신기 | |
EP0428046A2 (en) | Data transmission methods and apparatus, data processing apparatus and a neural network | |
KR970011794B1 (ko) | 메모리 소자를 이용한 하다마드 변환기 | |
US4207435A (en) | Channel translators for use in time division digital exchangers | |
JP3722844B2 (ja) | デジタルマッチトフィルタ | |
KR100301887B1 (ko) | 위상변조신호로부터위상차를검출하는지연검파장치 | |
JP3296341B2 (ja) | 相関器 | |
JP2853784B2 (ja) | 符号・復号化装置 | |
US7830949B2 (en) | Cross correlation circuits and methods | |
US4241410A (en) | Binary number generation | |
US7200629B2 (en) | Apparatus and method for Fast Hadamard Transforms | |
JP3703083B2 (ja) | 波形発生装置 | |
US6888904B2 (en) | 108-tap 1:4 interpolation FIR filter for digital mobile telecommunication | |
JP2902380B2 (ja) | 並列相関処理回路 | |
KR0124367B1 (ko) | 디지탈 필터 | |
KR100298127B1 (ko) | 덧셈기만을 사용한 비트 분리 구조의 고속 병렬 디지털 필터 | |
US6680981B1 (en) | π/4 shift QPSK modulator and communication device | |
US20020061057A1 (en) | Digital filter | |
US7061975B2 (en) | Noncyclic digital filter and radio reception apparatus comprising the filter | |
US20020176484A1 (en) | Vector tree correlator for variable spreading rates |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
G160 | Decision to publish patent application | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20081104 Year of fee payment: 12 |
|
LAPS | Lapse due to unpaid annual fee |