freqz() not behaving as expected?
Afficher commentaires plus anciens
I have noticed something abnormal about freqz() not as expected. For example, I want to plot a response of a delay z^-n, so I put in this code:
b = 1;
a = [1 0 0 0];
[h,w] = freqz(b, a, 1000);
plot(w, angle(h));
I expect to get a linear phase slope waveform of sawtooth. Instead I got a flat line at 0.
Also, I try to plot the phase response of an integrator:
b = 1;
a = [1 -1];
[h,w] = freqz(b,a,1000);
plot(w, angle(h));
grid;
I expect to get a phase line sloping down starting from -pi/2 to -pi. Instead it plots a line slopping up. This is strange.
Réponses (1)
b = 1;
a = [1 0 0 0];
really means:
H(z) = 1/(1 + 0*z^-1 + 0z^-2 + 0*z^-3) = 1,
which is exactly what freqz produces
figure
freqz(b, a, 1000);
If you want H(z) = z^-3, then we'd have
b = [0 0 0 1];
a = 1;
figure
freqz(b,a,1000)
1 commentaire
Xiangguang
le 6 Juin 2023
Modifié(e) : Xiangguang
le 6 Juin 2023
Catégories
En savoir plus sur MATLAB dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

