Я хочу реализовать приведенные ниже разностные уравнения для разработки аккумулятора и дифференциатора:
Аккумулятор:
y[n] = y[n-1] + x[n]
, где y[n]
- это n-й выход, а x[n]
- это n* вход *. 1007 *
Дифференциатор:
y[n] = x[n] - x[n-1]
, где y[n]
- это n-й выход, а x[n]
- это n-й вход.
Аккумулятор:
double xn, yn, yn1 = 0;
std::vector<double> InputVector = GetInputVector(), OutputVector;
for(int i=0; i<MAX_NUM_INPUTS; i++)
{
if (IsFinished()) break;
yn = yn1 + xn;
yn1 = yn;
OutputVector.push_back(yn);
}
Дифференциатор:
double xn, yn, xn1 = 0;
std::vector<double> InputVector = GetInputVector(), OutputVector;
for(int i=0; i<MAX_NUM_INPUTS; i++)
{
if (IsFinished()) break;
yn = xn - xn1;
xn1 = xn;
OutputVector.push_back(yn);
}
Данные во входном векторе получены из непрерывного сигнала времени.Другими словами, производится выборка для получения этого дискретного сигнала времени.И у него есть частота дискретизации T d .
. При увеличении частоты дискретизации входного сигнала происходит амплитуда выхода аккумулятора.Это ожидаемо, так как, как представляется, существует больше образцов для дифференциации.С другой стороны, с увеличением частоты дискретизации выходная амплитуда дифференциатора уменьшается.Амплитуды как дифференциатора, так и интегратора являются правильными (при значениях, которые математика говорит, что они должны быть), когда частота дискретизации является унитарной (т. Е. 1,0 выборка / секунда).
Мой вопрос;обнулить ли влияние частоты дискретизации на выходной вектор?
Мой общий вопрос:
Предположим, что я получаю разностное уравнение из произвольной причинной передаточной функции с дискретным временем H(z)
.В этом случае разностное уравнение может быть чем угодно.Как я могу свести на нет влияние частоты дискретизации в этом общем случае?
(Пожалуйста, обратитесь к этой ветке форума для более подробной информации: Соответствующая ветка форума )