2011-01-14 7 views
1

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

Накопитель:
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); 
} 

Differantiator:

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). В этом случае разностным уравнением может быть что угодно. Как я могу аннулировать эффект частоты дискретизации в этом общем случае?

(Пожалуйста, обратитесь к этой теме форума более подробно: Relevant forum thread)

+1

Обратите внимание, что ваши разностные уравнения не дают очень хороших результатов с сигналами реального мира, так как они восприимчивы к небольшим смещениям постоянного тока и шуму. Для приложений реального мира вам необходимо адаптировать частотную характеристику как дифференциаторов, так и интеграторов. –

+0

Читайте дальше на Z-преобразовании. Вы можете легко перейти от уравнения переноса Лапласа к Z-преобразованию, и это приведет к правильным разностным уравнениям для модели, которую вы моделируете. Вы найдете эту информацию в книгах теории управления, таких как Otaki's. – T33C

+0

@ T33C: Когда мы применяем билинейное преобразование к непрерывной передаче времени, мы вводим член частоты выборки во время преобразования; s = (2/Td) * (1-1/г)/(1 + 1/г). Td - период выборки. Билинейные преобразованные дискретные сигналы времени работают хорошо, потому что в них есть Td-член. Но как добавить этот Td в первоначально дискретные системы времени (те, которые не преобразуются из непрерывного времени, те, которые разработаны в дискретное время с самого начала)? – hkBattousai

ответ

0

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

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

+0

Это может работать для аккумулятора, но для дифференциатора это не так; потому что выход дифференциатора уже ослаблен больше, чем должен быть. Вместо того, чтобы найти решения для накопительных и дифференциальных случаев, я ищу общее решение для любого разностного уравнения. – hkBattousai

+0

Вы пробовали это? Разделение на Td определенно является правильным, если я правильно понимаю ваш вопрос. Вы получаете уравнение y [n] = (x [n] -x [n-1])/Td. –

+0

Не нужно пытаться, потому что я знаю, что ты прав. Но то, что я прошу, является общим методом нормализации выходной амплитуды. – hkBattousai

 Смежные вопросы

  • Нет связанных вопросов^_^