Hallo!
Gibts hier vielleicht ein paar dsp-experten, die mir (eine der) folgende Fragen beantworten können bzw. wissen, wo's Hilfe gibt?
1) ich will ein Signal "smooth"en, indem ich den laufenden Durchschnitt über 20ms bilde. Das Signal wird jede ms über einen zeitraum von 6ms gemessen (es gibt also einen overlap von 5ms). Ich benutze dafür einen Filter mit b=[1 1 1 1 ... 20 mal] und a = 1. stimmt das? die Sache is ja, dass das für ein Signal ohne overlapp korrekt wäre, mit overlapp kommt mir das ein bisserl komisch vor.
2) von dem so ge-smooth-ten signal will ich die 1. Ableitung über einen Zeitraum von 50ms berechnen -> filter mit b = [-1 , 0 0 0 0 ... (48 mal), 1], a = 1.
korrekt? weil, in dem paper das ich implementiere heist es,
"The first difference is computed every 1 ms using a 50-ms time step,
centered about the time of interest."
da hab ich ein problem mit "centered about the time of interest", weil mein filter nimmt ja den unterschied zwischen dem frame von vor 50ms (jetzt mal abzüglich das problem mit dem overlapp, das es hier natürlich auch gibt) und dem jetzigen (dividiert durch 50) ...
3) ich will das ganze dann in dB ausdrücken (is ein Sprachsignal, und ich suche Ausreisser in der Ableitung, die größer als +/- 9 dB sind.
jetzt sind dB ja relative Größen, und man braucht zur bestimmung ein Referenzsignal. ist das auch der Fall, wenn der mittelwert meines signals schon auf 0 gesetzt wurde? im moment benutz ich einfach dB = 20 * log10(signal + 1). Das "+1" is drin, weil mir sonst die kleinen Werte total nach unten drehen ... das schaut irgendwie nach einer unsauberen Lösung aus ...
vielen Dank
Ernst