need to visualise this comb filter

14 Ansichten (letzte 30 Tage)
Tom
Tom am 20 Mai 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 Kommentar
Matt Fig
Matt Fig am 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

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Wayne King
Wayne King am 20 Mai 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)

Weitere Antworten (1)

Wayne King
Wayne King am 20 Mai 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.

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by