Erstellen Low-Pass-Filter von Octave

Obwohl ich hatte ein Beispiel des low-pass-filter, codiert in die Oktave, und ich bin mir sicher, dass es funktioniert, kann ich nicht verstehen.
Wie Dosis dieser Arbeit? und Wie kann ich wissen, cut-off-Frequenz des filters?

Den original_data ist eine Spalte von Daten zur Wasserqualität, die ich mit 1Hz.

l = rows(original_data);
a = fft(original_data);
for i = (1:l);
 if i >9
  a(i) = 0;
 endif
endfor
b = fft(original_data);
for i = (1:l)
 if i > 1
  b(i) = 0;
 endif
endfor
c = real(ifft(a));
c(1);
d = real(ifft(a))*2-c(1);

Wenn Sie eine Idee haben, bitte helfen Sie mir.

  • Dies ist eine wirklich schlechte Art und Weise zu tun-Filterung - es ist eine Mauer in der Frequenz-Domäne, das bedeutet, es wird starke ringing-Artefakte im Zeitbereich. Verwenden Sie eine Fenster-Funktion im Frequenzbereich um dies zu vermeiden.
  • Vielen Dank, Paul. Wissen Sie, wie Sie wissen, cut-off-Frequenz des filters?
  • Der cut-off-Frequenz hängt von der Größe der fft, die, wie es scheint l, so wäre es ca Fs * 10 / l, und Sie sagen, dass Fs = 1 Hz, also wären das ca 10 / l Hz.
InformationsquelleAutor user3021107 | 2013-11-22
Schreibe einen Kommentar