Автор Тема: Фотоплетизмограф и реограф  (Прочитано 3267 раз)

UncleMike

  • Член "Космопоиска"
  • Гость
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 133
  • Петербург-Космопоиск
  • ФИО: Азаров Михаил
Re: Фотоплетизмограф и реограф
« Ответ #30 : 21 Март 2017 г., 22:53:36 »
Самый простой алгоритм - цифровой БИХ-фильтр второго порядка (там есть и ФНЧ, режекторный, ФВЧ):
http://model.exponenta.ru/lectures/audio_eq.htm
Стоит его попробовать, но, возможно, придется повышать порядок фильтра

ЛУТ

  • 1000+ постов
  • ****
  • Оффлайн Оффлайн
  • Сообщений: 1 992
Re: Фотоплетизмограф и реограф
« Ответ #31 : 29 Июль 2018 г., 12:59:07 »
Тут зашёл разговор за фильтры.
У меня тоже появилась необходимость освоить их, и вот что я раскопал.
Программка для КИХ и БИХ фильтров, генерит готовый С код - готовая функция в которую вводишь число и получаешь отфильтрованное значение.
Скачать можно тут http://www.winfilter.20m.com/

/**************************************************************
WinFilter version 0.8
http://www.winfilter.20m.com
akundert@hotmail.com

Filter type: Low Pass
Filter model: Butterworth
Filter order: 2
Sampling Frequency: 1000 Hz
Cut Frequency: 100.000000 Hz
Coefficents Quantization: float

Z domain Zeros
z = -1.000000 + j 0.000000
z = -1.000000 + j 0.000000

Z domain Poles
z = 0.571490 + j -0.293599
z = 0.571490 + j 0.293599
***************************************************************/
#define NCoef 2
float iir(float NewSample) {
    float ACoef[NCoef+1] = {
        0.06745527606901530200,
        0.13491055213803060000,
        0.06745527606901530200
    };

    float BCoef[NCoef+1] = {
        1.00000000000000000000,
        -1.14298050253990090000,
        0.41280159809618860000
    };

    static float y[NCoef+1]; //output samples
    static float x[NCoef+1]; //input samples
    int n;

    //shift the old samples
    for(n=NCoef; n>0; n--) {
       x[n] = x[n-1];
       y[n] = y[n-1];
    }

    //Calculate the new output
    x[0] = NewSample;
    y[0] = ACoef[0] * x[0];
    for(n=1; n<=NCoef; n++)
        y[0] += ACoef[n] * x[n] - BCoef[n] * y[n];
   
    return y[0];
}
Если вы увидели в этом мире красоту значит вы поняли смысл всего (или близки к понимаю).

Val

  • 1000+ постов
  • ****
  • Оффлайн Оффлайн
  • Сообщений: 1 873
  • ФИО: Валентин.
Re: Фотоплетизмограф и реограф
« Ответ #32 : 14 Август 2018 г., 11:25:23 »
Спасибо за ответ.
Я тут уже начитался про адаптивную и пришел к выводу, что оно мне пока рановато.
А надо простые фильтры баттерворта или чебышева
При том желательно в "готовом" виде
Так как успехи? Вы сделали то что хотели?

 

Поддержка форума: Marconi