You can run the HTML (index.html) directly to reach the app by using one of following browsers:
- Chrome
- Edge
- Firefox
- Safari
Special thanks to https://github.com/chrispahm/chartjs-plugin-dragdata
Some additions:
- Now negative symmetric of the response can be avoided by draw_negative variable and default is updated as do not draw (convertion between draw and do not draw is only available in the source/code part as a boolean).
Note: Since main purpose is to create a filter for real world applications, each point has a conjugate at the opposite part of the chart according to x axis; resultantly, positive and negative parts of the x axis are symmetric to each other in the response chart. By updating default to do not draw, I aimed to remove the negative part of the symmetric response chart since it is nonsense to keep it.
- Points created/moved that are too close to x axis (with a threshold of 0.25 by default) counts to be as one point WITH y=0 VALUE (only in calculation part, user still sees them as two points).
Bug fix:
- Case of points to be separated from their conjugates when mouse slides from +y to -y or -y to +y without releasing the point is fixed.
- Indexings of response chart are corrected (still limited with 15 for laplace(s) plane, 3.14(pi) for discrete laplace(z) plane).
To obtain 's response graph, split s^2(s) into s(s) as , and find the poles and the zeros as following:
At the end, you must put the poles and the zeros as following:
s-plane Magnitude Response
s-plane Phase Response
z-plane Magnitude Response
z-plane Phase Response