이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

fvtool

필터 시각화 툴 열기

구문

fvtool(b,a)
fvtool(sos)
fvtool(d)
fvtool(b1,a1,b2,a2,...,bN,aN)
fvtool(sos1,sos2,...,sosN)
fvtool(Hd)
fvtool(Hd1,Hd2,...,HdN)
h = fvtool(...)

설명

fvtool(b,a)는 FVTool을 열고 분자 b와 분모 a로 정의된 디지털 필터의 크기 응답을 표시합니다. FVTool을 사용하면 필터의 위상 응답, 군지연, 임펄스 응답, 계단 응답, 극점-영점 플롯 및 계수를 표시할 수 있습니다. 파일(File) > 내보내기(Export)를 사용하여 표시된 응답을 파일로 내보낼 수 있습니다.

참고

fvtool에 대한 입력값이 단정밀도인 경우 크기 응답은 단정밀도 산술 연산을 사용하여 계산됩니다.

fvtool(sos)는 FVTool을 열고 2차섹션형 행렬 sos로 정의된 디지털 필터의 크기 응답을 표시합니다. sos는 Kx6 행렬입니다. 여기서 섹션 개수 K는 2보다 크거나 같아야 합니다. 섹션 개수가 2보다 작으면 fvtool이 입력값을 분자 벡터로 간주합니다. sos의 각 행은 2차(바이쿼드) 필터의 계수에 대응됩니다. sos 행렬의 i번째 행은 [bi(1) bi(2) bi(3) ai(1) ai(2) ai(3)]에 대응됩니다.

fvtool(d)는 FVTool을 열고 디지털 필터 d의 크기 응답을 표시합니다. designfilt를 사용하여 주파수-응답 사양을 기반으로 d를 생성합니다.

fvtool(b1,a1,b2,a2,...,bN,aN)은 FVTool을 열고 분자 b1, …, bN과 분모 a1, ..., aN으로 정의된 여러 필터의 크기 응답을 표시합니다.

fvtool(sos1,sos2,...,sosN)은 FVTool을 열고 2차섹션형 행렬 sos1, sos2, ..., sosN으로 정의된 여러 필터의 크기 응답을 표시합니다.

fvtool(Hd)는 FVTool을 열고 dfilt 필터 객체 Hd 또는 dfilt 필터 객체의 배열에 대한 크기 응답을 표시합니다.

fvtool(Hd1,Hd2,...,HdN)은 FVTool을 열고 dfilt 객체 Hd1, Hd2, ...HdN에 포함된 필터의 크기 응답을 표시합니다.

DSP System Toolbox™ 제품이 설치되어 있는 경우 fvtool(H)fvtool(H1,H2,...)를 사용하여 다음을 분석할 수도 있습니다.

dsp.DigitalDownConverterdsp.DigitalUpConverter System Object는 FVTool을 지원합니다. 이러한 System Object에 대해 FVTool을 호출하는 경우 'Arithmetic' 입력값을 FVTool에 전달해야 합니다.

입력 필터가 dfilt 객체인 경우 필터 객체의 연산방식 속성이 'fixed'로 설정되면 FVTool이 고정소수점 분석을 수행합니다. 그러나, 필터 System Object에 대해 fvtool(H,'Arithmetic',ARITH,...)ARITH 입력값에 지정된 연산방식에 따라 H를 분석합니다.

ARITH'double', 'single', 'fixed' 중 하나일 수 있습니다. 'Arithmetic' 입력값은 필터 System Object에 대한 분석에 대해서만 유효합니다. 연산방식 설정 ARITH는 FVTool에 입력하는 모든 필터 System Object에 적용됩니다. 'double'을 지정하면 함수가 배정밀도 분석을 수행하고, 'single'을 지정하면 함수가 단정밀도 분석을 수행합니다. 'fixed'를 지정하면 연산방식이 CoefficientDataType 속성에 대한 설정과 System Object가 잠겨 있는지 여부에 따라 달라집니다.

 고정소수점 연산방식에 대한 세부 정보

CIC가 아닌 구조체에 대해 연산방식을 지정하지 않고 System Object가 잠금 해제된 상태인 경우 이 함수는 배정밀도 연산방식을 사용합니다. System Object가 잠긴 경우 이 함수는 잠긴 상태의 입력 데이터 유형에 따라 분석을 수행합니다. CIC 구조체는 고정소수점 연산방식만 지원합니다.

분석 방법 noisepsdfreqrespestfvtool에서 동작 제한이 있습니다. 규칙을 보려면 이들 방법에 대한 링크를 클릭하십시오.

h = fvtool(...)은 figure 핸들 h를 반환합니다. 이 핸들을 사용하여 명령줄에서 FVTool과 상호 작용할 수 있습니다. MATLAB 명령줄에서 FVTool 제어하기 항목을 참조하십시오.

FVTool에는 두 가지 도구 모음이 있습니다.

  • 확장된 버전의 MATLAB® 플롯 편집 도구 모음. 다음 표에는 FVTool에서 찾을 수 있는 도구 모음 아이콘이 나와 있습니다.

    아이콘

    설명

    디폴트 보기 복원. 이 보기는 데이터를 둘러싸는 버퍼 영역을 표시하고 유의미한 데이터만 보여줍니다. 모든 데이터 값을 보여주는 표준 MATLAB 플로팅을 사용하여 응답을 보려면 보기(View) > 전체 보기(Full View)를 사용하십시오.

    범례 토글

    그리드 토글

    필터 디자이너에 대한 링크(FVTool이 필터 디자이너에서 시작된 경우에만 표시됨)


    추가 모드/바꾸기 모드 간 변환(FVTool이 필터 디자이너에서 실행된 경우에만 표시됨)

  • 다음 아이콘을 갖는 분석 도구 모음

    현재 필터의 크기 응답. 자세한 내용은 freqzzerophase를 참조하십시오.

    영위상 응답을 보려면 크기 플롯의 y축 레이블을 마우스 오른쪽 버튼으로 클릭하고 상황별 메뉴에서 영위상(Zero-phase)을 선택하십시오.

    현재 필터의 위상 응답. 자세한 내용은 phasez를 참조하십시오.

    현재 필터의 크기 응답과 위상 응답을 겹쳐 놓습니다. 자세한 내용은 freqz를 참조하십시오.

    현재 필터의 군지연을 표시합니다. 군지연은 주파수 함수 형태의, 필터에 대한 평균 지연입니다. 자세한 내용은 grpdelay를 참조하십시오.

    현재 필터의 위상 지연을 표시합니다. 위상 지연은 필터가 입력 신호의 각 성분에 적용하는 시간 지연입니다. 자세한 내용은 phasedelay를 참조하십시오.

    현재 필터의 임펄스 응답. 임펄스 응답은 임펄스 입력값에 대한 필터의 응답입니다. 자세한 내용은 impz를 참조하십시오.

    현재 필터의 계단 응답. 계단 응답은 계단 입력값에 대한 필터의 응답입니다. 자세한 내용은 stepz를 참조하십시오.

    극점-영점 플롯으로, z 평면에 현재 필터의 극점 위치와 영점 위치를 표시합니다. 자세한 내용은 zplane을 참조하십시오.

    현재 필터의 필터 계수로, 텍스트 상자에 지정된 필터 구조(예: Direct-form, 격자 등)에 따라 결정됩니다. SOS 필터의 경우, 각 섹션은 별도의 필터로 표시됩니다.

    상세 필터 정보.

필터 디자이너에 연결하기

필터 디자이너 앱에서 분석이 표시되었을 때 보기(View) > 필터 시각화 툴(Filter Visualization Tool) 또는 전체 보기로 분석(Full View Analysis) 도구 모음 버튼 을 선택하면 현재 필터에 대해 FVTool이 시작됩니다. 도구 모음 버튼 을 사용하여 필터 디자이너와 FVTool을 동기화할 수 있습니다. 필터 디자이너에서 필터에 대해 수행하는 모든 변경 사항은 FVTool에 즉시 반영됩니다.

두 가지 연결 모드가 토글 도구 모음 버튼 / 을 통해 제공됩니다.

  • 바꾸기 — FVTool에 현재 표시되어 있는 필터를 제거하고 새 필터를 삽입합니다.

  • 추가 — FVTool에 현재 표시되어 있는 필터를 유지하고 새 필터를 디스플레이에 추가합니다.

좌표축 수정하기

축 레이블을 마우스 오른쪽 버튼으로 클릭하거나 플롯을 마우스 오른쪽 버튼으로 클릭하고 분석 파라미터(Analysis Parameters)를 선택하여 x축 단위나 y축 단위를 변경할 수 있습니다. 좌표축 단위에 사용 가능한 옵션은 다음과 같습니다.

플롯X축 단위Y축 단위

크기

정규화 주파수
선형 주파수
크기
크기(dB)
크기 제곱
영위상

위상

정규화 주파수
선형 주파수
위상
연속 위상
라디안

크기와 위상

정규화 주파수
선형 주파수

(왼쪽 y축)

크기
크기(dB)
크기 제곱
영위상

(오른쪽 y축)

위상
연속 위상
라디안

군지연

정규화 주파수
선형 주파수
샘플
시간

위상 지연

정규화 주파수
선형 주파수
라디안

임펄스 응답

샘플
시간

진폭

계단 응답

샘플
시간

진폭

극점-영점

실수부

허수부

플롯 수정하기

플롯 편집 도구 모음 버튼 중 하나를 사용하여 플롯의 속성을 변경할 수 있습니다.

분석 파라미터(Analysis Parameters)는 표시된 분석에 적용되는 파라미터입니다. 분석 파라미터를 표시하려면 플롯 영역을 마우스 오른쪽 버튼으로 클릭하고 메뉴에서 분석 파라미터(Analysis Parameters)를 선택하십시오. (참고로, 플롯 편집(Edit Plot) 버튼이 비활성화된 경우에만 이 메뉴에 액세스할 수 있습니다.) 다음 분석 파라미터가 표시됩니다. 둘 이상의 응답이 표시된 경우 각 플롯에 적용 가능한 파라미터가 표시됩니다. 모든 플롯 유형에 대해 이러한 분석 필드가 전부 표시되는 것은 아닙니다.

  • 정규화 주파수(Normalized Frequency) — 이 옵션을 선택하면 주파수가 0에서 1 사이로 정규화되고, 선택하지 않으면 주파수는 Hz 단위입니다.

  • 주파수 스케일(Frequency Scale)y축 스케일(Linear 또는 Log)

  • 주파수 범위(Frequency Range) — 주파수 축의 범위이며, Specify freq. vector을 선택할 수도 있습니다.

  • 점의 개수(Number of Points) — 응답을 계산하는 데 사용되는 샘플 개수

  • 주파수 벡터(Frequency Vector)주파수 범위(Frequency Range)에서 Specify freq. vector이 선택된 경우 플로팅에 사용할 벡터

  • 크기 표시(Magnitude Display)y축 단위(Magnitude, Magnitude (dB), Magnitude squared 또는 Zero-Phase)

  • 위상 단위(Phase Units)y축 단위(Degrees 또는 Radians)

  • 위상 표시(Phase Display) — 위상 플롯의 유형(Phase 또는 Continuous Phase)

  • 군지연 단위(Group Delay Units)y축 단위(Samples 또는 Time)

  • 길이 지정(Specify Length) — 임펄스 응답 또는 계단 응답의 길이 유형(Default 또는 Specified)

  • 길이(Length) — 임펄스 응답 또는 계단 응답에 사용할 점의 개수

위에 나와 있는 분석 파라미터와 함께, 임펄스 응답 플롯 및 계단 응답 플롯을 마우스 오른쪽 버튼으로 클릭하고 상황별 메뉴에서 마커가 있는 선(Line with Marker), 줄기(Stem) 또는 선(Line)을 선택하여 플롯 유형을 변경할 수 있습니다. x축 레이블을 마우스 오른쪽 버튼으로 클릭하고 Samples 또는 Time을 선택하여 x축 단위를 변경할 수 있습니다.

표시된 파라미터를 필터 디자이너 또는 FVTool이 열릴 때 사용할 기본값으로 저장하려면 디폴트 값으로 저장(Save as default)을 클릭하십시오.

디폴트 값을 복원하려면 원래 디폴트 값 복원(Restore original defaults)을 클릭하십시오.

데이터팁은 플롯의 특정 지점에 대한 정보를 표시합니다. 데이터팁에 대한 자세한 내용은 플로팅된 데이터를 대화형 방식으로 탐색하기 (MATLAB) 항목을 참조하십시오.

DSP System Toolbox가 있는 경우 FVTool은 설계한 필터와 함께 사양 마스크를 크기 플롯에 표시합니다.

참고

보기(View) > 통과대역 확대/축소(Passband zoom)를 사용하려면 fdesign 또는 필터 디자이너를 사용하여 필터가 설계되어 있어야 합니다. CIC(Cascaded Integrator-Comb)는 일반적인 통과대역을 갖지 않으므로 CIC 필터에 대해서는 통과대역 확대/축소가 제공되지 않습니다.

응답 겹쳐 놓기

분석(Analysis) > 중첩 분석(Overlay Analysis)을 선택하고 사용 가능한 응답을 선택하여 플롯에 두 번째 응답을 겹쳐 놓을 수 있습니다. 두 번째 y축은 응답 플롯의 오른쪽에 추가됩니다. 분석 파라미터 대화 상자는 x축과 두 y축 모두에 대한 파라미터를 표시합니다. 샘플 분석 파라미터 대화 상자를 보려면 분석 파라미터 표시하기 항목을 참조하십시오.

MATLAB 명령줄에서 FVTool 제어하기

FVTool에 대한 핸들을 가져온 후에는 명령줄에서 FVTool의 일부 측면을 제어할 수 있습니다. 표준 Handle Graphics® 속성(MATLAB 도움말 문서의 Handle Graphics 참조) 외에 FVTool에는 다음과 같은 속성도 있습니다.

  • 'Analysis' — 지정된 유형의 분석 플롯을 표시합니다. 다음 표에는 모든 분석 유형과 이러한 분석 유형을 불러오는 방법이 나와 있습니다. 참고로, 크기 응답 추정값과 반올림 잡음 전력은 필터 내부요소를 사용하는 유일한 분석입니다. 이 분석 유형은 DSP System Toolbox 제품에서만 사용할 수 있습니다.

    분석 유형분석 옵션

    크기 플롯

    'magnitude'

    위상 플롯

    'phase'

    크기 및 위상 플롯

    `freq'

    군지연 플롯

    'grpdelay'

    위상 지연 플롯

    `phasedelay'

    임펄스 응답 플롯

    'impulse'

    계단 응답 플롯

    'step'

    극점-영점 플롯

    'polezero'

    필터 계수

    'coefficients'

    필터 정보

    'info'

    크기 응답 추정값

    (DSP System Toolbox 제품에서만 사용할 수 있음. 자세한 내용은 freqrespest 참조)

    'magestimate'

    반올림 잡음 전력

    (DSP System Toolbox 제품에서만 사용할 수 있음. 자세한 내용은 noisepsd 참조)

    'noisepower'

  • 'Grid' — 그리드가 'on'인지 또는 'off'인지를 제어합니다.

  • 'Legend' — 범례가 'on'인지 또는 'off'인지를 제어합니다.

  • 'Fs' — FVTool에서 필터의 샘플링 주파수를 제어합니다. 샘플링 주파수 벡터는 필터 개수 또는 스칼라 값과 동일한 길이여야 합니다. 벡터인 경우, 각 값은 이에 대응되는 필터에 적용됩니다. 스칼라인 경우, 동일한 값이 모든 필터에 적용됩니다.

  • SosViewSettings — 이 옵션은 DSP System Toolbox 제품이 있는 경우에만 사용 가능합니다. 2차섹션형 필터의 경우, 이 옵션은 필터가 표시되는 방식을 제어합니다. SOSViewSettings 속성은 객체를 포함하므로 구문 set(h.SOSViewSettings,'View',viewtype)을 사용하여 객체를 설정해야 합니다. 여기서 viewtype은 다음 중 하나입니다.

    • 'Complete' — 전체 필터의 완전한 응답을 표시합니다.

    • 'Individual' — 각 섹션의 응답을 개별적으로 표시합니다.

    • 'Cumulative' — 각각의 섹션에 대해 이전 섹션에서부터 누적된 응답을 표시합니다. 필터에 섹션이 세 개 있는 경우 첫 번째 플롯은 첫 번째 섹션을 표시하고, 두 번째 플롯은 첫 번째 섹션과 두 번째 섹션의 누적값을 표시하고, 세 번째 플롯은 세 개 섹션 전체의 누적값을 표시합니다.

      섹션이 분할되는 위치를 결정하는 SecondaryScaling을 사용할지 여부를 정의할 수도 있습니다. 2차 스케일링 지점은 섹션의 재귀적 부분과 비재귀적 부분 사이에 있는 스케일링 위치입니다. 디폴트 값은 false로, 2차 스케일링을 사용하지 않습니다. 2차 스케일링을 활성화하려면 구문 set(h.SOSViewSettings,'View','Cumulative',true)를 사용하십시오.

    • 'UserDefined' — 표시할 섹션과 섹션을 표시할 차수를 정의할 수 있습니다. 각 섹션이 이에 대응하는 인덱스로 표현된 셀형 배열을 입력합니다. 인덱스를 하나 입력하면 해당 섹션만 플로팅됩니다. 인덱스 범위를 입력하면 해당 섹션 범위에 대한 결합된 응답이 플로팅됩니다. 예를 들어, 필터가 네 개 섹션을 가지는 경우 {1:4}를 입력하면 네 개의 섹션 모두에 대해 결합된 응답이 플로팅되고, {1,2,3,4}를 입력하면 각 섹션의 응답이 개별적으로 플로팅됩니다.

참고

명령줄에서 set 함수를 사용하여 FVTool의 기타 속성을 변경할 수 있습니다. 속성 태그와 현재 속성 설정을 보려면 get(h)를 사용하십시오.

FVTool 핸들에 다음 방법을 사용할 수 있습니다.

addfilter(h,filtobj)는 새로운 필터를 FVTool에 추가합니다. 새로운 필터 filtobjdfilt 필터 객체여야 합니다. addfilter(h,filtobj,'Fs',10)을 사용하여 새로운 필터의 샘플링 주파수를 지정할 수 있습니다.

setfilter(h,filtobj)는 FVTool의 필터를 filtobj에 지정된 필터로 대체합니다. 위에 설명된 대로 샘플링 주파수를 설정할 수 있습니다.

deletefilter(h, index)는 FVTool 셀형 배열의 index 위치에 있는 필터를 삭제합니다.

legend(h,str1,str2,...)str1을 필터 1과 연결하고 str2를 필터 2와 연결하는 등의 방식으로 FVTool에서 범례를 생성합니다. 자세한 내용은 MATLAB 도움말 문서의 legend를 참조하십시오.

예제

모두 축소

6차 타원 필터의 크기 응답을 표시합니다. 통과대역 리플을 3dB로, 저지대역 감쇠량을 50dB로, 샘플 레이트를 1kHz로, 정규화된 통과대역 경계를 300Hz로 지정합니다. 명령줄에서 FVTool을 시작합니다.

[b,a] = ellip(6,3,50,300/500);
fvtool(b,a)

명령줄에서 FVTool을 시작하여 여러 개의 FIR 필터를 표시하고 분석합니다.

b1 = firpm(20,[0 0.4 0.5 1],[1 1 0 0]); 
b2 = firpm(40,[0 0.4 0.5 1],[1 1 0 0]); 
fvtool(b1,1,b2,1)

연관된 분석 파라미터를 표시합니다.

명령줄에서 FVTool을 시작합니다. 6차 타원 필터의 크기 응답을 표시합니다. 통과대역 리플을 3dB로, 저지대역 감쇠량을 50dB로, 샘플 레이트를 1kHz로, 정규화된 통과대역 경계를 300Hz로 지정합니다.

[b,a] = ellip(6,3,50,300/500);
h = fvtool(b,a);

필터의 위상 응답을 표시합니다.

h.Analysis = 'phase';

플롯 범례를 활성화하고 텍스트를 추가합니다.

legend(h,'Phase plot')

샘플 레이트를 1kHz로 지정합니다. 중심이 맞춰진 양측 응답을 표시합니다.

h.Fs = 1000;
h.FrequencyRange='[-Fs/2, Fs/2)';

플롯의 모든 속성을 봅니다. FVTool 특정 속성은 목록 끝 부분에 있습니다.

get(h)
                     Grid: 'on'
                   Legend: 'on'
          AnalysisToolbar: 'on'
            FigureToolbar: 'on'
               DesignMask: 'off'
          SOSViewSettings: [1x1 dspopts.sosview]
                       Fs: 1000
                 Alphamap: [1x64 double]
          CloseRequestFcn: 'closereq'
                    Color: [0.9400 0.9400 0.9400]
                 Colormap: [64x3 double]
              CurrentAxes: [1x1 Axes]
         CurrentCharacter: ''
            CurrentObject: [0x0 GraphicsPlaceholder]
             CurrentPoint: [0 0]
             DockControls: 'on'
                 FileName: ''
            IntegerHandle: 'on'
           InvertHardcopy: 'on'
              KeyPressFcn: ''
            KeyReleaseFcn: ''
                  MenuBar: 'none'
                     Name: 'Filter Visualization Tool - Phase Response'
                 NextPlot: 'new'
              NumberTitle: 'on'
               PaperUnits: 'inches'
         PaperOrientation: 'portrait'
            PaperPosition: [1.3350 3.3150 5.8300 4.3700]
        PaperPositionMode: 'auto'
                PaperSize: [8.5000 11]
                PaperType: 'usletter'
                  Pointer: 'arrow'
        PointerShapeCData: [16x16 double]
      PointerShapeHotSpot: [1 1]
                 Position: [346.5000 282.5000 583 437]
                 Renderer: 'opengl'
             RendererMode: 'auto'
                   Resize: 'on'
                ResizeFcn: ''
            SelectionType: 'normal'
                  ToolBar: 'auto'
                     Type: 'figure'
                    Units: 'pixels'
      WindowButtonDownFcn: ''
    WindowButtonMotionFcn: ''
        WindowButtonUpFcn: ''
        WindowKeyPressFcn: ''
      WindowKeyReleaseFcn: ''
     WindowScrollWheelFcn: ''
              WindowStyle: 'normal'
             BeingDeleted: 'off'
            ButtonDownFcn: ''
                 Children: [15x1 Graphics]
                 Clipping: 'on'
                CreateFcn: ''
                DeleteFcn: ''
               BusyAction: 'queue'
         HandleVisibility: 'on'
                  HitTest: 'on'
            Interruptible: 'on'
                   Parent: [1x1 Root]
                 Selected: 'off'
       SelectionHighlight: 'on'
                      Tag: 'filtervisualizationtool'
            UIContextMenu: [0x0 GraphicsPlaceholder]
                 UserData: []
                  Visible: 'on'
             PhaseDisplay: 'Phase'
            ShowReference: 'on'
                 Analysis: 'phase'
           FrequencyRange: '[-Fs/2, Fs/2)'
        OverlayedAnalysis: ''
      NormalizedFrequency: 'off'
               PhaseUnits: 'Radians'
          FrequencyVector: [1x256 double]
           NumberofPoints: 8192
           FrequencyScale: 'Linear'
            PolyphaseView: 'off'

R2006a 이전에 개발됨