- "arima" function: https://www.mathworks.com/help/econ/arima.html
- "infer" function: https://www.mathworks.com/help/econ/varm.infer.html
How to remove an autoregressive disturbance of known parameters
조회 수: 2 (최근 30일)
이전 댓글 표시
I would like to find the time series x_r2s_re that gives pert1_re, which latter is supposed to be a realisation of an AR(1) process of known parameters phi_est and sig_est. In other words, x_r2s_re and pert1_re are reconstructions of x_r2s and pert1. In practice, i do not know x_r2s, but i am given two realisations of the signal corrupted by red AR(1) "noise", x_prd_1 and x_prd_2. The parameters of the perturbation AR(1) can be estimated simply given the two realisations as the code snippet below shows.
t = 0:2^8;
N = length(t);
dt = t(2)-t(1);
tau = 20; % time scale of relaxation
x_asym = 4; % relative increase of the observable x t -> infinity
x_r2s = x_asym*(1 - exp(-t/tau)); % uncorrupted signal; not known in practice
sig = 0.05; % noise strength
% Use AR(1) to corrupt the signal instead of white noise.
phi = 0.8; % AR coefficeint
xi1 = sig*randn(1,N);
xi2 = sig*randn(1,N);
pert1 = filter(1,[1 -phi],xi1);
pert2 = filter(1,[1 -phi],xi2);
x_prd_1 = x_r2s+pert1;
x_prd_2 = x_r2s+pert2;
sys = ar(x_prd_1-x_prd_2,1);
sig_est = 2*sys.NoiseVariance;
phi_est = -sys.A(2);
pert1_re = x_prd_1 - x_r2s_re;
댓글 수: 0
답변 (1개)
Sai Pavan
2024년 2월 14일
Hello Tamas,
I understand that you want to remove the autoregressive disturbance of known parameters from a corrupt signal. The estimated parameters of the AR(1) process can be used to construct a filter that will estimate the noise component from the observed signal. Once we have an estimate of the noise, we can subtract it from the corrupted signal to retrieve an estimate of the original uncorrupted signal.
Please refer to the below code snippet that illustrates the removal the disturbance:
AR_model = arima('Constant', 0, 'AR', phi_est, 'Variance', sig_est); % Create an AR(1) model with the estimated parameters
noise_est_1 = infer(AR_model, x_prd_1); % Infer the noise component from the corrupted signals
noise_est_2 = infer(AR_model, x_prd_2);
x_r2s_re_1 = x_prd_1 - noise_est_1; % Subtract the estimated noise from the corrupted signals
x_r2s_re_2 = x_prd_2 - noise_est_2; % to get the estimates of uncorrputed signals
x_r2s_re = (x_r2s_re_1 + x_r2s_re_2) / 2; % Average them to get a better estimate
Please refer to the below documentation learn more about:
Hope it helps!
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Linear Model Identification에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!