What is the transfer function of the filtfilt command?

조회 수: 5 (최근 30일)
studentmatlaber
studentmatlaber 2021년 10월 4일
댓글: Paul 2024년 3월 1일
What is the transfer function of the filtfilt command?
  댓글 수: 2
Star Strider
Star Strider 2021년 10월 4일
It is possible to use transfer function notation with filtfilt, however the question unfortunately makes no sense.
What is your actual question?
.
studentmatlaber
studentmatlaber 2021년 10월 4일
I first designed parks-mcclellan filter for signals (firpmord-firpm). Then with your help I filtered it with the filtfilt command. Now I have to explain what I have done both verbally and mathematically. What is the mathematical equivalent of the firpmord and firpm commands? I need to find the mathematical equivalent of the input-output relationship of the filfilt function.

댓글을 달려면 로그인하십시오.

답변 (1개)

Shubham
Shubham 2024년 3월 1일
Hi studentmatlaber,
The filtfilt command in MATLAB applies a digital filter forward and backward to a signal. This zero-phase filtering technique ensures that the filtered signal has no phase distortion because the phase shifts introduced by the forward pass are exactly canceled by the phase shifts in the reverse pass.
The transfer function of a digital filter is typically given by:
where ( b_i ) are the filter coefficients for the numerator, ( a_j ) are the filter coefficients for the denominator, ( M ) is the order of the numerator, ( N ) is the order of the denominator, and ( z ) is the complex frequency variable in the Z-transform domain.
When using filtfilt, the effective transfer function is the squared magnitude of the original filter's transfer function because the signal is filtered twice (once forward and once backward). However, the phase response is linear and zero because the forward and backward filtering cancels out any phase distortion.
The effective transfer function for the filtfilt operation can be written as:
Since the filter is applied in both the forward and backward directions, the magnitude response is squared, but the phase response remains zero. This means that any poles and zeros in the original filter transfer function () will be reflected across the unit circle to create (), effectively doubling the filter order but keeping the phase response zero.
It's important to note that while the filtfilt function does not change the phase of the signal, it does amplify the magnitude of the frequency response by the square of the original filter's magnitude response. This can have implications for the amplitude of the filtered signal, especially in the frequency regions where the original filter has a significant magnitude response.
  댓글 수: 1
Paul
Paul 2024년 3월 1일
Hi Shubham
Actually, filtfilt doesn't really do zero-phase filtering as you've described. Check out this question for examples and discussion if you're interested.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Digital Filter Design에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by