public KalmanFilter(int Rows, int Columns, double[,] x, Covariance CM) { this.Sv = 1; this.RowsCount = Rows; this.ColumnsCount = Columns; this.a_tt = new double[RowsCount, ColumnsCount]; this.A_tt = new double[RowsCount, ColumnsCount]; this.OutputSignal = new double[RowsCount, ColumnsCount]; this.Y2 = new double[RowsCount, ColumnsCount]; this.E = new double[RowsCount, ColumnsCount]; this.InputSignal = x; CovMatr = CM; Noize = new NormalDistributionSignal(0, Math.Sqrt(Math.PI * 2 * Sv / CovMatr.tau)); Noize.SignalArrayLength = ColumnsCount; Noize.GenerateSignal(); }
public FormingFilter(int Rows, int Columns, double tau, double ksi, double sigma, double teta, double fi) { this.tau = tau; this.Sv = 1; this.ColumnsCount = Columns; this.RowsCount = Rows; this.OutputSignal = new double[RowsCount, ColumnsCount]; this.H = new double[RowsCount, ColumnsCount]; this.teta = teta; this.sigma = sigma; this.ksi = ksi; this.fi = fi; InitialSignal = new NormalDistributionSignal(0, Math.Sqrt(Math.PI * 2 * Sv / tau)); InitialSignal.SignalArrayLength = ColumnsCount; InitialSignal.GenerateSignal(); this.InputSignal = new double[1, ColumnsCount]; for (int i = 0; i < InitialSignal.SignalArrayLength; i++) { this.InputSignal[0, i] = InitialSignal.SignalArray[i]; } }