How does phasez work?
4 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Nathan Jessurun
el 10 de Dic. de 2018
Respondida: Miriam Guadalupe Cruz Jimenez
el 13 de Ag. de 2019
I thought phasez simply plots the unwrapped version of a filter's angle. However, I get different plots for the following methods:
% Filter to add reverb to sample -- Requires DSP toolbox
% Use the impulse response from a reverb-y building as the time domain filter impulse repsonse
[timeFilter, Fs] = audioread('ChurchImpulseResponse-16-44p1-mono-5secs.wav');
% For an FIR filter, the time domain coefficients are the taps of the filter
h = freqz(timeFilter, [1 zeros(1, length(timeFilter))]);
[phi, w] = phasez(h);
plot(w, phi);
hold on;
plot(w, unwrap(angle(h)));
xlabel('frequency (rad/sample)');
ylabel('phase (radians)')
legend({'phasez', 'unwrap(angle)'});
What causes these two plots to behave quite differently for the produced filter? Note that for most filters I've tried, these plot operations are synonymous.![Capture.PNG](https://www.mathworks.com/matlabcentral/answers/uploaded_files/198748/Capture.png)
![Capture.PNG](https://www.mathworks.com/matlabcentral/answers/uploaded_files/198748/Capture.png)
0 comentarios
Respuesta aceptada
Miriam Guadalupe Cruz Jimenez
el 13 de Ag. de 2019
Hi! Indeed 'phasez()' plots the unwrapped angle, but 'phasez()' acts on the coefficients of the filter and 'unwrap(angle())' acts on the frequency response of the filter. Thus, in your code you should employ 'timeFilter' as the argument in 'phasez()' and 'h' as the argument of 'unwrap(angle())'. Attached your sample code with this modification.
timeFilter = [1 2 3 4 5 6 7 8 9];
h = freqz(timeFilter, [1 zeros(1, length(timeFilter))]);
[phi, w] = phasez(timeFilter);
plot(w, phi);
hold on;
plot(w, unwrap(angle(h)),'o');
xlabel('frequency (rad/sample)');
ylabel('phase (radians)')
legend({'phasez', 'unwrap(angle)'});
0 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre Filter Design en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!