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

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

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

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

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

Спасибо!

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
      aBoomest+942.89
      9.04.2021 21:20

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

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

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

         

        • aBoomest
          aBoomest+942.89
          12.04.2021 07:29

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

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

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

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