aBoomest 0 27 января, 2023 Опубликовано 27 января, 2023 · Жалоба Добрый день. Вопрос такой: какие существуют алгоритмы ЦОС определения частоты сигнала. Алгоритмы определения по переходам через ноль с помощью нуль-индикатора и похожие на него, а также построение "в упор" спектра сигнала и т.п. - не интересуют. Алгоритм должен определять частоту во времени, т.к. сигнал может изменяться. Просто у меня узкая специализация, а тут возникла задача, и вот решил поинтересоваться какие есть методы в радиотехнике или еще в каких-то смежных областях, с которыми я не знаком. Заранее благодарен за любую информацию. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
stealthisname 7 27 января, 2023 Опубликовано 27 января, 2023 · Жалоба если частота сигнала меняется с течением времени, то действительно, построение спектра сигнала "в упор" не подойдёт, так как в таком построении будет упущена информация об изменении частоты сигнала во времени, поэтому для определения изменения частоты сигнала во времени, можно воспользоваться построением спектрограммы вот пример построения спектра "в упор" для определённого сигнала и построение спектрограммы для этого же определённого сигнала по спектрограмме в таком случае можно оценить изменение частоты сигнала во времени, и на основе такой обработки сигнала можно строить алгоритм определения частоты сигнала с течением времени Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gridinp 3 27 января, 2023 Опубликовано 27 января, 2023 (изменено) · Жалоба можно посчитать мгновенную фазу сигнала, предварительно переведя сигнал в комплексный вид преобразованием Гильберта. Затем от фазы перейти к частоте с помощью производной. Изменено 27 января, 2023 пользователем gridinp Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aBoomest 0 27 января, 2023 Опубликовано 27 января, 2023 (изменено) · Жалоба Спасибо за быстрый ответ. stealthisname Спектр и т.п. не пойдет. Мне нужно численное значение, а не что-то визуальное. gridinp 1. Можно чуть подробнее? Просто производную брать? Из теории модуляции как раз помнится фаза и частота связаны производной. Какие-то нюансы есть? 2. Гильберт и Фурье чем отличаются? ПОстоянно попадаются статьи с гильберта преобразованием. Чем оно лучше фурье? Изменено 27 января, 2023 пользователем aBoomest Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_pv 78 27 января, 2023 Опубликовано 27 января, 2023 · Жалоба стандартное отклонение производной сигнала поделить на стандартное отклонение сигнала Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gridinp 3 27 января, 2023 Опубликовано 27 января, 2023 · Жалоба Гильберт и Фурье - разные вещи, но преобразование можно посчитать через Фурье, для это берём от сигнала БПФ, потом умножаем положительные частоты на 2, зануляем отрицательные частоты и делаем обратное БПФ (постоянку и найквиста не трогаем). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
soldat_shveyk 3 27 января, 2023 Опубликовано 27 января, 2023 · Жалоба 26 minutes ago, aBoomest said: Можно чуть подробнее? Просто производную брать? Из теории модуляции как раз помнится фаза и частота связаны производной. Какие-то нюансы есть? Если есть синусоидальный сигнал с хорошим SNR, частоту которого надо изменять, то можно воспользоваться свойством производной от синуса: diff[sin(wt)] = w*cos(w*t) Если дифференцировать синусоидальный сигнал по времени, то амплитуда его производной будет меньше на w. Посчитав RMS-уровни сигнала и его производной на некоторой длине (чем длиннее, тем точнее) можно по соотношению этих уровней найти частоту самого сигнала. Чем меньше частота оцифрованного синуса, тем ниже будет уровень производной. Разность уровней, поделенная на 2*pi - это частота сигнала относительно частоты дискретизации. freq = [(RMS(sig_diff) / RMS(sig)) / 2*pi ] * Fs Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 27 января, 2023 Опубликовано 27 января, 2023 · Жалоба 17 minutes ago, soldat_shveyk said: Если есть синусоидальный сигнал с хорошим SNR, частоту которого надо изменять ТСу нужно хотя бы обозначить классы сигналов из которых он хочет узнать частоту, потом можно предлагать алгоритмы. А то вдруг у него ШПС с базой 1 млн в полосе 1ГГц Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aBoomest 0 27 января, 2023 Опубликовано 27 января, 2023 · Жалоба 1 hour ago, gridinp said: умножаем положительные частоты на 2 Не могли бы пояснить недалекому как это? Это получается растянуть по оси частот? 53 minutes ago, soldat_shveyk said: Если есть синусоидальный сигнал с хорошим SNR, частоту которого надо изменять, то можно воспользоваться свойством производной от синуса: diff[sin(wt)] = w*cos(w*t) Если дифференцировать синусоидальный сигнал по времени, то амплитуда его производной будет меньше на w. Посчитав RMS-уровни сигнала и его производной на некоторой длине (чем длиннее, тем точнее) можно по соотношению этих уровней найти частоту самого сигнала. Чем меньше частота оцифрованного синуса, тем ниже будет уровень производной. Разность уровней, поделенная на 2*pi - это частота сигнала относительно частоты дискретизации. freq = [(RMS(sig_diff) / RMS(sig)) / 2*pi ] * Fs Спасибо. Поизучаю. 35 minutes ago, des00 said: ТСу нужно хотя бы обозначить классы сигналов из которых он хочет узнать частоту, потом можно предлагать алгоритмы. А то вдруг у него ШПС с базой 1 млн в полосе 1ГГц Сигналы в теории примерно 0 - 600 Гц. В реальности на практике 10 - 400 Гц. Искажения (переходные процессы) при коммутациях. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 27 января, 2023 Опубликовано 27 января, 2023 · Жалоба 36 minutes ago, aBoomest said: Сигналы в теории примерно 0 - 600 Гц. В реальности на практике 10 - 400 Гц. Искажения (переходные процессы) при коммутациях. модуляция как понимаю отсуствует ? чистый синус, максимум с тепловым шумом? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
looser 8 27 января, 2023 Опубликовано 27 января, 2023 · Жалоба 2 часа назад, aBoomest сказал: Спектр и т.п. не пойдет. Мне нужно численное значение, а не что-то визуальное. Вычисление частоты по спектру - единственный оптимальный способ. Все остальное - так себе. Если во времени я бы предложил пробку [1 -2*cos(2*pi/fd*f) 1]. Адаптация среднего к-та к минимуму выхода с последующим acos. При больших снр работает хорошо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aBoomest 0 27 января, 2023 Опубликовано 27 января, 2023 · Жалоба 16 minutes ago, des00 said: модуляция как понимаю отсуствует Вообще редко но может быть. НО этот случай в рассмотрение не идет. Одним словом: отсутствует. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 27 января, 2023 Опубликовано 27 января, 2023 · Жалоба 8 minutes ago, aBoomest said: Вообще редко но может быть. НО этот случай в рассмотрение не идет. Одним словом: отсутствует. тогда еще как вариант, классический частотный детектор, на основе фильтра с линейным наклоном АЧХ в исследуемой плоскости. Но он требует калибровки к уровню сигнала) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aBoomest 0 27 января, 2023 Опубликовано 27 января, 2023 · Жалоба 12 minutes ago, looser said: Если во времени я бы предложил пробку [1 -2*cos(2*pi/fd*f) 1]. Адаптация среднего к-та к минимуму выхода с последующим acos А можно л-ру? Или чуть пояснить? 13 minutes ago, looser said: Вычисление частоты по спектру - единственный оптимальный способ. Все остальное - так себе. Если во времени я бы предложил пробку [1 -2*cos(2*pi/fd*f) 1]. Адаптация среднего к-та к минимуму выхода с последующим acos. При больших снр работает хорошо. СНР норм. Больше 100 точно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gridinp 3 27 января, 2023 Опубликовано 27 января, 2023 · Жалоба В 27.01.2023 в 15:07, aBoomest сказал: Не могли бы пояснить недалекому как это? Это получается растянуть по оси частот? зачем растягивать? вот у нас например сигнал 8 отсчетов и спектр получится длиной 8, тогда частоты (от 0) 1..3 - умножаем на 2, а 5..7 обнуляем Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться