• Регистрация
Кулдро
Кулдро0.00
н/д
  • Написать
  • Подписаться

Алгоритм Герцеля для расчета фазы анализируемого сигнала

Здравствуйте!

В среде матлаб написал алгоритм Герцеля. Скрипт привел. На вход этого алгоритма задаю сигнал и алгоритм выдаёт результат в виде комплексного числа, действительная часть которого считается правильно, но мнимая нет. Что в скрипте не правильно написано?

Спасибо!

N = 80; % Количество отсчетов входного сигнала, отсчеты/период
f = 50; % частота колебания сигнала, Гц
t = 0.02; % Интервал моделирования, с
fs = 0:1/f/N:t; % массив времени
k = 50; % Номер спектрального отсчета
x = 100*sin(2*pi*f*fs); % входной cигнал 

% Расчет вещественного alpha и поворотного w коэффициентов
om = 2*pi*k/N;
w = exp(-om*i);
alpha = 2*cos(om);

%Первая часть алгоритма, где считается рекуррентное выражение
s1 = 0; s2 = 0;
for i = 1:length(x)
    s0 = alpha * s1 - s2 + x (i); 
    s2 = s1;
    s1 = s0;
end

%Вторая часть алгоритма, который выдаёт результат. Вот тут у меня
по мнимой части комплексного числа ошибка выдаётся.
Xk = s1 - w * s2;

Теги

    09.04.2021

    Лучший ответ

    • aBoomest+344.62
      12.04.2021 12:00

      В любом случае вероятно там наверно всетаки 1-ца, а не 50, т.к. иначе аргумент синуса для 1-й гармоники будет на много болльше чем 2pi, что странно. ПО ощущениям аргумент для 1-й гармоники должен быть меньше чем 2pi.

      Боле того, надо понимать, что это просто фильтр. Т.е. если вы на вход фильтра подали синус, то вполне закономерно что на выходе тоже будет синус только с другой амплитудой и фазой. Т.о. это не БПФ или ДПФ которое просто дает вам значение и все тут. Это фильтр которы периодически, иногда выдает вам нужное значение, которое теоретически точно соответствует выделяемой частоте. Все промежуточные результаты расчета рекурентной формулы не имеют значения.

    Ответы

    • aBoomest
      aBoomest+344.62
      10.04.2021 00:20

      k наверно не 50, а 1.

      • Кулдро
        Кулдро0.00
        10.04.2021 12:26

        k задал 1, результат изменился в сторону ухудщения, т.е. теперь и для косинусоидального входного сигнала х амплитуда некорректная. 

         

        • aBoomest
          aBoomest+344.62
          12.04.2021 10:29

          В любом случае вероятно там наверно всетаки 1-ца, а не 50, т.к. иначе аргумент синуса для 1-й гармоники будет на много болльше чем 2pi, что странно. ПО ощущениям аргумент для 1-й гармоники должен быть меньше чем 2pi.

          Боле того, надо понимать, что это просто фильтр. Т.е. если вы на вход фильтра подали синус, то вполне закономерно что на выходе тоже будет синус только с другой амплитудой и фазой. Т.о. это не БПФ или ДПФ которое просто дает вам значение и все тут. Это фильтр которы периодически, иногда выдает вам нужное значение, которое теоретически точно соответствует выделяемой частоте. Все промежуточные результаты расчета рекурентной формулы не имеют значения.

          • Кулдро
            Кулдро0.00
            12.04.2021 11:02

            Большое спасибо, теперь ясно! Также начал понимать результаты алгоритма)