Главная страница


ru.algorithms

 
 - RU.ALGORITHMS ----------------------------------------------------------------
 From : Sergey Andrianov                     2:5020/1507.400 06 Feb 2003  09:46:26
 To : Zahar Kiselev
 Subject : Re: нулевые значения функции
 -------------------------------------------------------------------------------- 
 
 
 Однажды 01-Feb-03  в 02:45   Zahar Kiselev (2:5030/382.1)
 написал       All    по поводу
 -=-   нулевые значения функции  -=-
 
 ZK> Есть оцифрованный сигнал.
 ZK> Форма - что-то типа сильно ограниченной и слегка зашумленной синусоиды.
 ZK> Или так может выглядеть прямоугольный меандр с сильно заваленными фронтами 
 ZK> и тоже добавлением шума. 
 ZK> Hа один период сигнала есть штук пять-семь измеренных точек в зависимости 
 ZK> от частоты сигнала в этот момент.
 ZK> По этой информации требуется вычислить моменты перехода сигнала через ноль.
 ZK> Почитал в справочинике про интерполяцию - там везде рассматривается задача 
 ZK> нахождения значения функции в какой-то точке исходя из известных значений в 
 
 ZK> других точках. То есть ищут "Y" при каком-то заданном "X". А как "выернуть 
 ZK> наоборот" эту формулу, чтобы она давала значение Х такое, которое будет 
 ZK> соответствовать Y=0 ?
 
   Очевидно, прохождение через 0 случается тогода, когда знаки двух соседних 
 отсчетов не совпадают. Точка пересечения находится линейной интерполяцией.
 
 ZK> Сколько соседних точек имеет смысл использовать для вычисления при 
 ZK> вышеупомянутой форме сигнала?
 
   Ровно 2. 
 
   Kонечно можно было бы использовать и более высокий порядок интерполяции, но в 
 рассмативаемом случае (а - сигнал зашумлен, б - присутствует ограничение, т.е. 
 нелинейное преобразование) это приведет лишь ненужным осцилляциям с нарушением 
 монотонности. Могут даже случиться ложные "переходы через 0". 
   Аналогично вряд ли целесообразно применять фильтрацию - можно заработать
 фазовые сдвиги и, соответственно, систематическую ошибку.
 
 ZK> В идеале хотелось бы написать функцию, которая на входе берет массив, в 
 ZK> котором несколько значений сигнала, а на выходе выдает массив значений 
 ZK> времени, когда сигнал переходит через ноль или же этот массив не содержит 
 ZK> ничего если функция считает, что сигнал через ноль ни разу не переходил. 
 ZK> Значения времени предполагаются дробными, так как переход через ноль в 
 ZK> общем случае не будет совпадать с моментом измерения.
 
    for i := 0 to N-2 do
      if (y[i]*y[i+1]) < 0 then {произв.отрицательно при несовпадении знаков}
         writeln('CrossPoint: ',x[i]*abs(y[i+1])/abs(y[i]-y[i+1]) 
                              + x[i+1]*abs(y[i])/abs(y[i]-y[i+1]));
 
   Естественно это без оптимизации - чтобы было понятнее, о чем идет речь.
 
                   До свидания,  в  09:05 MSK
                                  Sergey
 
 ---
  * Origin: Sergiev Posad (2:5020/1507.400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 нулевые значения функции   Zahar Kiselev   01 Feb 2003 03:45:28 
 нулевые значения функции   Evgenij Masherov   01 Feb 2003 18:01:34 
 нулевые значения функции   Zahar Kiselev   01 Feb 2003 23:05:24 
 нулевые значения функции   Evgenij Masherov   03 Feb 2003 12:02:23 
 нулевые значения функции   Vladimir Vassilevsky   02 Feb 2003 06:11:26 
 нулевые значения функции   Zahar Kiselev   02 Feb 2003 07:52:58 
 нулевые значения функции   Vladimir Vassilevsky   03 Feb 2003 05:07:04 
 нулевые значения функции   Zahar Kiselev   03 Feb 2003 06:44:08 
 нулевые значения функции   Sergey Mudry   10 Feb 2003 18:02:33 
 нулевые значения функции   Dmitriy Yaroshevich   02 Feb 2003 04:48:38 
 нулевые значения функции   Zahar Kiselev   02 Feb 2003 10:46:00 
 Re: нулевые значения функции   Sergey Andrianov   06 Feb 2003 09:46:26 
Архивное /ru.algorithms/52053E4220E3.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional