aBoomest 0 January 27 Posted January 27 · Report post Добрый день. Вопрос такой: какие существуют алгоритмы ЦОС определения частоты сигнала. Алгоритмы определения по переходам через ноль с помощью нуль-индикатора и похожие на него, а также построение "в упор" спектра сигнала и т.п. - не интересуют. Алгоритм должен определять частоту во времени, т.к. сигнал может изменяться. Просто у меня узкая специализация, а тут возникла задача, и вот решил поинтересоваться какие есть методы в радиотехнике или еще в каких-то смежных областях, с которыми я не знаком. Заранее благодарен за любую информацию. Quote Share this post Link to post Share on other sites More sharing options...
stealthisname 7 January 27 Posted January 27 · Report post если частота сигнала меняется с течением времени, то действительно, построение спектра сигнала "в упор" не подойдёт, так как в таком построении будет упущена информация об изменении частоты сигнала во времени, поэтому для определения изменения частоты сигнала во времени, можно воспользоваться построением спектрограммы вот пример построения спектра "в упор" для определённого сигнала и построение спектрограммы для этого же определённого сигнала по спектрограмме в таком случае можно оценить изменение частоты сигнала во времени, и на основе такой обработки сигнала можно строить алгоритм определения частоты сигнала с течением времени Quote Share this post Link to post Share on other sites More sharing options...
gridinp 1 January 27 Posted January 27 (edited) · Report post можно посчитать мгновенную фазу сигнала, предварительно переведя сигнал в комплексный вид преобразованием Гильберта. Затем от фазы перейти к частоте с помощью производной. Edited January 27 by gridinp Quote Share this post Link to post Share on other sites More sharing options...
aBoomest 0 January 27 Posted January 27 (edited) · Report post Спасибо за быстрый ответ. stealthisname Спектр и т.п. не пойдет. Мне нужно численное значение, а не что-то визуальное. gridinp 1. Можно чуть подробнее? Просто производную брать? Из теории модуляции как раз помнится фаза и частота связаны производной. Какие-то нюансы есть? 2. Гильберт и Фурье чем отличаются? ПОстоянно попадаются статьи с гильберта преобразованием. Чем оно лучше фурье? Edited January 27 by aBoomest Quote Share this post Link to post Share on other sites More sharing options...
_pv 21 January 27 Posted January 27 · Report post стандартное отклонение производной сигнала поделить на стандартное отклонение сигнала Quote Share this post Link to post Share on other sites More sharing options...
gridinp 1 January 27 Posted January 27 · Report post Гильберт и Фурье - разные вещи, но преобразование можно посчитать через Фурье, для это берём от сигнала БПФ, потом умножаем положительные частоты на 2, зануляем отрицательные частоты и делаем обратное БПФ (постоянку и найквиста не трогаем). Quote Share this post Link to post Share on other sites More sharing options...
soldat_shveyk 0 January 27 Posted January 27 · Report post 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 Quote Share this post Link to post Share on other sites More sharing options...
des00 9 January 27 Posted January 27 · Report post 17 minutes ago, soldat_shveyk said: Если есть синусоидальный сигнал с хорошим SNR, частоту которого надо изменять ТСу нужно хотя бы обозначить классы сигналов из которых он хочет узнать частоту, потом можно предлагать алгоритмы. А то вдруг у него ШПС с базой 1 млн в полосе 1ГГц Quote Share this post Link to post Share on other sites More sharing options...
aBoomest 0 January 27 Posted January 27 · Report post 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 Гц. Искажения (переходные процессы) при коммутациях. Quote Share this post Link to post Share on other sites More sharing options...
des00 9 January 27 Posted January 27 · Report post 36 minutes ago, aBoomest said: Сигналы в теории примерно 0 - 600 Гц. В реальности на практике 10 - 400 Гц. Искажения (переходные процессы) при коммутациях. модуляция как понимаю отсуствует ? чистый синус, максимум с тепловым шумом? Quote Share this post Link to post Share on other sites More sharing options...
looser 6 January 27 Posted January 27 · Report post 2 часа назад, aBoomest сказал: Спектр и т.п. не пойдет. Мне нужно численное значение, а не что-то визуальное. Вычисление частоты по спектру - единственный оптимальный способ. Все остальное - так себе. Если во времени я бы предложил пробку [1 -2*cos(2*pi/fd*f) 1]. Адаптация среднего к-та к минимуму выхода с последующим acos. При больших снр работает хорошо. Quote Share this post Link to post Share on other sites More sharing options...
aBoomest 0 January 27 Posted January 27 · Report post 16 minutes ago, des00 said: модуляция как понимаю отсуствует Вообще редко но может быть. НО этот случай в рассмотрение не идет. Одним словом: отсутствует. Quote Share this post Link to post Share on other sites More sharing options...
des00 9 January 27 Posted January 27 · Report post 8 minutes ago, aBoomest said: Вообще редко но может быть. НО этот случай в рассмотрение не идет. Одним словом: отсутствует. тогда еще как вариант, классический частотный детектор, на основе фильтра с линейным наклоном АЧХ в исследуемой плоскости. Но он требует калибровки к уровню сигнала) Quote Share this post Link to post Share on other sites More sharing options...
aBoomest 0 January 27 Posted January 27 · Report post 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 точно. Quote Share this post Link to post Share on other sites More sharing options...
gridinp 1 January 27 Posted January 27 · Report post В 27.01.2023 в 15:07, aBoomest сказал: Не могли бы пояснить недалекому как это? Это получается растянуть по оси частот? зачем растягивать? вот у нас например сигнал 8 отсчетов и спектр получится длиной 8, тогда частоты (от 0) 1..3 - умножаем на 2, а 5..7 обнуляем Quote Share this post Link to post Share on other sites More sharing options...