How to extract idpoly property to workspace

조회 수: 5 (최근 30일)
demos serghiou
demos serghiou 2022년 12월 31일
답변: Star Strider 2022년 12월 31일
Hi, how can I extract and put in my workspace variable A and NoiseVariance from idpoly to do further processing?

채택된 답변

Star Strider
Star Strider 2022년 12월 31일
There are several properties that can be retrieved from the System Identification Toolbox ‘data’ objects. See the documentation on idpoly and others for details.
Try something like this —
LD = load(websave('idpoly','https://www.mathworks.com/matlabcentral/answers/uploaded_files/1248207/idpoly.mat'))
LD = struct with fields:
a: [1×0 idpoly]
a = LD.a
a = Discrete-time AR model: A(z)y(t) = e(t) A(z) = 1 + (-7.954 - 0.3i) z^-1 + (26.36 + 2.3i) z^-2 + (-45.35 - 7.6i) z^-3 + (38.88 + 13i) z^-4 + (-7.968 - 12i) z^-5 + (-8.478 + 6.2i) z^-6 + (-3.663 - 2.7i) z^-7 + (11.26 + 2.5i) z^-8 + (0.9163 + 0.051i) z^-9 + (-7.189 - 2.7i) z^-10 + (-4.175 + 0.46i) z^-11 + (12.39 + 3.7i) z^-12 + (-4.697 - 5.7i) z^-13 + (-6.017 + 3.4i) z^-14 + (6.773 + 3.6i) z^-15 + (-1.439 - 10i) z^-16 + (-1.529 + 11i) z^-17 + (1.173 - 5.9i) z^-18 + (-0.3192 + 1.7i) z^-19 + (0.0307 - 0.21i) z^-20 Sample time: 1 seconds Parameterization: Polynomial orders: na=20 Number of free coefficients: 20 Use "polydata", "getpvec", "getcov" for parameters and their uncertainties. Status: Estimated using AR ('burg/now') on time domain data (complex) "est_x1". Fit to estimation data: 100% FPE: 2.355e-25, MSE: 2.008e-25
Coefficients = a.A
Coefficients =
1.0000 + 0.0000i -7.9541 - 0.2965i 26.3582 + 2.3178i -45.3509 - 7.5709i 38.8797 +13.0764i -7.9676 -12.3483i -8.4781 + 6.1760i -3.6634 - 2.7037i 11.2582 + 2.5171i 0.9163 + 0.0513i -7.1889 - 2.6674i -4.1745 + 0.4615i 12.3895 + 3.7428i -4.6974 - 5.6726i -6.0167 + 3.4192i 6.7730 + 3.5819i -1.4387 -10.4534i -1.5295 +10.7850i 1.1733 - 5.9423i -0.3192 + 1.7405i 0.0307 - 0.2143i
Variable = a.Variable
Variable = 'z^-1'
Structure = a.Structure
Structure = A: [1×1 param.Continuous] IODelay: [1×0 double] IntegrateNoise: 0 AR model structure.
You can use the ‘Coefficients’ vector with polyval to evaluate it.
t = linspace(0, 1.5, 150);
A = polyval(Coefficients, t);
figure
plot(t, real(A), 'DisplayName','Re(A)')
hold on
plot(t, imag(A), 'DisplayName','Im(A)')
plot(t, abs(A), 'DisplayName','|A|')
hold off
grid
legend('Location','best')
.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Variables에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by