KR100846485B1 - Method and apparatus of hadamard transform - Google Patents

Method and apparatus of hadamard transform Download PDF

Info

Publication number
KR100846485B1
KR100846485B1 KR1020020019293A KR20020019293A KR100846485B1 KR 100846485 B1 KR100846485 B1 KR 100846485B1 KR 1020020019293 A KR1020020019293 A KR 1020020019293A KR 20020019293 A KR20020019293 A KR 20020019293A KR 100846485 B1 KR100846485 B1 KR 100846485B1
Authority
KR
South Korea
Prior art keywords
value
initial values
mux
initial
values
Prior art date
Application number
KR1020020019293A
Other languages
Korean (ko)
Other versions
KR20030080590A (en
Inventor
김재홍
최성한
서승범
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020020019293A priority Critical patent/KR100846485B1/en
Publication of KR20030080590A publication Critical patent/KR20030080590A/en
Application granted granted Critical
Publication of KR100846485B1 publication Critical patent/KR100846485B1/en

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
    • G06F17/145Square transforms, e.g. Hadamard, Walsh, Haar, Hough, Slant 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)
  • Complex Calculations (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

본 발명은 하다마드 변환 방법 및 장치에 관한 것이다. 본 발명에 따른 하다마드 변환장치는 임의의 초기 값을 입력받아 저장하는 제1저장부, 상기 초기 값들의 개수에 따라서 반복연산횟수 정보를 발생시키고, 상기 초기 값을 소정 개수의 집합인 연산블록으로 나누어 연산블록정보를 발생시키는 제어부, 상기 연산블록에 속하는 초기 값에 차례로 순서를 붙이고 상기 순서에 따라서 상기 초기 값들을 전반부 및 후반부로 분류하고, 상기 전반부 초기 값들에 상기 후반부 초기 값들을 더하여 전반부의 결과 값을 발생시키고 상기 전반부의 초기 값들에 상기 후반부의 초기 값들을 감하여 후반부의 결과 값들을 발생시켜, 상기 초기 값 전체에 대응되는 결과 값을 발생시키는 연산부, 상기 연산부로부터 결과 값을 제공받아 저장하는 제2저장부 및 상기 제어부로부터 반복연산횟수 정보를 제공받아 연산부에서의 연산횟수가 상기 반복연산횟수보다 작은 경우에는 상기 제2저장부에 저장되어 있는 값을 상기 제1저장부로 이동시켜 저장하는 데이터이동부를 포함하는 것을 특징으로 한다. 본 발명에 따르면 입력 값의 크기에 영향을 받지 않는 하다마드 변환장치를 작은 크기로 구현할 수 있는 효과가 있다. The present invention relates to a Hadamard transformation method and apparatus. The Hadamard converter according to the present invention includes a first storage unit for receiving and storing an arbitrary initial value, and generating repetition count information according to the number of the initial values, and converting the initial values into a predetermined number of arithmetic blocks. A control unit for generating operation block information by dividing, ordering the initial values belonging to the operation block in order, classifying the initial values into the first half and the second half according to the order, and adding the second half initial values to the first half initial values to add the first half result. An operation unit which generates a value and subtracts initial values of the second half from initial values of the first half to generate result values of the second half, and generates a result value corresponding to the entire initial value, and receives and stores the result value from the operation unit. 2, the operation unit receives the repeat operation count information from the storage unit and the control unit If the calculated number is less than the number of iterations is characterized by including a data portion for storing the mobile moves the value stored in the second storage portion the first storage portion. According to the present invention, it is possible to implement a Hadamard converter having a small size, which is not affected by the size of the input value.

Description

하다마드 트랜스폼 방법 및 장치{Method and apparatus of hadamard transform}Hadamard transform method and apparatus {Method and apparatus of hadamard transform}

도 1은 종래의 하다마드 트랜스폼 장치의 동작을 설명하는 도면이다.1 is a view for explaining the operation of the conventional Hadamard transform apparatus.

도 2는 본 발명에 따른 하다마드 트랜스폼 장치의 구성도를 보이고 있다.2 is a block diagram of a Hadamard transform apparatus according to the present invention.

도 3은 위 도 2의 하다마드 트랜스폼 장치를 구현한 바람직한 실시예를 보이고 있다.FIG. 3 illustrates a preferred embodiment of the Hadamard transform device of FIG. 2.

도 4는 본 발명에 따른 하다마드 변환방법의 순서도를 보이고 있다.4 shows a flowchart of a Hadamard transformation method according to the present invention.

본 발명은 하다마드 변환 방법 및 장치에 관한 것이다.The present invention relates to a Hadamard transformation method and apparatus.

UMTS 단말용 모뎀에서 채널의 상태를 알려 주는 TFCI(Transport Format combination Indicator)를 복호하기 위해 IFHT(Inverse Fast Hadamard Transform)가 사용된다.Inverse Fast Hadamard Transform (IFHT) is used to decode a Transport Format Combination Indicator (TFCI) indicating a channel state in a UMTS terminal modem.

종래에 이를 하드웨어로 구현하기 위해서는 도 1에서 보이는 바와 같이 state가 32인 경우 5개의 stage가 필요하며, register가 32X6=192개, 덧셈기와 뺄셈기가 각각 16X5=80개가 필요하다. 이는 하드웨어적으로 많은 면적 또는 크기를 갖는 문제점이 있었다.Conventionally, in order to implement this in hardware, as shown in FIG. 1, five stages are required when the state is 32, and 32x6 = 192 registers and 16x5 = 80 adders and subtractors are required. This has a problem of having a large area or size in hardware.

본 발명이 이루고자 하는 기술적 과제는 소형으로 제작될 수 있도록 하드웨어 구성요소의 개수를 대폭적으로 줄인 하다마드 변환 장치를 제공하는데 있다.An object of the present invention is to provide a Hadamard converter that significantly reduces the number of hardware components to be made compact.

또한 본 발명이 이루고자 하는 다른 기술적 과제는 상기 장치를 통하여 하다마드 변환을 수행하는 방법을 제공하는데 있다.Another object of the present invention is to provide a method for performing Hadamard transformation through the apparatus.

상기 문제점을 해결하기 위한 본 발명에 따른 하다마드 변환장치는 임의의 초기 값을 입력받아 저장하는 제1저장부, 상기 초기 값들의 개수에 따라서 반복연산횟수 정보를 발생시키고, 상기 초기 값을 소정 개수의 집합인 연산블록으로 나누어 연산블록정보를 발생시키는 제어부, 상기 연산블록에 속하는 초기 값에 차례로 순서를 붙이고 상기 순서에 따라서 상기 초기 값들을 전반부 및 후반부로 분류하고, 상기 전반부 초기 값들에 상기 후반부 초기 값들을 더하여 전반부의 결과 값을 발생시키고 상기 전반부의 초기 값들에 상기 후반부의 초기 값들을 감하여 후반부의 결과 값들을 발생시켜, 상기 초기 값 전체에 대응되는 결과 값을 발생시키는 연산부, 상기 연산부로부터 결과 값을 제공받아 저장하는 제2저장부 및 상기 제어부로부터 반복연산횟수 정보를 제공받아 연산부에서의 연산횟수가 상기 반복연산횟수보다 작은 경우에는 상기 제2저장부에 저장되어 있는 값을 상기 제1저장부로 이동시켜 저장하는 데이터이동부를 포함하는 것을 특징으로 한다. The Hadamard converter according to the present invention for solving the above problems is a first storage unit for receiving and storing an arbitrary initial value, generates information on the number of iterations according to the number of the initial value, the predetermined number of the initial value A control unit for generating calculation block information by dividing into operation blocks, which is a set of, ordering the initial values belonging to the operation blocks in order, and classifying the initial values into the first half and the second half according to the order, and initializing the second half to the first half initial values. An operation unit for generating a result value of the first half part by subtracting the initial values of the first part of the first part of the first part of the first part of the first part of the first half part, and generating result values of the second half part, and generating a result value corresponding to the entire initial value; Repeat operation from the second storage unit and the control unit to receive and store When the number of operations in the operation unit is smaller than the iterative operation number by receiving the information, characterized in that it comprises a data moving unit for moving the value stored in the second storage unit to the first storage unit to store.

여기서 상기 연산부는 상기 초기 값을 제공받고 상기 전반부에 속하는 초기 값 중 소정의 값인 제1먹스 값을 출력하는 제1먹스부, 상기 초기 값을 제공받고 상기 후반부에 속하는 초기 값 중 상기 제1먹스부에서 출력하는 값에 대응되는 소정의 값인 제2먹스 값을 출력하는 제2먹스부, 상기 제1먹스 값 과 상기 제2먹스 값을 더한 값과 상기 제1먹스 값에서 제2먹스 값을 뺀 값을 발생시켜 출력하는 가감산부, 상기 제1먹스 값과 상기 제2먹스 값을 더한 값을 상기 제1먹스 값에 대응되는 출력 값으로 출력하는 제1디먹스부 및 상기 제1먹스 값에서 상기 제2먹스 값을 뺀 값을 상기 제2먹스 값에 대응되는 출력 값으로 출력하는 제2디먹스부를 포함하는 것을 특징으로 할 수 있다.Here, the operation unit is provided with the initial value and the first mux unit for outputting a first mux value which is a predetermined value among the initial values belonging to the first half, the first mux unit receiving the initial value and belonging to the second half A second mux for outputting a second mux value corresponding to a value output from the second mux unit, a value obtained by adding the first mux value and the second mux value and subtracting the second mux value from the first mux value A subtractor for generating and outputting a first demultiplexer for outputting a value obtained by adding the first mux value and the second mux value as an output value corresponding to the first mux value and the first mux value in the first mux value; And a second demux unit configured to output a value obtained by subtracting a two mux value as an output value corresponding to the second mux value.

또한 상기 문제점을 해결하기 위한 본 발명에 따른 하다마드 변환방법은 (a) 임의의 초기 값을 입력받아 저장하는 단계, (b) 상기 초기 값들의 개수에 따라서 반복연산횟수 정보를 발생시키고, 상기 초기 값을 소정 개수의 집합인 연산블록으로 나누어 연산블록정보를 발생시키는 단계, (c) 상기 연산블록에 속하는 초기 값에 차례로 순서를 붙이고 상기 순서에 따라서 상기 초기 값들을 전반부 및 후반부로 분류하고, 상기 전반부 초기 값들에 상기 후반부 초기 값들을 더하여 전반부의 결과 값을 발생시키고 상기 전반부의 초기 값들에 상기 후반부의 초기 값들을 감하여 후반부의 결과 값들을 발생시켜, 상기 초기 값 전체에 대응되는 결과 값을 발생시켜 저장하는 단계, (d) 상기 (c) 단계를 수행한 횟수가 상기 (b) 단계의 반복연산횟수보다 작은 경우에는 상기 (c) 단계의 결과 값을 다시 초기 값으로 하여 상기 (c) 단계 수행하는 단계를 포함하는 것을 특징으로 한다.In addition, the Hadamard transformation method according to the present invention for solving the above problems (a) receiving and storing an arbitrary initial value, (b) generating the iteration information information according to the number of the initial value, the initial Generating operation block information by dividing a value into operation blocks that are a predetermined number of sets, (c) assigning an initial value belonging to the operation block in order, and classifying the initial values into a first half and a second half according to the order; Generating the result value of the second half by subtracting the initial values of the second half from the initial values of the first half by adding the first half values to the first half initial values, and generating a result value corresponding to the entire initial value. Storing; (d) if the number of times of performing the step (c) is smaller than the number of repeat operations of the step (b) Characterized in that to the result of the group (c) step back to the initial value includes performing the step (c).

이하에서는 도면을 참조하여 본 발명을 상세히 설명한다. Hereinafter, the present invention will be described in detail with reference to the drawings.                     

도 2는 본 발명에 따른 하다마드 트랜스폼 장치의 구성도를 보이고 있다. 본 발명에 따른 하다마드 변환장치는 제1저장부(201), 연산부(202), 제2저장부(203), 데이터이동부(204) 및 제어부(205)로 구성되어 있으며, 상기 연산부(202)는 제1먹스(MUX)(2021), 제2먹스(2022), 가감산부(2023), 제1디먹스(2024) 및 제2디먹스(2025)로 구성되어 있다.2 is a block diagram of a Hadamard transform apparatus according to the present invention. The Hadamard converter according to the present invention includes a first storage unit 201, a calculation unit 202, a second storage unit 203, a data moving unit 204 and a control unit 205, the calculation unit 202 The first mux 2021, the second mux 2022, the subtractor 2023, the first demux 2024, and the second demux 2025 are configured.

제1저장부(201)는 외부로부터 하다마드 변환을 시킬 값을 입력받아 하다마드 변환의 초기 값을 저장하는 기능을 수행한다.The first storage unit 201 receives a value for the Hadamard transformation from the outside and stores a initial value of the Hadamard transformation.

연산부(202)는 한 스테이지(Stage)의 하다마드 연산을 수행하는 기능을 수행한다. 위 제1먹스(2021)는 위 제1저장부(201)로부터 초기 값들을 제공받아 제1선택신호에 따라서 위 초기 값의 전반부 값들 중 어느 한 값을 출력하되, 초기 값의 전반부 값들 중 인덱스가 가장 작은 초기 값부터 순차적으로 출력한다. 그리고 제2먹스(2022)는 위 제1저장부(201)로부터 초기 값들을 제공받아 제2선택신호에 따라서 위 초기 값의 후반부 값들 중 어느 한 값을 출력하되, 초기 값의 후반부 값들 중 인덱스가 가장 작은 초기 값부터 순차적으로 출력한다. The calculation unit 202 performs a function of performing a Hadamard operation of one stage. The first mux 2021 receives initial values from the first storage unit 201 and outputs any one of the first half values of the initial value according to the first selection signal, and the index among the first half values of the initial value is increased. Print sequentially from the smallest initial value. The second mux 2022 receives initial values from the first storage unit 201 and outputs any one of the latter values of the initial value according to the second selection signal, and the index of the latter values of the initial value is increased. Print sequentially from the smallest initial value.

여기서 초기 값의 전반부 값들이란 초기 값들이 {B}_{n},{B}_{n-1},...{B}_{3},{B}_{2},{B}_{1}인 N개의 메모리에 저장되어 있는 값일 때

Figure 112007083916121-pat00001
까지 의 값들을 말하며, 초기 값의 후반부 값들이란
Figure 112007083916121-pat00002
까지 의 값들을 말한다. Here, the first half values of initial values are {B} _ {n}, {B} _ {n-1}, ... {B} _ {3}, {B} _ {2}, {B } _ {1} is stored in N memory
Figure 112007083916121-pat00001
The values of up to, and the latter values of initial value
Figure 112007083916121-pat00002
The values of up to.

또한 여기서 제1선택신호란 예를 들어 상기 초기 값이 32 개인 경우 선택신호는 총5비트로 구성되어 있으며, b3,b2,b1,b0의 값이 0,0,0,0의 값부터 1,1,1,1의 값까지 순차적으로 변환될 때 1번째 스테이지(stage)에서는 0,b3,b2,b1,b0 의 값으로 동작되고, 2번째 stage에서 b3,0,b2,b1,b0 의 값으로 동작되고, 3번째 stage에서 b3,b2,0,b1,b0 의 값으로 동작되고, 4번째 stage에서 b3,b2,b1,0,b0 의 값으로 동작되며, 마지막으로 5번째 stage에서 b3,b2,b1,b0,0 의 값으로 동작되는 신호를 말한다. 그리고 여기서 제2선택신호란 예를 들어 상기 초기 값이 32 개인 경우 선택신호는 총5비트로 구성되어 있으며, b3,b2,b1,b0의 값이 0,0,0,0의 값부터 1,1,1,1의 값까지 순차적으로 변환될 때 1번째 스테이지(stage)에서는 1,b3,b2,b1,b0 의 값으로 동작되고, 2번째 stage에서 b3,1,b2,b1,b0 의 값으로 동작되고, 3번째 stage에서 b3,b2,1,b1,b0 의 값으로 동작되고, 4번째 stage에서 b3,b2,b1,1,b0 의 값으로 동작되며, 마지막으로 5번째 stage에서 b3,b2,b1,b0,1 의 값으로 동작되는 신호를 말한다.Here, the first selection signal is, for example, when the initial value is 32, the selection signal is composed of a total of 5 bits, and the values of b3, b2, b1, b0 are 0,0,0,0 to 1,1. When sequentially converted to values of, 1,1, it is operated with the values of 0, b3, b2, b1, b0 in the first stage, and with the values of b3,0, b2, b1, b0 in the second stage. Operating in the 3rd stage, b3, b2,0, b1, b0, operating in the 4th stage, b3, b2, b1,0, b0, and finally in the 5th stage, b3, b2 Refers to a signal operated with a value of, b1, b0,0. Here, the second selection signal is, for example, when the initial value is 32, the selection signal is composed of a total of 5 bits, and the values of b3, b2, b1, b0 are 0,0,0,0 to 1,1. When sequentially converted to values of, 1,1, the first stage is operated with the values of 1, b3, b2, b1, b0, and the second stage with the values of b3,1, b2, b1, b0. It is operated with the value of b3, b2,1, b1, b0 in the third stage, It is operated with the value of b3, b2, b1,1, b0 in the fourth stage, and finally b3, b2 in the fifth stage Refers to a signal operated with a value of, b1, b0,1.

가감산부(2023)는 제1먹스(2021) 및 제2먹스(2022)로부터 제공받은 전반부 값과 후반부 값을 합산한 값 및 전반부 값으로부터 후반부 값을 감산한 값을 구하고 이를 출력하는 기능을 수행한다.The adder and subtractor 2023 obtains a value obtained by subtracting the second half value from the first half value and the first half value and the first half value received from the first mux 2021 and the second mux 2022 and outputting the same. .

제1디먹스부(2024)는 위 가감산부(2023)로부터 제공받은 전반부 값과 후반부 값을 합산한 값을 제공받고, 위 제1선택신호에 따라서 하다마드 변환의 결과 값들 중 가장 작은 인덱스를 갖는 전반부 값에 대응하는 결과 값부터 출력하는 기능을 수행한다.The first demux unit 2024 receives the sum of the first half value and the second half value provided from the subtraction subtraction unit 2023 and has the smallest index among the result values of the Hadamard transform according to the first selection signal. Outputs the result value corresponding to the first half value.

제2디먹스부(2024)는 위 가감산부(2023)으로 부터 제공받은 전반부 값으로부터 후반부 값을 감산한 값을 제공받고, 위 제2선택신호에 따라서 하다마드 변환의 결과 값들 중 가장 작은 인덱스를 갖는 후반부 값에 대응하는 결과 값부터 출력하는 기능을 수행한다.The second demux unit 2024 is provided with a value obtained by subtracting the latter half value from the first half value provided by the stomach addition / subtraction unit 2023, and according to the second selection signal, the smallest index among the result values of the Hadamard transform is received. Outputs the result value corresponding to the latter half value.

제2저장부(203)는 제1디먹스부(2024) 및 제2디먹스(2025)로부터 하다마드 변환의 결과 값을 제공받아 저장하는 기능을 수행한다.The second storage unit 203 receives a result value of the Hadamard transformation from the first demux unit 2024 and the second demux 2025 and stores the result.

데이터이동부(204)는 제어부(205)로부터 처음에 하다마드 변환시킬 값을 입력받은 값의 개수에 따라서 계산된 필요한 스테이지 횟수정보를 제공받고, 위 필요한 스테이지 횟수만큼 연산이 이루어졌는지 여부를 판단하여, 필요한 스테이지 횟수만큼 연산이 이루어지지 않은 경우에는 제2저장부(203)의 결과 값을 독출하여 제1저장부(201)에 초기 값으로 저장하는 역할을 수행한다.The data moving unit 204 receives the necessary stage number information calculated according to the number of values received from the control unit 205 for the first value of the Hadamard transform, and determines whether the operation is performed by the required number of stages. If the operation is not performed as many times as the required number of stages, the result value of the second storage unit 203 is read and stored as an initial value in the first storage unit 201.

제어부(206)는 위 제1선택신호 및 제2선택신호를 생성시켜 제1먹스(2021), 제2먹스(2022), 제1디먹스(2024) 및 제2디먹스(2025)에 제공하고, 데이터이동부(204)에 처음에 하다마드 변환시킬 값을 입력받은 값의 개수에 따라서 계산된 필요한 스테이지 횟수정보를 생성시켜 제공하는 기능을 수행한다. 여기서 필요한 스테이지 회수는 N이 입력 값의 비트수일 때

Figure 112002010604221-pat00003
의 값을 의미한다.The controller 206 generates the first selection signal and the second selection signal and provides them to the first mux 2021, the second mux 2022, the first demux 2024, and the second demux 2025. In addition, the data transfer unit 204 performs a function of generating and providing necessary stage number information calculated according to the number of values received for the first Hadamard transform value. The number of stages required here is when N is the number of bits in the input
Figure 112002010604221-pat00003
Means the value of.

도 3은 위 도 2의 하다마드 트랜스폼 장치를 구현한 바람직한 실시예를 보이고 있다. 여기서 위 가감산부(2023)는 버터플라이 유닛을 사용하여 구현되었다.FIG. 3 illustrates a preferred embodiment of the Hadamard transform device of FIG. 2. Here, the addition and subtraction unit 2023 is implemented using a butterfly unit.

도 4는 본 발명에 따른 하다마드 변환방법의 순서도를 보이고 있다. 먼저 하다마드 변환실킬 값을 입력 받아 초기 값으로 설정(401)한다. 그 후에 입력 값의 비트수 에 따라서 수행된 스테이지(Stage)수를 N이 입력 값의 비트수일 때

Figure 112007083916121-pat00004
의 값을 계산하여 구한다(402). 그리고 하다마드 변환을 위한 한 스테이지의 연산을 수행한다(403). 여기서 하다마드 변환을 위한 한번의 스테이지 연산이란 초기 값의 비트들을 동일한 수의 전반부 비트들과 후반부 비트들로 나누어 전반부 비트에 후반부 비트들을 차례대로 일대일 대응시킨 후에 위 전반부 비트의 값에 후반부 비트의 값을 합하여 결과 값의 전반부 비트 값을 결정하고, 전반부 비트의 값에서 후반부 비트의 값을 감산하여 결과 값의 후반부 비트 값을 결정하는 연산을 말한다.4 shows a flowchart of a Hadamard transformation method according to the present invention. First, it receives the Hadamard transform silk value and sets it as an initial value (401). After that, if the number of stages performed according to the number of bits of the input value is N, the number of bits of the input value
Figure 112007083916121-pat00004
The value of is calculated and obtained (402). In operation 403, one stage of operations for the Hadamard transformation is performed. Here, one stage operation for Hadamard transformation is to divide the initial bits into the same number of first half bits and second half bits, and to match the first half bits to the first half bits in order, and then to the value of the second half bits to the value of the first half bits. Calculate the first half bit value of the result value by subtracting the sum, and the second half bit value of the result value by subtracting the second half bit value from the first half bit value.

그 후에 위의 입력 값을 하다마드 변환하는데 필요한 스테이지 횟수 만큼 실제로 연산이 수행되었는지 판단(404)하여, 필요한 횟수만큼 연산이 이루어지지 않은 경우에는 스테이지 연산의 결과 값을 스테이지 연산을 위한 초기 값으로 다시 설정(405)한다. 그러나 위 판단결과 필요한 횟수만큼의 스테이지 연산이 이루어진 경우에는 위 스테이지 연산의 결과 값을 위 입력 값이 하다마드 변환된 값으로 출력(406)한다.Thereafter, it is determined whether the operation is actually performed by the number of stages required for Hadamard conversion of the above input value (404), and if the operation is not performed the required number of times, the result value of the stage operation is reset to the initial value for the stage operation. Set 405. However, if the number of stage operations is performed as required as a result of the determination, the result value of the stage operation is output as a value obtained by converting the input value to Hadamard.

다음의 표 1는 하다마드 변환할 값의 개수가 32개인 경우에 본 발명에 따라서 하다마드 변환하는 과정을 슈도코드(psuedo code)로 작성한 바람직한 실시예이다.Table 1 below shows a preferred embodiment in which a process of converting the Hadamard according to the present invention is performed using a pseudo code when the number of Hadamard transforms is 32.

1 N = 32; // 입력값 개수 2 { S}_{0 } =

Figure 112002010604221-pat00005
= 5; // 필요한 총 스테이지 수 3 { S}_{1 } = 0; // 현재 스테이지 수 4 5 for( { S}_{1 } { S}_{0 } ) { 6 { S}_{1 } = { S}_{1 } + 1; // 현재 스테이지 수 증가시킴 7 { B}_{0 } = { 2}^{({S}_{1}-1)} ; // 현재 스테이지의 연산 블록 수 8 { B}_{1 } = N / { B}_{0 } ;; // 현재 스테이지의 각 연산 블록의 입력 값 최대 9 번호 10 11 j = 0; // 연산을 마친 블록 번호 12 for( j { B}_{0 } ){ 13 j = j + 1; 14 { B}_{2 } =
Figure 112002010604221-pat00006
; ; // 연산을 마친 블록의 마지막 입력 값 15 번호 16 k = { B}_{2 } ; 17 for( k ( { B}_{1 } / 2 + { B}_{2 })){ 18 k = k + 1; 19 Y(k) = X(k) + X(k + { B}_{1 } /2); 20 Y(k + { B}_{1 } /2) = X(k) - X(k + { B}_{1 } /2); 21 } 22 23 } 24 25 }1 N = 32; // number of inputs 2 {S} _ {0} =
Figure 112002010604221-pat00005
= 5; // total number of stages required 3 {S} _ {1} = 0; // number of current stages 4 5 for ({S} _ {1} {S} _ {0}) {6 {S} _ {1} = {S} _ {1} + 1; // increase current stage count 7 {B} _ {0} = {2} ^ {({S} _ {1} -1)}; // number of operation blocks on the current stage 8 {B} _ {1} = N / {B} _ {0} ;; // Maximum input value of each operation block of current stage 9 Number 10 11 j = 0; // block number completed 12 for (j {B} _ {0}) {13 j = j + 1; 14 {B} _ {2} =
Figure 112002010604221-pat00006
; ; // last input value of block after operation 15 number 16 k = {B} _ {2}; 17 for (k ({B} _ {1} / 2 + {B} _ {2})) {18 k = k + 1; 19 Y (k) = X (k) + X (k + {B} _ {1} / 2); 20 Y (k + {B} _ {1} / 2) = X (k) −X (k + {B} _ {1} / 2); 21} 22 23} 24 25}

위 과정을 설명하면 1번줄은 본 실시예에서 하다마드 변환할 값의 개수가 32개임을 나타내고 있으며, 2번줄은 32개 입력 값을 하다마드 변환시키기 위해서 필요한 스테이지 수가 5개임을 나타내고 있으며, 3번줄은 현재 스테이지를 0번으로 설정한 것이다. Referring to the above process, line 1 indicates that the number of Hadamard transforms in this embodiment is 32, and line 2 indicates that the number of stages required for Hadamard conversion of 32 input values is 5, and line 3 Is the current stage set to zero.

그리고 5번줄은 현재 스테이지 수가 마지막 스테이지인지 여부를 확인하는 것이며, 6번줄은 연산을 위해서 현재 스테이지를 새로운 스테이지로 증가시킨 것이다. 그리고 7번줄은 현재 스테이지에서 연산블록의 개수를 계산하는 것으로, 여기서 연산블록의 수는 2의 현재 스테이지수에서 1을 뺀 수의 제곱한 수이다. 즉, 첫 번째 스테이지에서는 연산블록수는 1이 되며, 2번째 스테이지에서는 2가 되고, 3번째 스테이지에서는 4가 된다. Line 5 is to check whether the current stage number is the last stage, and line 6 is to increase the current stage to a new stage for operation. Line 7 is to calculate the number of operation blocks in the current stage, where the number of operation blocks is the square of the current stage number of 2 minus one. That is, the number of arithmetic blocks is 1 in the first stage, 2 in the second stage, and 4 in the third stage.                     

그리고 8번째 줄에서는 현재 스테이지의 각 연산블록들에 포함되는 입력 값들의 개수를 구하고, 11번 줄에서는 연산을 마친 블록의 번호를 설정한 것이며, 12번 줄에서는 현재 연산을 마친 블록번호가 현재 스테이지의 마지막 블록번호보다 작은지 여부를 확인하는 것이며, 13번 줄은 연산을 위해서 연산중인 블록번호를 증가시킨 것이며, 14번 줄에서는 연산을 마친 블록의 마지막 입력 값의 번호를 설정한 것이며, 15번 줄은 연산이 이루어지는 입력 값 번호를 설정한 것이며, 16번 줄은 연산을 마친 입력 값의 번호가 연산중인 블록의 마지막 입력값 번호보다 작은지 여부를 확인하는 것이며, 17번 줄은 연산을 위해서 연산중인 입력 값의 번호를 증가시킨 것이고, 18번 및 19번 줄은 하다마드 변환을 위해서 입력값을 이용하여 출력 값을 구한 것이다. In line 8, the number of input values included in each operation block of the current stage is calculated. In line 11, the number of the block that has been calculated is set. In line 12, the block number of the current operation is the current stage. It is to check whether it is smaller than the last block number of. In line 13, increase the block number being operated for operation, and in line 14, set the number of the last input value of the completed block. The line sets the input value number where the operation is performed.The line 16 is to check whether the number of the input value after the operation is smaller than the last input value number of the block being operated on. The line 17 is the operation for operation. Increasing the number of input values in progress, lines 18 and 19 are the output values using the input values for Hadamard conversion.

한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. Meanwhile, the above-described embodiments of the present invention can be written as a program that can be executed in a computer, and can be implemented in a general-purpose digital computer that operates the program using a computer-readable recording medium.

상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드디스크 등), 광학적 판독 매체(예를 들면, 씨디롬, 디브이디 등) 및 캐리어 웨이브(예를 들면, 인터넷을 통한 전송)와 같은 저장매체를 포함한다.The computer-readable recording medium may be a magnetic storage medium (for example, a ROM, a floppy disk, a hard disk, etc.), an optical reading medium (for example, a CD-ROM, DVD, etc.) and a carrier wave (for example, the Internet). Storage medium).

이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.So far I looked at the center of the preferred embodiment for the present invention. Those skilled in the art will appreciate that the present invention can be implemented in a modified form without departing from the essential features of the present invention. Therefore, the disclosed embodiments should be considered in descriptive sense only and not for purposes of limitation. The scope of the present invention is shown in the claims rather than the foregoing description, and all differences within the scope will be construed as being included in the present invention.

본 발명에 따르면 하다마드 변환장치를 작은 크기로 구현할 수 있는 효과가 있다. 즉, 아무리 큰 비트수의 입력 값을 하다마드 변환하더라도 위 하다마드 변환장치의 크기를 크게할 필요가 없게되는 효과가 있다. According to the present invention, there is an effect that the Hadamard converter can be implemented in a small size. In other words, even if the input value of the large number of bits is converted by Hadamard, it is not necessary to increase the size of the Hadamard converter.

Claims (4)

임의의 초기 값을 입력받아 저장하는 제1저장부;A first storage unit for receiving and storing an arbitrary initial value; 상기 초기 값들의 개수에 따라서 반복연산횟수 정보를 발생시키고, 상기 초기 값을 소정 개수의 집합인 연산블록으로 나누어 연산블록정보를 발생시키는 제어부;A control unit for generating iteration count information according to the number of initial values, and generating operation block information by dividing the initial value into operation blocks that are a predetermined number of sets; 상기 연산블록에 속하는 초기 값에 차례로 순서를 붙이고 상기 순서에 따라서 상기 초기 값들을 전반부 및 후반부로 분류하고, 상기 전반부 초기 값들에 상기 후반부 초기 값들을 더하여 전반부의 결과 값을 발생시키고 상기 전반부의 초기 값들에 상기 후반부의 초기 값들을 감하여 후반부의 결과 값들을 발생시켜, 상기 초기 값 전체에 대응되는 결과 값을 발생시키는 연산부;The initial values belonging to the arithmetic block are sequentially ordered, and the initial values are classified into first half and second half according to the order, and the first half initial values are added to the first half initial values to generate a first half result value and initial values of the first half. An arithmetic unit for generating result values corresponding to the entire initial values by subtracting initial values of the latter half from and generating result values of the latter half; 상기 연산부로부터 결과 값을 제공받아 저장하는 제2저장부; 및A second storage unit receiving and storing a result value from the calculator; And 상기 제어부로부터 반복연산횟수 정보를 제공받아 연산부에서의 연산횟수가 상기 반복연산횟수보다 작은 경우에는 상기 제2저장부에 저장되어 있는 값을 상기 제1저장부로 이동시켜 저장하는 데이터이동부를 포함하고,Receiving the repetition operation number information from the control unit, if the operation number in the operation unit is smaller than the repetition operation number includes a data moving unit for moving the value stored in the second storage unit to the first storage unit, and storing, 상기 전반부 초기 값들 각각은 제1 선택신호에 의해 선택되고, 상기 후반부 초기 값들 각각은 제2 선택신호에 의해 선택되는 것을 특징으로 하는 하다마드 변환장치.And each of the first half initial values is selected by a first selection signal, and each of the second half initial values is selected by a second selection signal. 제1항에 있어서, 상기 연산부는 The method of claim 1, wherein the operation unit 상기 초기 값을 제공받고 상기 전반부에 속하는 초기 값 중 소정의 값인 제1먹스 값을 출력하는 제1먹스부;A first mux unit receiving the initial value and outputting a first mux value that is a predetermined value among initial values belonging to the first half; 상기 초기 값을 제공받고 상기 후반부에 속하는 초기 값 중 상기 제1먹스부에서 출력하는 값에 대응되는 소정의 값인 제2먹스 값을 출력하는 제2먹스부;A second mux unit receiving the initial value and outputting a second mux value corresponding to a value output from the first mux unit among initial values belonging to the second half; 상기 제1먹스 값 과 상기 제2먹스 값을 더한 값과 상기 제1먹스 값에서 제2먹스 값을 뺀 값을 발생시켜 출력하는 가감산부;An addition and subtraction unit for generating and outputting a value obtained by subtracting a second mux value from a value obtained by adding the first mux value and the second mux value and the first mux value; 상기 제1먹스 값과 상기 제2먹스 값을 더한 값을 상기 제1먹스 값에 대응되는 출력 값으로 출력하는 제1디먹스부; 및 A first demux unit configured to output a value obtained by adding the first mux value and the second mux value as an output value corresponding to the first mux value; And 상기 제1먹스 값에서 상기 제2먹스 값을 뺀 값을 상기 제2먹스 값에 대응되는 출력 값으로 출력하는 제2디먹스부를 포함하는 것을 특징으로 하는 하다마드 변환장치.And a second demux unit configured to output a value obtained by subtracting the second mux value from the first mux value as an output value corresponding to the second mux value. (a) 임의의 초기 값을 입력받아 저장하는 단계;(a) receiving and storing an arbitrary initial value; (b) 상기 초기 값들의 개수에 따라서 반복연산횟수 정보를 발생시키고, 상기 초기 값을 소정 개수의 집합인 연산블록으로 나누어 연산블록정보를 발생시키는 단계;(b) generating iteration count information according to the number of initial values, and generating calculation block information by dividing the initial value into a calculation block that is a predetermined number of sets; (c) 상기 연산블록에 속하는 초기 값에 차례로 순서를 붙이고 상기 순서에 따라서 상기 초기 값들을 전반부 및 후반부로 분류하고, 상기 전반부 초기 값들에 상기 후반부 초기 값들을 더하여 전반부의 결과 값을 발생시키고 상기 전반부의 초기 값들에 상기 후반부의 초기 값들을 감하여 후반부의 결과 값들을 발생시켜, 상기 초기 값 전체에 대응되는 결과 값을 발생시켜 저장하는 단계;(c) order the initial values belonging to the operation block in order and classify the initial values into first half and second half according to the order, and add the second half initial values to the first half initial values to generate a result value of the first half and the first half Subtracting initial values of the second half from initial values of the second half to generate second half result values, and generating and storing a result value corresponding to all of the initial values; (d) 상기 (c) 단계를 수행한 횟수가 상기 (b) 단계의 반복연산횟수보다 작은 경우에는 상기 (c) 단계의 결과 값을 다시 초기 값으로 하여 상기 (c) 단계 수행하는 단계를 포함하고,(d) if the number of steps (c) is less than the number of iterations of step (b), performing step (c) with the result value of step (c) as an initial value again; and, 상기 전반부 초기 값들 각각은 제1 선택신호에 의해 선택되고, 상기 후반부 초기 값들 각각은 제2 선택신호에 의해 선택되는 것을 특징으로 하는 하다마드 변환방법.And each of the first half initial values is selected by a first selection signal, and each of the second half initial values is selected by a second selection signal. 제3항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체. A computer-readable recording medium having recorded thereon a program for executing the method of claim 3 on a computer.
KR1020020019293A 2002-04-09 2002-04-09 Method and apparatus of hadamard transform KR100846485B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020020019293A KR100846485B1 (en) 2002-04-09 2002-04-09 Method and apparatus of hadamard transform

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020020019293A KR100846485B1 (en) 2002-04-09 2002-04-09 Method and apparatus of hadamard transform

Publications (2)

Publication Number Publication Date
KR20030080590A KR20030080590A (en) 2003-10-17
KR100846485B1 true KR100846485B1 (en) 2008-07-17

Family

ID=32378329

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020020019293A KR100846485B1 (en) 2002-04-09 2002-04-09 Method and apparatus of hadamard transform

Country Status (1)

Country Link
KR (1) KR100846485B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4791172B2 (en) * 2005-12-20 2011-10-12 三星電子株式会社 FFT operation circuit

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06110917A (en) * 1992-09-28 1994-04-22 Toshiba Corp Vector calculator
KR0155515B1 (en) * 1995-11-04 1998-11-16 양승택 Fast hardmard transformer
US20010007110A1 (en) * 1999-12-24 2001-07-05 Nec Corporation Fast hadamard transform device
JP2003012152A (en) * 2001-07-02 2003-01-15 Nippon Meat Packers Inc Blockage removal air circuit at air conveyor
KR20030034836A (en) * 2001-10-27 2003-05-09 삼성전자주식회사 Apparatus and method for performing fast hadamard transform
US20030169939A1 (en) * 2002-01-04 2003-09-11 Medlock Joel D. Apparatus and method for Fast Hadamard Transforms

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06110917A (en) * 1992-09-28 1994-04-22 Toshiba Corp Vector calculator
KR0155515B1 (en) * 1995-11-04 1998-11-16 양승택 Fast hardmard transformer
US20010007110A1 (en) * 1999-12-24 2001-07-05 Nec Corporation Fast hadamard transform device
KR20010062661A (en) * 1999-12-24 2001-07-07 가네꼬 히사시 Fast hadamard transform device
JP2003012152A (en) * 2001-07-02 2003-01-15 Nippon Meat Packers Inc Blockage removal air circuit at air conveyor
KR20030034836A (en) * 2001-10-27 2003-05-09 삼성전자주식회사 Apparatus and method for performing fast hadamard transform
US20030169939A1 (en) * 2002-01-04 2003-09-11 Medlock Joel D. Apparatus and method for Fast Hadamard Transforms

Also Published As

Publication number Publication date
KR20030080590A (en) 2003-10-17

Similar Documents

Publication Publication Date Title
US10884744B2 (en) System and method of loop vectorization by compressing indices and data elements from iterations based on a control mask
JP2018181313A (en) Information processing method, information processing device and program
KR100498457B1 (en) The improved method of compressing look up table for reducing memory and non-linear function generating apparatus having look up table compressed using the method and the non-linear function generating method
US20150113027A1 (en) Method for determining a logarithmic functional unit
RU2008139887A (en) IMPROVED CODING / DECODING OF DIGITAL SIGNALS, IN PARTICULAR FOR VECTOR QUANTIZATION WITH TRANSFERRED CODES
JP6324264B2 (en) Ternary inner product arithmetic circuit, ternary inner product arithmetic processing program, and arithmetic processing method using ternary inner product arithmetic circuit
KR100846485B1 (en) Method and apparatus of hadamard transform
JP2019211985A (en) Learning program, learning method, and information processing apparatus
CN116166217A (en) System and method for performing floating point operations
CN116382782A (en) Vector operation method, vector operator, electronic device, and storage medium
CN113222158A (en) Quantum state obtaining method and device
JP4011015B2 (en) LUT encoding method, LUT encoding apparatus, and LUT cascade logic circuit
CN115034351A (en) Data processing method, convolutional neural network training method and device and FPGA
JP2001044853A (en) Chain search circuit, error correction device and disk driver
JP4865449B2 (en) Difference generation device, difference application device, difference generation program, difference application program, difference generation application system, and difference generation application method
JP2006191392A (en) Turbo decoder and turbo decoding method
CN112580297B (en) Method for encoding and decoding data, electronic equipment and storage medium
CN114840175B (en) Device and method for realizing remainder operation and operation chip
CN111752912A (en) Data processing method and device
JP7345831B2 (en) Information processing device, information processing method and program
CN115454983B (en) Massive Hbase data deduplication method based on bloom filter
TW201443778A (en) Method and apparatus for code size reduction
US8204923B1 (en) Systems and methods for scaling parameters
CN116560674A (en) Method and device for exporting multi-framework compatible deep learning model to ONNX
US7277906B2 (en) Method for determining an output value having a lowest error value from an input value

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
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