На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! правила раздела Алгоритмы
1. Помните, что название темы должно хоть как-то отражать ее содержимое (не создавайте темы с заголовком ПОМОГИТЕ, HELP и т.д.). Злоупотребление заглавными буквами в заголовках тем ЗАПРЕЩЕНО.
2. При создании темы постарайтесь, как можно более точно описать проблему, а не ограничиваться общими понятиями и определениями.
3. Приводимые фрагменты исходного кода старайтесь выделять тегами code.../code
4. Помните, чем подробнее Вы опишете свою проблему, тем быстрее получите вразумительный совет
5. Запрещено поднимать неактуальные темы (ПРИМЕР: запрещено отвечать на вопрос из серии "срочно надо", заданный в 2003 году)
6. И не забывайте о кнопочках TRANSLIT и РУССКАЯ КЛАВИАТУРА, если не можете писать в русской раскладке :)
Модераторы: Akina, shadeofgray
  
> Фаза
    Дан комплексный сигнал s(t), в виде массива, надо получить функцию фазы f(t) без разрывов при переходе от -180 к 180
      fi[x]:=arctan(b[x]/a[x]);
      while abs(fi[x]+pi*2-fi[x-1])<abs(fi[x]-fi[x-1]) do fi[x]:=fi[x]+2*pi;
      while abs(fi[x]-pi*2-fi[x-1])<abs(fi[x]-fi[x-1]) do fi[x]:=fi[x]-2*pi;
      вроде так :P
        Ну с while это уж очень некрасиво, но где то близко
          Забыл сказать производная в этом месте недолжна скакать
            ну уж будет она скакать или нет - ето уже зависит только от твоих данных.
            я тут у себя немного ошибок нашёл ;D
            правильно так:
            ExpandedWrap disabled
              fi[x]:=arctan(b[x]/a[x]);
              if a[x]<0 then fi[x]:=fi[x]+pi;
              fi[x]:=fi[x]+2*pi*round((fi[x-1]-fi[x])/2/pi);

            без while ;D

            зы. а есть ещё функция arctan2(y, x), которая выдаёт arctan(y/x) в правильной четверти, без делений на ноль и вобще точнее, быстрее и лучше :lol:
            ExpandedWrap disabled
              fi[x]:=arctan2(b[x], a[x]);
            Сообщение отредактировано: wormball -
            0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
            0 пользователей:


            Рейтинг@Mail.ru
            [ Script execution time: 0,0561 ]   [ 15 queries used ]   [ Generated: 21.05.24, 07:52 GMT ]