Main Content

필터 디자이너 소개

이 예제에서는 명령줄 필터 설계 함수를 사용하는 대신 간편하게 필터 디자이너를 사용하는 방법을 보여줍니다.

필터 디자이너는 필터를 설계하고 분석하는 데 사용할 수 있는 Signal Processing Toolbox™의 강력한 그래픽 사용자 인터페이스(GUI)입니다.

필터 디자이너를 사용하면 필터 성능 사양을 설정하거나, MATLAB® 작업 공간에서 필터를 가져오거나, 극점과 영점을 추가, 이동 또는 삭제하여 디지털 FIR 필터나 IIR 필터를 신속하게 설계할 수 있습니다. 필터 디자이너는 크기 및 위상 응답 플롯과 극점-영점 플롯과 같이 필터를 분석하는 데 사용할 수 있는 툴도 제공합니다.

시작하기

MATLAB 명령 프롬프트에 filterDesigner를 입력합니다.

>> filterDesigner

유용한 정보 대화 상자에 필터 디자이너 사용에 관한 권장 사항이 표시됩니다. 그런 다음, 디폴트 필터가 GUI 방식으로 표시됩니다.

이 GUI에는 세 가지 기본 영역이 있습니다.

  • 현재 필터 정보 영역

  • 필터 표시 영역

  • 설계 패널

GUI의 위쪽 절반은 현재 필터의 필터 사양과 응답에 대한 정보를 표시합니다. 왼쪽 위에 있는 현재 필터 정보 영역은 필터 속성, 즉 필터 구조, 차수, 사용된 섹션 개수, 필터가 안정적인지 여부 등을 표시합니다. 또한 이 영역에서 여러 필터를 다루기 위한 필터 관리자에 액세스할 수도 있습니다.

오른쪽 위에 있는 필터 표시 영역은 크기 응답, 군지연, 필터 계수와 같은 다양한 필터 응답을 표시합니다.

GUI의 아래쪽 절반은 필터 디자이너의 대화형 설정 부분입니다. 아래쪽 절반에 있는 설계 패널은 필터 사양을 정의하는 곳입니다. 여기에서 위쪽의 두 영역에 표시되는 사항을 제어할 수 있습니다. 사이드바 버튼을 사용하여 아래쪽 절반에 다른 패널을 표시할 수 있습니다.

이 툴에는 상황별 도움말이 포함되어 있습니다. 마우스 오른쪽 버튼을 클릭하거나 설명 버튼을 클릭하면 툴의 여러 부분에 대한 정보를 확인할 수 있습니다.

필터 설계하기

나이퀴스트 주파수(샘플링 주파수의 절반)의 20%보다 작거나 같은 모든 주파수는 통과시키고 나이퀴스트 주파수의 50%보다 크거나 같은 주파수는 감쇠시키는 저역통과 필터를 설계해 보겠습니다. 다음 사양을 갖는 FIR 등리플 필터를 사용하겠습니다.

  • 통과대역 감쇠량 1dB

  • 저지대역 감쇠량 80dB

  • 통과대역 주파수 0.2[정규화됨(0 ~ 1)]

  • 저지대역 주파수 0.5[정규화됨(0 ~ 1)]

이 설계를 구현하기 위해 다음 사양을 사용할 수 있습니다.

1. 응답 유형 아래에 있는 드롭다운 메뉴에서 저역통과를 선택하고 FIR 설계 방법 아래에서 등리플(Equiripple)을 선택합니다. 일반적으로, 응답 유형이나 설계 방법을 변경하면 필터 파라미터와 필터 표시 영역이 자동으로 업데이트됩니다.

2. 필터 차수 영역에서 차수 지정을 선택하고 30을 입력합니다.

3. FIR 등리플 필터에는 주파수 그리드의 밀도를 제어하는 밀도 인자 옵션이 있습니다. 값을 늘리면 이상적인 등리플 필터에 더욱 가까운 필터가 생성되지만, 계산이 늘어남에 따라 더 많은 시간이 필요합니다. 이 값을 20으로 그대로 둡니다.

4. 주파수 사양 영역의 단위 풀다운 메뉴에서 정규화됨(0 ~ 1)을 선택합니다.

5. 주파수 사양 영역에서 wpass0.2를 입력하고 wstop0.5를 입력합니다.

6. 크기 사양 영역에 있는 WpassWstop은 FIR 등리플 필터에서 최적화를 수행하는 동안 사용되는 양의 가중치로, 대역별로 하나의 가중치가 있습니다. 이 값을 1로 그대로 둡니다.

7. 설계 사양을 설정한 후 GUI 맨 아래에 있는 필터 설계 버튼을 클릭하여 필터를 설계합니다.

계수가 계산된 후 필터 분석 영역에 필터의 크기 응답이 표시됩니다.

기타 분석 보기

필터를 설계한 후에 도구 모음에 있는 버튼을 클릭하여 표시 창에서 다음과 같은 필터 분석을 확인할 수 있습니다.

버튼은 왼쪽에서 오른쪽 순으로 다음과 같습니다.

  • 크기 응답

  • 위상 응답

  • 크기 응답과 위상 응답

  • 군지연 응답

  • 위상 지연 응답

  • 임펄스 응답

  • 계단 응답

  • 극점-영점 플롯

  • 필터 계수

  • 필터 정보

좌표축 단위 변경하기

축 레이블을 마우스 오른쪽 버튼으로 클릭하고 원하는 단위를 선택하여 x축이나 y축 단위를 변경할 수 있습니다. 현재 단위에는 확인 표시가 있습니다.

데이터 점 표시하기

표시 영역에서, 플롯에 있는 임의의 점을 클릭하여 데이터 마커를 추가할 수 있습니다. 데이터 마커는 해당 점의 값을 표시합니다. 데이터 마커를 마우스 오른쪽 버튼으로 클릭하면 데이터 마커를 이동 또는 삭제하거나, 데이터 마커의 모양을 조정할 수 있는 메뉴가 표시됩니다.

설계 최적화하기

필터 구현 비용을 최소화하기 위해 설계 패널의 최소 차수 옵션을 사용하여 계수 개수를 줄여 보겠습니다.

설계 영역의 필터 차수에서 선택한 항목을 최소 차수로 변경하고 다른 파라미터는 그대로 둡니다.

필터 설계 버튼을 클릭하여 새 필터를 설계합니다.

현재 필터 정보 영역에서 볼 수 있듯이, 필터 차수가 30에서 16으로 감소하고 리플 개수가 줄었으며 천이 폭이 더 넓어졌습니다. 통과대역 사양과 저지대역 사양은 여전히 설계 기준을 충족합니다.

분석 파라미터 변경하기

플롯을 마우스 오른쪽 버튼으로 클릭하고 분석 파라미터를 선택하여 분석 관련 파라미터를 변경할 수 있는 대화 상자를 표시할 수 있습니다. 분석 메뉴에서 분석 파라미터를 선택할 수도 있습니다.

표시된 파라미터를 디폴트 값으로 저장하려면 디폴트 값으로 저장을 클릭하십시오. MATLAB에서 정의한 디폴트 값을 복원하려면 원래 디폴트 값 복원을 클릭하십시오.

필터 내보내기

설계에 만족하면 다음 대상으로 필터를 내보낼 수 있습니다.

  • MATLAB 작업 공간

  • MAT 파일

  • 텍스트 파일

파일 메뉴에서 내보내기를 선택합니다.

MATLAB 작업 공간이나 MAT 파일로 내보내기로 선택한 경우 필터를 계수로 내보낼 수 있습니다. DSP System Toolbox™가 있는 경우 필터를 System object로 내보낼 수도 있습니다.

MATLAB 파일 생성하기

필터 디자이너를 사용하면 MATLAB 코드를 생성하여 필터를 다시 만들 수 있습니다. 이를 통해 설계를 기존 코드에 포함시키거나 스크립트로 필터 생성을 자동화할 수 있습니다.

파일 메뉴에서 MATLAB 코드 생성을 선택하고, 필터 설계 함수를 선택한 후 MATLAB 코드 생성 대화 상자에서 파일 이름을 지정합니다.

위에서 설계한 최소 차수 필터에서 다음 코드가 생성되었습니다.

필터 양자화하기

DSP System Toolbox™가 설치되어 있는 경우 사이드바에서 양자화 파라미터 설정 패널을 사용할 수 있습니다.

이 패널을 사용하여 배정밀도 필터를 양자화하고 분석할 수 있습니다. DSP System Toolbox를 사용하여 배정밀도에서 단정밀도로 양자화할 수 있습니다. Fixed-Point Designer가 있는 경우 고정소수점 정밀도로 필터를 양자화할 수 있습니다. 참고로, 필터에 부동소수점 연산방식과 고정소수점 연산방식을 혼합하여 사용할 수는 없습니다.

타깃

필터 디자이너의 타깃 메뉴를 사용하면 필터를 나타내는 다양한 유형의 코드를 생성할 수 있습니다. 예를 들어, C 헤더 파일, XILINX 계수(COE) 파일(DSP System Toolbox 사용) 및 VHDL, Verilog를 테스트 벤치(Filter Design HDL Coder™ 사용)와 함께 생성할 수 있습니다.

추가 기능

필터 디자이너에는 다음과 같은 기타 MathWorks™ 제품의 추가 기능이 통합되어 있습니다.

  • DSP System Toolbox - 고급 FIR 및 IIR 설계 기법(예: 필터 변환, 멀티레이트 필터)을 추가하고 해당 필터와 동일한 기능을 갖는 블록을 생성합니다.

  • Embedded Coder™ - Texas Instruments C6000 프로세서에 대한 코드를 생성하고, 빌드하고, 배포합니다.

  • Filter Design HDL Coder - 고정소수점 필터에 대해 합성 가능한 VHDL 코드나 Verilog 코드를 생성합니다.

  • Simulink® - 아토믹 Simulink 블록에서 필터를 생성합니다.

참고 항목