Main Content

fvtool

DSP 필터의 주파수 응답 시각화

설명

fvtool(sysobj)는 필터 System object™의 크기 응답을 표시합니다.

예제

fvtool(sysobj,options)는 options로 지정된 응답을 표시합니다.

예를 들어, FIR 필터 System object의 임펄스 응답을 시각화하려면 options"impulse"로 설정합니다.

Fs = 96e3; filtSpecs = fdesign.lowpass(20e3,22.05e3,1,80,Fs);
    firlp2 = design(filtSpecs,"equiripple",SystemObject=true);
fvtool(firlp2,"impulse");

fvtool(____,Name=Value)는 지정된 각 속성이 지정된 값으로 설정된 필터의 응답을 시각화합니다.

입력 옵션에 대한 자세한 내용은 Signal Processing Toolbox™의 FVTool을 참조하십시오.

예제

모두 축소

2개의 저역통과 반대역 데시메이션 필터를 만듭니다. 첫 번째 필터의 설계 방법은 "Equiripple" 로 설정되고, 두 번째 필터의 설계 방법은 "Kaiser"로 설정됩니다.

필터 차수를 52로 지정합니다. 천이 폭을 정규화 주파수 단위로 지정합니다.

filterspec = "Filter order and transition width";
Order = 52;
TW = 0.1859;
firhalfbanddecimEqui = dsp.FIRHalfbandDecimator(...
    NormalizedFrequency=true,...
    Specification=filterspec,...
    FilterOrder=Order,...
    TransitionWidth=TW,...
    DesignMethod="Equiripple");
firhalfbanddecimKaiser = dsp.FIRHalfbandDecimator(...
    NormalizedFrequency=true,......
    Specification=filterspec,...
    FilterOrder=Order,...
    TransitionWidth=TW,...
    DesignMethod="Kaiser");

두 필터의 임펄스 응답을 플로팅합니다. 0차 계수가 26개 샘플만큼 지연되며, 이는 필터의 군지연과 동일합니다. 이로 인해 인과적 반대역 필터가 생성됩니다.

hfvt = filterAnalyzer(firhalfbanddecimEqui,firhalfbanddecimKaiser,...
    Analysis="impulse");

setLegendStrings(hfvt,["Equiripple","Kaiser"])

크기 응답과 위상 응답을 플로팅합니다.

필터 사양이 좁은 경우(예: 필터 차수는 높고 천이 폭은 매우 좁은 경우), "Kaiser" 방법을 사용하여 설계된 필터가 더 효과적으로 수렴합니다.

hvftMag = filterAnalyzer(firhalfbanddecimEqui,firhalfbanddecimKaiser,...
    Analysis="magnitude");
setLegendStrings(hvftMag,["Equiripple","Kaiser"])

hvftPhase = filterAnalyzer(firhalfbanddecimEqui,firhalfbanddecimKaiser,...
    Analysis="phase");
setLegendStrings(hvftPhase,["Equiripple","Kaiser"])

44.1kHz로 샘플링된 데이터에 대해 최소 차수 FIR 저역통과 필터를 만듭니다. 통과대역 주파수를 8kHz로, 저지대역 주파수를 12kHz로, 통과대역 리플을 0.1dB로, 저지대역 감쇠량을 80dB로 지정합니다.

Fs = 44.1e3; 
filtertype = 'FIR';
Fpass = 8e3;
Fstop = 12e3; 
Rp = 0.1;
Astop = 80;
FIRLPF = dsp.LowpassFilter(SampleRate=Fs,...
                             FilterType=filtertype,...
                             PassbandFrequency=Fpass,...
                             StopbandFrequency=Fstop,...
                             PassbandRipple=Rp,...
                             StopbandAttenuation=Astop);

FIR 저역통과 필터와 동일한 속성을 갖는 최소 차수 IIR 저역통과 필터를 설계합니다. 복제된 필터의 FilterType 속성을 IIR로 변경합니다.

IIRLPF = clone(FIRLPF);
IIRLPF.FilterType = 'IIR';

FIR 저역통과 필터의 임펄스 응답을 플로팅합니다. 0차 계수가 19개 샘플만큼 지연되며, 이는 필터의 군지연과 동일합니다. FIR 저역통과 필터는 인과적 FIR 필터입니다.

impz(FIRLPF)

IIR 저역통과 필터의 임펄스 응답을 플로팅합니다.

impz(IIRLPF)

FIR 저역통과 필터의 크기 응답과 위상 응답을 플로팅합니다.

freqz(FIRLPF)

IIR 저역통과 필터의 크기 응답과 위상 응답을 플로팅합니다.

freqz(IIRLPF)

FIR 저역통과 필터의 구현 비용을 계산합니다.

cost(FIRLPF)
ans = struct with fields:
                  NumCoefficients: 39
                        NumStates: 38
    MultiplicationsPerInputSample: 39
          AdditionsPerInputSample: 38

IIR 저역통과 필터의 구현 비용을 계산합니다. IIR 필터가 FIR 필터보다 더 효율적으로 구현될 수 있습니다.

cost(IIRLPF)
ans = struct with fields:
                  NumCoefficients: 18
                        NumStates: 14
    MultiplicationsPerInputSample: 18
          AdditionsPerInputSample: 14

FIR 저역통과 필터의 군지연을 계산합니다.

grpdelay(FIRLPF)

IIR 저역통과 필터의 군지연을 계산합니다. FIR 필터는 일정한 군지연(선형 위상)을 갖는 반면 IIR 필터의 군지연은 그렇지 않습니다.

grpdelay(IIRLPF)

입력 인수

모두 축소

필터 분석 옵션으로, 다음 중 하나로 지정됩니다.

  • 'magnitude' –– 크기 응답

  • 'phase' –– 위상 응답

  • 'freq' –– 주파수 응답

  • 'grpdelay' –– 군지연

  • 'phasedelay' –– 위상 지연

  • 'impulse' –– 임펄스 응답

  • 'step' –– 계단 응답

  • 'polezero' –– 극점-영점 플롯

  • 'coefficients' –– 계수 벡터

  • 'info' –– 필터 정보

  • 'magestimate' –– 크기 응답 추정값

  • 'noisepower' –– 반올림 잡음 파워 스펙트럼

예: fvtool(firFilt,'freq')

이름-값 인수

선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN으로 지정합니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.

R2021a 이전 릴리스에서는 쉼표를 사용하여 각 이름과 값을 구분하고 Name을 따옴표로 묶으십시오.

예: firFilt = dsp.FIRFilter(Numerator=designLowpassFIR(FilterOrder=130, CutoffFrequency=2000/(8000/2))); fvtool(firFilt,Arithmetic="single")

샘플링 레이트로, 스칼라로 지정됩니다. 이 값은 fvtool이 채널라이저에서 필터의 주파수 응답을 보여주는 나이퀴스트 구간 [-Fs/2 Fs/2]를 결정합니다.

데이터형: single | double

분석 중에 사용될 연산방식을 지정합니다. 연산방식 입력값이 지정되지 않고 필터 System object가 잠겨 있지 않으면 분석 툴은 배정밀도 필터라고 간주합니다. 'Fixed'로 설정된 'Arithmetic' 속성은 고정소수점 속성을 가진 필터 System object에만 적용됩니다.

'Arithmetic' 속성이 'Fixed'로 설정된 경우, 툴은 배정밀도 기준 필터와 이 필터의 양자화된 버전을 둘 다 보여줍니다. 필터의 양자화된 버전을 만들 때는 다음의 두 옵션을 제외한 모든 분석 옵션에 대해 각 필터 System object의 CoefficientsDataType 속성이 사용됩니다.

  • 'magestimate' –– 크기 응답 추정값

  • 'noisepower' –– 반올림 잡음 파워 스펙트럼

위 두 분석 옵션의 경우는 필터의 양자화된 버전을 분석하는 데 고정소수점 설정 전체가 사용됩니다.

버전 내역

R2006a 이전에 개발됨

모두 확장