Перейти к содержанию
    

У меня коррелятор не работает.

Господа, я пытаюсь сделать обнаружитель гармонического сигнала в его смеси с шумом. По-моему это - классическая постановка, и все давно это уже умеют.

А вот у меня не получается :(.

Беру входную смесь с шумом (массив чисел) и умножаю её на синус и на косинус той же частоты, что и сигнал (тоже массивы чисел). Полученные два массива почленно возвожу в квадрат, суммирую и беру корень из суммы. Полученный результат накапливаю, ну типа сложением...

Ожидаю, что в процессе обработки массивов на выходе значение будет нарастать. Так и есть, нарастает, но при этом не зависит от частоты входного сигнала. Ну то есть совпадает частота коррелятора со входным сигналом или нет, на выходе нарастающая пила одинакова.

Вопрос - я что-то не так делаю?

Или просто дикая ошибка где-то?

Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

После умножения на комплексную синусоиду накопить и только потом модуль вычислять.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

После умножения на комплексную синусоиду накопить и только потом модуль вычислять.

Я делаю:

Вход = Сигнал + Шум

(Вход*Синус)^2 + (Вход*Косинус)^2 = Сумма

Результат = Результат + (Сумма)^0.5

 

В каком месте нужен модуль?

 

А просто FFT нельзя сделать?

FFT работает, без проблем.

Но мне нужен именно коррелятор! Вот тот самый, - из старинных советских учебников, именно он почему-то не выходит...

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Господа, я пытаюсь сделать обнаружитель гармонического сигнала в его смеси с шумом. По-моему это - классическая постановка, и все давно это уже умеют.

А вот у меня не получается :(.

Беру входную смесь с шумом (массив чисел) и умножаю её на синус и на косинус той же частоты, что и сигнал (тоже массивы чисел). Полученные два массива почленно возвожу в квадрат, суммирую и беру корень из суммы.

Спасибо.

 

синус квадрат плюс косинус квадрат будет 1, если я правильно понял вас, то и суммы почленные будут 1*входной сигнал.

Я для проверки самописанных всяких функци использую фурье- анализ экзела, там есть такое, кстати операции все комплексные.

Если у вас не просто таблица, а рельный эксперимент - не проще применить синхродетектирование?

 

 

(Вход*Синус)^2 + (Вход*Косинус)^2 = Сумма

сумма будет просто вход ^2

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

сумма будет просто вход ^2

Да, согласен, в суете накосячил, нужно сначала интегрировать. Исправил, - всё заработало.

СПАСИБО!

:)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...