KR20000070020A - 혼합된 고정 소수점 또는 부동 소수점 및 블럭 스케일 부동 소수점 연산자를 가진 적응 필터 시스템 - Google Patents

혼합된 고정 소수점 또는 부동 소수점 및 블럭 스케일 부동 소수점 연산자를 가진 적응 필터 시스템 Download PDF

Info

Publication number
KR20000070020A
KR20000070020A KR1019997006239A KR19997006239A KR20000070020A KR 20000070020 A KR20000070020 A KR 20000070020A KR 1019997006239 A KR1019997006239 A KR 1019997006239A KR 19997006239 A KR19997006239 A KR 19997006239A KR 20000070020 A KR20000070020 A KR 20000070020A
Authority
KR
South Korea
Prior art keywords
coefficient
mantissa
value
stored
data
Prior art date
Application number
KR1019997006239A
Other languages
English (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 사이러스 로직, 인크.
Publication of KR20000070020A publication Critical patent/KR20000070020A/ko

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H17/00Networks using digital techniques
    • H03H17/02Frequency selective networks
    • H03H17/0223Computation saving measures; Accelerating measures
    • H03H17/0238Measures concerning the arithmetic used
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H21/00Adaptive networks
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H17/00Networks using digital techniques
    • H03H17/02Frequency selective networks
    • H03H17/0223Computation saving measures; Accelerating measures
    • H03H17/0227Measures concerning the coefficients
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H21/00Adaptive networks
    • H03H21/0012Digital adaptive filters

Landscapes

  • Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Filters That Use Time-Delay Elements (AREA)

Abstract

데이터 RAM(74) 내에 저장되는 고정 소수점 또는 부동 소수점 및 계수 RAM(84) 내에 저장되는 블럭 스케일 부동 소수점 계수를 가진 적응 필터가 제공된다. 데이터 및 계수가, 콘볼루션 결과를 제공하기 위해 곱셈기 및 가산기를 이용하는 필터 알고리즘에 이용된다. 계수는, 데이터 RAM 값의 곱셈된 결과 및 에러값과 계수의 이전 값을 더함으로써 업데이트된다. 이는 계수 RAM에서의 모든 계수값에 대해 수행된다. 에러값은 필터 출력과 에코인 샘플링된 단거리 종단 신호간의 차이를 지시한다. 이러한 새로운 계수가 검사되고, 만일 임의의 계수가 소정의 임계 이상의 값을 갖거나, 모든 계수가 소정의 임계 이하의 값을 가지면, 모든 계수의 가수가 쉬프트되고 지수는 다음 필터 주기에서 조정된다.

Description

혼합된 고정 소수점 또는 부동 소수점 및 블럭 스케일 부동 소수점 연산자를 가진 적응 필터 시스템{ADAPTIVE FILTER SYSTEM HAVING MIXED FIXED POINT OR FLOATING POINT AND BLOCK SCALE FLOATING POINT OPERATORS}
전형적인 스피커폰 시스템에서 사용되는 적응 필터는 에코(echo) 경로의 특성을 평가하고 디지털화된 원거리 종단 사용자의 신호로부터 시뮬레이트된 에코 신호를 발생하도록 동작될 수 있다. 이는 단거리 종단 에코 신호로부터 시뮬레이트된 에코 신호를 감산하여 잔류 신호 또는 에러를 발생하는 감산기를 포함한다. 적응 필터는 가능한한 잔류 신호가 0에 가깝게 수렴하게 하도록 시뮬레이트된 에코 신호를 실제 에코 신호에 가깝게 가져가게 동작될 수 있다.
대부분의 적응 필터는 메모리에 저장되는 데이터 및 계수와 데이터 및 연관된 계수에 실행되는 다수의 곱셈 및 덧셈을 요구하는 임펄스 응답형 필터를 사용한다. 필터의 정확도는 데이터 및 계수를 나타내는데 사용되는 디지털 워드(word)의 포맷과 길이에 의존한다. 고정 소수점 표시는 부가적인 하드웨어의 비용으로 최대 정확도를 제공하는 반면, 부동 소수점 표시는 가능한 값의 범위가 더 커져 정확도를 손상시킨다. 블럭 스케일 부동 소수점 표시는 같은 양으로 모든 가수의 스케일을 정하는 단일 지수값을 사용한다. 지수값은 소정의 시간에 메모리에 저장된 최대 수의 크기에 의존한다. 음성 신호를 사용하는 응용에서, 블럭 스케일 부동 소수점 표시는 짧은 시간 주기에 걸쳐 입력된 신호의 크기에서의 큰 변화로 지수가 커지고 메모리에 저장된 작은 값들이 상당한 범위로 스케일 조정되므로 데이터를 저장하는데 적합하지 않다. 이는 메모리에 저장되는 데이터의 정확도를 상당히 손실시키게 된다. 부동 소수점 표시는 작은 수에 대해 최대의 정확도를 허용하고 큰 수로부터 최하위 비트를 버리므로, 이 응용에 가장 적합하다.
본 발명은 적응 필터(adaptive filter)에 관한 것으로, 특히 데이터 및 계수를 적응 필터에 저장하는 방법에 관한 것이다.
도 1은 본 발명에 따라 동작하는 스피커폰 시스템의 전체적인 블럭도.
도 2는 적응 필터를 사용한 이중 토크(double talk) 검출기의 상세한 블럭도.
도 3은 적응 필터의 고레벨 블럭도.
도 4는 본 발명의 적응 필터에 대한 설계의 일반적인 블럭도.
도 5는 계수 업데이트 계산을 위한 데이터 흐름을 설명하는 설계의 블럭도.
도 6은 콘볼루션(convolution) 계산 동안의 데이터 흐름과 연관된 설계의 블럭도.
도 7은 계수 점검 동작을 위한 흐름도.
여기서 설명되고 청구되는 본 발명은 적응 필터를 포함한다. 적응 필터는 고정 소수점 또는 부동 소수점으로 데이터를 저장하는 데이터 메모리 및 모든 계수 가수에 대한 공통 지수를 저장하는 연관된 레지스터를 갖추고 블럭 스케일 부동 소수점 포맷으로 계수 가수를 저장하는 계수 메모리를 포함한다. 디지털 필터 엔진은 데이터 메모리에 저장하도록 입력 데이터를 수신하고 저장된 데이터 및 계수를 처리하여 디지털 필터 출력을 산출하도록 동작가능하다. 필터 엔진은 유한 임펄스 응답 필터 알고리즘을 실행하기 위한 유한 임펄스 응답 필터 엔진이다. 계수 업데이터 디바이스는 소정의 알고리즘에 따라 계수 메모리에 저장된 가수값을 업데이트하도록 동작가능하다. 계수 점검 디바이스는 계수 메모리에 저장된 최대값을 결정하고 다음 필터 싸이클에서 계수에 요구되는 지수 및 가수 정정을 결정하도록 동작가능하다. 가수값이 임계값 보다 더 크고 계수 지수가 허용된 최대값 보다 더 작으면, 모든 계수 가수는 산술적으로 다음 필터 싸이클에서 한 비트만큼 우로 쉬프트되고 지수는 1만큼 증가된다. 모든 계수 가수가 임계값보다 더 작고 지수가 0보다 크면, 가수는 산술적으로 다음 필터 싸이클에서 한 비트만큼 좌로 쉬프트되고 지수는 1만큼 감소된다.
본 발명의 또 다른 특성으로, 데이터 메모리는 저장된 각 데이터 워드와 연관된 지수 및 가수를 모두 포함하여 부동 소수점 포맷으로 데이터를 저장하도록 동작가능하다.
이제는 도 1을 참고로, 본 발명에 따라 동작하는 적응 필터 (도시되지 않음)를 결합시킨 스피커폰 시스템이 도시된다. 4개 와이어(wire) 시스템은 한측에서 2개-와이어 하이브리드 회로(12)에 4개-와이어로 인터페이스 연결된 분배선(10)을 포함한다. 하이브리드(12)의 다른 한측은 2개 와이어 가입자선(24)을 통해 스피커폰(16)에 인터페이스 연결된다. 스피커폰(16)으로 들어오는 신호는 선(18)을 통해 스피커(20)를 구동시킨다. 인접한 스피커(20)는 선(24)으로 스피커폰(16)에 부착된 마이크로폰(22)이다. 스피커폰(16)에서 나가는 신호는 선(26)을 통해 하이브리드(12)에 입력된다.
동작시, 음향적 에코 경로는 스피커(20)에서 마이크로폰(22)으로 발생된다. 네트워크 에코 경로(14)는 출력에서 입력으로 가입자선(26)으로부터 존재한다. 음향적 에코 경로를 방지하는 간단한 방법은 반사 신호가 결국 이를 에코로 듣게 되는 원거리 종단 사용자에게 되돌아가는 것을 방지하도록 마이크로폰을 꺼놓는 것이다. 네트워크 에코 경로에 대해, 이는 하이브리드(12)에 포함된 하이브리드 코일이 가입자선(16) 자체와 완벽하게 정합되지 않는다는 사실로 인한다. 그 결과로, 하이브리드 코일은 4개-와이어선(10)을 통해 원거리 종단 사용자로부터 수신된 신호를 가입자선(26)을 통해 단거리 종단 사용자에게 전달할 뿐만 아니라, 단거리 종단 사용자로부터의 신호가 입력으로 누설되는 것을 허용한다.
이제는 도 2를 참고로, 본 발명의 적응 필터를 사용한 이중 토크 검출기(double talk detector)의 블럭도가 일반적으로 도시된다. 이중 토크 검출기의 동작은, 여기서 참고로 포함되는, 1995년 9월 29일 출원되고 "에코 소거를 위한 이중 토크 검출기(DOUBLE-TALK DETECTOR FOR ECHO CANCELLER)"로 표제된 미국 특허 출원 일련 번호 제08/536,986호에서 설명된다. 원거리 종단 오디오는 A/D 변환기(28)로 입력되는 수신선(14)을 통해 원거리 종단 소스로부터 수신되어, 출력으로 선(30)에 샘플링된 수신값 Rin(k)을 제공한다. 이것은 D/A 변환기(32)에 입력되어 선(34)에서 디지털 값을 다시 아날로그 값 Rout으로 변환한다. 이는 단거리 종단 디바이스(20)에 입력된다. 단거리 종단 디바이스는 선(34)이 버퍼(36)를 통해 입력되고 그 출력은 선(18)에서 이용가능하여 스피커(20)를 구동하는 수신 경로로 구비된다. 송신 경로는 마이크로폰(22)을 통해 제공되고, 그 출력은 선(24)에서 이용가능하여 버퍼/드라이버(38)에 연결되고 출력선(40)을 구동시켜 출력 신호 Sin를 제공한다.
출력 Sin에 대한 송신 경로는 A/D 변환기(42)로 입력되어, 선(44)에서 샘플링된 디지털 출력 Sin(k)을 제공한다. 이는 감산 회로(46)의 양수 입력에 주어진다. 선(30)상의 Rin(k)에 연결된 입력을 갖고 출력에서 필터처리된 출력 신호를 제공하는 적응 필터(50)가 제공되어, 그 출력이 감산 회로(46)의 음수 입력에 주어진다. 이는 선(44)상의 샘플링된 신호 Sin(k)와 적응 필터(50)에 의해 출력된 신호의 차이를 제공한다. 이는 선(48)에서 샘플링된 신호인 잔류 신호 Res(k)로 출력된다. 선(48)의 신호 Res(k)는 D/A 변환기(54)에 입력되어 원거리 종단에 출력 신호를 제공한다.
적응 필터(50)는 기본적인 에코 소거 동작을 제공하도록 동작가능하다. 도 1에 도시된 바와 같이, 에코 경로는 스피커(20)와 마이크로폰(22) 사이에 있다. 이와 같이, Rin신호의 일부는 수신되어 다시 송신 경로로 공급되므로, Rin신호의 일부가 Sout에 남게 된다. 적응 필터(50)는 단거리 종단 경로의 조정 평가된 펄스 응답을 전개시켜 주기적으로 업데이트하고, 평가된 펄스 응답 및 기록된 경로 신호에 따라, 수신 경로 신호에 응답해 전송-입력 경로에서 일어나는 에코 신호의 평가를 발생하도록 동작가능하다. 이 에코 평가 신호는 선(48)에서 전송-출력 경로 신호 Res(k)를 산출하도록 감산 회로(46)에서 전송-입력 신호 Sin(k)과 수적으로 조합된다. 적응 필터는 또한 입력으로 적응 동작에 사용되는 Res(k) 신호를 수신한다.
에코 경로로의 정상 동작에서, 에코 소거기는 반사 신호를 평가하고, 이 평가량은 에코 감소 정도를 결정하게 된다. 평가량의 측정은 에코 복귀 손실 증진(echo return-loss enhancement ; ERLE)이라 칭하여진다. 이는 에코 소거기에 의해 제공되는 에코 전력의 감소로 정의된다; 즉, 이것은 다음과 같이 평가된 에코 전력에 대한 에코 소거기의 출력 신호에서의 평가된 전력의 비율이다
<수식 에디터를 인스톨하고 여기를 두번 클릭하여 수식을 본다.>
여기서, E = 기대값 연산자.
이 에코 감소는 또한 루프 이득을 줄이는 데도 중요하다. 원거리 종단 및 단거리 종단은 음향적 루프에 의해 연결된다. 이 루프에서의 루프 이득이 너무 높으면, 루프는 불안정하게 되고 음향적 하울링(howling)을 만들게 된다. 원거리 종단에서의 시스템이 완전 이중 스피커폰이면, 단거리 종단 에코 소거기로부터의 루프 이득 감소에 의존할 수 있는 경우, 스피커폰은 더 높은 출력 및 입력 이득으로 동작될 수 있다.
에코 소거기는 에코 경로를 효율적으로 모델화하고 에코 신호의 예측을 제공하도록 동작될 수 있는 적응 필터(50)로 원거리 종단에서의 신호를 필터처리함으로서 평가를 산출한다. 현대의 에코 소거기에서는 이 필터가 LMS(Least-Mean Squared) 알고리즘에 의해 실시된다. 이러한 시스템에서, 원거리 종단로부터의 신호, 즉 "트레이닝 신호(training signal)"는 에코 경로를 "밝힌다"; 즉, LMS 알고리즘은 일단 단거리 종단 마이크로폰(22)에서 수신되는 경우 원거리 종단 신호에 대한 경로 효과를 관찰함으로서 경로 응답을 평가할 수 있다.
이제는 도 3을 참고로, 적응 필터(50)의 블럭도가 설명된다. 필터(50)에서, 원거리 종단 신호의 샘플링된 입력 시퀀스 Rin(k)는 필터 출력 y(k)을 만들도록 샘플링된 입력 시퀀스의 콘볼루션(convolution)을 실행하는 적응 FIR 필터부(56)에 제공된다. 이후, 감산 회로(64)에 의해 필터 출력 y(k)과 샘플링된 단거리 종단 신호 Sin(k) 사이의 차이를 계산함으로서 에러항 Res(k)이 결정된다. 이어서, 에러항 Res(k)은 적응 FIR 필터(56)에 의해 사용되는 업데이트된 가중치 계수를 계산하도록 LMS 적응 알고리즘 블럭(68)에 인가된다. N개 탭(tap)을 갖는 FIR 필터를 사용하는 본 발명의 필터에서는 가중치 업데이트 계산을 위해 LMS 평가 기술이 사용된다.
<수식 에디터를 인스톨하고 여기를 두번 클릭하여 수식을 본다>
특히, 샘플링된 입력 시퀀스 Rin(k)에 대해, 시스템은 출력을 계산하고, 이후에는 LMS 알고리즘을 사용해 가중치 wn(k)가 또한 업데이트된다. 바람직하게, 시스템은 LMS 알고리즘에 따라 각 탭의 가중치 업데이트를 각각 계산하는 "n"개 병렬 처리 소자와 제k 샘플링 순간에 탭 n에 대한 조정가능한 가중치 wn(k)를 갖는 N-스테이지 적응 필터를 사용한다.
이상적으로는 필터 출력 y(k)가 기준 Sin(k)와 동일하지만, 그렇지 않은 경우 에러 신호가 형성된다:
<수식 에디터를 인스톨하고 여기를 두번 클릭하여 수식을 본다>
이후에는 LMS 알고리즘이나 일부 반복적인 알고리즘에 따라 에러 전력이 최소화된다.
이제는 도 4를 참조로, 산술적 엔진과 저장 디바이스를 설명하는 적응 필터(56)의 블럭도가 도시된다. 데이터는 입력 버스(72)에서 수신되어 신데이터 레지스터(74)에 입력된다. 이 신데이터 레지스터는 버스와 인터페이스 연결된다. 버스(76)는 버스(76)와 인터페이스 연결된 신데이터 레지스터(74) 및 데이터 레지스터(80)를 사용해 데이터가 데이터 RAM(78)으로부터 회복되거나 그에 전달되는 것을 허용한다. 데이터 RAM(78)은 데이터를 고정 소수점이나 부동 소수점으로 저장하는데 사용된다. 부동 소수점 포맷에서, 데이터는 신호가 정해진 가수(Mb)와 신호가 정해지지 않은 지수(Eb)로 구성된다. FIR 필터에 대한 계수는 데이터를 계수 레지스터(88)로 판독하고 업데이트 블럭(100)으로부터 데이터를 기록하도록 버스(86)와 인터페이스 연결된 계수 RAM(84)에 저장된다. 계수 RAM(84)내의 데이터는 부호가 정해지지 않은 단일 지수와 연관된 블럭 스케일 부동점 값이다. 그러나, 지수는 계수 RAM(84)에 저장되지 않고, 가수(Mc)만이 계수 RAM(84)에 저장된다. 이후 설명될 바와 같이, 지수값은 계수 RAM(84)에 저장된 계수 데이터에 의존하여 변화가능하다. 계수 지수는 "0"에서 Ec,max사이의 범위를 갖는다. 여기서, Ec,max는 RAM(84)에서 가수로 저장된 유의 비트의 수와 계수 범위의 선택에 의존한다. 한 예로, 24-비트 계수 범위에서, 16개 유의 비트가 RAM(84)에 저장되면, Ec,max는 "8"이 된다.
데이터 및 필터 계수에 부가하여, 에러 레지스터(92)에 저장되는 에러 구성성분 및 도 3의 블럭(68)에서 적응 알고리즘의 계수 업데이트 동작이 또한 요구된다. 이는 버스(94)와 인터페이스 연결된다.
콘볼루션을 실행하고 또한 계수를 업데이트하기 위해서는 각각 데이터 레지스터(80) 및 계수 레지스터(88)를 통해 RAM(78) 및 (84)로부터 적절한 데이터를 추출하고 이들 값과 에러 레지스터(92)에 저장된 값들을 취하여 선(102)에서 필터 출력을 발생시키는 콘볼루션 동작을 실행하거나 업데이트 블럭(100)으로 업데이트된 계수값을 발생시키도록 동작가능한 FIR/업데이트 엔진(96)이 제공된다. 업데이트 블럭(100)은 이후 더 상세히 설명될 바와 같이, 업데이트된 가수값(Mc)과 지수값(Ec)을 발생시킨다. 계수 지수(Ec)는 처리과정 동안 FIR/업데이트 엔진(96)에 의해 사용되는 블럭(98)에 저장된다. 지수(Ec)는 계수 RAM(84)에 저장된 모든 가수값(Mc)에 대해 단일 값이므로, 각 가수에 대한 지수를 저장하는 시스템의 구성성분으로 메모리가 덜 요구된다. 그러나, 다른 지수(Ec)에 대한 가수값(Mc)은 계수 RAM(84)에 저장될 수 있음을 주목하여야 한다. 예를 들어, 가수(Mc1)의 반은 제1 지수(Ec1)를 갖고, 나머지 가수(Mc2)는 그와 연관된 제2 지수(Ec2)를 가질 수 있다. 이는 이후 더 상세히 설명된다.
에코 소거와 같은 응용에서, 계수 업데이트는 계수가 연속적인 싸이클에서 상당한 양 만큼 변화되지 않는 방식으로 제어될 수 있다. 또한, 큰 계수는 에코 경로로 인한 지연에 대응하여 가장 관심 갖는 것이고, 나머지 계수는 유용한 정보를 많이 운송하지 못하는 것이 계수의 특성이다. 이는 계수를 이상적으로 블럭 스케일 부동 소수점 표시에 적합하게 만든다. 결과적으로, 메모리는 한 레지스터가 공통 지수를 저장하는데 사용될 수 있는 반면 가수만을 저장할 필요가 있으므로 모든 계수를 유지하는데 요구되는 저장 공간을 상당히 절약하게 된다. 이는 또한 이후 더 상세히 설명된다.
이제는 도 5를 참고로, FIR/업데이트 엔진(96)에서 계수 업데이트 동작의 데이터 흐름을 도시한다. 에러 가수(Me)는 기본적으로 에러 레지스터(92)인 메모리 영역(110)으로부터 회복되어, 버스(94)에 놓인다. 동시에, 데이터 가수(Mb)는 데이터 메모리(78)로부터 회복되어 데이터 가수 레지스터(104)를 통해 버스(106)에 놓인다. 에러 가수(Me)는 곱셈기(108)에서 데이터 가수(Mb)로 곱하여 버스(114)에 그 곱셈값을 제공한다. 이 중간 곱셈값은 곱셈 레지스터(116)에 저장된다. 곱셈 레지스터(116)의 출력은 쉬프트 제어 블럭(136)에 의해 제어되는 배럴 쉬프터 (barrel shifter)(120)로 입력된다. 쉬프트 제어 블럭(136)은 데이터 지수(Eb), 에러 지수(Ee), 계수 지수(Ec)의 음수, 및 계수 쉬프트(Cs)를 수신한다. 배럴 쉬프터(120)는 데이터 지수(Eb), 에러 지수(Ee), 계수 지수(Ec)의 음수, 및 계수 쉬프트(Cs)의 합과 같은 쉬프트를 제공하도록 동작가능하고, 계수 쉬프트값은 이후 설명될 바와 같이, 마지막 샘플 시간의 계수 업데이트 동작 동안에 계수 점검 디바이스에 의해 결정된 쉬프트량이다. 배럴 쉬프터(120)의 출력은 버스(154)에 놓여 누적기(158)로 전해진다. 누적기(158)는 배럴 쉬프터(120)의 출력을 버스(152)상의 값과 더하도록 동작가능하다. 버스(152)상의 값은 오래된 계수 가수(Mc)를 레지스터(88)로부터 버스(90)를 통해 쉬프트 블럭(146)에 입력함으로서 유도된다. 쉬프트 블럭(146)은 가수를 "+1" 또는 "-1" 만큼 쉬프트시키도록 동작가능하다. 우측 쉬프트 또는 좌측 쉬프트인 이 쉬프트량은 상기에서 설명되었던 계수 쉬프트값이다. 쉬프트된 값은 버스(148)로 출력되어 부호 확장 블럭(150)으로 입력되고, 이 블럭(150)은 버스(152)에서 요구되는 워드 길이의 값을 제공하도록 부호 비트를 확장하도록 동작가능하다. 버스(152)상의 값은 배럴 쉬프터(120)의 출력인 업데이트 항과 더해져 중간 레지스터(160)에 저장된다. 이후에는 새로운 계수 가수가 계수 메모리(84)로 업데이트되고, 이는 오래된 계수 가수값에 오버라이트(overwrite)된다.
RAM(84)내의 모든 계수 가수가 업데이트된 이후에, Cs가 "+1"과 같은 값을 가지면, 즉 업데이트 싸이클 동안 모든 계수값이 우로 쉬프트되면, 계수 지수(Ec)의 값은 1만큼 증가된다. Cs가 "-1"과 같은 값을 가지면, 즉 업데이트 싸이클 동안 모든 계수값이 좌로 쉬프트되면, 계수 지수(Ec)의 값은 1만큼 감소된다.
배럴 쉬프터(120)에 의해 실행될 수 있는 최대 쉬프트는 에러 지수(Ee)의 최대값이 더해진 데이터 지수(Eb)의 최대값이고, 그로부터 계수 지수(Ec)의 최소값이 감산되어, "+1"과 같은 계수 쉬프트(Cs)의 최대값이 부가된다. 최소 쉬프트는 에러 지수(Ee)의 최소값이 더해진 데이터 지수(Eb)의 최소값이고, 그로부터 계수 지수(Ec)의 최대값이 감산되어, "-1"과 같은 계수 쉬프트(Cs)의 최소값이 부가된다. 이 값들을 근거로, 배럴 쉬프터(120)는 (Eb,min+ Ee,min - Ec,max+ Cs,min)에서 (Eb,max+ Ee,max- Ec,min+ Cs,max)까지의 쉬프트 범위를 다룰 수 있어야 한다.
이제는 도 6을 참고로, 콘볼루션 동작의 블럭도가 도시된다. 상술된 바와 같이, 데이터 RAM(78)내의 데이터는 부호가 정해진 가수(Mb) 및 부호가 정해지지 않은 지수(Eb)로 구성된다. 데이터의 가수(Mb)는 데이터 RAM(78)으로부터 순차적인 방법으로 판독되어 레지스터(162)에 저장된다. 이 가수는 버스(164)에서 곱셈기(170)로 출력된다. 계수 가수(Mc)는 계수 RAM(84)에 저장된다. 이들은 또한 계수 RAM(84)으로부터 순차적인 방식으로 판독되어 레지스터(88)에 저장된다. 이 레지스터의 출력은 버스(99)에 놓여 곱셈기(170)로 입력된다.
데이터 가수(Mb)와 계수 가수(Mc)에 대한 곱셈기(170)의 곱셈 출력은 중간 버스(172)에 제공되고, 이어서 곱셈 레지스터(174)에 입력된다. 이 곱셈 레지스터의 출력은 배럴 쉬프터 회로(178)에 입력된다. 데이터 지수(Eb)는 순차적인 방식으로 판독되어 레지스터(180)에 저장된다. 이 레지스터의 출력은 버스(182)에 놓여 쉬프트 제어 블럭(184)으로 입력된다. 쉬프트 제어 블럭(184)은 데이터 가수값으로부터 배럴 쉬프터로 입력되는 쉬프트량을 계산하고 그 결과를 버스(186)에 입력한다. 이 값은 배럴 쉬프터(178)에 입력되어, 쉬프트 제어 블럭에 의해 계산된 양만큼 버스(178)상의 입력값을 쉬프트하고 쉬프트된 출력값을 버스(188)에 제공한다. 배럴 쉬프터(178)의 출력은 가산기(190)에 입력된다. 가산기(190)는 필터의 모든 탭에 대해 버스(188)상의 쉬프트된 출력값을 누적시킨다. 이는 데이터 RAM(78)내의 모든 위치와 대응하는 가중치 계수값을 계수 RAM(84)에서 순차적으로 판독하고 모든 탭에 대해 상술된 과정을 반복함으로서 이루어진다. FIR 필터에서 모든 탭을 처리한 이후에, 가산기(178)는 콘볼루션 가수 결과를 버스(192)에 제공하고, 이를 레지스터(194)에 저장한다. 레지스터(194)는 또한 누적 동작이 실행되고 있는 동안 중간 콘볼루션값들을 저장하는데 사용된다. 레지스터(194)의 출력은 버스(196)를 통해 가산기(190)에 연결된다. 콘볼루션 결과의 지수는 계수 RAM(84)의 블럭 스케일 지수와 같다.
이제는 도 7을 참고로, 계수 점검 동작을 위한 흐름도가 도시된다. 흐름도는 Rin(k)의 새로운 값이 발생될 때 블럭(198)에서 초기화되어 기능 블럭(200)으로 이어진다. 이 블럭에서는 판독되고 있는 계수 RAM(84)의 위치에 어드레스를 제공하는 인덱스(I)가 0으로 초기화된다. 2개 이상의 변수, shift_left 및 shift_right가 또한 각각 1 및 0으로 초기화된다. 기능 블럭(200)으로부터, 제어는 기능 블럭(202)에서 들어가게 되는 루프로 이어진다. 그 루프는 인덱스(I)에 의해 지시된 어드레스에 대응하는 업데이트된 계수값을 인출하는 것으로부터 시작되는데, 이는 도 5에 도시되었던 계수 업데이트 블럭에 의해 계수 RAM(84)으로 업데이트되었다. 흐름은 업데이트된 계수값이 판독된 이후 두 가지로 나뉜다. 제1 가지에서, 제어는 변수 shift_left가 값 "1"인가를 테스트하는 결정 블럭(204)으로 이어진다. shift_left 변수가 "0"의 값을 가지면, 제어는 "N" 경로를 따라 기능 블럭(216)으로 이어진다. 그러나, shift_left 변수가 "1"의 값을 가지면, 제어는 "Y" 경로를 따라 결정 블럭(206)으로 이어져, 지수의 최상위 비트(MSB)가 점검된다. MSB가 음수에 대해 "111" 또는 양수에 대해 "0"이면, shift_left 변수의 값은 변하지 않고 제어가 "Y" 경로를 따라 직접 기능 블럭(216)으로 이어진다. 그러나, MSB가 "111" 또는 "0"이 아니면, 가수값이 큰 것으로 결정되어 계수값은 다음 샘플 시간에 좌로 쉬프트되지 말아야 한다. 이 경우, 제어는 "N" 경로를 따라 shift_left 변수가 "0" 값으로 지정되는 기능 블럭(208)으로 이어진다. 계수 RAM(84)에서 모든 계수 가수가 "0" 또는 "111"과 같은 값을 가지면, shift_left 변수는 제어가 루프에 존재할 때 0의 값을 갖게 된다. 기능 블럭(208)으로부터, 제어는 기능 블럭(216)으로 이어진다.
다른 가지의 제어 흐름에서, 결정 블럭(210)은 변수 shift_right의 값을 점검하고, 이것이 0이면, 가지 처리과정의 나머지는 통과되고 제어가 "Y" 경로를 따라 직접 기능 블럭(216)으로 이어진다. 그러나, shift_right 변수가 0의 값을 갖지 않으면, 제어는 "N" 경로를 따라 이어져 결정 블럭(212)에 의해 계수의 MSB가 음수에 대해 "10" 또는 양수에 대해 "1"인가 테스트된다. MSB가 상술된 기준을 만족하면, 계수는 큰 값을 가진 것으로 결정되어, RAM 내의 모든 계수는 다음 샘플 시간에 좌로 쉬프트되지 말아야 한다. 이러한 조건 하에서, 제어는 "Y" 경로를 따라 shift_right 변수가 "1"의 값으로 설정되는 기능 블럭(214)으로 이어진다. 그러나, MSB가 "1" 또는 "10"이 아니면, 제어는 "N" 경로를 따라 기능 블럭(216)으로 직접 이어진다.
RAM(84)에 어드레스를 제공하는데 사용되는 인덱스(I)는 제어 흐름 중 기능 블럭(216)에서 1만큼 증가된다. 이는 RAM(84)의 어드레스를 다음 위치로 설정한다. 기능 블럭(216)으로부터, 제어는 인덱스(I)의 값이 필터에서 탭의 수와 같은가를 보도록 점검되는 결정 블럭(218)으로 이어진다. 두 값이 같으면, 계수 RAM(84) 내의 모든 계수가 처리된 것으로, 제어는 "Y" 경로를 따라 기능 블럭(220)으로 이어진다. 그러나, RAM내의 모든 계수가 처리되지 않았으면, 제어는 "N" 경로를 따라 기능 블럭(202)의 루프 시작점으로 이어진다.
RAM 내의 모든 계수가 처리된 이후, 제어 흐름은 루프에 존재하여, 변수 Cs가 "0"의 값으로 초기화되는 기능 블럭(220)으로 이어진다. 다음 단계인 결정 블럭(222)에서, shift_left 변수는 "1"인가 여부를 보도록 점검된다. shift_left의 값이 "1"이면, RAM(84)에 저장된 모든 계수 가수는 작으므로 정확도를 최대화하기 위해 다음 업데이트 싸이클에서 1 만큼 좌로 쉬프트되지 말아야 하고, 제어는 "Y" 경로를 따라 결정 블럭(224)으로 이어진다. 그러나, 계수 지수의 값이 "0"이면, 계수 RAM(84)은 모든 계수를 정확히 저장하고 있으므로, RAM(84)내의 값은 다음 업데이트 싸이클에서 좌로 쉬프트되지 말아야 한다. 이 조건하에서, 제어는 "N" 경로를 따라 직접 결정 블럭(228)으로 이어진다. 결정 블럭(224)에서, 계수 지수가 0의 값을 갖는 것으로 결정되면, 제어는 "Y" 경로를 따라 결정 블럭(228)으로 이어진다. 그러나, 계수 지수가 0이 아닌 값을 갖는 것으로 결정되면, 제어는 "N" 경로를 따라 Cs의 값이 "-1"로 설정되는 기능 블럭(226)으로 이어진다. 이는 다음 계수 업데이트 싸이클에서 RAM(84)내의 모든 계수 가수가 1만큼 좌로 쉬프트되게 한다.
결정 블럭(228)에서, shift_right 변수는 "1"인가 여부를 보도록 점검된다. 하나의 계수 가수가 "1" 또는 "10"의 MSB를 갖는 것으로 발견되면, 변수 shift_right는 "1"의 값으로 설정된다. 이 경우, 계수 가수값은 커지므로, 다음 업데이트 싸이클에서 오버플로우(overflow)될 가능성이 있다. 오버플로우를 방지하기 위해, RAM(84) 내의 모든 계수는 다음 업데이트 싸이클에서 우로 쉬프트되어야 한다. shift_right의 값이 "1"이 아니면, 제어는 "N" 경로를 따라 기능 블럭(234)으로 이어진다. 그러나, shift_right의 값이 "1"이면, 제어는 "Y" 경로를 따라 결정 블럭(230)으로 이어진다. 결정 블럭(230)에서, 계수 지수값은 허용된 최대값(Ec,max)인가 여부를 보도록 점검된다. 그런 경우, 제어는 "Y" 경로를 따라 기능 블럭(234)으로 이어지고, 그렇지 않은 경우, 제어는 "N" 경로를 따라 기능 블럭(232)으로 이어져 Cs의 값이 "+1"로 설정된다. 이는 다음 계수 업데이트 싸이클에서 RAM(84)내의 모든 계수 가수가 1만큼 우로 쉬프트되게 한다. 계수 점검 동작 제어 흐름은 기능 블럭(234)에서 중단된다.
상술된 모든 바람직한 실시예는 계수에 대한 모든 가수의 지수를 정의하는 데 단일 계수 지수만을 사용한다. 전형적으로, 계수는 소정의 필터 응용에서 최소로부터 최대까지의 범위를 갖는 값을 갖는다. 최대는 전형적으로 중간 계수 범위에서 발생된다. 그러므로, 계수는 최소에서 최대로 다시 최소로 변하게 된다. 이와 같이, 필터의 맨끝부분에서 계수의 최소값은 계수 RAM의 다른 영역에 대해 하나씩 2개의 지수 계수를 가짐으로서 설명될 수 있다. 예를 들면, RAM 중 상단 1/3과 하단 1/3은 이들 계수와 연관된 한 지수를 갖고, 계수 RAM의 중간 부분은 제2 성분을 가질 수 있다. 이는 각 해상도 단계에 대해 하나의 지수만을 요구하면서 계수에 대한 다른 해상도를 허용한다. 그러므로, 처리과정 동안 소정의 블럭에 대한 정보를 처리하기 위해 이 지수만을 알 필요가 있도록 연관된 단일 지수를 갖는 다수의 고정 블럭이 있을 수 있다. 블럭 경계를 통과할 때는 단지 가수를 추출하는 경우 다른 지수를 사용할 필요가 있다. 인접한 두 블럭 사이의 블럭 경계가 다른 블럭에서 상대적인 값의 함수로 결정될 수 있더라도, 블럭 크기가 소정의 가수값에서의 변화에 독립적으로 고정되는 것만이 중요하다. 본 실시예에서 기술되는 주요 특성은 각 값에 대해 가수와 계수 모두를 저장하는 시스템과 비교해 상당히 줄어든 저장 영역이 요구되도록 가수와 비교해 단지 제한된 지수의 수만이 있다는 것이다.
요약하여, 블럭 스케일 부동 소수점 계수 및 고정 소수점 또는 부동 소수점 데이터의 조합을 사용하는 적응 필터가 제공된다. 이들 계수는 필터 출력과 샘플링된 단거리 종단 신호의 차이를 취함으로서 결정되는 에러값의 함수로 필터 응답이 변하는 변수이다. 이 에러값은 계수를 변화시키고 업데이트된 계수를 계수 메모리에 저장함으로서 최소화된다. 계수는 블럭 스케일 부동 소수점 포맷으로 저장되고, 가수는 메모리에, 또한 공통 지시는 레지스터에 저장된다. 계수값이 증가됨에 따라, 계수 중 고정된 수의 최상위 비트가 메모리에 저장되고 지수는 증가된다. 계수값이 감소되면, 더 많은 최하위 비트가 메모리에 저장되고 지수는 감소된다. 공통 지수는 같은 양만큼 계수 메모리내의 모든 값을 스케일 조정한다.
비록 바람직한 실시예가 상세히 설명되었지만, 청부된 청구항에 의해 정의된 본 발명의 의도 및 범위에서 벗어나지 않고 다양한 변화, 대치, 및 변형이 이루어질 수 있다는 것을 알아야 한다.

Claims (31)

  1. 적응 필터에 있어서,
    데이터를 저장하는 데이터 메모리;
    정의된 계수 지수값과 함께 필터 계수 가수를 블럭 스케일 부동 소수점 포맷으로 저장하는 계수 메모리;
    상기 데이터 메모리에 저장하기 위한 입력 데이터를 수신하고, 상기 저장된 데이터 및 상기 저장된 계수 가수를 처리하여 디지털 필터 출력값을 제공하는 디지털 필터 엔진;
    상기 계수 메모리에 저장하기 위해 소정의 알고리즘에 따라 상기 데이터 메모리에 저장된 상기 계수 가수값을 변화시켜 업데이트된 계수 가수를 제공하는 계수 업데이트 디바이스; 및
    가수에 대한 필터 계수의 지수를 변화시켜 가수로서 저장될 수 있는 값의 범위를 최대화시키는 지수 디바이스
    를 포함하는 것을 특징으로 하는 적응 필터.
  2. 제1항에 있어서, 상기 데이터 메모리는 저장된 각각의 데이터 워드에 연관된 가수 및 지수 모두를 갖는 데이터를 부동 소수점 포맷으로 저장하도록 동작가능한 것을 특징으로 하는 적응 필터.
  3. 제1항에 있어서, 상기 디지털 필터 엔진은 유한 임펄스 응답 엔진을 포함하는 것을 특징으로 하는 적응 필터.
  4. 제1항에 있어서, 상기 계수 업데이트 디바이스는 상기 계수 메모리에 저장된 상기 계수값을 변화시켜 상기 FIR 필터 엔진의 출력과 소정의 출력 사이에 존재하도록 결정되는 에러값을 최소화시키는 것을 특징으로 하는 적응 필터.
  5. 제1항에 있어서, 상기 지수 디바이스는:
    상기 계수 메모리에 저장된 각 계수 가수에 대해 상기 최대 계수 지수를 소정의 임계값에 비교하는 비교 회로;
    값이 소정의 임계값을 넘을 때 최대값을 갖는 계수 가수를 소정의 비트수 만큼 우로 쉬프트하고, 상기 소정의 비트수 만큼 지수를 증가시키는 우측 쉬프트 회로; 및
    값이 소정의 임계값 보다 작을 때 최대값을 갖는 계수 가수를 소정의 비트수 만큼 좌로 쉬프트하고, 상기 소정의 비트수 만큼 지수를 감소시키는 좌측 쉬프트 회로
    를 포함하는 것을 특징으로 하는 적응 필터.
  6. 적응 필터에 있어서,
    데이터를 저장하는 데이터 메모리;
    적어도 두 부분을 가지며, 필터 계수 가수를 상기 적어도 두 부분 각각과 연관된 정의된 계수 지수값과 내부에 정의된 가수와 함께 블럭 스케일 부동 소수점 포맷으로 저장하기 위한 계수 메모리;
    상기 데이터 메모리에 저장하기 위한 입력 데이터를 수신하고, 상기 저장된 데이터 및 상기 저장된 계수 가수를 처리하여 디지털 필터 출력값을 제공하는 디지털 필터 엔진;
    상기 계수 메모리에 저장하기 위해 소정의 알고리즘에 따라 상기 데이터 메모리에 저장된 상기 계수 가수값을 변화시켜 업데이트된 계수 가수를 제공하는 계수 업데이트 디바이스; 및
    상기 적어도 두 부분에 가수로 저장될 수 있는 값의 범위를 최대화하도록 상기 적어도 두 부분 각각에 있는 소정의 길이의 가수에 대한 필터 계수의 지수를 변화시키는 지수 디바이스
    를 포함하는 것을 특징으로 하는 적응 필터.
  7. 제6항에 있어서, 상기 데이터 메모리는 저장된 각각의 데이터 워드와 연관된 가수 및 지수 모두를 갖는 데이타를 부동 소수점 포맷으로 저장하도록 동작가능한 것을 특징으로 하는 적응 필터.
  8. 제6항에 있어서, 상기 디지털 필터 엔진은 유한 임펄스 응답 엔진을 포함하는 것을 특징으로 하는 적응 필터.
  9. 제6항에 있어서, 상기 계수 업데이트 디바이스는 상기 계수 메모리의 상기 적어도 두 부분에 저장된 상기 계수값을 변화시켜 상기 FIR 필터 엔진의 출력과 소정의 출력 사이에 존재하도록 결정되는 에러값을 최소화시키는 것을 특징으로 하는 적응 필터.
  10. 제6항에 있어서, 상기 지수 디바이스는:
    상기 계수 메모리내의 상기 적어도 두 부분에 저장된 상기 계수 가수의 각각에 대해 상기 최대 계수 지수를 소정의 임계값에 비교하는 비교 회로;
    값이 소정의 임계값을 넘을 때 최대값을 갖는 상기 적어도 두 부분 각각내의 계수 가수를 소정의 비트수 만큼 우로 쉬프트하고, 상기 소정의 비트수 만큼 상기 적어도 두 부분 중 연관된 부분에 대한 지수를 증가시키는 우측 쉬프트 회로; 및
    값이 소정의 임계값 보다 작을 때 최대값을 갖는 상기 적어도 두 부분 각각내의 계수 가수를 소정의 비트수 만큼 좌로 쉬프트하고, 상기 소정의 비트수 만큼 상기 적어도 두 부분 중 연관된 부분에 대한 지수를 감소시키는 좌측 쉬프트 회로
    를 포함하는 것을 특징으로 하는 적응 필터.
  11. 데이터를 적응적으로 필터링하는 방법에 있어서,
    데이터를 데이터 메모리에 저장하는 단계;
    정의된 계수 지수값을 갖는 필터 계수 가수를 블럭 스케일 부동 소수점 포맷으로 계수 메모리에 저장하는 단계;
    상기 데이터 메모리에 저장하기 위한 입력 데이터를 디지털 필터 엔진으로 수신하고, 상기 저장된 데이터 및 상기 저장된 계수 가수를 처리하여 디지털 필터 출력값을 제공하는 단계;
    상기 계수 메모리에 저장하기 위해 소정의 알고리즘에 따라 상기 데이터 메모리에 저장된 계수 가수값을 계수 업데이트 디바이스로서 변화시켜 업데이트된 계수 가수를 제공하는 단계; 및
    가수에 대한 상기 필터 계수의 지수를 지수 디바이스로서 변화시켜 가수로서 저장될 수 있는 값의 범위를 최대화시키는 단계
    를 포함하는 것을 특징으로 하는 방법.
  12. 제11항에 있어서, 상기 데이터 메모리는 저장된 각각의 데이터 워드와 연관된 가수 및 지수 모두를 갖는 데이타를 부동 소수점 포맷으로 저장하도록 동작가능한 것을 특징으로 방법.
  13. 제11항에 있어서, 상기 디지털 필터 엔진은 유한 임펄스 응답(FIR) 엔진을 포함하는 것을 특징으로 하는 방법.
  14. 제11항에 있어서, 상기 계수 업데이트 디바이스는 상기 계수 메모리에 저장된 계수값을 변화시켜 상기 FIR 필터 엔진의 출력과 소정의 출력 사이에 존재하도록 결정되는 에러값을 최소화시키는 것을 특징으로 하는 방법.
  15. 제11항에 있어서, 상기 지수 디바이스로서 변화시키는 단계는,
    비교 회로로서 상기 계수 메모리에 저장된 각 계수 가수에 대해 상기 최대 계수 지수를 소정의 임계값에 비교하는 단계;
    값이 소정의 임계값을 넘을 때 최대값을 갖는 계수 가수를 우측 쉬프트 회로로서 소정의 비트수 만큼 우로 쉬프트하고, 상기 소정의 비트수 만큼 지수를 증가시키는 단계; 및
    값이 소정의 임계값 보다 작을 때 최대값을 갖는 계수 가수를 좌측 쉬프트 회로로서 소정의 비트수 만큼 좌로 쉬프트하고, 상기 소정의 비트수 만큼 지수를 감소시키는 단계
    를 포함하는 것을 특징으로 하는 방법.
  16. 데이터를 적응적으로 필터링하는 방법에 있어서,
    데이터를 데이터 메모리에 저장하는 단계;
    적어도 두 부분을 갖는 계수 메모리에, 필터 계수 가수를 상기 적어도 두 부분 각각과 연관된 정의된 계수 지수값과 내부에 정의된 가수와 함께 블럭 스케일 부동 소수점 포맷으로 저장하는 단계;
    상기 데이터 메모리에 저장하기 위한 입력 데이터를 디지털 필터 엔진으로서 수신하고, 상기 저장된 데이터 및 저장된 계수 가수를 처리하여 디지털 필터 출력값을 제공하는 단계;
    상기 계수 메모리에 저장하기 위해 소정의 알고리즘에 따라 상기 데이터 메모리에 저장된 계수 가수값을 계수 업데이트 디바이스로서 변화시켜 업데이트된 계수 가수를 제공하는 단계; 및
    상기 적어도 두 부분 각각에 있는 소정 길이의 가수에 대해 상기 적어도 두 부분에 가수로서 저장될 수 있는 값의 범위를 최대화시켜 상기 필터 계수의 지수를 지수 디바이스로서 변화시키는 단계
    를 포함하는 것을 특징으로 하는 방법.
  17. 제16항에 있어서, 상기 데이터 메모리는 저장된 각각의 데이터 워드와 연관된 가수 및 지수 모두를 갖는 데이터를 부동 소수점 포맷으로 저장하도록 동작가능한 것을 특징으로 하는 방법.
  18. 제16항에 있어서, 상기 디지털 필터 엔진은 유한 임펄스 응답(FIR) 엔진을 포함하는 것을 특징으로 하는 방법.
  19. 제16항에 있어서, 상기 계수 업데이트 디바이스는 상기 계수 메모리의 적어도 두 부분에 저장된 계수값을 변화시켜 상기 FIR 필터 엔진의 출력과 소정의 출력 사이에 존재하도록 결정되는 에러값을 최소화시키는 것을 특징으로 하는 방법.
  20. 제16항에 있어서, 지수 디바이스로 변화하는 단계는:
    상기 계수 메모리내의 상기 적어도 두 부분의 각각에 저장된 상기 계수 가수의 각각에 대해 비교 회로로서 상기 최대 계수 지수를 소정의 임계값에 비교하는 단계;
    값이 소정의 임계값을 넘을 때 최대값을 갖는 적어도 두 부분 각각내의 상기 계수 가수를 우측 쉬프트 회로로서 소정의 비트수 만큼 우로 쉬프트하고, 상기 소정의 비트수 만큼 적어도 두 부분 중 연관된 부분에 대한 지수를 증가시키는 단계; 및
    값이 소정의 임계값 보다 작을 때 최대값을 갖는 적어도 두 부분 각각내의 상기 계수 가수를 좌측 쉬프트 회로로서 소정의 비트수 만큼 좌로 쉬프트하고, 상기 소정의 비트수 만큼 적어도 두 부분 중 연관된 부분에 대한 지수를 감소시키는 단계
    를 포함하는 것을 특징으로 하는 방법.
  21. 원거리 종단 사용자와 단거리 종단 사용자 사이에 배치된 분배선을 통해 원거리 종단 사용자와 단거리 종단 사용자 간을 인터페이스하기 위한 전화 시스템에 있어서,
    단거리 종단에 있으며, 상기 전화선을 통해 원거리 종단 사용자로부터 인입 신호를 수신하기 위한 수신 경로;
    상기 인입 신호를 가청 신호로 변환하기 위한 제1 오디오 트랜스듀서;
    상기 전화선을 통해 전송하기 위해 상기 단거리 종단에서의 가청 신호를 유출(outbound) 오디오 신호로 변환하기 위한 제2 오디오 트랜스듀서;
    상기 유출 오디오 신호를 상기 원거리 종단 사용자에게 전송하는 송신 경로; 및
    상기 송신 경로와 상기 수신 경로 사이의 상기 단거리 종단에 배치되고, 적응 필터를 포함하는 에코 소거기 디바이스
    를 포함하되, 상기 적응 필터가
    데이터를 저장하는 데이터 메모리;
    정의된 계수 지수값과 함께 필터 계수 가수를 블럭 스케일 부동 소수점 포맷으로 저장하는 계수 메모리;
    상기 데이터 메모리에 저장하기 위한 입력 데이터를 수신하고, 상기 저장된 데이터 및 상기 저장된 계수 가수를 처리하여 디지털 필터 출력값을 제공하는 디지털 필터 엔진;
    상기 계수 메모리에 저장하기 위해 소정의 알고리즘에 따라 상기 데이터 메모리에 저장된 상기 계수 가수값을 변화시켜 업데이트된 계수 가수를 제공하는 계수 업데이트 디바이스; 및
    가수에 대한 상기 필터 계수의 지수를 변화시켜 가수로서 저장될 수 있는 값의 범위를 최대화시키는 지수 디바이스
    를 포함하는 것을 특징으로 하는 시스템.
  22. 제21항에 있어서, 상기 데이터 메모리는 저장된 각 데이터 워드와 연관된 가수 및 지수 모두를 갖는 데이터를 부동 소수점 포맷으로 저장하도록 동작가능한 것을 특징으로 하는 시스템.
  23. 제21항에 있어서, 상기 디지털 필터 엔진은 유한 임펄스 응답(FIR) 엔진을 포함하는 것을 특징으로 하는 시스템.
  24. 제21항에 있어서, 상기 계수 업데이트 디바이스는 상기 계수 메모리에 저장된 상기 계수값을 변화시켜 상기 FIR 필터 엔진의 출력과 소정의 출력 사이에 존재하도록 결정되는 에러값을 최소화시키는 것을 특징으로 하는 시스템.
  25. 제21항에 있어서, 상기 지수 디바이스는,
    상기 계수 메모리에 저장된 각 계수 가수에 대해 상기 최대 계수 지수를 소정의 임계값에 비교하는 비교 회로;
    값이 소정의 임계값을 넘을 때 최대값을 갖는 계수 가수를 소정의 비트수 만큼 우로 쉬프트하고, 상기 소정의 비트수 만큼 지수를 증가시키는 우측 쉬프트 회로; 및
    값이 소정의 임계값 보다 작을 때 최대값을 갖는 상기 계수 가수를 소정의 비트수 만큼 좌로 쉬프트하고, 상기 소정의 비트수 만큼 지수를 감소시키는 좌측 쉬프트 회로
    를 포함하는 것을 특징으로 하는 시스템.
  26. 스피커폰 시스템에 있어서,
    가입자선을 통해 원거리 종단 사용자로부터 인입 신호를 수신하는 수신 경로;
    상기 인입 신호를 가청 신호로 변환하는 제1 오디오 트랜스듀서;
    상기 가입자선을 통해 전송하기 위해 상기 제1 오디오 트랜스듀서에 가까운 가청 신호를 유출 오디오 신호로 변환하는 제2 오디오 트랜스듀서;
    상기 유출 오디오 신호를 원거리 종단 사용자에게 전송하는 송신 경로; 및
    상기 송신 경로와 상기 수신 경로 사이에 배치되고, 적응 필터를 갖는 에코 소거기 디바이스
    를 포함하되, 상기 적응 필터가
    데이터를 저장하는 데이터 메모리;
    정의된 계수 지수값과 함께 필터 계수 가수를 블럭 스케일 부동 소수점 포맷으로 저장하는 계수 메모리;
    상기 데이터 메모리에 저장하기 위한 입력 데이터를 수신하고, 상기 저장된 데이터 및 상기 저장된 계수 가수를 처리하여 디지털 필터 출력값을 제공하는 디지털 필터 엔진;
    상기 계수 메모리에 저장하기 위해 소정의 알고리즘에 따라 상기 데이터 메모리에 저장된 상기 계수 가수값을 변화시켜 업데이트된 계수 가수를 제공하는 계수 업데이트 디바이스; 및
    가수에 대한 상기 필터 계수의 지수를 변화시켜 가수로서 저장될 수 있는 값의 범위를 최대화시키는 지수 디바이스
    를 포함하는 것을 특징으로 하는 스피커폰 시스템.
  27. 제26항에 있어서, 상기 데이터 메모리는 저장된 각 데이터 워드와 연관된 가수 및 지수 모두를 갖는 데이터를 부동 소수점 포맷으로 저장하도록 동작가능한 것을 특징으로 하는 스피커폰 시스템.
  28. 제26항에 있어서, 상기 디지털 필터 엔진은 유한 임펄스 응답(FIR) 엔진을 포함하는 것을 특징으로 하는 스피커폰 시스템.
  29. 제26항에 있어서, 상기 계수 업데이트 디바이스는 상기 계수 메모리에 저장된 상기 계수값을 변화시켜 상기 FIR 필터 엔진의 출력과 소정의 출력 사이에 존재하도록 결정되는 에러값을 최소화시키는 것을 특징으로 하는 스피커폰 시스템.
  30. 제26항에 있어서, 상기 지수 디바이스는,
    상기 계수 메모리에 저장된 상기 계수 가수 각각에 대해 상기 최대 계수 지수를 소정의 임계값에 비교하는 비교 회로;
    값이 소정의 임계값을 넘을 때 최대값을 갖는 계수 가수를 소정의 비트수 만큼 우로 쉬프트하고, 상기 소정의 비트수 만큼 지수를 증가시키는 우측 쉬프트 회로; 및
    값이 소정의 임계값 보다 작을 때 최대값을 갖는 계수 가수를 소정의 비트수 만큼 좌로 쉬프트하고, 상기 소정의 비트수 만큼 지수를 감소시키는 좌측 쉬프트 회로
    를 포함하는 것을 특징으로 하는 스피커폰 시스템.
  31. 전화 시스템에서 송신 경로와 수신 경로 사이에 배치되고, 적응 필터를 포함하는 에코 소거기 디바이스에서, 상기 적응 필터가
    데이터를 저장하는 데이터 메모리;
    정의된 계수 지수값과 함께 필터 계수 가수를 블럭 스케일 부동 소수점 포맷으로 저장하는 계수 메모리;
    상기 데이터 메모리에 저장하기 위한 입력 데이터를 수신하고, 상기 저장된 데이터 및 상기 저장된 계수 가수를 처리하여 디지털 필터 출력값을 제공하는 디지털 필터 엔진;
    상기 계수 메모리에 저장하기 위해 소정의 알고리즘에 따라 상기 데이터 메모리에 저장된 상기 계수 가수값을 변화시켜 업데이트된 계수 가수를 제공하는 계수 업데이트 디바이스; 및
    가수에 대한 상기 필터 계수의 지수를 변화시켜 가수로서 저장될 수 있는 값의 범위를 최대화시키는 지수 디바이스
    를 포함하는 것을 특징으로 하는 에코 소거기 디바이스.
KR1019997006239A 1997-08-01 1998-07-02 혼합된 고정 소수점 또는 부동 소수점 및 블럭 스케일 부동 소수점 연산자를 가진 적응 필터 시스템 KR20000070020A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/904,898 US6088445A (en) 1997-08-01 1997-08-01 Adaptive filter system having mixed fixed point or floating point and block scale floating point operators
US8/904,898 1997-08-01

Publications (1)

Publication Number Publication Date
KR20000070020A true KR20000070020A (ko) 2000-11-25

Family

ID=25419938

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019997006239A KR20000070020A (ko) 1997-08-01 1998-07-02 혼합된 고정 소수점 또는 부동 소수점 및 블럭 스케일 부동 소수점 연산자를 가진 적응 필터 시스템

Country Status (7)

Country Link
US (1) US6088445A (ko)
EP (1) EP0998787A1 (ko)
JP (1) JP2002509672A (ko)
KR (1) KR20000070020A (ko)
CN (1) CN1249081A (ko)
AU (1) AU8285798A (ko)
WO (1) WO1999007071A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100475246B1 (ko) * 2001-10-23 2005-03-10 한국전자통신연구원 고정 소수점 코드 변환을 이용한 엠펙1 오디오 화일의디코딩 성능 향상 방법 및 이를 위한 기록 매체

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6570986B1 (en) * 1999-08-30 2003-05-27 Industrial Technology Research Institute Double-talk detector
US6665402B1 (en) * 1999-08-31 2003-12-16 Nortel Networks Limited Method and apparatus for performing echo cancellation
US8699995B2 (en) * 2008-04-09 2014-04-15 3D Radio Llc Alternate user interfaces for multi tuner radio device
US8909128B2 (en) * 2008-04-09 2014-12-09 3D Radio Llc Radio device with virtually infinite simultaneous inputs
CA2836213A1 (en) * 2001-02-20 2002-08-29 3D Radio, Llc Multiple radio signal processing and storing method and apparatus
US8706023B2 (en) * 2008-01-04 2014-04-22 3D Radio Llc Multi-tuner radio systems and methods
GB2389286A (en) * 2002-05-28 2003-12-03 Mitel Knowledge Corp Echo cancellation
DE10232702B4 (de) * 2002-07-18 2005-06-16 Infineon Technologies Ag Adaptiver Entzerrer mit integrierter Anpassung des Ausgangspegels
GB2403360B (en) * 2003-06-28 2006-07-26 Zarlink Semiconductor Inc Reduced complexity adaptive filter implementation
CN1658153B (zh) * 2004-02-18 2010-04-28 联发科技股份有限公司 复合式动态定点数表示法与运算法及其处理器结构
US7924910B2 (en) * 2005-01-04 2011-04-12 Vitesse Semiconductor Corporation Adaptive equalization with group delay
US7936359B2 (en) * 2006-03-13 2011-05-03 Intel Corporation Reconfigurable floating point filter
US8005671B2 (en) * 2006-12-04 2011-08-23 Qualcomm Incorporated Systems and methods for dynamic normalization to reduce loss in precision for low-level signals
CN111052767B (zh) * 2017-08-28 2022-04-15 索尼公司 音频处理装置、音频处理方法以及信息处理装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5776634A (en) * 1980-10-31 1982-05-13 Hitachi Ltd Digital signal processor
US5303174A (en) * 1991-10-07 1994-04-12 Nec Corporation Floating pointing arithmetic operation system
JP3509861B2 (ja) * 1993-05-05 2004-03-22 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴイ 少なくとも1個のコーダを有する伝送システム
US5323458A (en) * 1993-10-25 1994-06-21 Motorola Inc. Echo cancellation in a full-duplex speakerphone
US5570454A (en) * 1994-06-09 1996-10-29 Hughes Electronics Method for processing speech signals as block floating point numbers in a CELP-based coder using a fixed point processor
JPH08125593A (ja) * 1994-10-28 1996-05-17 Fujitsu Ltd フィルタ係数の推定装置
US5553014A (en) * 1994-10-31 1996-09-03 Lucent Technologies Inc. Adaptive finite impulse response filtering method and apparatus
US5526426A (en) * 1994-11-08 1996-06-11 Signalworks System and method for an efficiently constrained frequency-domain adaptive filter
JPH08250982A (ja) * 1995-03-10 1996-09-27 Fujitsu Ltd フィルタ係数の推定装置
US5907497A (en) * 1995-12-28 1999-05-25 Lucent Technologies Inc. Update block for an adaptive equalizer filter configuration

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100475246B1 (ko) * 2001-10-23 2005-03-10 한국전자통신연구원 고정 소수점 코드 변환을 이용한 엠펙1 오디오 화일의디코딩 성능 향상 방법 및 이를 위한 기록 매체

Also Published As

Publication number Publication date
AU8285798A (en) 1999-02-22
EP0998787A1 (en) 2000-05-10
WO1999007071A1 (en) 1999-02-11
JP2002509672A (ja) 2002-03-26
CN1249081A (zh) 2000-03-29
US6088445A (en) 2000-07-11

Similar Documents

Publication Publication Date Title
JP4104663B2 (ja) エコー回路遅延の推定
JP2836277B2 (ja) エコーキャンセル装置
KR20000070020A (ko) 혼합된 고정 소수점 또는 부동 소수점 및 블럭 스케일 부동 소수점 연산자를 가진 적응 필터 시스템
JPH0618331B2 (ja) 経時変化特性を有する配線において発生するエコ−をディジタル消去するための装置
EP0880261A2 (en) Echo canceller and adapting method thereof
CA2020804C (en) Adaptive echo canceller
US5748726A (en) Echo canceller
JPH05235808A (ja) 適合型エコー・キャンセルの方法及び装置
JP3236242B2 (ja) エコーキャンセラ装置
JPH0758923B2 (ja) 雑音キャンセル方法および装置
JP2000196507A (ja) 多重化回線用エコ―除去の方法及び装置
US6625279B1 (en) Apparatus and method of estimating echo path delay
JP3403473B2 (ja) ステレオエコーキャンセラ
JP3611493B2 (ja) エコーキャンセラ装置
JP3180739B2 (ja) 適応フィルタによる未知システム同定の方法及び装置
KR100272131B1 (ko) 계층적 구조의 적응반향 제거장치
JP3176825B2 (ja) エコーキャンセラ装置
JP3452341B2 (ja) エコーキャンセラ
JP3145547B2 (ja) 音響反響除去装置
JP3187715B2 (ja) 反響消去装置
JP3152815B2 (ja) 音響反響除去装置
JPH07202766A (ja) 適応フィルタによる未知システム同定の方法及び装置
JPH0738563B2 (ja) アダプティブ・フィルタ適応化方法及び装置
JPH11313014A (ja) 帯域分割型エコーキャンセラ
JP3147864B2 (ja) 適応ステップサイズ制御適応フィルタ、及び適応ステップサイズ制御方法

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid