KR100451193B1 - 필터회로 - Google Patents

필터회로 Download PDF

Info

Publication number
KR100451193B1
KR100451193B1 KR10-2002-0035066A KR20020035066A KR100451193B1 KR 100451193 B1 KR100451193 B1 KR 100451193B1 KR 20020035066 A KR20020035066 A KR 20020035066A KR 100451193 B1 KR100451193 B1 KR 100451193B1
Authority
KR
South Korea
Prior art keywords
speed
input data
filter
counter
clock
Prior art date
Application number
KR10-2002-0035066A
Other languages
English (en)
Other versions
KR20040000576A (ko
Inventor
문진섭
김우식
Original Assignee
엘지전자 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엘지전자 주식회사 filed Critical 엘지전자 주식회사
Priority to KR10-2002-0035066A priority Critical patent/KR100451193B1/ko
Publication of KR20040000576A publication Critical patent/KR20040000576A/ko
Application granted granted Critical
Publication of KR100451193B1 publication Critical patent/KR100451193B1/ko

Links

Classifications

    • EFIXED CONSTRUCTIONS
    • E03WATER SUPPLY; SEWERAGE
    • E03CDOMESTIC PLUMBING INSTALLATIONS FOR FRESH WATER OR WASTE WATER; SINKS
    • E03C1/00Domestic plumbing installations for fresh water or waste water; Sinks
    • E03C1/12Plumbing installations for waste water; Basins or fountains connected thereto; Sinks
    • E03C1/32Holders or supports for basins
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47KSANITARY EQUIPMENT NOT OTHERWISE PROVIDED FOR; TOILET ACCESSORIES
    • A47K1/00Wash-stands; Appurtenances therefor
    • A47K1/04Basins; Jugs; Holding devices therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Environmental & Geological Engineering (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Hydrology & Water Resources (AREA)
  • Public Health (AREA)
  • Water Supply & Treatment (AREA)
  • Complex Calculations (AREA)

Abstract

본 발명은 필터회로에 관한 것으로서, 특히 이동통신 송신시스템에서 디지털신호를 필터링하는 필터를 FPGA에서 설계할 때 FPGA의 사용용량을 효율적으로 개선할 수 있는 필터회로에 관한 것이다. 이를 위해 본 발명에 의한 필터회로는 제 1속도로 클럭을 출력하는 제 1카운터와; 제 2속도로 클럭을 출력하는 제 2카운터와; 상기 제 1카운터의 클럭에 따라 상기 제 1속도로 입력데이터를 입력받아 저장하고, 상기 제 2카운터의 클럭에 따라 상기 제 2속도로 상기 저장된 입력데이터를 출력하는 제 1저장수단과; 필터계수를 저장해 놓고, 상기 제 2카운터의 클럭에 따라 상기 제 2속도로 상기 저장된 필터계수를 출력하는 제 2저장수단과; 상기 출력된 입력데이터와 상기 필터계수를 각각 곱하고 그 승산값을 모두 더하여 그 합산값을 제 1속도로 출력하는 연산수단을 포함하여 구성된 것을 특징으로 한다.

Description

필터회로{FILTER CIRCUIT}
본 발명은 필터회로에 관한 것으로서, 특히 이동통신 송신시스템에서 디지털신호를 필터링하는 필터를 FPGA에서 설계할 때 FPGA의 사용용량을 효율적으로 개선할 수 있는 필터회로에 관한 것이다.
FPGA(FIELD PROGRAMMABLE GATE ARRAYS)는 ASIC과 비교하여 개발비가 저렴하고 리스크(risk)가 적은 관계로 현재 관련분야에서 많이 쓰고 있는 칩으로서, 이동통신분야에서도 이것을 이용하여 통신장비를 개발하고 있다.
이동통신분야의 FPGA에는 여러 구성요소가 들어 가게 되는데, 그 중의 하나로서 디지털신호에 대하여 필터링 연산을 수행하는 필터가 있다.
이동통신분야의 실시간 시스템에서의 필터는 과거 및 현재의 입력신호만을 이용하여 필터링을 수행하는 인과성 필터(causal filter)이다.
도 1은 종래의 기본적인 디지털 필터회로를 나타낸다.
도 1에서 도시된 바와 같이, 기본적인 필터회로는 복수의 딜레이 시프터(delay shifter)(11∼1N-1), 복수의 승산기(multiplier)(20∼2N-1) 및 복수의 가산기(adder)(31∼3N-1)로 구성되어 있다.
딜레이 시프터(delay shifter)(11∼1N-1)는 들어오는 입력신호(x(k), k=0, 1, 2, …)를 지연이동시킨다.
승산기(multiplier)(20∼2N-1)는 각각의 필터계수(filter coefficient) (a(n), n=0, 1, 2, …, N-1)와, 입력신호(x(k)) 및 각각의 딜레이 시프터(11∼1N-1)에서 나온 출력값(지연신호)을 곱한다.
가산기(adder)(31∼3N-1)는 각각의 승산값들을 모두 더함으로써 최종적인 출력신호(y(k))를 산출한다.
실시간에서 상기 필터회로의 동작을 설명하면 다음과 같다.
우선 일정시간마다 입력신호(x(k))가 필터회로의 첫번째 딜레이 시프터(11)에 입력된다. 최초 입력신호를 x(0)이라고 할 때, 다음 x(1), x(2), x(3), …의 신호가 계속하여 첫번째 딜레이 시프터(11)에 입력되고, 이어서 다음 각각의 딜레이 시프터(12∼1N-1)로 순차 이동한다.
이와 같이 계속해서 신호가 필터에 입력되면서 입력신호의 수가 필터계수의 수(N개) 이상이 되면 그 때부터 필터는 필터링 연산을 수행하여 필터링된 신호를 출력할 수 있게 된다.
필터계수는 필터마다 그 값과 개수가 정해져 있으며, 필터계수의 수가 증가할 수록 필터의 성능은 좋아지게 된다.
필터회로에서 수행되는 필터링 연산은 다음의 수학식(1)으로 표현된다.
예를 들어 필터계수의 수가 6인 필터를 설계한다고 가정하면, 5개의 딜레이 시프터, 6개의 승산기 및 5개의 가산기가 필요하다.
이 필터에서 출력이 시작되려면 적어도 입력신호의 수가 6이상이어야 하므로 만약 k=10일 때부터 즉 입력값 x(10)이 들어올 때부터 필터의 출력이 시작된다고 가정하면, 수학식(1)은, k=10, 11, 12, …이 된다.
따라서, 필터에서 처음으로 출력되는 값은
y(10)= a(0)x(10)+a(1)x(9)+a(2)x(8)+a(3)x(7)+a(4)x(6)+a(5)x(5)이고,
계속하여 다음의 값들이 순차적으로 출력된다.
y(11)= a(0)x(11)+a(1)x(10)+a(2)x(9)+a(3)x(8)+a(4)x(7)+a(5)x(6)
y(12)= a(0)x(12)+a(1)x(11)+a(2)x(10)+a(3)x(9)+a(4)x(8)+a(5)x(7)
‥‥‥
이와 같이 필터 출력값은 입력값(현재 및 과거의 입력값)과 필터계수의 콘벌루션의 합으로 구성된다.
그러나, 종래 필터회로에 있어서 필터계수의 개수는 승산기의 개수와 동일하기 때문에, 필터의 성능향상을 위해 많은 필터계수를 사용하고자 할 때 그 만큼의 승산기가 필요하며 따라서 FPGA 내부에서 연산해야 할 승산기의 수가 증가하게 된다는 문제점이 있다.
예를 들어 Xlinx사의 FPGA(VERTEXII-XC2V1000)의 경우 전체슬라이스(slice)(FPGA의 용량단위)가 5120개인데, 승산기 한 개당 약 150개의 슬라이스가 사용된다.
이러한 수치는 승산기 한 개당 약 3%의 슬라이스를 차지하게 되는 것으로 만약 필터계수의 수가 10개라고 한다면 FPGA로 필터를 설계할 경우 필터가 FPGA 내부에 30%에 달하는 매우 큰 비중을 차지하게 되므로 그 만큼 FPGA 내부 사용용량이 감소하게 되며, 또한 필터계수가 많은 필터를 설계하기 위해서는 슬라이스 용량이 큰 FPGA를 사용하여야 하기 때문에 부품가격이 상승한다는 문제점이 있다.
따라서, 본 발명은 상기의 문제점을 해결하기 위하여 안출된 것으로서, FPGA내부의 슬라이스 사용용량을 절감할 수 있는 필터회로를 제공하는 것을 목적으로 한다.
도 1은 종래의 기본적인 필터회로를 나타내는 구성도.
도 2는 본 발명의 제 1실시예에 의한 필터회로를 나타내는 구성도
도 3은 본 발명의 제 1실시예에 의한 필터회로에서 입력신호와 필터계수의 매핑관계를 나타내는 예시도.
도 4는 본 발명의 제 2실시예에 의한 필터회로를 나타내는 구성도.
도 5는 본 발명의 제 2실시예에 의한 필터회로에서 입력신호와 필터계수의 매핑관계를 나타내는 예시도.
** 도면의 주요부분에 대한 부호설명 **
100, 110 : 램 120, 150, 160 : 카운터
130, 140 : 롬 170, 180 : 승산기
190, 200, 230 : 가산기 210, 220 : 버퍼
이를 위해 본 발명의 제 1실시예에 의한 필터회로는 제 1속도로 클럭을 출력하는 제 1카운터와; 제 2속도로 클럭을 출력하는 제 2카운터와; 상기 제 1카운터의 클럭에 따라 상기 제 1속도로 입력데이터를 입력받아 저장하고, 상기 제 2카운터의 클럭에 따라 상기 제 2속도로 상기 저장된 입력데이터를 출력하는 제 1저장수단과; 필터계수를 저장해 놓고, 상기 제 2카운터의 클럭에 따라 상기 제 2속도로 상기 저장된 필터계수를 출력하는 제 2저장수단과; 상기 출력된 입력데이터와 상기 필터계수를 각각 곱하고 그 승산값을 모두 더하여 그 합산값을 제 1속도로 출력하는 연산수단을 포함하여 구성된 것을 특징으로 한다.
이에 의하여 상기 입력데이터가 제 1속도로 상기 제 1저장수단에 저장될 때마다 상기 제 1저장수단 및 상기 제 2저장수단에서 제 2속도로 상기 입력데이터 및 상기 필터계수가 출력되고, 상기 연산수단에서는 제 2속도로 상기 입력데이터 및상기 필터계수를 1:1 대응으로 곱하고 그 각각의 승산값을 모두 더하여 제 1속도로 최종의 필터링값을 출력한다.
본 발명의 제 2실시예에 의한 필터회로는 제 1속도로 클럭을 출력하는 제 1카운터와; 제 2속도로 클럭을 출력하는 복수개의 제 2카운터와; 상기 제 1카운터의 클럭에 따라 상기 제 1속도로 입력데이터를 입력받아 저장하고, 상기 복수개의 제 2카운터의 클럭에 따라 상기 제 2속도로 상기 저장된 입력데이터를 출력하는 복수개의 제 1저장수단과; 총 필터계수를 나누어 저장해 놓고, 상기 복수개의 제 2카운터의 클럭에 따라 상기 제 2속도로 상기 저장된 필터계수를 출력하는 복수개의 제 2저장수단과; 상기 출력된 입력데이터와 상기 필터계수를 각각 곱하고 그 승산값을 모두 더하여 그 합산값을 제 1속도로 출력하는 복수개의 연산수단과; 상기 복수개의 연산수단에서 출력된 각각의 연산결과를 더하는 가산수단을 포함하여 구성된 것을 특징으로 한다.
이에 의하여 상기 입력데이터가 제 1속도로 상기 복수의 제 1저장수단에 저장될 때마다 상기 복수의 제 1저장수단 및 상기 복수의 제 2저장수단에서 제 2속도로 상기 입력데이터 및 상기 필터계수가 출력되고, 상기 복수의 연산수단에서는 제 2속도로 상기 입력데이터 및 상기 필터계수를 1:1 대응으로 곱하고 그 각각의 승산값을 모두 더하여 제 1속도로 승산값의 총합을 출력하고, 상기 가산수단은 상기 복수의 연산수단에서 출력된 각각의 승산값의 총합을 모두 더하여 제 1속도로 최종의 필터링값을 출력한다.
이하 첨부된 도면을 참조하여 본 발명을 상세히 설명한다.
도 2는 본 발명의 제 1실시예에 의한 필터회로를 나타낸다.
도 2에서의 필터는 도 1과 달리 승산기(50) 및 가산기(60)를 각각 하나씩만 사용하고 여기에 램(10), 롬(20), 두 개의 카운터(30, 40) 및 버퍼(70)를 포함하고있다.
여기서, 램(10)은 ×2의 속도로 데이터를 저장하고 ×64의 속도로 데이터를 출력한다. 롬(20)에는 필터계수가 저장되어 있고 ×64의 속도로 필터계수를 출력한다.
카운터_64(40)는 ×2의 속도로 0∼63까지 카운트를 반복하고 입력데이터가 저장되는 램(10)의 레지스터를 지정한다. 카운터_32(30)는 ×64의 속도로 0∼31까지 카운트를 반복하고 램(10) 및 롬(20)의 입력데이터 및 필터계수를 출력시킨다.
승산기(50)는 램(10) 및 롬(20)에서 출력된 입력데이터 및 필터계수를 곱하고, 가산기(60)는 승산기(50)에서 나온 승산값(Mul_out)과 버퍼(70)에서 피드백된 이전가산값(Add_temp)을 더하여 가산값(Add)을 출력한다.
버퍼(70)는 가산기(60)에서 출력된 가산값(Add)을 저장하고 이것을 이전가산값(Add_temp)으로서 가산기(60)에 피드백한다.
도 1에서는 신호의 입력속도, 연산속도 및 출력속도가 모두 동일하기 때문에 필터계수의 수만큼 승산기가 필요했지만, 도 2의 필터는 시스템 클럭 속도로 연산을 하기 때문에 하나의 승산기 및 가산기만으로 필터링을 수행할 수 있다.
도 2에서 도시한 필터의 동작을 살펴보면 다음과 같다.
우선 카운터_64(40)가 ×2의 속도로 램(10)에 클럭을 보내면 최초 입력신호(x(0))에서부터 시작하여 입력신호들이 ×2의 속도로 카운터_64(40)가 가리키는 램(10)의 각 레지스터에 저장된다.
각각의 레지스터에 ×2의 속도로 데이터가 계속해서 스택되고 카운터_64(40)가 이를 카운트하다가 31를 카운트하게 되면(즉 32개의 데이터가 입력되면), 램(10) 및 롬(20)에 저장되어 있는 값을 출력시키는 카운트_32(30)가 구동된다.
롬(20)에는 필터계수가 저장되어 있는데 사용할 수 있는 필터계수의 수는 신호의 입력속도와 시스템 속도간의 차에 대응한다.
즉, 입력속도가 2이고 시스템 클럭속도가 64이므로 속도차는 32배이고 따라서 사용가능한 필터계수의 수는 32개가 된다. 그러나 실제 사용되는 필터의 계수는 32개가 아니라 31개가 되는데 이것에 대해서는 후술한다.
다음, 카운트_32(30)가 구동되면 카운트_32(30)는 ×64의 속도로 램(10) 및 롬(20)에 클럭을 보내기 시작한다.
램(10) 및 롬(20)에서는 카운트_32(30)의 클럭에 의해 ×64의 속도로 각각 입력신호 및 필터계수를 출력하여 이것을 승산기(50)에 보낸다.
승산기(50)에서는 들어오는 입력신호 및 필터계수를 차례로 곱하여 그 승산값(Mul_out)을 ×64의 속도로 가산기(60)에 보낸다.
가산기(60)에서는 승산기(50)로부터의 승산값(Mul_out)과 버퍼(70)에 저장되어 있는 이전가산값(Add_temp)을 더하여 그 가산값(Add)을 ×64의 속도로 버퍼(70)에 저장한다.
한편, 카운터_32(30)는 가산기(60)에도 ×64의 속도로 클럭을 보내는데 카운터_32(30)가 31를 카운트하게 되면, 현재 버퍼(70)에 저장된 값을 최종 필터링값으로 출력하고 버퍼(70)를 0으로 리셋한다.
즉, 카운트가 31가 된 후에는 카운트가 다시 0로 돌아가 새로운 필터링연산을 수행하기 때문에, 카운트 31에서 최종 필터링값을 출력하고 버퍼를 0으로 초기화한다.
버퍼(70)의 초기화에 의해 이전가산값(Add_temp)이 0이 되고, 이 이전가산값이 가산기(60)에 들어가 32번째 승산값(Mul_out)과 더해진 다음 그 가산값(Add)이 버퍼(70)에 들어오더라도 0이 유지되어야 하므로 32번째 승산값 역시 0이 되어야 한다. 이를 위해서는 롬(20)에 저장된 32번째의 필터계수가 0이 되어야 하므로 결국 실제 사용되는 필터계수의 수는 31개가 되는 것이다.
도 3은 도 2에 나타낸 램(10) 및 롬(20)에 저장되어 있는 입력신호 및 필터계수의 매핑관계를 나타낸다.
도 3(a)는 입력값이 레지스터 32번에 채워지려는 시점 또는 카운터_64(40)에서 31을 카운트한 시점에서, 램(10)에 저장된 입력값(x(0)∼x(31))과 롬(20)에 저장된 필터계수(a(0)∼a(30)) 및 0이 도시된 바와 같이 차례로 매핑되어 승산을 수행하는 것을 나타낸다.
도 3(b)는 입력값이 레지스터 33번에 채워지려는 시점 또는 카운터_64(40)가 32를 카운트 한 시점에서, 입력값(x(1)∼x(32))와 필터계수(a(0)∼a(30)) 및 0이 도시된 바와 같이 차례로 매핑되어 승산을 수행하는 것을 나타낸다.
한편, 도 3에서 도시한 바와 같이 32개의 승산결과 묶음이 가산되어 출력되는 것이므로 만약 가산을 수행할 때 앞 또는 뒤로 밀린 묶음이 연산되어 출력되면 엉뚱한 필터연산이 수행될 수 있다.
결론적으로 입력신호가 한 번 들어올 때마다 입력속도보다 32배 빠른 속도로 승산 및 감산을 수행하여 입력속도와 동일한 속도로 필터링 값을 출력하게 되기 때문에 승산기 및 가산기를 하나만 사용하고서도 필터링 연산을 수행할 수 있게 된다.
다만, 본 발명의 제 1실시예에 따른 필터회로에 있어서, 도 1의 종래의 필터회로와 달리 한 개의 승산기만을 사용하고 있지만 입력속도와 시스템속도와의 차이에 따라 필터계수의 수가 제한될 수 있다.
즉, 도 2에서 시스템속도가 ×64이고 입력속도가 ×2인 경우 32배의 속도차가 생기므로 사용할 수 있는 필터계수가 32개(초기화를 위해 0이 포함되기 때문에 실제 필터계수는 31개임)로 제한된다.
예를 들어 도 2에서 사용된 입력속도 및 시스템속도는 CDMA 시스템에서 사용하는 속도로서, IMT-2000에서는 데이터의 입력속도가 ×1(3.84MHz)이고 시스템속도가 ×24(92.16MHz)인데 반하여 필요한 필터계수의 개수는 40개 이상이므로 본 발명의 제 1실시예에 의한 필터회로에 의해서는 이를 구현할 수는 없다.
도 4는 본 발명의 제 2실시예에 의한 필터회로를 나타낸다.
도 4에서 도시한 바와 같이, 본 발명의 제 2실시예에 의한 필터회로는 두 개의 램(100, 110), 두 개의 롬(130, 140), 3개의 카운터(120, 150, 160), 두 개의 승산기(170, 180), 3개의 가산기(190, 200, 230) 및 두 개의 버퍼(210, 220)를 포함하여 구성된다.
제 1램(100)은 입력데이터를 ×1의 속도로 순차적으로 저장하고 시스템 클럭속도(×24)로 입력데이터를 출력하며, 제 2램(110)은 제 1램과 동일하게 동작한다.
카운터_64(120)는 제 1램(100)과 제 2램(110)에 저장되는 데이터의 수를 ×1의 속도로 카운트하면서 입력데이터가 저장되는 제 1램(100)과 제 2램(110)의 레지스터를 지정한다.
제 1롬(130)은 필터계수의 개수 중에 상위 절반의 계수를 저장하고, 제 2롬(140)은 필터계수의 개수 중에 하위 절반의 계수를 저장한다.
제 1카운터_24(150)는 시스템 클럭속도로 0∼23까지 카운트를 수행하고 제 1램(100)과 제 1롬(130)에서 출력되는 입력데이터 및 필터계수가 위치하는 레지스터를 지정하며, 제 2카운터_24(160)는 시스템 클럭속도로 0∼23까지 카운트를 수행하고 마찬가지로 제 2램(110)과 제 2롬(140)에서 출력되는 입력데이터 및 필터계수가 위치하는 레지스터를 지정한다.
제 1승산기(170)는 제 1램(100)과 제 1롬(130)에서 출력된 입력데이터와 필터계수를 승산하고, 제 2승산기(180)는 제 2램(110)과 제 2롬(140)에서 출력된 입력데이터와 필터계수를 승산한다.
제 1가산기(190)는 제 1승산기(170)의 승산값(Mul_out1)과 피드백된 이전가산값(Add_temp1)을 더하여 가산값(Add1)를 출력하고, 제 1버퍼(210)는 제 1가산기(190)에서 출력된 가산값(Add)을 저장하고 이것을 이전가산값(Add_temp)으로서 제 1가산기(190)에 피드백한다.
제 2가산기(200)는 제 2승산기(180)의 승산값(Mul_out2)과 피드백된 이전가산값(Add_temp2)을 더하여 가산값(Add2)를 출력하고, 제 2버퍼(220)는 제2가산기(200)에서 출력된 가산값(Add2)을 저장하고 이것을 이전가산값(Add_temp2)으로서 제 2가산기(200)에 피드백한다.
제 3가산기(230)는 제 1버퍼(210)와 제 2버퍼(220)에서 출력된 값(Sum1 및 Sum2)을 더하여 최종적으로 필터링된 값을 출력한다.
도 4의 필터회로의 구성은 제 1실시예의 필터와는 달리 필터계수가 서로 다른 두 개의 롬에 나누어져 저장되어 있는 분할(split) 구조를 취하고 있다.
도 4에서는 입력데이터의 속도와 시스템 클럭속도를 IMT-2000에서 사용하는 속도를 사용하고 있는데, 입력데이터의 속도는 ×1이고 시스템 클럭속도는 ×24이다.
이러한 속도차이(24배의 속도차) 하에서 만약 40개(초기화를 위한 0을 제외하면 필터계수를 46개까지 사용가능함)의 필터계수를 사용하는 필터를 설계하고자 할 때 본 발명의 제 2실시예에서 제안하는 분할구조를 적용하면 이러한 필터의 구현이 가능하게 된다.
우선 속도차이가 24배이므로 이에 맞게 24개의 테이블(레지스터)을 갖춘 두 개의 롬(130, 140)에 각각 필터계수의 개수의 절반인 20개를 저장한다. 각 롬의 24개의 테이블에는 20개의 필터계수가 채워지고 나머지 4개의 테이블은 0으로 채워진다(도 5참조).
카운터_64(120)가 동작을 시작하면 입력데이터가 ×1의 속도로 제 1램(100) 및 제 2램(110)의 동일한 테이블(레지스터)에 동시에 채워진다.
입력데이터가 계속적으로 들어오다가 제 1램(100) 및 제 2램(110)의 44번째의 레지스터에 입력데이터가 채워지는 시점 즉 카운터_64(120)가 43을 카운트하게 될 때 제 1카운터_24(150) 및 제 2카운터_24(160)가 동작하여 램(100, 110) 및 롬(130, 140)에 각각 ×24의 클럭을 보내기 시작한다.
두 개의 카운터_24(150, 160)에 의해 램(100, 110) 및 롬(130, 140)에서는 각각 입력데이터 및 필터계수가 ×24의 속도로 출력되어 승산기(170, 180)에 공급된다.
이 때 제 1램(100) 및 제 2램(110)에 저장된 입력데이터를 액세스하여 출력시키는 방법이 다른데, 이에 대해서는 도 5를 참조하여 설명한다.
도 5는 램(100, 110) 및 롬(130, 140)의 출력의 매핑관계를 나타내고 있다.
도 5(a)는 제 1램(100) 및 제 1롬(130)과의 매핑관계를 나타내고, 도 5(b)는 제 2램(110) 및 제 2롬(140)과의 매핑관계를 나타낸다.
제 1승산기(170)에서는 도 5(a)에서와 같은 매핑관계로 입력데이터 및 필터계수를 각각 승산하고, 그 승산값을 제 1가산기(190)에 보낸다.
제 1가산기(190)는 승산값과 이전가산값을 가산한 후 그 가산값을 제 1버퍼(210)로 보낸다. 제 1버퍼(210)는 가산값을 저장하고 이를 이전가산값으로서 제 1가산기(190)로 피드백하여 다음의 승산값과 가산될 수 있도록 한다.
마찬가지로 제 2승산기(180)에서는 도 5(b)에서와 같은 매핑관계로 입력데이터 및 필터계수를 각각 승산하고, 그 승산값을 제 2가산기(200)에 보낸다.
제 2가산기(200)는 승산값과 이전가산값을 가산한 후 그 가산값을 제 2버퍼(220)에 보낸다. 제 2버퍼(220)는 가산값을 저장하고 이를 이전가산값으로서 제 2가산기(200)로 피드백하여 다음의 승산값과 가산될 수 있도록 한다.
도 5(a)의 경우 최초 입력데이터(x(0))에서부터 시작하여 23번째 입력데이터(x(23))까지 순차적으로 승산이 수행되는데 비하여, 도 5(b)의 경우에는 승산이 시작되는 입력데이터가 저장되어 있는 레지스터의 위치가 다르다.
즉, 도 5(b)에서 도시된 바와 같이, 제 2램(110)에서 처음 액세스되는 입력데이터가 저장되어 있는 위치는 레지스터 20번(21번째 레지스터)이 된다.
이것은 입력데이터가 두 개의 램(100, 110)에 동일하게 저장되어 있어서 만약 입력데이터의 액세스되는 위치가 동일하게 되면 중복승산이 되어 올바른 필터링 연산을 수행할 수 없기 때문이다.
따라서, 이를 위해 제 2카운터_24(160)가 제 1카운터_24(150)와는 다르게 21번째 레지스터를 최초 액세스되는 레지스터로서 지정할 수 있도록 한다.
이와 같이 제 2램(110)에서 최초 출력되는 입력데이터의 위치는 필터계수의 개수에 따라 달라지게 된다.
제 1승산기(170) 및 제 2승산기(180)는 상기와 같이 입력데이터 및 필터계수를 계속하여 승산하여 그 승산값을 제 1가산기(190) 및 제 2가산기(200)에 보내고, 제 1가산기(190) 및 제 2가산기(200)는 승산값과 피드백된 이전가산값을 계속적으로 가산하여 그 가산값을 제 1버퍼(200) 및 제 2버퍼(210)에 보낸다.
이와 같이 승산 및 가산을 계속 수행하다가 두 개의 카운터_24(150, 160)의 카운트가 23이 될 때, 제 1버퍼(210) 및 제 2버퍼(220)는 현재 저장되어 있는 제 1가산값(Add1) 및 제 2가산값(Add2)을 최종가산값(Sum1, Sum2)으로 하여 제3가산기(230)로 보내고, 제 1버퍼(210) 및 제 2버퍼(220)는 0으로 리셋된다.
제 3가산기(230)에서는 입력된 최종가산값(Sum1, Sum2)을 더하여 최종 필터링된 출력값을 산출한다.
다음 카운터_24(150, 160)가 다시 0부터 카운트를 시작하여 상기와 동일한 과정에 의해 계속적으로 필터링된 값을 출력하게 된다.
이를 수학적으로 나타내면,
y(39)=a(0)x(39)+a(1)x(38)+a(2)x(37)+ … +a(37)x(2)+a(38)x(1)+a(39)x(0)
y(40)=a(0)x(40)+a(1)x(39)+a(2)x(38)+ … +a(37)x(3)+a(38)x(2)+a(39)x(1)
y(41)=a(0)x(41)+a(1)x(40)+a(2)x(39)+ … +a(37)x(4)+a(38)x(3)+a(39)x(2)
‥‥‥ 이다.
제 2실시예는 필터계수를 두 개의 롬에 분할하여 저장한 구조로서 제 1실시예를 확장한 것인데, 이에 한정되는 것은 아니며 3개 이상의 롬에 분할하여 저장할 수 있는 등 분할구조의 확장이 가능하다.
이에 따라 사용할 수 있는 필터계수의 개수를 증가시킬 수 있다.
상기와 같이, 본 발명의 제 1실시예에 의하면, 입력신호가 한 번 들어올 때마다 입력속도보다 빠른 속도로 승산 및 감산을 수행하여 입력속도와 동일한 속도로 필터링 값을 출력하게 되기 때문에 승산기 및 가산기를 하나만 사용하고서도 필터링 연산을 수행할 수 있는 효과가 있다.
또한 본 발명의 제 2실시예에 의하면, 본 발명의 제 1실시예의 확장으로서서로 다른 램에 입력데이터를 동시에 저장하고 또한 서로 다른 롬에 필터계수를 분산하여 저장하여 놓은 분할구조를 형성하여 놓고 서로 다른 램간의 액세스 방법을 달리하여 입력데이터와 필터계수가 1:1로 매칭 연산될 수 있도록 함으로써, IMT-2000에서와 같이 필터계수의 개수가 많고 입력데이터속도와 시스템클럭속도의 차가 크지 않은 시스템에서도 FPGA의 사용용량을 증가시키지 않고 필터를 구현할 수 있는 효과가 있다.

Claims (8)

  1. 제 1속도로 클럭을 출력하는 제 1카운터와,
    제 2속도로 클럭을 출력하는 제 2카운터와,
    상기 제 1카운터의 클럭에 따라 상기 제 1속도로 입력데이터를 입력받아 저장하고, 상기 제 2카운터의 클럭에 따라 상기 제 2속도로 상기 저장된 입력데이터를 출력하는 제 1저장수단과,
    필터계수를 저장해 놓고, 상기 제 2카운터의 클럭에 따라 상기 제 2속도로 상기 저장된 필터계수를 출력하는 제 2저장수단과,
    상기 출력된 입력데이터와 상기 필터계수를 각각 곱하고 그 승산값을 모두 더하여 그 합산값을 제 1속도로 출력하는 연산수단을 포함하여 구성된 것을 특징으로 하는 필터회로.
  2. 제 1항에 있어서,
    상기 연산수단은 상기 입력데이터와 상기 필터계수를 곱하는 승산기와;
    상기 승산기에서 출력된 승산값을 후술하는 버퍼에 저장된 값과 더하는 가산기와;
    상기 가산기에서 출력된 가산값을 저장하는 버퍼를 포함하는 것을 특징으로 하는 필터회로.
  3. 제 1항에 있어서,
    상기 필터계수의 수는 상기 제 1속도와 상기 제 2속도의 속도차에 해당하는개수보다 작은 것을 특징으로 하는 필터회로.
  4. 제 1속도로 클럭을 출력하는 제 1카운터와,
    제 2속도로 클럭을 출력하는 복수개의 제 2카운터와,
    상기 제 1카운터의 클럭에 따라 상기 제 1속도로 입력데이터를 입력받아 저장하고, 상기 복수개의 제 2카운터의 클럭에 따라 상기 제 2속도로 상기 저장된 입력데이터를 출력하는 복수개의 제 1저장수단과,
    총 필터계수를 나누어 저장해 놓고, 상기 복수개의 제 2카운터의 클럭에 따라 상기 제 2속도로 상기 저장된 필터계수를 출력하는 복수개의 제 2저장수단과,
    상기 출력된 입력데이터와 상기 필터계수를 각각 곱하고 그 승산값을 모두 더하여 그 합산값을 제 1속도로 출력하는 복수개의 연산수단과,
    상기 복수개의 연산수단에서 출력된 각각의 연산결과를 더하는 가산수단을 포함하여 구성된 것을 특징으로 하는 필터회로.
  5. 제 4항에 있어서,
    상기 복수개의 제 2카운터는 상기 입력데이터와 상기 필터계수의 1:1 대응의 승산이 중복되지 않도록 상기 복수개의 제 1저장수단의 최초 액세스위치를 다르게 지정하는 것을 특징으로 하는 필터회로.
  6. 제 5항에 있어서,
    상기 복수개의 제 1저장수단에서의 N번째의 제 1저장수단의 최초 액세스위치는 N-1번째의 제 1저장수단에 저장된 입력데이터가 N-1 번째의 제 2저장수단에 저장된 필터계수와 1:1 대응하는 마지막 위치의 다음 위치부터인 것을 특징으로 하는 필터회로.
  7. 제 4항에 있어서,
    상기 연산수단은 상기 입력데이터와 상기 필터계수를 곱하는 승산기와;
    상기 승산기에서 출력된 승산값을 후술하는 버퍼에 저장된 값과 더하는 가산기와;
    상기 가산기에서 출력된 가산값을 저장하는 버퍼를 포함하는 것을 특징으로 하는 필터회로.
  8. 제 4항에 있어서,
    상기 복수개의 제 2저장수단 각각에 저장되는 필터계수의 총수는 상기 제 1속도와 상기 제 2속도의 속도차에 해당하는 개수보다 작은 것을 특징으로 하는 필터회로.
KR10-2002-0035066A 2002-06-21 2002-06-21 필터회로 KR100451193B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2002-0035066A KR100451193B1 (ko) 2002-06-21 2002-06-21 필터회로

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2002-0035066A KR100451193B1 (ko) 2002-06-21 2002-06-21 필터회로

Publications (2)

Publication Number Publication Date
KR20040000576A KR20040000576A (ko) 2004-01-07
KR100451193B1 true KR100451193B1 (ko) 2004-10-02

Family

ID=37312414

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-0035066A KR100451193B1 (ko) 2002-06-21 2002-06-21 필터회로

Country Status (1)

Country Link
KR (1) KR100451193B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101050628B1 (ko) * 2005-02-21 2011-07-19 삼성전자주식회사 이동통신 시스템에서 필터링 장치 및 방법

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5910024A (ja) * 1982-07-09 1984-01-19 Hitachi Ltd デジタル・フイルタ
JPS63276911A (ja) * 1987-05-08 1988-11-15 Nikon Corp 非巡回型ディジタルフィルタを用いたディジタル画像信号処理装置
JPH06140878A (ja) * 1992-10-28 1994-05-20 Nec Corp ディジタルフィルタ
JP2000134064A (ja) * 1998-10-21 2000-05-12 Yamaha Corp デジタル信号処理装置
KR20030010143A (ko) * 2001-07-25 2003-02-05 엘지전자 주식회사 고속 클럭 활용을 위한 에프아이알 필터의 곱셈 장치 및그 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5910024A (ja) * 1982-07-09 1984-01-19 Hitachi Ltd デジタル・フイルタ
JPS63276911A (ja) * 1987-05-08 1988-11-15 Nikon Corp 非巡回型ディジタルフィルタを用いたディジタル画像信号処理装置
JPH06140878A (ja) * 1992-10-28 1994-05-20 Nec Corp ディジタルフィルタ
JP2000134064A (ja) * 1998-10-21 2000-05-12 Yamaha Corp デジタル信号処理装置
KR20030010143A (ko) * 2001-07-25 2003-02-05 엘지전자 주식회사 고속 클럭 활용을 위한 에프아이알 필터의 곱셈 장치 및그 방법

Also Published As

Publication number Publication date
KR20040000576A (ko) 2004-01-07

Similar Documents

Publication Publication Date Title
US10572224B2 (en) Methods and apparatus for sequencing multiply-accumulate operations
US4281391A (en) Number theoretic processor
Wang et al. A study of the residue-to-binary converters for the three-moduli sets
CN102422259B (zh) 在电路的模块之间具有可选使用、专用连接的模块化数字信号处理电路
US20050187998A1 (en) Multiplier-accumulator block mode splitting
JPH0661792A (ja) デジタル・フィルタ
US4864529A (en) Fast multiplier architecture
Trimale A review: FIR filter implementation
EP1471420A2 (en) Montgomery modular multiplier and method thereof using carry save addition
US10853034B2 (en) Common factor mass multiplication circuitry
US7046723B2 (en) Digital filter and method for performing a multiplication based on a look-up table
EP2037357A2 (en) Montgomery modular multiplier and method thereof using carry save addition
EP0693236B1 (en) Method and arrangement in a transposed digital fir filter for multiplying a binary input signal with tap coefficients and a method for designing a transposed digital filter
Lee et al. FPGA-based FIR filters using digit-serial arithmetic
US11256979B2 (en) Common factor mass multiplication circuitry
Vinod et al. An efficient coefficient-partitioning algorithm for realizing low-complexity digital filters
US7680872B2 (en) Canonical signed digit (CSD) coefficient multiplier with optimization
Paliouras et al. Multifunction architectures for RNS processors
KR100451193B1 (ko) 필터회로
KR960002392B1 (ko) 입력가중형 트랜스버셜필터
Kannan A Design of Low Power and Area efficient FIR Filter using Modified Carry save Accumulator Method
RU2829089C1 (ru) Умножитель по модулю
JPS6015769A (ja) デイジタル信号処理回路
Sidahao et al. Multiple restricted multiplication
Mandal et al. Review of Architectures for Low Power and Reconfigurable FIR Filters

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
FPAY Annual fee payment

Payment date: 20120814

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20130816

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20140818

Year of fee payment: 11

LAPS Lapse due to unpaid annual fee