z^-1
- это задержка на единицу (одна выборка), z
- это одна выборка в будущее.Таким образом, ваш выход фильтра на выборке i
зависит от входных выборок на i-1
и i+1
.(В общем, вы можете думать, что z^-n
- это задержка n выборок.)
Если у вас есть выборки во временной области во входном буфере x[]
, и вы хотите отфильтровать эти выборки в выходной буфер y[]
, тогда вы бы реализовали данную передаточную функцию следующим образом:
y[i] = x[i+1] - x[i-1]
Например, в C вы можете обработать буфер из N сэмплов следующим образом:
for (i = 1; i < N - 1; ++i)
{
y[i] = x[i + 1] - x[i - 1];
}
Это оченьпростой нерекурсивный фильтр верхних частот первого порядка - он имеет нули в +1 и -1, поэтому отклик величины равен нулю в DC (0) и в Найквисте (Fs / 2), и он достигает максимума в Fs / 4. Такэто очень широкий полосовой фильтр.