need to visualise this comb filter

14 views (last 30 days)
Tom
Tom on 20 May 2012
I need to visualise this schroeder comb filter - y_n=x_(n-tau)+g*y(n-tau). I have that the z-transfer function is H(z)=1/(z^tau - g).
I don't really know how to do this - any help would be greatly appreciated.
Many thanks
  1 Comment
Matt Fig
Matt Fig on 2 Nov 2012
Tom's question
I need to visualise this schroeder comb filter - y_n=x_(n-tau)+g*y(n-tau). I have that the z-transfer function is H(z)=1/(z^tau - g).
I don't really know how to do this - any help would be greatly appreciated.
Many thanks

Sign in to comment.

Accepted Answer

Wayne King
Wayne King on 20 May 2012
You can visualize it in pole-zero form, or the phase, magnitude etc, which evaluates it on the unit circle.
However, you should rewrite it in the form:
H(z) = z^{-\tau}/1-gz^{-\tau}
I'll assume tau = 3 here and g = 1/2. The actual value of g will determine whether the filter is stable and therefore whether it has a Fourier transform. The first element of the numerator, B, and denominator, A, coefficient vectors is the 0-th order term in the Z-transform.
g = 1/2;
B = [0 0 0 1];
A = [1 0 0 -g];
%pole-zero plot
zplane(B,A)
% magnitude and phase response
freqz(B,A)

More Answers (1)

Wayne King
Wayne King on 20 May 2012
You have to know tau. In your example, tau is 1, just as long as that is correct. Also, the sign on g is incorrect and you don't need to feed freqz a frequency vector. Finally, h is complex-valued, so you want to plot the magnitude or phase.
fs = 11025;
g = 0.8;
b = [0 1];
a = [1 -g];
[h,f] = freqz(b,a,fs);
plot(f,abs(h)); grid on;
xlabel('Hz');
The b values are the coefficients on the x-side of the difference equation. The a's are the coefficients on the y-side
y(n)-g y(n-1) = x(n-tau)
1 and -g are the only nonzero a coefficients, 1 is the only nonzero b coefficient. To use freqz(), you want the power of z to be negative.

Products

Community Treasure Hunt

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

Start Hunting!