주요 콘텐츠

prony

필터 설계를 위한 Prony 방법

설명

[b,a] = prony(h,bord,aord)는 임펄스 응답 h, 분자 차수 bord, 분모 차수 aord를 갖는 인과적 유리 전달 함수의 분자 및 분모 계수를 반환합니다.

예제

예제

모두 축소

저역통과 필터의 임펄스 응답에 4차 IIR 모델을 피팅합니다. 원래 임펄스 응답과 Prony 방법으로 설계된 임펄스 응답을 플로팅합니다.

d = designfilt('lowpassiir','NumeratorOrder',4,'DenominatorOrder',4, ...
    'HalfPowerFrequency',0.2,'DesignMethod','butter');

h = filter(d,[1 zeros(1,31)]);
bord = 4;
aord = 4;
[b,a] = prony(h,bord,aord);

subplot(2,1,1) 
stem(impz(b,a,length(h)))
title 'Impulse Response with Prony Design'

subplot(2,1,2)
stem(h)
title 'Input Impulse Response'

Figure contains 2 axes objects. Axes object 1 with title Impulse Response with Prony Design contains an object of type stem. Axes object 2 with title Input Impulse Response contains an object of type stem.

고역통과 필터의 임펄스 응답에 10차 FIR 모델을 피팅합니다. 원래 주파수 응답과 Prony 방법으로 설계된 주파수 응답을 플로팅합니다. 응답이 높은 정밀도로 일치합니다.

d = designfilt('highpassfir','FilterOrder',10,'CutoffFrequency',0.8);

h = filter(d,[1 zeros(1,31)]);
bord = 10;
aord = 0;
[b,a] = prony(h,bord,aord);

[hp,f] = freqz(b,a);
[hd,fd] = freqz(d);

figure
plot(f/pi,mag2db(abs(hp)),fd/pi,mag2db(abs(hd)))
legend('Prony','Original')

Figure contains an axes object. The axes object contains 2 objects of type line. These objects represent Prony, Original.

입력 인수

모두 축소

임펄스 응답으로, 벡터로 지정됩니다.

예: impz(fir1(20,0.5))는 정규화된 차단 주파수 π/2 rad/sample을 갖는 20차 FIR 필터의 임펄스 응답을 지정합니다.

데이터형: single | double
복소수 지원 여부:

분자 차수와 분모 차수로, 양의 정수 스칼라로 지정됩니다. h의 길이가 max(bord,aord)보다 작으면 함수는 임펄스 응답을 0으로 채웁니다.

  • 전극점(all-pole) 전달 함수를 원하는 경우 bord0으로 지정하십시오.

  • 전영점(all-zero) 전달 함수를 원하는 경우 aord0으로 지정하십시오.

데이터형: single | double

출력 인수

모두 축소

전달 함수 계수로, 벡터로 반환됩니다. b의 길이는 bord + 1이고 a의 길이는 aord + 1입니다.

세부 정보

모두 축소

참고 문헌

[1] Parks, Thomas W., and C. Sidney Burrus. Digital Filter Design. New York, NY, USA: Wiley-Interscience, 1987.

확장 기능

모두 확장

C/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.

GPU 코드 생성
GPU Coder™를 사용하여 NVIDIA® GPU용 CUDA® 코드를 생성할 수 있습니다.

버전 내역

R2006a 이전에 개발됨

참고 항목

| | |

도움말 항목