Как сделать Fade In по экспоненциальной функции

Тема в разделе "WASM.A&O", создана пользователем serega28, 27 авг 2010.

  1. serega28

    serega28 Member

    Публикаций:
    0
    Регистрация:
    26 мар 2007
    Сообщения:
    115
    Адрес:
    Minsk
    Помогите пожалуйста.

    Дано:
    Код (Text):
    1. iPtr = 0 и iSize = 44100
    Линейное возврастание будет так:
    Код (Text):
    1. while (iPtr < iSize)
    2. {
    3.    kf = (float)iPtr / (float)iSize;
    4.    data = data * kf;
    5.    iPtr++;
    6. }
    А как сделать чтобы вот такое возрастание сигнала было
    [​IMG]
     
  2. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
    вообще на рисунке какая-то странная экспонента:
    http://ru.wikipedia.org/wiki/%D0%AD%D0%BA%D1%81%D0%BF%D0%BE%D0%BD%D0%B5%D0%BD%D1%82%D0%B0
    наверное ты имел ввиду:
    Код (Text):
    1. y = 1 - exp(-x) : x принадлежит [0, бесконечность)
    2. y = 0 : x принадлежит (-бесконечность, 0)
    код:
    Код (Text):
    1. while (iPtr < iSize)
    2. {
    3.    if(iPrt <= 0) { data = 0; }
    4.    else { data = 1 - exp((float)((-1) * iPtr)); }
    5.    iPtr++;
    6. }
     
  3. gorodon

    gorodon New Member

    Публикаций:
    0
    Регистрация:
    19 окт 2009
    Сообщения:
    301
    serega28
    На графике - сигнал на выходе с фильтра первого порядка (1/(Tp+1)).
    y = (1/(Tp+1))*x

    x - входной сигнал, единичная функция ( 0 при t<0, 1 при t>0)

    Для расчета T можно использовать формулу: 3,5T = t(y = 95%) = 1,4 cек,
    т.е. T = 0,4 сек.