Generate pole zero plot from measured impulse response

20 views (last 30 days)
Hello everybody,
I want to generate a pole zero plot from a measured impulse response (imported via audioread). I only find examples to generate pole zero plots for very simple filters with known differential equations. Maybe you can point me in the right direction or give an example.
Thank you very much in advance!

Answers (1)

Sudheer Nuggehalli
Sudheer Nuggehalli on 2 Jan 2018
Edited: Sudheer Nuggehalli on 2 Jan 2018
One possible way to do this is to use the "pzmap" function on the measured impulse response data imported via "audioread". However, since "pzmap" requires a Dynamic System Model, sys, as an input, the measured impulse response data needs to be converted into a Dynamic System Model object. One way to do this is to use the "iddata" and "tfest" functions. Below is some code that can get you started:
[y,Fs] = audioread(filename);
data = iddata(y,[],Ts); % where Ts = 1/Fs
sys = tfest(data,np); % where np is the number of poles
pzmap(sys)
Refer to the documentation links below for more information about each of these functions and examples of how they are used:

Products

Community Treasure Hunt

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

Start Hunting!