Как добавить влияние частоты дискретизации в разностное уравнение?

Я хочу реализовать приведенные ниже разностные уравнения для разработки аккумулятора и дифференциатора:

Аккумулятор:
y[n] = y[n-1] + x[n], где y[n] – n-й выход, а x[n] – n-й вход.

Дифференциатор:
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);
}

Данные во входном векторе происходят из непрерывного сигнала времени. Другими словами, производится выборка для получения этого дискретного сигнала времени. И у него частота дискретизации Td.

Когда я увеличиваю частоту дискретизации входного сигнала, амплитуда выходного аккумулятора. Это ожидаемо, так как бывает больше образцов для дифференциации. С другой стороны, с увеличением частоты дискретизации выходная амплитуда дифференциатора уменьшается. Амплитуды как дифференциатора, так и интегратора верны (при значениях, которые математика говорит, что они должны быть), когда частота дискретизации унитарна (т. Е. 1,0 отсчета в секунду).

Мой вопрос:
Как свести на нет влияние частоты дискретизации на выходной вектор?

Мой общий вопрос:
Предположим, что я получаю разностное уравнение из произвольной причинной передаточной функции с дискретным временем H(z). Разностное уравнение в этом случае может быть любым. Как свести на нет влияние частоты дискретизации в этом общем случае?

(Пожалуйста, обратитесь к этой ветке форума для получения более подробной информации: Соответствующая ветка форума)


person hkBattousai    schedule 14.01.2011    source источник
comment
Обратите внимание, что ваши разностные уравнения не дадут очень хороших результатов с реальными сигналами, поскольку они чувствительны к небольшим смещениям постоянного тока и шуму. Для реальных приложений вам необходимо настроить частотную характеристику как дифференциаторов, так и интеграторов.   -  person Paul R    schedule 14.01.2011
comment
Почитайте про Z-преобразование. Вы можете легко перейти от уравнения переноса Лапласа к Z-преобразованию, и это приведет к правильным разностным уравнениям для системы, которую вы моделируете. Вы найдете эту информацию в книгах по теории управления, таких как книга Отаки.   -  person T33C    schedule 14.01.2011
comment
@ T33C: когда мы применяем билинейное преобразование к непрерывной передаточной функции времени, мы вводим член частоты дискретизации во время преобразования; s=(2/Td)*(1-1/z)/(1+1/z). Td – период выборки. Билинейно преобразованные сигналы дискретного времени работают хорошо, потому что в них есть член Td. Но как мне добавить это Td в изначально дискретные системы времени (те, которые не трансформируются из непрерывного времени, те, которые с самого начала рассчитаны на дискретное время)?   -  person hkBattousai    schedule 14.01.2011


Ответы (1)


Для дифференциатора: чтобы получить одинаковые результаты для разных интервалов выборки, разделите вывод y на Td.

Для аккумулятора (интегратора): Умножьте вход x на Td.

person Juraj Blaho    schedule 14.01.2011
comment
Это может работать для аккумулятора, но не для дифференциатора; потому что выходной сигнал дифференциатора уже ослаблен больше, чем должен быть. Вместо того, чтобы искать решения для случаев с аккумулятором и дифференциатором, я ищу общее решение для любого разностного уравнения. - person hkBattousai; 14.01.2011
comment
Вы пробовали это? Деление на Td, безусловно, правильно, если я правильно понимаю ваш вопрос. Вы получаете уравнение y[n]=(x[n]-x[n-1])/Td. - person Juraj Blaho; 14.01.2011
comment
Не нужно пытаться, потому что я знаю, что ты прав. Но то, что я прошу, это общий метод нормализации выходной амплитуды. - person hkBattousai; 14.01.2011