Объясните DSP обозначения

голоса
3

Я пытаюсь реализовать эту extenstion в Карплусе-Strong алгоритма щипкового, но я не понимаю , обозначения там используется. Может быть , это займет годы учебы, но , возможно , не будет - может быть , вы можете сказать мне.

Я думаю , что уравнения ниже в частотной области или что - то. Только начиная с первым уравнением, Н р (г), фильтром нижних частот в направлении выбора. Для одного направления используется р = 0, для других, возможно , 0,9. Это сводится к тому, чтобы 1 в первом случае, или 0,1 / (1 - 0,9 г -1 ) в секунду.

альтернативный текст http://www.dsprelated.com/josimages/pasp/img902.png

Теперь, я чувствую, что это может означать, в терминах кодирования, что-то в сторону:

H_p(float* input, int time) {
  if (downpick) {
    return input[time];
  } else {
    return some_function_of(input[t], input[t-1]);
  }
}

Может кто-нибудь дать мне подсказку? Или это бесполезно, и я на самом деле нужно все фон DSP осуществить это? Я был математиком когда-то ... но это не мой домен.

Задан 17/12/2009 в 01:34
источник пользователем
На других языках...                            


1 ответов

голоса
7

Таким образом, г -1 просто означает задержку в один блок.

Возьмем H р = (1-р) / (1-пз -1 ).

Если следовать соглашению о «х» для ввода и «у» на выходе, передаточная функция Н = у / х (= выход / вход)

таким образом мы получаем у / х = (1-р) / (1-пз -1 )

или (1-р) х = (1-пз -1 ) у

(1-р) х [п] = у [N] - ру [п-1]

или: у [п] = ру [N-1] + (1-р) х [п]

В коде C это может быть реализовано

y += (1-p)*(x-y);

без какого-либо дополнительного государства за использование выхода «у» в качестве самого переменного состояния. Или вы можете пойти на более буквальный подход:

y_delayed_1 = y;
y = p*y_delayed_1 + (1-p)*x;

Что касается других уравнений идти, они все типичные уравнения для этого второго уравнения , которое выглядит как может быть , это способ выбора либо H , кроме Β = 1-г -1 или 1-г -2 . (что N?)

Фильтры рода расплывчатые, и они будут более жесткими для вас, чтобы иметь дело с, если вы не можете найти некоторые расфасованные фильтры. В общем, они в форме

Н = Н0 * (1 + аг -1 + BZ -2 + CZ -3 ...) / (1 + RZ -1 + SZ -2 + TZ -3 ...)

и все, что вам сделать, это записать H = у / х, крест умножения, чтобы получить

Н0 * (1 + аг -1 + BZ -2 + CZ -3 ...) * х = (1 + RZ -1 + SZ -2 + TZ -3 ...) * у

и затем изолировать «Y» сам по себе, в результате чего выход «у» линейной функцией различных задержек себя и сигнала на входе.

Но проектирования фильтров (выбирая а, б, в, и т.д..) Сложнее , чем их реализации, по большей части.

Ответил 17/12/2009 в 01:48
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more