114
工學博士學位請求論文 개선된 직교투사법을 사용한 음향반향제거기의 구현 An Implementation of Acoustic Echo Canceller using an Improve d Orthogonal Projection Method 20062仁荷大學校 大學院 電子工學科(電子通信工學專攻) 尹 顯 民

개선된 직교투사법을 사용한 음향반향제거기의 구현 · 이 論文을 工學博士學位 論文으로 提出함. 仁荷大學校 大學院 電子工學科(電子通信工學專攻)

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

  • 工 學 博 士 學 位 請 求 論 文

    개선된 직교투사법을 사용한

    음향반향제거기의 구현

    An Implementation of Acoustic Echo Canceller

    using an Improved Orthogonal Projection Method

    2006年 2月

    仁荷大學校 大學院

    電子工學科(電子通信工學專攻)

    尹 顯 民

  • 工 學 博 士 學 位 請 求 論 文

    개선된 직교투사법을 사용한

    음향반향제거기의 구현

    An Implementation of Acoustic Echo Canceller

    using an Improved Orthogonal Projection Method

    2006年 2月

    指導敎授 金 興 壽

    이 論文을 工學博士學位 論文으로 提出함.

    仁荷大學校 大學院

    電子工學科(電子通信工學專攻)

    尹 顯 民

  • 이 論文을 尹顯民의 博士學位 論文으로 認定함.

    2006년 2월

    主審

    副審

    委員

    委員

    委員

  • - i -

    요 약

    본 논문에서는 반향(echo)경로의 특성을 추정하고 그에 따른 반향추

    정신호를 생성하여 원단화자의 스피커 출력으로부터 반향신호를 제

    거하기 위하여 개선된 직교투사법(IOP)을 제안하여 VHDL로 음향반

    향 제거기를 설계하고 FPGA 칩에 구현시켜 시험보드를 만들어 음

    향반향제거기 성능을 검증하였다.

    음향반향 제거기에서는 FIR 필터에서 음성신호를 입력으로 사용하

    기 때문에 NLMS 알고리즘을 적응 알고리즘으로 사용하면 수렴특

    성이 저하되므로 이를 해결하기 위하여 직교투사(OP)방법을 적용시

    켜 수신신호 값을 부호화하여 수렴특성 향상과 회로복잡도를 개선

    시킨 2차원적인 IOP 적응 알고리즘을 제안하였다.

    NLMS 알고리즘은 선상에서의 1차원 적응 알고리즘이나, IOP 알

    고리즘은 2차원에서 적응과정을 수행하기 때문에 NLMS 알고리즘

    보다 최적 값을 찾아 수렴하게 된다. 음향반향제거기 회로를 구현하

    기 위해 C언어를 사용하여 모의실험 프로그램을 작성하고 다양한

    적응상수값을 적용시켜 음성과 잡음을 입력신호로 하여 모의 실험

    한 결과 IOP 알고리리즘이 NLMS 알고리즘보다 수렴특성 및 ERLE

    값이 개선되어지는 것을 확인하였다.

    이 모의실험 결과를 토대로 MAX PLUS Ⅱ 도구를 이용하여 VH

    DL 언어로 음향반향제거기를 설계하였다. 음향반향제거기의 설계부

    분은 코덱 인터페이스 회로, 주파수 분주기, 데이터 및 계수 메모리,

    산술논리연산장치, ERLE 출력부이고 설계된 회로를 검증하기 위해

    서 시험보드를 제작하여 음향반향제거기 회로를 구현하였다.

  • - ii -

    제작된 시험보드를 이용하여 FPGA 칩에 음향반향제거기 회로를

    구현하였을 때 NLMS 알고리즘에 비해 회로의 복잡도를 3n에서 n

    으로 감소시킨다. 2차원적인 적응과정을 수행하는 IOP 알고리즘의

    성능을 검증하기 위해 시험보드에서 ERLE값을 측정한 결과, 입력신

    호인 음성과 잡음에서 1초 이내에 수렴이 되고 음향반향성능을 나

    타내주는 ERLE 값이 NLMS 알고리즘보다 평균적으로 3dB정도 높

    았다. 또한 스피커와 마이크의 위치를 변화시키면서 시험한 결과

    IOP알고리즘은 NLMS 알고리즘에 비해 음향반향제거 성능이 개선

    되는 것을 확인하였다.

  • - iii -

    A B S TR A C T

    In this paper, an acoustic echo canceller was designed in

    VHDL by applying modified Improved Orthogonal Projection

    (IOP) which was improved to cancel acoustic echo signals from

    speaker output of far-end sepakers, after the echo path was

    estimated and its accompanying estimated echo signals were

    produced. And then, the canceller was implemented in FPGA

    chips, and the performance was verified.

    Since speech signals are used as input in the acoustic echo

    canceller, the convergence properties decrease when the NLMS

    algorithm is used as an application algorithm. To solve this

    problem, the IOP application algorithm was suggested in this

    paper. Because the IOP algorithm performs its application

    processes in the two dimensions while the NLMS algorithm is

    an one-dimensional application algorithm, the IOP algorithm is

    to converge by more optimized values than the NLMS

    algorithm. To implement the circuit of an acoustic echo

    canceller, a computer simulation was conducted on the IOP

    algorithm about the input signals - speeches and noises. The

    result is that the algorithm method in the paper has excellent

    convergence properties and ERLE values, when it is compared

    with NLMS algorithm in speeches and noises.

    Based upon the simulation, an acoustic echo canceller was

    designed in VHDL by using the MAX PLUS II tool. The

    designed parts included a CODEC interface circuit, a frequency

    divider, and data and coefficient RAM, ALU, and an ERLE

    output section. An evaluation board was also made to verify the

  • - iv -

    designed circuit.

    It was found that the IOP algorithm reduced the complexity of

    a circuit from 3n to n, compared to NLMS algorithm when the

    circuit of the acoustic echo canceller was implemented in an

    FPGA chip by using the evaluation board. The result of testing

    the performance of the IOP algorithm which carries out two-

    dimensional adaptation processes shows that it converged within

    1 second in the input signals - speeches and noises, and that

    its ERLE value which indicated the performance of acoustic

    echo cancellation was found to be higher than that of the

    NLMS algorithm by 3dB on average. When the test was

    conducted with changes in the locations of the speaker and the

    microphone, it was confirmed that the IOP algorithm has

    improved echo cancellation performance.

  • - v -

    목 차

    요약 ··············································································································· ⅰ

    ABSTRACT ································································································ ⅲ

    목차 ··············································································································· ⅴ

    그림목차 ······································································································· ⅶ

    표목차 ··········································································································· ⅸ

    약어목록 ······································································································· ⅹ

    제 1 장 서 론 ·························································································· 1

    제 2 장 음향반향제거의 원 리 ······························································· 7

    2.1 스피커-폰 시스템 ············································································ 7

    2.1.1 스피커-폰 시스템 동작 ························································· 7

    2.1.2 잔향시간 ··················································································· 8

    2.2 LMS 알고리즘 ··············································································· 10

    2.3 NLMS 알고리즘의 문제점 및 대안 ·········································· 17

    제 3 장 개선된 직교투사법 ································································· 19

    3.1 직교투사법 ······················································································ 19

    3.2 개선된 직교투사법 ········································································ 26

    제 4 장 음향반향제거기 모 의실 험 ···················································· 31

    4.1 음향반향제거기 모의실험 ···························································· 31

    4.1.1 음향반향제거기 모의실험 조건 ········································· 31

    4.1.2 음향반향제거기 모의실험 시스템 ····································· 38

    4.2 음향반향제거기 모의실험 결과 ·················································· 41

    제 5 장 음향반향제거기 회 로의 설 계 ·············································· 51

  • - vi -

    5.1 음향반향제거기 회로의 사양 ······················································ 51

    5.2 음향반향제거기 회로구조 ···························································· 52

    5.3 음향반향제거기 회로의 설계 ······················································ 56

    5.3.1 클럭생성부 설계 ··································································· 56

    5.3.2 메모리부 설계 ······································································· 60

    5.3.3 승산기 ····················································································· 63

    5.3.4 산술논리연산장치 설계 ······················································· 66

    5.3.5 코덱 인터페이스부 설계 ····················································· 72

    5.3.6 ERLE 산출부 설계 ······························································· 76

    제 6 장 음향반향신 호 제거기의 구현 ················································ 79

    6.1 FPGA ······························································································· 79

    6.2 음향반향제거기 구조 및 제작 ···················································· 81

    6.2.1 음향반향제거기 구조 ··························································· 81

    6.2.2 음향반향제거기 제작 ··························································· 82

    6.3 측정 및 검토 ·················································································· 90

    제 7 장 결 론 ························································································ 94

    참고문헌 ······································································································· 97

  • - vii -

    그 림 목차

    그림 2-1 스피커-폰 시스템 구조 개념도 ··············································· 8

    그림 2-2 FIR 필터의 순차 논리도 ························································ 12

    그림 2-3 LMS 알고리즘의 적응과정 ···················································· 15

    그림 2-4 NLMS 알고리즘의 블록도 ····················································· 16

    그림 3-1 LMS 알고리즘의 기하학적 해석 ·········································· 19

    그림 3-2 Gramm-Schmidt 과정을 이용한 평면상에서의 직교투사 ············· 22

    그림 4-1 음향반향경로의 임펄스응답 측정방법 ································· 33

    그림 4-2 반향경로모델의 임펄스응답 ··················································· 35

    그림 4-3 모의실험에 사용된 음성들의 파형 ······································· 36

    그림 4-4 모의실험에 사용한 잡음신호의 파형 ··································· 37

    그림 4-5 시험용 음향반향제거기 시스템의 구조 ······························· 38

    그림 4-6 모의실험 프로그램의 흐름도 ················································· 40

    그림 4-7 적응 파라미터 β=2-7

    인 경우 음성의 수렴특성 ················ 42

    그림 4-8 적응 파라미터 β=2-5

    인 경우 음성의 수렴특성 ················ 43

    그림 4-9 적응 파라미터 β=2-3

    인 경우 음성의 수렴특성 ················ 44

    그림 4-10 적응 파라미터 β=2-1

    인 경우 음성의 수렴특성 ················ 45

    그림 4-11 적응 파라미터 β=2인 경우 음성의 수렴특성 ··················· 46

    그림 4-12 적응 파라미터 β=2-5

    인 경우 잡음의 수렴특성 ················ 48

    그림 4-13 적응 파라미터 β=2-3

    인 경우 잡음의 수렴특성 ················ 49

    그림 4-14 적응 파라미터 β=2-1

    인 경우 잡음의 수렴특성 ················ 49

    그림 5-1 음향반향제거기의 구성도 ······················································· 53

    그림 5-2 음향반향제거기의 FPGA 내부 배치도 ································ 55

    그림 5-3 주파수 분주기 ··········································································· 56

  • - viii -

    그림 5-4 클럭생성부의 합성회로도 ······················································· 58

    그림 5-5 클럭생성부의 입출력신호 파형 ············································· 59

    그림 5-6 데이터 메모리의 구성도 ························································· 60

    그림 5-7 데이터 메모리의 타이밍도 ····················································· 61

    그림 5-8 계수 메모리의 구성도 ····························································· 62

    그림 5-9 계수 메모리의 타이밍도 ························································· 63

    그림 5-10 Carry save 승산기 블록도 ·················································· 65

    그림 5-11 산술논리연산장치의 구조 ····················································· 67

    그림 5-12 Over/under flow 감지회로 ·················································· 68

    그림 5-13 각 신호의 비트 폭과 레벨 ··················································· 70

    그림 5-14 산술논리연산장치의 합성회로도 ········································· 71

    그림 5-15 코덱 인터페이스의 구조 ······················································· 73

    그림 5-16 코덱 인터페이스의 타이밍도 ··············································· 74

    그림 5-17 코덱 인터페이스 회로도 ······················································· 75

    그림 5-18 제산기의 블록도 ····································································· 77

    그림 5-19 음향반향제거기의 Top 회로도 ············································ 78

    그림 6-1 FPGA 구조 ················································································ 80

    그림 6-2 시험 보드의 블록도 ································································· 81

    그림 6-3 구현된 보드 회로도 ································································· 83

    그림 6-4 시험용 보드의 사진 ································································· 87

    그림 6-5 보드 실험 사진 ········································································· 89

  • - ix -

    표 목차

    표 4-1 음향반향제거기의 모의실험 조건 ············································· 32

    표 5-1 음향반향제거기 회로의 설계사양 ············································· 51

    표 5-2 입출력 핀 ······················································································· 54

    표 5-3 Over/under flow 감지결과 ························································ 68

    표 6-1 FPGA 핀 매핑 ·············································································· 84

    표 6-2 잡음의 ERLE 값 ·········································································· 92

    표 6-3 음성의 ERLE 값 ·········································································· 92

    표 6-4 알고리즘의 복잡도 ······································································· 93

  • - x -

    ADC Analog Digital Converter

    ALU Arithmetic Logic Unit

    AR Auto Regressive

    CODEC CodeDecoder

    DAC Digital Analog Converter

    ERLE Echo Return Loss Enhancement

    FPGA Field-Programmable Gate Array

    FIR Finite Impulse Response

    IIR Infinite Impulse Response

    IOP Improved Orthogonal Projection

    LMS Least Mean Square

    LS Least Square

    NLMS Normalized Least Mean Square

    OP Orthogonal Projection

    RAM Random Access Memory

    RLS Recursive Least Square

    ULSI Ultra Large Scale Intergration

    VHDLVery High speed integrated circuit hardware

    Description Language

    약어 목록

  • - 1 -

    제 1 장 서 론

    최근에 통신 분야에서의 디지털 신호처리 기술은 알고리즘의 개

    발과 프로세서의 발전으로 빠르게 고속화되고 있다. 과거에는 이론

    으로 발표 되었던 기술들이 반도체 소자의 급속한 개발과 ULSI의

    고집적화 기술, 디지털 신호처리의 고속화로 회로 구현이 가능하게

    되었으며 신호처리 기술의 응용분야에 따라 연산량의 감소와 고속

    화를 위하여 알고리즘 개발 및 전용 프로세서의 연구가 활발히 진

    행되고 있다. 현재 단말기 분야에서는 핸즈프리(hands-free) 전화기,

    원격 화상회의 등 스피커-폰(speaker-phone) 시스템의 사용이 증가

    함에 따라 음향반향제거 기술이 중요한 문제로 되었다. 음향반향신

    호는 원단화자로부터의 수신신호가 스피커를 통해 방사된 후, 벽면

    등에 반사되어 마이크에서 근단화자의 송신신호와 결합됨으로서 원

    단에서 근단화자의 음성청취를 방해하게 된다. 원단화자는 자기가

    한 말을 통화왕복 지연시간 뒤에 듣게 되므로 정상적인 통화에 불

    편함을 느끼게 된다. 지연시간이 길고, 반향신호의 크기가 클수록

    통화의 불편함은 커지며, 반향신호가 제거되지 않고 통신선로의 이

    득이 1보다 큰 경우에는 원신호보다 커지는 하울링(howling) 현상이

    발생하기도 한다[1]-[6].

    핸즈프리 전화기 또는 원격화상회의 시스템의 경우 반향의 원인

    은 스피커와 마이크 사이의 음향적 결합에 기인한다. 이러한 종류의

    반향을 음향반향이라 하며, 원활한 의사전달을 위해서 반드시 제거

    되어야 한다. 음향반향제거의 기본원리는 먼저 반향경로의 특성을

  • - 2 -

    추정하고 그에 따른 반향복제신호를 생성하여 마이크 출력으로부터

    제거하는 것이다. 여기서 실제 반향신호와 거의 유사한 복제신호를

    생성하기 위하여 반향경로의 특성을 가능한 정확히 모델링해야 되

    는데, 일반적으로 반향경로의 특성은 시간과 주위환경에 따라 지속

    적으로 변하기 때문에 적응필터를 사용하게 된다[7]-[10].

    적응신호처리를 위해서는 적응필터를 사용하는데 가장 기본적인

    접근 방법으로는 FIR 필터를 적용하여 사용하고 있는데 FIR 필터는

    IIR 필터에 비해 쉽게 설계 할 수 있고 유한 저장 시스템으로 구현

    할때 비재귀형 구조이므로 안정하고 곱셈계산에서 반올림 오차에

    대한 영향이 적고 필터 계수값의 변화에 덜 민감하다는 장점 등이

    있다.

    음향반향제거를 위해서 사용되는 알고리즘들 중에 LS 알고리즘은

    과거의 기준 신호와 반향정보를 토대로 자승 오차의 합을 최소화

    하도록 계수를 갱신하는 과정을 수행하지만 계수를 최적화하기 위

    해 역행열 계산이 이루어져야 하므로 계산량이 많고 구현하기가 어

    려운 단점이 있다[11][12]. 이러한 문제를 해결하기 위해 RLS 알고

    리즘 있다[13]-[15].

    RLS 알고리즘은 블록처리 알고리즘으로서 계수를 최적화하는 과

    정에서 역행열 연산을 직접 구하지 않고 반복적인 계산으로 대치하

    여 계산량을 줄였으나 회로복잡도에서 문제가 된다. 또 다른 알고리

    즘으로 입력신호를 몇 개의 주파수 대역으로 분할하여 대역별로 적

    응을 수행하는 서브밴드(subband) 알고리즘이 있다[16].

    서브밴드 알고리즘은 병렬처리가 가능하고 간축(decimation)에 의

    해 계산량이 감소할 뿐 아니라 대역별 처리에 있어 임펄스 응답이

  • - 3 -

    긴 시스템을 추정하는데 적합하다. 그러나 서브밴드 알고리즘은 대

    역분할 필터가 완벽하지 않기 때문에 대역간에 에일리어싱(aliasing)

    중첩현상이 발생하게 되어 성능을 저하시킨다.

    현재 음향반향제거기의 알고리즘 중에 대표적인 적응알고리즘으

    로 LMS 알고리즘이 있다[17]. 이 알고리즘은 Windrow와 Hoff에 의

    해 제안되었으며, 필터의 계수가 반향추정신호와 반향신호 간의 오

    차 제곱의 평균값을 최소화 하는 방향으로 수렴된다. 계수 갱신은

    샘플 단위로 이루어지는데, 에러 표현의 통계적 기울기를 이용하는

    것보다 실제 기울기를 이용하는 것이 간단한 방법이다. 일반적으로

    수렴특성은 스텝 크기에 의해 결정되는데, 스텝 크기가 크면 수렴속

    도는 빨라지지만 수렴 후 오차가 크게 된다. 또한 수렴속도는 입력

    신호에 대한 상관행렬의 고유치 분산 정도에 좌우되며, 고유치의 분

    산이 클수록 수렴속도가 떨어진다. 따라서 고유치의 분산이 큰 음성

    신호의 경우 수렴속도가 저하된다.

    NLMS 알고리즘은 LMS 알고리즘의 변형된 형태로서, LMS 알고

    리즘에 있어서 계수 갱신시 스텝 크기를 입력신호의 에너지로 정규

    화 시킴으로써 입력신호의 통계치를 알지 못하더라도 스텝 크기를

    설정할 수 있도록 한 것이다. NLMS 알고리즘도 음성신호와 같이

    자기 상관도가 높은 신호를 입력으로 사용하는 경우 수렴속도가 저

    하되는 문제점이 있다[18].

    이를 해결하기 위하여 Sommen, Valburg은 직교투사법(orth

    ogonal projection method)을 2차원적으로 적용시켜 개선시킨다[19].

    NLMS 방법은 선상에서 1차원 적응 알고리즘이나, OP는 면상에

    서의 2차원 적응 알고리즘이다. 즉 직교투사법은 다면체 상에서 적

  • - 4 -

    응과정을 수행하기 때문에 항상 최적값을 찾아 수렴하게 된다.

    그러나 직교투사법은 NLMS 알고리즘에 비하여 회로가 복잡하기

    때문에 하드웨어 구현에 있어서 큰 단점으로 작용하고 있다. 이를

    개선하기 위하여 입력 음성신호를 AR 프로세스로 모델링하게 되면

    간략화 된 직교투사법을 얻을 수 있다. 또한 수렴성능은 그대로 유

    지하면서 더욱 간략화 된 수식을 얻기 위하여 몇 가지 신호에 대한

    단순 가정을 통해 회로의 복잡도를 NLMS 알고리즘의 복잡도 보다

    크게 개선시킬 수 있다.

    따라서 본 논문에서는 음향반향제거기 구현시 적응 알고리즘인

    NLMS 알고리즘이 선상에서의 1차원적으로 필터 계수값을 업데이

    트 하면서 적응해 나가는 알고리즘으로 음성과 같이 자기상관도가

    높은 입력신호에 대해서 수렴특성이 악화된다는 것이다. IOP 알고

    리즘은 수렴특성 및 성능을 개선시키기 위해서 면상에서 2차원적인

    적응 알고리즘으로 OP를 사용하면 입력 신호를 최대한 백색화시켜

    적응해 나가기 때문에 NLMS에 비해 수렴 속도가 향상 될 것이다.

    IOP 알고리즘은 수학적 직교기저를 이용하여 평면상에서 수직, 수

    평 두 직교방향에서 적응되는 OP 알고리즘으로 추정치 샘플값을 차

    례로 적용시켜 추정치 값이 크게 변하지 않는 AR프로세스 모델과

    수식적 단순과정을 통하여 필터 계수값에서 수신입력신호와 잔차신

    호에 최상위 비트를 서로 부호화함으로 음향반향제거기 회로의 승

    산량을 매우 감소시켜 복잡도 문제를 극복할 수 있는 방법이다.

    IOP 알고리즘을 검증하기 위한 수단으로 반향경로 임펄스 신호를

    8KHz로 샘플링하고 측정된 반향경로 신호를 추적해 나가는데 필요

    한 필터계수인 탭(tab) 수를 결정하였다.

  • - 5 -

    IOP 알고리즘의 성능을 평가하기 위해 C언어를 이용하여 변수의

    초기화부, 입력 데이터 파일 로딩 및 각 데이터 생성부, 반향제거기

    필터의 계수 갱신 및 반향추정신호 제거를 위한 반복 연산부, ERLE

    산출부 및 결과를 나타내는 출력부 등으로 모의실험 프로그램을 코

    딩하고 NLMS와 IOP 알고리즘의 성능을 비교하기 위해 음성과 잡

    음에 대해서 다양한 적응상수값을 적용시켜 반향제거기의 성능을

    검증한다.

    검증된 모의실험 결과를 기반으로 VHDL 도구를 활용해서 회로

    복잡도를 개선시킨 IOP 알고리즘을 적용시켜 각 블록회로에서 필요

    로 하는 보조클럭을 생성하여 공급해 주는 주파수분주기, 송수신 신

    호의 아날로그-디지털 변환을 수행하는 코덱 인터페이스, 수신된 데

    이터를 입력받아 저장하는 데이터 메모리, 계수 업데이트 된 데이터

    를 입력받아 저장하는 계수 메모리, 계수 업데이트 된 데이터를 이

    용하여 반향추정 생성기능과 반향신호 보상기능을 수행하는 산술논

    리연산장치, 음향반향제거기의 반향제거 성능을 수치로 나타내는

    ERLE 산출부 등의 회로를 설계해서 FPGA에 구현시킨후 FPGA 칩

    을 기본으로 한 시험보드를 제작해서 구현한다.

    아울러 음향반향제거기 회로를 검증하기 위해 음성과 잡음에 입

    력신호를 이용하여 NLMS, IOP 알고리즘에 음향반향제거기의 성능

    을 나타내주는 ERLE값을 시험보드에 장착된 LED를 통하여 LED가

    off이면 ‘0’, LED가 on이면 ‘1’로 ERLE 값을 측정하고 IOP 알고리즘

    과 NLMS 알고리즘의 성능을 비교 검토한다. 또한 녹음된 음성을

    수신입력신호로 하여 음향반향제거기의 제작된 시험보드에서 west

    코덱 출력스피커를 이용하여 근단화자의 east 스피커와 마이크 위치

  • - 6 -

    를 변화시키면서 시험하여 음향반향신호가 감쇄되는 것을 확인한다.

    본 논문의 음향반향제거기 구현과정은 다음과 같다.

    제 1장은 서론이며, 제 2장에서는 스피커-폰 시스템에서의 음향반

    향제거의 원리와 LMS, NLMS 알고리즘에 대한 수식을 서술하였고

    NLMS 알고리즘의 문제점에 대해서 논의한다.

    제 3장에서는 기본적인 직교투사법 대한 원리와 수식을 서술하였

    고 음향반향제거기 구현시 회로복잡도 및 성능이 NLMS 알고리즘

    보다 향상된 IOP 알고리즘를 제안한다.

    제 4장에서는 본 논문에서 제안한 IOP 알고리즘의 성능을 평가하

    기 위하여 남성과 여성 음성 및 잡음에 대한 수렴특성을 확인하기

    위해서 다양한 적응상수 값들을 사용하여 모의실험을 수행하고

    NLMS, IOP 알고리즘 성능을 비교 분석 하였다.

    제 5장에서는 음향반향제거기 회로를 구현하기 위해 VHDL 언어

    를 이용하여 주파수 분주기, 코덱 인터페이스 회로, 데이터 메모리,

    계수 메모리, 산술논리연산장치, ERLE 산출부 등의 회로를 설계한

    다.

    제 6장에서는 IOP 알고리즘으로 구현된 음향반향제거기 회로의

    동작상태를 검증하기 위하여 FPGA를 기본으로 한 시험 보드를 만

    들어 음향반향제거기 회로를 시험보드에 다운로드 받아 음향반향제

    거기 회로에 대한 동작상태를 ERLE 값 측정 및 시험을 통하여

    NLMS 알고리즘과 성능을 비교 및 검토 하였다.

    제 7장에서는 제안된 논문에 대하여 결론을 맺는다.

  • - 7 -

    제 2 장 음향반향제거의 원 리

    본 장에서는 스피커-폰 시스템 구조에서 음향반향제거의 원리와

    음향반향 성능 평가기준이 되는 ERLE[20][21] 값에 대한 수식을 설

    명하였고 적응 알고리즘인 LMS[22], NLMS 방법에 대한 수식 전개

    를 통하여 적응 알고리즘을 이해하고 NLMS 알고리즘 수렴특성의

    문제점에 대해서 수렴특성을 개선시키기 위한 대안을 제시한다.

    2.1 스 피 커 - 폰 시 스 템

    2.1.1 스피커-폰 시스템 동작

    그림 2-1은 스피커-폰 시스템의 기본구조를 나타낸다. 여기서

    b(k)는 원단화자의 수신신호이고, e(k)는 반향경로를 거쳐 되돌아

    온 음향반향신호이며, a(k)는 근단화자의 음성신호를 나타낸다. 또

    한, n(k)는 근단화자 주변의 잡음을 나타낸다.

    스피커-폰 시스템의 동작과정을 보면 원단화자의 디지털화 된 수

    신신호 b(k)가 수신되면 디지털-아날로그 변환기를 통해 스피커로

    근단화자에 원단화자의 음성이 전달된다.

    이때 근단화자가 마이크로 원단화자에게 음성을 전달할 때 근단

    화자의 스피커로 방출된 원단화자의 수신신호에서 음성의 잔향이

    존재하므로 스피커와 마이크 사이에 근단화자의 음성과 음향학적

  • - 8 -

    결합이 되어 근단화자의 음성이 아날로그-디지털 변환기를 통해 데

    이터가 전송이 될때 원단화자의 수신신호에 문제가 발생이 되므로

    음향반향제거기를 이용하여 음향반향 추정치 신호를 생성하고 음향

    반향신호 e(k)를 상쇄시키면 원단화자의 음성 수신상태가 개선된

    다.

    +ADCa(k)+ e(k)+ n(k)

    )(ke∧–

    DAC

    EchoCanceller

    r(k)

    Speaker

    Mic

    b(k)

    Transmit

    Receive

    그림 2-1. 스피커-폰 시스템 구조 개념도

    Fig. 2-1. A general conception diagram of a speaker-phone

    system structure

    2.1.2 잔향시간

    잔향시간은 음원이 꺼진 후 음향 레벨이 처음 초기치보다 60dB

    이하로 떨어질 때까지의 시간을 의미한다.

    음향 레벨은 시간의 경과에 따라 지수함수적으로 감소하며, 이것

    은 실내공간의 크기와 벽면의 재질에 대한 함수로 결정된다. Eyring

    a(k)+e(k)+n(k)

    r(k)

    b(k)

    ê( k)

  • - 9 -

    에 의하면 실내공간의 크기와 잔향시간의 관계를 식(2-1)과 같이 표

    현하였다.

    Tr = 49V

    -S ln (1-x )(2-1)

    여기서 V는 체적, S는 표면적, x는 평균흡수율을 나타낸다. 대표

    적인 승용차 내부공간은 V = 27ft3, S = 54ft2, x = 0.35로 가정할

    수 있다. 따라서 식(2-1)에 의하여 승용차 내에서 잔향시간은 약

    57ms이다. 반향제거기에서 반향신호를 초기치 값에서 30dB 정도 제

    거한다고 하면 잔향시간은 28.5ms로 줄어든다. 확실한 성능을 보장

    하기 위해서 10% 정도의 여유를 고려하면 약 32ms가 되며, 이는

    음성신호를 8kHz로 샘플링 할 경우 256 탭 필터를 필요로 한다

    [23]-[25].

  • - 10 -

    2.2 L M S 알 고 리 즘

    그림 2-1과 같이 마이크로 입력되는 송신신호는 근단화자음성신

    호와 원단화자음성신호가 스피커로부터 방사된 후 지연된 음향반향

    신호 및 주위 잡음신호 등으로 구성된다. 음향반향신호는 스피커로

    부터 공간속으로 방사된 후 사무실 벽면 등에 반사되어 크기가 감

    쇄되고 시간이 지연된 일부 신호가 근단화자의 음성과 함께 마이크

    를 통하여 유입되며, 보통 FIR 필터와 NLMS 알고리즘을 사용하여

    제거한다.

    근단 송신신호에 포함된 반향성분이 제거된 후의 r(k) 잔차신호

    (residual signal)는 식(2-2)과 같이 표현된다.

    r(k) = a(k)+e(k)+n(k)- ê( k) (2-2)

    반향경로의 임펄스응답을 g(n)으로 표현하면, N개의 탭 수를 가

    진 디지털 필터가 반향추정신호를 생성하기 위하여 사용될 수 있다.

    그리고 근단 송신신호를 a(k), 원단 송신신호를 b(k)라 가정한다.

    반향제거기의 분석을 용이하게 하기 위해 다음과 같은 벡터를 도

    입 할 수 있다[3][5][8][9].

    근단 송신신호 : a (k) = (a(k), a(k-1), ⋯, a(k-N+1))T

    반향 전달함수 : g = (g(0), g(1), ⋯, g(N-1))T

    반향제거 계수 : c (k) = (c0 (k), c1 (k), ⋯, cN-1 (k))T

    원단 송신신호 : b (k) = (b(k), b(k-1), ⋯, b(k-M+1))T

  • - 11 -

    여기서, 위첨자 T

    는 전치행렬(transpose)이고 N은 근단 송신신호

    탭 수이고 M은 원단송신신호 탭 수를 나타낸다.

    따라서, 반향신호 및 반향추정신호 벡터는 식(2-3)와 식(2-4)로 표

    현된다.

    e(k) = bT(k)⋅ g (2-3)

    ê( k) = bT(k)⋅ c (k) (2-4)

    식(2-3)와 식(2-4)을 잔차신호에 대한 식(2-2)에 적용하면 식(2-5)

    와 같다.

    r(k) = bT(k) ·g - b

    T(k) · c (k) + a (k)+n(k)

    = bT(k) ·(g- c (k) ) + u(k)

    (2-5)

    여기서, 제거할 수 없는 신호는 u (k)= a (k)+n(k)로 결합하였

    다. 식(2-5)을 회로로 구성하면 그림 2-2와 같다.

    그림 2-2에서는 수신신호와 계수 처리과정에 대한 FIR 필터 구조

    를 나타내었다.

    잔차신호 r(k)의 평균자승(mean square) 값은 식(2-6)과 같이 주

    어진다.

    ρ(k) ≐ E{r(k) 2} = E { ( bT(k)·(g- c (k) ) + u(k))

    2}(2-6)

    식(2-6)에서 E{ }은 기대값을 의미한다.

  • - 12 -

    b(k) Z-1 Z-1 Z-1

    c0 c1 c2 cN-1

    a(k)r(k)

    그림 2-2. FIR 필터의 순차 논리도

    Fig. 2-2. Sequential logic diagram of FIR filter.

    수식의 전개를 간단화 하기 위하여 b (k)와 c (k)는 통계적으로

    독립적이고, a (k)와 b (k) 및 n(k)도 통계적으로 상호 독립적이

    며, 데이터는 +1 또는 -1의 값을 갖는다고 가정하면 식(2-6)은 식

    (2-7)로 표현할 수 있다.

    ρ(k) = E { ( g- c (k) )Tb (k) bT(k) ( g- c (k) )} + E{u 2(k) }

    = ( g- c (k) )T( g- c (k) ) + U (2-7)

    식(2-7)은 U≐E{u 2(k)}이다.

    식(2-7)로부터 ρ(k)는 c (k)= g일 때 최소값을 갖는 필터계수의

    b(k)

    r(k) a(k)

    ê( k)

  • - 13 -

    2차 함수라는 것을 알 수 있다. 따라서, 필터계수에 대해 ρ(k)의 기

    울기(gradient)를 구하면 식(2-8)과 같다.

    grad ρ(k) = ( ∂ρ(k)∂c0(k) , ∂ρ(k)∂c1(k)

    , ⋯, ∂ρ(k)

    ∂cN-1(k) )T

    (2-8)

    식(2-7)을 식(2-8)에 대입하여 풀면 식(2-9)와 같다.

    grad ρ(k) = -2( g - c (k) ) (2-9)

    또한 식(2-8)에 식(2-5), (2-6)를 대입하면 식(2-10)과 같다.

    grad ρ(k) = -2E {r(k) b (k) } (2-10)

    식(2-9)로부터 grad ρ(k)가 필터계수의 실제값과 최적값 간의 차

    라는 것을 분명히 알 수 있으며, 또한 식(2-10)으로부터 r(k)과

    b (k)의 함수로 직접 표현되는 것을 알 수 있다. 따라서, 반향제거

    기에서 디지털필터의 적응과정은 이 기울기에 근거하여 필터계수를

    반복적으로 갱신함으로서 이루어지며 최급 강화법(steepest descent

    method)[26] 의해서 식(2-11)과 같이 나타낼 수 있다.

    c (k+1) = c (k) - α grad ρ(k) (2-11)

  • - 14 -

    여기서, α는 계수의 조정 스텝으로서, α가 크면 수렴속도는 증가

    하지만 수렴 후 정상상태 오차는 커지고, α가 작으면 수렴속도는

    감소 하지만 정상상태 오차는 작아진다. 식(2-11)을 반복적으로 적

    용함으로서 평균자승 잔차반향신호의 최소값을 얻을 수 있으며, 이

    때 적응필터가 수렴한 상태이다. 식(2-11)를 소위 최소 평균자승 에

    러 기울기 알고리즘 또는 LMS 알고리즘이라 한다. 그림 2-3은

    LMS 알고리즘의 적응 상태를 나타내는 그림이다.

    그림 2-3에서는 계수값이 초기값부터 최적값으로 업데이트

    (update)되는 과정을 보여주는 그림이다. 여기서 MSE(mean square

    error)는 평균자승 오차값을 나타낸다.

    C(k)C(k-1)C(2)C(1)C(0)

    initial value

    optimal value

    min

    MSE

    그림 2-3. LMS 알고리즘의 적응과정

    Fig. 2-3. Adaptation process of LMS algorithm.

  • - 15 -

    식(2-10)와 식(2-11)을 결합하여 적응 디지털필터를 구성하면 식

    (2-12)과 같다.

    c (k+1) = c (k) + 2αE{r(k) b (k) } (2-12)

    식(2-12)의 우변 두 번째 항을 실제로 적용함에 있어서는 여러 방

    법이 있는데, 평균값을 구하는 과정이 생략된 스토캐스틱(stoc

    hastic) 반복 알고리즘을 사용하면 식(2-13)과 같다.

    c (k+1) = c (k) + 2αr(k) b (k) (2-13)

    알고리즘의 하드웨어 복잡도는 승산 또는 제산 연산의 수에 따라

    결정된다. LMS 알고리즘의 복잡도는 식(2-14)와 같다.

    MLMS = O(2n ) (2-14)

    여기서 n 은 회로의 복잡도를 나타낸다.

    LMS 알고리즘은 여러 적응알고리즘 중에서 수렴속도와 ERLE,

    그리고 하드웨어 복잡도 등을 고려할 때 회로구현이 가장 적절한

    것으로 평가된다. 한편, 식(2-12)에서 우변 두 번째 항은 필터계수가

    갱신되는 크기를 나타내는데 b (k)의 크기에 따라서 갱신되는 크기

    가 달라지므로 식(2-15)과 같이 b (k)에 대해 정규화 시킬 필요가

    있다.

  • - 16 -

    c (k+1) = c (k) + 2αr(k)b (k)

    ∑M

    i=0b 2(k-i )

    (2-15)

    식(2-15)을 NLMS 알고리즘이라 하며, 그림 2-4에서 이 알고리즘

    에 대해 블록도를 보여주고 있고 수신신호로부터 NLMS 방법을 적

    용하여 적용 계수값이 업데이트 되는 과정을 보여준다.

    +b(k)

    r(k)

    × ×∑

    c(k+1)

    c(k)

    α2

    D

    /

    그림 2-4. NLMS 알고리즘의 블록도

    Fig. 2-4. Block diagram of the NLMS algorithm.

    NLMS 알고리즘은 평균값을 구하기 위한 별도의 하드웨어를 필

    요로 하지만, 신호의 크기에 따라서 필터계수의 갱신 크기가 크게

    변화하지 않고 일관성을 유지하는 성질을 갖고 있다. 따라서, 적응

    알고리즘은 일반적으로 LMS 알고리즘보다 NLMS 알고리즘을 많이

    사용하고 있다. 이 알고리즘의 복잡도는 식(2-16)과 같다.

    MNLMS = O(3n ) (2-16)

    b(k)

    r(k)c(k)

    c(k+1)

    D∑

  • - 17 -

    2.3 N L M S 알 고 리 즘 의 문 제점 및 대 안

    NLMS 알고리즘의 주요 문제점 가운데 하나는 자기상관도가 높

    은 입력신호에 대해 수렴특성이 악화된다는 것이다. 적응 알고리즘

    의 수렴속도는 입력신호의 자기상관행렬에 있어서 고유치(eigen

    value)들의 분포에 의해 결정되며 적응 필터의 입력신호에 대한 자

    기상관행렬은 식(2-17)에서 구할 수 있다[27].

    R = E [ b (k) bT(k)] (2-17)

    자기상관행렬로부터 고유치 λ1, λ2,⋯, λN 은 식(2-18)의 근을 구

    하여 얻는다. 여기서 I 는 단위 행렬이다.

    det ( R - λ I ) = 0 (2-18)

    이 고유치들의 분포율은 식(2-19)와 같이 정의된다.

    χ ( R ) = λ maxλ min

    (2-19)

    고유치 분포율 χ ( R )이 큰 값을 가질수록 수렴속도는 떨어지며,

    백색잡음의 경우 이 값이 거의 1이므로 수렴속도가 매우 빠르다. 음

    성신호는 인접 샘플간의 상관성이 비교적 크기 때문에 고유치 분포

    율도 큰 값을 가지며 결과적으로 수렴속도도 느리다. 이러한 음성신

  • - 18 -

    호는 식(2-20)은 AR 모델로 모델링 될 수 있다.

    b (k) = ∑p

    i=1μ i b (k- i ) + n (k) (2-20)

    여기서 nT(k)=(n(k),⋯,n(k-N+1))는 백색잡음을 나타낸

    다. i≥1에 대해 n(k)는 n(k-i )와 독립적이다.

    음향반향제거기에서 음성신호를 입력으로 사용하기 때문에 NL

    MS 알고리즘을 적응 알고리즘으로 사용하면 수렴성능이 크게 저하

    되므로 이를 해결하기 위해 개선된 직교투사법을 적용한다. NLMS

    알고리즘은 선상에서의 1차원 적응 알고리즘이나, 직교투사법은 면

    상에서의 2차원 적응 알고리즘이다. 즉 직교투사법에서는 입력신호

    를 최대한 백색화 시켜 반향제거기의 수렴속도를 향상 시키게 된다.

  • - 19 -

    제 3 장 개선된 직교투사법

    본 장에서는 1차원적인 직교투사법의 개념과 수식을 설명하였고

    평면상에서의 수렴특성을 개선시키기 위해 직교기저 개념을 도입하

    여 2차원적인 적응 알고리즘에 대한 수식을 전개하고 음향반향제거

    기 회로 구현시 NLMS 알고리즘에 비해 회로의 복잡도를 감소시키

    는 IOP 알고리즘[28]을 제안하였다.

    3 .1 직교투사법

    1차원 직교투사법의 기하하적 표현은 그림 3-1과 같다[29].

    d[k+1]

    d△ [k]

    d[k]

    b[k]-2αd△ [k]

    d⊥ [k]d[k+1]

    d△ [k]

    d[k]

    b[k]-2αd△ [k]

    d⊥ [k]

    그림 3-1. LMS 알고리즘의 기하학적 해석

    Fig. 3-1. Geometric interpretation of the LMS algorithm.

    k [k]

    [k]d△[k] [k]

    d⊥[k]

    d△[k]

  • - 20 -

    반향경로의 전달함수와 적응필터의 계수 간의 차(difference) 벡터

    를 d (k)라고 하면 반향경로 전달함수 g와 반향제거기 계수 c (k)

    는 식(3-1)과 같이 정의할 수 있다.

    d (k) = g - c (k) (3-1)

    필터 입력벡터 b (k) 상에 차 벡터의 투사를 생성함으로서 차 벡

    터를 두 성분으로 분해하면 식(3-2)로 된다.

    d (k) = d⊥(k) + d

    △(k) (3-2)

    여기서 수직성분 d⊥(k)는 b (k)에 직교하고, 수평성분 d

    △(k)는

    b (k)에 평행하므로 식(3-3)으로 나타낼 수 있다.

    bT(k)⋅ d

    ⊥(k) = 0

    d△(k) = λ b (k)

    (3-3)

    여기서 λ는 임의의 스칼라 값이다. 따라서 u (k)=0인 경우 식

    (2-5)는 식(3-4)으로 나타낸다.

    r(k) = bT(k) · d (k) = b

    T(k) · d

    △(k)

    = λ || b (k)||2

    (3-4)

  • - 21 -

    식(3-4)로부터 스칼라 값 λ를 구할수 있고, 평행성분 d△(k)를

    식(3-5)로 표현할 수 있다.

    d△(k) =

    b (k)r(k)

    || b (k)|| 2 (3-5)

    여기서는 d (k)가 b (k)에 대해 더 직교하도록 d (k)의 크기를 감

    소시키는 것이다. 이는 d (k)로부터 d△(k)의 일부 미소량을 감산

    함으로서 업데이트 된 값을 식(3-6)으로부터 얻을 수 있다.

    d (k+1) = d (k) - 2α d△(k)

    = d (k) - 2αb (k)r(k)

    || b (k)||2

    (3-6)

    식(3-6)은 차 벡터의 정의 식(3-1)과 함께 LMS 알고리즘을 나타

    내는 식이다.

    만일 신호 b (k)가 백색잡음일 때 b (k)와 b (k-1)는 서로 직교

    한다. 그러나 일반적으로 음성신호는 백색 잡음이 아니다.

    그 결과, 식(3-6)에서 새로운 업데이트는 이전 업데이트에 직교하지

    않을 수도 있다. 따라서 잘못된 수렴결과를 얻을 수도 있다.

    이러한 이유 때문에 1차원 직교투사법을 다차원으로 확장할 필요

  • - 22 -

    가 있다. 복잡성을 피하기 위해 2차원으로 가정하면 이제는 선이 아

    니라 하나의 면상에서 투사가 이루어진다.

    우선 직교 기저(basis)를 생성하기 위해 그림 3-2 Gramm-Sch

    midt 과정을 이용한다[29].

    d[k+1]

    d△ [k]

    d[k]

    b[k-1]-2αd△ [k]

    d⊥ [k]

    b[k]

    b[k]~

    d[k+1]

    d△ [k]

    d[k]

    b[k-1]-2αd△ [k]

    d⊥ [k]

    b[k]

    b[k]~

    k

    [k]

    [k][k]

    [k][k-1]

    [k]

    [k]

    그림 3-2. Gramm-Schmidt 과정을 이용한 평면상에서의 직교투사

    Fig. 3-2. Orthogonal projection on a plane using Gramm-Schmidt.

    그림 3-2는 면상에서의 직교투사 과정을 보여주는 그림이다.

    Gramm-Schmidt 과정을 이용하여 벡터 b (k)와 b (k-1)로 이루어

    진 평면에 대한 직교 기저를 생성할 수 있다. 이 경우에는 b (k-1)

    이 불변인 상태에서 식(3-7)과 같이 b̃( k )를 구성함으로서 이루어진

    다.

    d△[k]

    d△[k]

    d⊥[k]

  • - 23 -

    b̃( k ) = b (k) -bT(k)⋅ b (k-1)

    || b (k-1)||2 b (k-1) (3-7)

    이제 두 직교 벡터 b (k-1)와 b̃( k )로 이루어진 평면상에서

    d (k)의 투사를 만들어보면 d⊥(k)가 b (k-1)와 b̃( k )에 직교인

    결과를 초래하므로 식(3-8)로 표현된다.

    b̃T

    (k)⋅ d⊥(k) = 0

    b (k-1)⋅ d⊥(k) = 0

    (3-8)

    한편 차 벡터의 평행성분 d△(k)는 b̃( k )와 b (k-1)의 선형 합

    으로 표현할 수 있으므로 식(3-9)로 나타낼 수 있다.

    d△(k) = λ0 b̃( k) + λ1 b (k-1) (3-9)

    여기서 λ0, λ1은 임의의 스칼라 값이다. 이 값들을 구하기 위하여

    새로운 2개의 잔차신호를 정의한다. 이때 u (k)=0이라 가정하면 2

    개의 잔차신호는 식(3-10)으로 나타낼 수 있다.

    r̃(k) = b̃T

    (k)⋅ d (k)

    r 1(k-1) = bT(k-1)⋅ d (k)

    (3-10)

  • - 24 -

    식(3-7)로부터 잔차신호의 직교기저 r̃( k)는 식(3-11)과 같이 표

    현될 수 있다.

    r̃(k) = r(k) -bT(k)⋅ b (k-1)

    || b (k-1)|| 2r 1(k-1) (3-11)

    여기서 r (k)는 식(2-5)의 잔차신호를 나타내고, r 1(k-1)은 이전

    데이터 벡터 b (k-1)과 현재 차 벡터 d (k) 간의 내적(inner

    product)을 나타낸다.

    1차원의 경우와 동일한 과정을 통해 스칼라 값들에 대한 수식을

    식(3-12)로 나타낼 수 있다.

    r̃( k) = λ0 || b̃( k )||2

    r 1(k-1) = λ1 || b (k-1)||2

    (3-12)

    d△(k)의 반대방향으로 차 벡터의 업데이트를 수행하면 식(3-13)

    이 된다

    d (k+1) = d (k) - 2α' d△(k) (3-13)

    식(3-13)을 정리하여 업데이트 된 계수값을 구하면 식(3-14)로 나

    타낸다.

  • - 25 -

    c (k+1) = c (k) + 2α'( b̃( k )r̃(k)|| b̃( k )||2 +b (k-1)r 1 (k-1)

    || b (k-1)||2 )

    (3-14)

    이 업데이트 된 알고리즘을 OP 알고리즘이라 한다. 이 알고리즘

    은 매 반복마다 두 직교방향에서 업데이트가 이루어진다.

    따라서 LMS 알고리즘과 비교하면 더 우수한 수렴특성을 얻는다.

    만일 백색 입력신호라면 식(3-7)로부터 b̃( k ) =b (k)임을 알수있다.

    입력신호가 백색인 경우, b (k)는 b (k-1)과 직교하고 식(3-14)는

    2개의 동일한 업데이트를 수행하는 것이 된다. 따라서 α'=α/2이

    된다.

    식(3-14)로부터 탭 수를 N이라 했을 때 승산연산을 기준으로 OP

    알고리즘의 복잡도를 산출해보면 식(3-15)가 된다.

    MOP = O(5n ) (3-15)

    이 연산량은 하드웨어 구현시 더 효율적인 알고리즘을 사용함으

    로서 감소시킨다.

  • - 26 -

    3 .2 개선된 직교투사법

    본 절에서는 앞에서 제시한 직교투사법 알고리즘에 대해서 AR모

    델과 단순가정을 통하여 회로 복잡도를 감소 시킨다.

    AR 프로세스[30]는 추정치 샘플값을 차례로 적용시킬 때 현재의

    추정치와 한단계 이전의 추정치 값이 크게 변하지 않는 프로세스로

    입력신호의 주요한 부류를 형성한다. 단순화하기 위해 입력신호를

    AR 프로세스로 모델링 할 수 있다고 가정하면 식(3-16)으로 나타낸

    다.

    b (k) = μ b (k-1) + n (k) (3-16)

    이제 벡터 b̃( k )는 식(3-17)과 같이 정의된다.

    b̃( k) = b (k) - μ̂( k) b (k-1) (3-17)

    여기서 μ̂ (k)는 상수 μ 의 임의의 추정치이다. n (k)를 백색잡음

    이라 하고 AP 프로세스로부터 bT(k)⋅ b (k-1)의 내적을 구하면

    식(3-18)이 된다.

    bT(k)⋅ b (k-1) = μ|| b (k-1)|| 2 (3-18)

    식(3-18)로부터 μ 의 추정치는 식(3-19)로 주어진다.

  • - 27 -

    μ̂( k) = bT(k)⋅ b (k-1)

    || b (k-1)||2

    (3-19)

    AR 프로세스에 대해 식(3-19)으로부터 식(3-20)과 같은 결과를

    얻을 수 있다.

    b̃T(k)⋅ b̃ ( k- i ) = 0 i≥1 (3-20)

    다시 말하면 이는 AR 프로세스에 의해 b̃ ( k )를 형성할 때,

    b̃ ( k )가 이전의 모든 벡터 b̃ ( k- i )와 직교함을 의미한다. 따라

    서 AR 입력신호를 사용할 경우 식(3-14)의 OP 알고리즘에서 우변

    의 셋째항은 직교함으로 생략이 가능하므로 식(3-21)로 나타낸다.

    c (k+1) = c (k) + 2αb̃( k) r̃ (k)

    || b̃( k)||2

    (3-21)

    식(3-21)에 대한 회로 복잡도를 좀더 감소시키기 위하여 구현하는

    방법을 모색한다. 회로복잡도 감소는 두단계로 이루어진다.

    첫째, 식(3-10)의 r 1(k-1)을 계산함에 있어 콘볼루션(convolu

    tion)을 승산으로 대치한다. 이를 위해 입력신호는 상호 독립적이라

    가정하고 식(3-6)을 이용하여 식(3-22)의 근사식을 사용한다.

    d (k) ≈ (1-2αN

    ) d (k-1) (3-22)

  • - 28 -

    식(3-22)를 식(3-10)에 적용하여 다시 정리하면 식(3-23)가 된다.

    r 1(k-1) ≈ bT(k-1)⋅(1-

    2αN

    ) d (k-1)

    = (1-2αN

    )r (k-1)

    (3-23)

    식(3-11)과 식(3-23)를 이용하여 r̃ (k)에 대한 식(3-24)의 근사식

    을 얻는다.

    r̃ '(k) ≈ r (k) - μ̂( k)(1-2αN

    )r (k-1) (3-24)

    둘째, μ̂( k)는 시간에 따라 매우 느리게 변하기 때문에

    μ̂( k)≈⋯≈ μ̂( k-N+1)라고 가정한다. 따라서 식(3-17)을 다시

    표현하면 식(3-25)이 된다.

    b̃ '(k) = b(k) - μ̂( k)b(k-1) (3-25)

    이는 하나의 승산연산과 길이 N의 지연소자만을 필요로 한다.

    또한, 추정치 값을 계산하기 위해 LMS 알고리즘을 적용하면 식

    (3-26)으로 표현된다.

    μ̂( k+1) = μ̂( k) + 2β b̃(k)b(k-1) (3-26)

    여기서 β는 반향경로를 적응해 나갈 때 스탭의 크기를 나타내는

  • - 29 -

    적응상수이다. 식(3-19)에 주어진 것과 동일한 최종 값으로 수렴할

    것이다.

    식(3-22)와 식(3-23)을 식(3-21)에 적용하면 식(3-27)의 업데이트

    된 계수값을 구할수 있다.

    c (k+1) = c (k) + 2αb̃' ( k) r̃'( k)N P b˜'(k)

    (3-27)

    또한, 식(3-27)에 대한 각각의 파라메터들은 식(3-28)과 같이 표현

    되며 식(3-28)에서 회로 복잡도는 2n이다.

    b̃'T

    (k) = ( b̃'( k),⋯, b̃'(k-N+1))

    b̃ '(k) = b(k) - μ̂( k)b(k-1)

    r̃ '(k) = r (k) - μ̂( k)(1-2αN

    )r (k-1)

    μ̂( k+1) = μ̂( k) + 2β b̃'(k)b(k-1)

    P b˜ '(k+1) = γP b˜ '(k) + (1-γ) b̃'2(k) (3-28)

    식(3-28)에서 회로의 복잡도를 개선하기 위하여 수신신호와 잔차

    신호에 대한 승산을 변형시킨 IOP 알고리즘을 제안하면 식(3-29)와

    같이 표현될 수 있다.

  • - 30 -

    c (k+1) = c (k) + 2αNsign[ b̃' ( k ) ] r̃'( k) (3-29)

    b̃'T

    (k) = ( b̃'( k),⋯, b̃'(k-N+1))

    b̃ '(k) = b(k) - μ̂( k)b(k-1)

    r̃ '(k) = r (k) - μ̂( k)(1-2αN

    )r (k-1)

    μ̂( k+1) = μ̂( k) + 2β b̃'(k)b(k-1)

    식(3-29)에서 개선된 최종 IOP 알고리즘의 복잡도를 감소시키기

    위해 수신입력신호의 값과 잔차신호의 값에서 최상위 비트를 비교

    하여 부호를 결정하고 잔차신호에 부호화 시켜 업데이트 된 계수값

    을 구해서 음향반향제거기에서 승산의 계산량이 기존 직교투사법보

    다 절반으로 감소되는 IOP 알고리즘을 제안하면 회로복잡도가 감소

    되어 IOP 알고리즘 회로 복잡도는 식(3-30)로 나타낸다.

    MAOP = O(n ) (3-30)

    여기서 b̃'T(k)는 원단화자의 수신입력신호이고 r̃ '(k)는 음향반

    향신호에서 반향추정신호를 감산한 잔차신호 값이며 μ̂( k+1) 는

    추정치 값이다.

  • - 31 -

    제 4 장 음향반향제거기 모 의실 험

    본 장에서는 3장에서 음향반향제거기 구현시 회로 복잡도를 감소

    시킨 IOP 알고리즘 성능을 분석하고 음성과 잡음에서의 수렴특성을

    확인하기 위해 C언어를 사용하여 모의실험 프로그램을 작성하고 다

    양한 적응상수값을 적용시켜 음성 및 잡음 입력신호에 대하여 모의

    실험 결과값을 가지고 IOP 알고리즘과 NLMS 알고리즘을 비교 분

    석 하였다[31].

    4.1 음향반향제거기 모 의실 험

    4.1.1 음향반향제거기 모의실험 조건

    회로설계 규격을 설정하는데 참고가 되는 자료를 얻기 위하여 모

    델링한 반향경로에 대해 모의실험을 수행하였다. 입력 데이터로 사

    용한 음성의 녹음과 백색잡음신호의 생성은 Cooledit 소프트웨어를

    사용하여 진행하였다. 모의실험 프로그램은 C 언어를 이용하여 작성

    하였고, 모의실험 과정에서 얻게 된 데이터를 회로설계시 참고하기

    위하여 변수들을 회로설계와 동일한 정수(integer)로 선언하여 코딩

    하였다. 그리고 결과 파형은 Matlab 프로그램을 이용하여 출력을 그

    림으로 나타내었다.

    본 연구에서 실험대상으로 선정한 스피커-폰 시스템은 일반적인

    자동차 내부에 있는 핸즈프리의 스피커와 마이크 시스템이다. 이러

    한 환경에서의 모의실험 조건은 내부공간의 크기가 1.5×2.5×1㎥ 이

  • - 32 -

    고, 데이타 변환기의 선형성은 55dB이다. ADC에서 8kHz 샘플링 주

    파수를 사용할 경우 고려해야할 반향경로 임펄스응답의 길이는 약

    32ms로서 FIR 필터의 탭 수는 약 256 탭을 필요로 한다. 모의실험

    은 각 파라미터의 값에 변화를 주면서 진행함으로서 성능의 변화

    추이를 관찰하였다. 그리고 적응알고리즘 간의 성능비교를 위하여

    동일한 조건에서 NLMS 알고리즘과 IOP 알고리즘에 대한 모의실험

    을 수행하였고 모의실험 조건들은 표 4-1에 요약하였다.

    표 4-1. 음향반향제거기의 모의실험 조건

    Table 4-1. Simulation conditions of acoustic echo canceller.

    조 건 Values

    적응 알고리즘 NLMS, IOP 알고리즘

    내부공간 크기 1.5×2.5×1㎥

    임펄스응답시간 32ms

    탭 수 256 탭

    파라미터 값

    2α 2-8

    2-7, 2-5, 2-3, 2-1, 2

    IOP 알고리즘의 성능을 평가하기 위하여 음성을 이용하여 컴퓨터

    모의실험을 수행하였다. 다양한 적응 파라미터값들을 변화시켜 사용

    하였고, 남성, 여성, 잡음등의 입력신호에 대하여 모의실험을 실시하

    였다. 특히, 반향경로 모델은 측정을 통하여 전달함수를 모델링한

    자료를 적용하였다. 그림 4-1은 음향반향경로의 임펄스 응답을 측정

    하기 위한 과정을 보여주는 그림이다.

  • - 33 -

    ADC

    DAC

    SoundCard

    8 kHz16 bits

    Speaker

    Mic

    8 kHz16 bits

    Recording

    Pseudo-randomSequence

    그림 4-1. 음향반향경로의 임펄스응답 측정방법

    Fig. 4-1. Method measuring impulse response on acoustic echo path.

    그림 4-1에서 음향반향경로에 대한 임펄스응답을 측정하기 위해

    수신신호를 평균이 제로(0)인 의사 잡음신호로 10초(80,000 샘플) 동

    안 발생시키고, 이를 사운드카드의 DAC를 사용하여 아날로그 신호

    로 변환시킨다. 이 신호는 사운드카드 내부에서 증폭된 후 외부 증

    폭스피커에서 다시 증폭되어 출력된다. 스피커를 통해 방사된 신호

    는 음향반향경로를 거친 뒤 마이크로 유입된다. 마이크로 입력된 신

    호는 사운드카드에 의해 증폭된 후 ADC에 의해 디지털신호로 변환

    되어 디스크에 저장된다. 따라서 사전에 저장된 의사 잡음신호와 디

    스크에 녹음된 음향반향신호를 사용하여 다음과 같은 방법으로 반

    향경로의 임펄스응답을 측정할 수 있다[32][33].

    기준입력인 의사잡음 x(n)의 자기상관함수는 식(4-1)과 같다.

    8KHz

    8KHz

  • - 34 -

    Φ xx(k) = n+1n

    δ(k) - 1n

    (4-1)

    여기서, n은 의사잡음의 주기를 나타낸다. 그리고 의사잡음과 반

    향신호 y(n)의 상호상관함수는 식(4-2)로 표현된다.

    Φ xy(k) = ∑n-1

    j=0h(j )( n+1n δ( j-k) -

    1n )

    = n+1n

    ∑n-1

    j=0h(j )δ( j-k) -

    1n

    ∑n-1

    j=0h(j )

    = n+1nh(k) -

    1n

    ∑n-1

    j=0h(j )

    (4-2)

    여기서, ĥ( k)는 측정하고자 하는 음향반향경로의 임펄스응답을

    나타내며, 시간에 따라 변하지 않는다고 가정한다. 따라서 반향경로

    에 대한 임펄스응답은 식(4-3)과 같이 근사적으로 구할 수 있다.

    ĥ( k) = nn+1

    Φ xŷ( k ) ≈ h ( k) (4-3)

    여기서, ĥ( k)는 측정된 음향반향경로의 임펄스응답을, Φ xŷ( k )는

    측정된 상호상관함수를 나타낸다.

    본 논문 모의실험에서 승용차 내부를 기준으로 할때 측정한 임펄

    스응답은 8kHz로 샘플링 할 경우 256 탭 정도면 충분히 모델링 할

    수 있다. 모의실험 조건에서 측정된 반향경로의 임펄스응답에 대해

    32ms 구간의 파형은 그림 4-2와 같다. 그림 4-2에서 반향경로의 응

    답특성은 시간에 지남에 따라 크기가 지수함수적으로 감소하고, 후

  • - 35 -

    미에서는 상당히 긴 꼬리가 지속되는 것을 볼 수 있다.

    그림 4-2. 반향경로모델의 임펄스응답

    Fig. 4-2. Impulse response of the echo path model.

    음향반향제거기의 입력신호인 수신신호는 각각 남성과 여성의 녹

    음된 음성신호를 사용하였다. 여성의 음성신호는 “대표업종인 도소

    매업은 전월보다 0.5% 줄었지만 3%에 이르렀던 작년 10월에 비해

    감소폭이 계속 축소되고 있습니다” 라는 문장을 20대 여성이 발음한

    것으로서, 16-비트 해상도의 77,821 샘플(9.7sec)로 이루어져 있다.

    또한 남성의 음성신호는 “모든 문과 문설주를 다 큰 나무로 네모지

    게 만들었는데 또 기둥 앞에 한 사람이 있고 또 그 앞에 기둥과 검

    돌이 있으며” 라는 문장을 40대 남성이 발음한 것으로 74,735 샘플

    (9.3sec)로 이루어져 있다. 그리고 백색잡음으로 사용된 신호는 음향

    편집도구인 cooledit를 이용하여 생성하였는데, 16-비트 해상도의 불

    규칙한 10,000 샘플(1.25sec) 데이터로 이루어져 있다. 그림 4-3에서

    는 여성 음성과 남성 음성의 대한 파형을 보여주고 그림 4-4는 잡

    음신호에 대한 파형을 보여준다.

  • - 36 -

    (a)

    (b)

    그림 4-3. 모의실험에 사용된 음성들의 파형

    (a) 여자 음성신호의 파형 (b) 남자 음성신호의 파형

    Fig. 4-3. Waveform of voice used in simulations.

    (a) Waveform women of voice signal (b) Waveform men of voice signal

  • - 37 -

    그림 4-4. 모의실험에 사용한 잡음신호의 파형

    Fig. 4-4. Waveform of noise used in simulation.

    성능평가기준으로 수렴시간과 ERLE를 측정하였다. 수렴시간은 적

    응 개시부터 ERLE가 20dB 이상으로 상승하는 시점까지의 소요시간

    을 샘플 수로 나타낸다. 식(4-4)에 제시된 ERLE는 반향신호대 제거

    되지 않은 잔여반향신호의 비를 dB 단위로 표현한 것으로서, 반향

    제거기의 성능평가기준으로 가장 널리 사용되고 있는 일반적인 방

    법이다.

    ERLE(k) = 10log∑L-1

    i=0y2(k-i )

    ∑L-1

    i=0r2(k-i )

    [dB] (4-4)

    여기서, y(k)=a(k)+e(k)+n(k), r(k)= y(k)- ê( k)이며, L은

    평균을 구하기 위한 샘플 수를 나타낸다. 식(4-4)로부터 반향신호가

  • - 38 -

    많이 제거되면 될수록 ERLE는 증가하게 됨을 알 수 있다.

    4.1.2 음향반향제거기 모의실험 시스템

    본 논문에서 제안한 IOP 알고리즘의 성능을 평가하기 위하여 모

    의실험 프로그램을 작성하였다. 프로그램은 C 언어를 이용하여 펜티

    엄 PC 상에서 작성하였으며, 녹음된 시험음성을 이용하여 여러 조

    건에서 모의실험을 수행하였다.

    시험용 음향반향제거기 시스템의 구조를 그림 4-5에 도시하였다.

    이 실험에 사용한 반향제거기는 256 탭 FIR 구조로서 NLMS와 IOP

    적응알고리즘을 사용하였으며, 적응스텝의 크기는 2α = 2-8으로 설

    정하였다. 모의실험 결과는 Matlab 프로그램을 사용하여 출력 파형

    을 나타 내였으며, 알고리즘의 성능은 반복된 샘플 수에 대해 ERLE

    의 변화를 나타내는 수렴특성곡선으로 확인하였다.

    +

    Randomsignal

    Residualsignal

    echo_can.vhd

    EchoCanceller

    CODECI/F

    PathModel

    CODECI/F

    WestCODEC

    EastCODEC

    test_bench.vhd

    그림 4-5. 시험용 음향반향제거기 시스템의 구조

    Fig. 4-5. Structure of the echo cancellation system for testing.

  • - 39 -

    모의실험 프로그램의 전체적인 동작과정과 흐름도는 그림 4-6과

    같다. 프로그램은 크게 4부분으로 나누어지는데 여러 변수들의 초기

    화부, 입력 데이터파일 로딩 및 각 데이터 생성부, 반향제거필터의

    계수 갱신 및 반향추정신호 제거를 위한 반복 연산부, 그리고 ERLE

    산출 및 결과를 나열해 주는 출력부 등으로 구성되어 있다. 초기화

    부는 각 변수 및 변수행렬의 초기화는 물론 필터의 탭 수, 총 샘플

    수, 필터계수 조정스텝의 크기 등을 설정하게 된다. 데이터 생성부

    에서는 수신 및 송신 데이터파일의 로딩(loading), 수신 데이터와 반

    향경로 데이터를 사용한 반향신호 생성, 그리고 백색 잡음신호의 생

    성 등을 수행하게 된다. 반복 연산부는 수신신호와 잔차신호를 이용

    하여 반향제거 FIR 필터의 계수를 갱신하고, 계수값과 수신신호를

    이용하여 반향추정신호를 산출한 후 음향반향신호로부터 감산하는

    등의 연산을 반복 수행하게 된다. 여기서 추정치 μ̂ (k)와 잔차신호

    의 직교성분 r̃ '(k)도 8kHz 마다 업데이트 된다. 그리고, 출력부에

    서는 반향제거기의 수렴척도로서 ERLE의 평균값을 매 샘플마다 계

    산하고, 그 결과를 최종 출력으로 하여 파일에 저장한다.

  • - 40 -

    그림 4-6. 모의실험 프로그램의 흐름도

    Fig. 4-6. Flowchart of the simulation program.

    수신데이타

    계수배열

  • - 41 -

    4.2 음향반향제거기 모 의실 험 결 과

    그림 4-7, 4-8, 4-9, 4-10, 4-11은 여자 및 남자 음성신호의 파형

    과 잡음신호의 파형에 대한 두 알고리즘의 수렴특성곡선을 보여준

    다. 음성신호는 본래 상호상관도가 높고 최대치와 최소치 간의 비가

    매우 큰 속성을 갖고 있다. 따라서 수렴된 상태에서 반향신호가 제

    거되고 난 후의 잔차신호는 거의 일정한 크기를 가지므로, 반향신호

    의 제거정도를 나타내는 ERLE가 반향신호의 크기에 따라 변화하는

    것을 볼 수 있다. 반향신호가 클 경우에는 ERLE도 크고, 반향신호

    가 작을 경우에는 ERLE도 작아진다. 그림에서 보는 바와 같이 음성

    의 크기가 변화함에 따라서 ERLE도 그 변화속도를 충분히 추적해

    갈 수 있어야 한다.

    이 모의실험에서 적응 파라미터 β의 크기를 2-7

    , 2-5

    , 2-3

    , 2-1

    , 2로

    조정하면서 ERLE의 변화 추이를 관찰하였다. 그림에서 청색 곡선은

    IOP 알고리즘의 수렴특성을 나타내고, 적색 곡선은 NLMS 알고리

    즘의 수렴특성을 표시하고 있다. 곡선으로부터 직교투사법은 NLMS

    알고리즘보다 평균적으로 3dB 이상 우수한 특성을 나타내는 것을

    알 수 있다.

  • - 42 -

    (a)

    (b)

    그림 4-7. 적응 파라미터 β=2-7

    인 경우 음성의 수렴특성

    (a) 남자 음성 (b) 여자음성

    Fig. 4-7. Convergence curves of voice for adaptation parameter β=2-7

    .

    (a) men voice. (b) women voice.

    NLMSIOP

    NLMSIOP

  • - 43 -

    (a)

    (b) 그림 4-8. 적응 파라미터 β=2

    -5인 경우 음성의 수렴특성

    (a) 남자음성 (b) 여자음성Fig. 4-8. Convergence curves of voice for adaptation parameter β=2

    -5.

    (a) men voice. (b) women voice.

    NLMSIOP

    NLMSIOP

  • - 44 -

    (a)

    (b)

    그림 4-9. 적응 파라미터 β=2-3

    인 경우 음성의 수렴특성

    (a) 남자음성 (b) 여자음성Fig. 4-9. Convergence curves of voice for adaptation parameter β=2

    -3.

    (a) men voice. (b) women voice.

    NLMSIOP

    NLMSIOP

  • - 45 -

    (a)

    (b) 그림 4-10. 적응 파라미터 β=2

    -1인 경우 음성의 수렴특성

    (a) 남자 음성 (b) 여자 음성Fig. 4-10. Convergence curves of voice for adaptation parameter β=2

    -1.

    (a) men voice. (b) women voice.

    NLMSIOP

    NLMSIOP

  • - 46 -

    (a)

    (b)그림 4-11. 적응 파라미터 β=2인 경우 음성의 수렴특성

    (a) 남자 음성 (b) 여자 음성

    Fig. 4-11. Convergence curves of voice for adaptation parameter β=2.

    (a) men voice. (b) women voice.

    NLMSIOP

    NLMSIOP

  • - 47 -

    본 논문에서 제안한 IOP 알고리즘의 성능을 검증하기 위하여 모

    의실험을 수행하였다. 그림 4-7~11에서 남자 및 여자의 음성에 대

    해 적응 파라미터 β의 크기를 변화시킴에 따라서 반향제거기의 수

    렴특성에 어떤 영향을 주는가를 보여주고 있다. 모의실험은 남자의

    경우 74,735 샘플, 여자의 경우 77,821 샘플에 대하여 실시하였다.

    남자음성 및 여자음성에 대하여 적응 파라미터를 조정하면서 수

    렴특성을 관찰하였다. 그림 4-7은 적응 파라미터의 크기가 β=2-7

    경우로서 파라미터의 크기가 가장 작은 경우이다. 여기서, 적색선은

    NLMS 알고리즘의 수렴특성을 나타내고, 청색선은 IOP 알고리즘의

    수렴특성을 나타낸다. 그림 4-7에서 남자의 경우 ERLE 값은 IOP

    알고리즘이 NLMS 알고리즘보다 전반적으로 약 3dB 개선된 성능을

    보이는 것을 알 수 있다. 그리고 여자의 경우도 ERLE 값은 IOP 알

    고리즘이 NLMS 알고리즘보다 약 3dB 높다는 것을 확인할 수 있

    다.

    그림 4-8는 적응 파라미터의 크기가 β=2-5

    인 경우로서, 남자의 경

    우 ERLE 값은 IOP 알고리즘이 NLMS 알고리즘보다 전반적으로 약

    3dB 개선된 성능을 보이는 것을 알 수 있다. 또한, 여자의 경우도

    ERLE 값은 IOP 알고리즘이 NLMS 알고리즘보다 약 3dB 높다는

    것을 확인할 수 있다. 특히 남자의 경우 수렴 초기보다 후반에서

    IOP 알고리즘이 NLMS 알고리즘보다 더 개선되어지는 것을 볼 수

    있다.

    그림 4-9은 적응 파라미터의 크기가 β=2-3

    인 경우로서 여기에서도

    남자와 여자의 경우 앞 그림에서와 같이 모두 큰 차이가 없다. 즉

    남자와 여자 모두 ERLE 값은 IOP 알고리즘이 NLMS 알고리즘보다

    약 3dB 높다는 것을 알 수 있다. 뿐만 아니라 수렴 초기보다 후반

  • - 48 -

    에서 IOP 알고리즘이 NLMS 알고리즘보다 개선됨을 알 수 있었다.

    그림 4-10는 적응 파라미터의 크기가 β=2-1

    인 경우로서 이 그림에

    서는 남자 및 여자 모두에서 ERLE 값이 줄어들어 전반적으로 약

    2dB 정도의 차이로 감소한 것을 볼 수 있다. 이는 적응 파리미터의

    크기가 증가함에 따라서 ERLE 값이 감소하기 시작했음을 의미한다.

    그림 4-11는 적응 파라미터의 크기가 β=2인 경우로서 파라미터의

    크기가 가장 큰 경우이다. 그림 4-11에서 여자의 경우 ERLE 값은

    계속해서 IOP 알고리즘이 NLMS 알고리즘보다 전반적으로 약 2dB

    높게 나타났으나, 남자의 경우는 수렴속도가 떨어져 초기에 ERLE

    값이 저조하고 점차 향상되어 후반부에서는 다시 약 2dB의 성능 우

    위를 보여준다. 이러한 결과는 적응 파라미터의 크기가 증가함에 따

    라 반향경로를 추적시 스탭의 크기가 커지므로 수렴속도가 저하되

    는 것을 의미한다.

    그림 4-12. 적응 파라미터 β=2-5

    인 경우 잡음의 수렴특성

    Fig. 4-12. Convergence curves of noise for adaptation parameter β=2-5

    .

    NLMSIOP

  • - 49 -

    그림 4-13. 적응 파라미터 β=2-3

    인 경우 잡음의 수렴특성

    Fig. 4-13. Convergence curves of noise for adaptation parameter β=2-3

    .

    그림 4-14. 적응 파라미터 β=2-1

    인 경우 잡음의 수렴특성

    Fig. 4-14. Convergence curves of noise for adaptation parameter β=2-1

    .

    NLMSIOP

    NLMSIOP

  • - 50 -

    그림 4-12~14에서는 백색 잡음신호에 대해 IOP 알고리즘의 적응

    파라미터 β의 크기를 변화시킴에 따라서 반향제거기의 수렴특성에

    어떤 영향을 주는가를 보여주고 있다. 모의실험은 인위적으로 생성

    한 10,000샘플에 대하여 실시하였다.

    백색잡음은 불규칙한 패턴을 갖고 있기 때문에 수렴속도가 매우

    빠르고 안정된 수렴특성을 나타낸다. 수렴특성은 적응 파라미터의

    값에 큰 영향을 받지 않는 것으로 보인다. 적응 파라미터에 따라 초

    기 수렴속도 및 수렴 후 ERLE 값 등에서 별다른 차이가 없음을 알

    수 있다. 적응 개시하자마자 곧바로 수렴하기 시작하여 적응 파라미

    터에 상관없이 IOP 알고리즘에서는 약 2,000샘플(0.275 sec)에서 수

    렴하는 것을 볼 수 있다. 수렴 후 ERLE 값도 모두 안정된 상태에서

    미세하게 상향되고 있음을 알 수 있다.

    모의실험 결과로부터 IOP 알고리즘은 NLMS 알고리즘에 비해 초

    기 수렴속도 및 수렴 후 ERLE 값 등에서 모두 우수한 성능을 나타

    내는 것을 볼 수 있다. 초기 수렴과정에서 많은 차이를 보이며 최대

    5dB 정도 차이가 나는 사실을 확인할 수 있다. 수렴시간은 NLMS

    알고리즘이 약 3,000샘플, IOP 알고리즘이 약 2,000샘플 소요되었다.

    또한 수렴시 반향신호의 제거정도를 나타내는 ERLE 값도 NLMS

    알고리즘의 경우 평균으로 23dB 정도이고, IOP 알고리즘의 경우 평

    균 25dB 정도를 달성하였다. 이후 정상상태에서 두 알고리즘 간

    ERLE 값의 차이가 평균 2-3dB 정도 유지되므로 IOP 알고리즘은

    NLMS 알고리즘에 비해 여전히 비교우위를 지키는 것을 알 수 있

    다.

  • - 51 -

    제 5 장 음향반향제거기 회로의 설계

    본 장에서는 음향반향제거기 회로를 구현[34][35]하기 위해서 본

    논문에서 제안한 회로 복잡도가 매우 감소된 IOP 알고리즘을 적용

    시켜 VHDL언어로 주파수 분주기, 코덱 인터페이스, 데이터 메모리,

    계수 메모리, 산술논리연산장치, ERLE 산출부 등의 회로를 설계하

    였다.

    5.1 음향반향제거기 회 로의 사양

    음향반향경로의 응답길이는 선로반향보다 훨씬 길게 나타나기 때

    문에 회로구조도 그만큼 복잡해지게 된다. 음향반향제거기 회로를

    설계하기 위해 입력 음성파형은 8kHz로 샘플링 하고 15-비트로 양

    자화 되어 디지털신호로 변환된다. 이러한 사양을 갖고 회로를 설계

    한다면 약 35,000 게이트(gate)가 소요될 것으로 사료된다.

    음향반향제거기 회로 설계에는 MAX PLUSⅡ 도구를 이용하여

    VHDL 언어를 이용하여 주파수 분주기, 데이터 및 계수 메모리, 코

    덱 인터페이스, 산술논리연산장치, ERLE 산출부에 대해서 프로그램

    을 작성하여 음향반향제거기 회로를 설계하였다.

    표 5-1은 설계한 음향반향제거기 회로의 주요 사양을 열거하였다.

  • - 52 -

    표 5-1. 음향반향제거기 회로의 설계사양

    Table 5-1. Design specifications of the acoustic echo canceller.

    구 분 값

    적응 알고리즘 IOP 알고리즘

    선형필터의 탭수 256 탭

    회로 구조 Pipelined systolic array

    승산기 형태 Carry save multiplier

    마스터 클럭 10.24MHz

    샘플링 주파수 8kHz

    ADC 해상도 15-비트

    게이트 수 약 35,000 게이트

    5.2 음향반향제거기 회 로구조

    음향반향제거기는 적응 FIR 필터를 사용하여 설계하였으며, 반향

    제거모드 및 계수갱신모드를 외부에서 제어할 수 있도록 하였다. 음

    향반향제거기는 25개 입력핀과 28개 출력핀으로 구성되며, 전체적인

    회로 구성도를 그림 5-1에서 보여주고 있다. 이 회로는 각 블록에서

    필요로 한 보조클럭을 생성하여 공급해 주는 주파수 분주기, 송수신

    데이터의 아날로그-디지털 변환을 수행하는 코덱 인터페이스회로,

    수신된 데이터를 입력받아 저장하는 데이터 메모리와 업데이트 된

    데이터를 입력받아 저장하는 계수 메모리, 계수 업데이트 된 데이터

    를 이용하여 반향추정신호 생성기능, 반향신호보상 기능 등을 수행

    하는 산술논리연산장치, 그리고 음향반향제거기의 반향제거 성능을

    수치로서 나타내는 ERLE 산출부 등으로 구성되어 있다. 주파수 분

  • - 53 -

    주기는 오실레이터로부터 10.24MHz 마스터 클럭을 받아들이고, 11-

    비트 카운터를 사용하여 8kHz 까지 여러 주파수의 클럭들을 생성해

    낸다. 이 클럭들은 각 블록으로 공급되어 해당 블록의 클럭이나 제

    어신호를 만드는데 사용된다.

    음향반향제거기 회로의 주요 하드웨어 규격을 요약하면 다음과

    같다.

    ∙256 탭 FIR 필터구조

    ∙15-비트 데이타 : 15-비트 256-word 데이타 메모리

    ∙20-비트 계수 : 20-비트 256-word 계수 메모리

    ∙30-비트 누산기

    ∙15×15-비트 1-사이클 승산기

    ∙15/15-비트 1-사이클 제산기

    ∙입력 핀 : 25개, 출력 핀 : 28개

    Freq_div

    Clocks

    DIP(cont_reg)

    DataRAM

    ALU

    Update &Estimate

    SCKFS

    (echo)SIN(spk)SOUT

    15 /

    LED(reg_data)

    CODEC

    West

    CoefficientRAM

    /15

    CODEC

    East

    15/

    15/

    15/

    /11

    Clock

    Reset

    EC_mode

    15/

    Multiplier

    SCKFSSIN(RX)SOUT(resid)

    12/

    12/

    Update

    LED_selEW_sel

    EW_LED2/

    ERLE15/ LED(erle)12/Divider15/

    Control_sw

    그림 5-1. 음향반향제거기의 구성도

    Fig. 5-1. Block diagram of acoustic echo canceller.

  • - 54 -

    입출력 핀에 대한 설명을 표 5-2에 정리하여 나타내었다.

    표 5-2. 입출력 핀

    Table 5-2. Pin description.

    핀 명칭 형태 설 명

    CLOCK 입력 10.24 Mhz master clock

    RESET 입력 power on reset, active '0'

    Control_sw 입력 control register data transfer

    EW_sel 입력 east/west control register select

    LED_sel 입력 LED display select (control register/ERLE data)

    EC_mode 입력 echo canceller enable/disable

    Update 입력 coefficient update enable/disable

    Control_reg[11:0] 입력 control register write data

    SCK_e 입력 east CODEC의 data clock (2.048MHz)

    SCK_w 입력 west CODEC의 data clock (2.048MHz)

    FS_e 입력 east CODEC의 frame clock (16kHz)

    FS_w 입력 west CODEC의 frame clock (16kHz)

    SIN_e 입력 east ADC로부터 serial input data

    SIN_w 입력 west ADC로부터 serial input data

    SOUT_e 출력 east DAC로 serial output data

    SOUT_w 출력 west DAC로 serial output data

    EW_led[1:0] 출력 east/west LED on/off

    Reg_data[11:0] 출력 control register read data

    ERLE[11:0] 출력 ERLE 계산값

  • - 55 -

    그림 5-2는 설계한 회로를 FPGA 내부에 구현했을 때 각 소자들

    이 사용된 배치도를 보여주는데, 중앙에 있는 한 열(row)이 메모리

    구현 부분이며 흰색으로 표시되지 않은 부분은 현재 사용되고 있음

    을 나타낸다.

    그림 5-2. 음향반향제거기의 FPGA 내부 배치도

    Fig. 5-2. FPGA placement of acoustic echo canceller.

  • - 56 -

    5.3 음향반향제거기 회 로의 설 계

    5.3.1 클럭생성부 설계

    Process :

    Clock

    Masterclock

    ResetClocks(to blocks)

    11

    그림 5-3 주파수 분주기

    Fig. 5-3. Frequency divider.

    그림 5-3은 각 블록에 필요한 주파수를 생성하는 주파수 분주기

    이다. 이 클럭생성부는 각 블록에서 필요로 하는 보조클럭을 생성하

    여 공급함으로서 동작 타이밍의 기준을 제공하는 역할을 한다. 이

    블록에서는 오실레이터로부터 10.24MHz 마스터 클럭을 받아들여,

    11-비트 카운터를 사용하여 최저 8kHz까지 여러 주파수의 클럭들을

    생성해낸다. 즉 10.24MHz 클럭을 입력받아 1,280진 카운터를 통하

    여 5.12MHz, 2.56MHz, 1.28MHz, 640kHz, 320kHz, 160kHz, 80kHz,

    40kHz, 20kHz, 10kHz, 8kHz 등의 주파수를 가진 펄스를 만들어낸

    다. 이 클럭들은 각 블록으로 공급되어 해당 블록의 클럭이나 제어

    신호를 만드는데 사용된다. 여기서 20kHz 클럭은 16kHz 마다 T/2

    갭(gap)을 포함하고 있고, 10kHz 클럭은 8kHz 마다 T/4 갭을 포함

    Frequency

    Divider

  • - 57 -

    하고 있는 40% 듀티(duty) 사이클의 펄스이며, 8kHz 클럭은 5kHz

    클럭 중에서 한 주기의 3T/8 부분이 삭제된 20% 듀티 사이클의 펄

    스이다.

    입력신호는 10.24MHz 오실레이터와 연결된 클럭 신호와 칩 전체

    리셑(reset) 수단을 제공하는 리�