함수 > 신호 가공 > 디지털 필터링 > 예제: 디지털 필터의 시간 반응
  
예제: 디지털 필터의 시간 반응
responsefftfilt 함수를 사용하여 컨볼루션을 직접 계산한 FIR 또는 IIR 필터의 출력을 계산합니다. 이 함수는 길이 n인 복소 출력 벡터를 구합니다.
이 함수에 사용된 기법은 대부분의 신호 가공 관련 교과서에 잘 정립 및 설명되어 있습니다. 예를 들어 A.V. Oppenheim 및 R. W. Schafer의 Discrete-Time Signal Processing(1989년)에서 556-558페이지를 참조하십시오.
저역 통과 IIR 필터 차수
1. 저역 주파수 및 고역 주파수 컴포넌트가 있는 입력 신호를 정의합니다.
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
2. 차단 주파수 f를 사용하여 2차 저역 통과 버터워스 필터의 응답 중 첫 100개 단계를 계산합니다.
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
함수 설명에 지정된 것처럼 차단 범위는 0에서 0.5 사이여야 합니다.
3. iirlow 함수를 사용하여 전달 함수 계수를 구합니다.
이 식을 복사하려면 클릭
4. response 함수를 사용하여 필터의 응답을 구합니다.
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
원래 신호 x와 비교하면, 응답 신호 YA가 훨씬 부드럽고 진폭이 작으며 시간 편이가 적습니다.
5. 같은 차단 주파수 f를 사용하는 6차 저역 통과 버터워스 필터를 지정합니다. response 함수는 첫 번째 섹션의 출력을 두 번째 섹션의 입력으로 사용하고 그 결과를 세 번째 섹션의 출력으로 사용하는 방식으로 작동합니다.
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
차수가 높은 필터는 더 부드러운 응답을 제공하고, 고역 주파수 필터링에 훨씬 효율적이고, 더 큰 시간 편이를 발생시키고, 더 가파른 차단 주파수 변환을 제공합니다.
대역 통과 FIR 필터
1. 위에서 정의한 두 신호 주파수의 고역을 전송하는 FIR 대역 통과 필터 F를 설계합니다.
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
2. 위 저역 및 고역 주파수 사이의 통과 대역을 포함하며 블랙맨 테이퍼(마지막 인수 6)를 사용하여, 길이 51 대역 통과 필터에 대한 계수를 계산합니다.
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
3. 필터로 인해 발생한 지연을 계산합니다.
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
4. response 함수를 적용하여 첫 번째 100개 단계를 계산합니다.
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
이 필터는 초기화 즉시 신호를 전송하지는 않지만 고역 주파수(f2=0.2, T=5)를 매우 정확하게 선택합니다.
대역 통과 FIR 필터 2
다음 저역 통과 FIR 필터가 통과 대역의 여러 주파수에서 0 위상 편이를 갖는다는 것을 보여줍니다.
1. 두 입력 신호를 정의합니다.
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
2. FIR 필터 차단 주파수와 계수 수를 정의합니다.
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
3. 해닝 창함수로 테이퍼된 계수를 계산합니다.
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
4. 필터로 인해 발생한 지연을 계산합니다.
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
5. 두 지연 입력 신호를 정의합니다.
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
6. 첫 번째 지연 입력 신호 x1d 및 x1에 대한 필터의 응답을 도표화합니다.
이 식을 복사하려면 클릭
두 신호는 동일하고 위상 편이는 0입니다.
7. 두 번째 지연 입력 신호 x2d 및 x2에 대한 필터의 응답을 도표화합니다.
이 식을 복사하려면 클릭
두 신호는 동일하고 위상 편이는 0입니다.
컨볼루션에 대한 응답 사용
필터 배열에 열이 하나이면 response 함수가 컨볼루션을 수행합니다. 이 함수를 FFT 기반 함수 convolve 대신 사용할 수 있습니다. 두 긴 시퀀스의 컨볼루션에서 소규모 초기 부분에 대해서는 이 함수의 응답이 훨씬 빠릅니다.
1. 범위를 정의하고 0부터 1 사이의 양의 난수로 채워진 두 배열을 정의합니다.
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
2. convolve 함수를 두 배열에 적용합니다.
이 식을 복사하려면 클릭
3. response 함수를 사용하여 응답의 첫 8개 단계를 구합니다.
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
두 배열이 동일합니다.
Response 및 fftfilt 함수의 출력 비교
responsefftfilt 함수에서 얻은 결과가 동일하다는 것을 보여줍니다.
1. 범위와 두 주파수를 정의합니다.
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
2. f1 및 f2의 항으로 입력 신호를 정의합니다.
이 식을 복사하려면 클릭
3. 차단 주파수 f를 포함하고 해닝 창함수로 테이퍼된 FIR 저역 통과 필터를 생성합니다.
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
4. 입력 신호에 대한 필터 응답을 계산합니다.
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
5. fftfilt 함수를 입력 신호에 적용하고 첫 번째 64개 단계를 계산합니다.
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
* 
y_f는 복소 요소의 벡터입니다.
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
6. 입력 신호를 필터의 전달 함수와 컨볼루션한 결과를 응답 신호와 함께 도표화합니다. 두 그래프선이 완전히 겹칩니다.
이 식을 복사하려면 클릭