Avex 1 2 сентября, 2020 Опубликовано 2 сентября, 2020 · Жалоба Коллеги, привет! Дилетантский вопрос: оцифровывается некий сигнал, который состоит из нескольких составляющих: все - синусы одной частоты, но с разными фазами и амплитудами (получены из одного опорного синуса путем сдвига фазы и затуханием). Как бы мне вычислить все эти составляющие - фазы и амплитуды, каким агоритмом воспользоваться? В периоде у меня примерно 256 точек, но точность особо и не нужна - достаточно 1-2 градуса. Фурье, я так понимаю, не годится - там на каждую частоту одна фаза Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
blackfin 11 2 сентября, 2020 Опубликовано 2 сентября, 2020 · Жалоба 3 minutes ago, Aleх said: Как бы мне вычислить все эти составляющие - фазы и амплитуды, каким агоритмом воспользоваться? Никаким.. После суммирования гармоник с одинаковой частотой информация о фазах отдельных гармоник теряется безвозвратно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 2 2 сентября, 2020 Опубликовано 2 сентября, 2020 · Жалоба 4 minutes ago, blackfin said: Никаким.. После суммирования гармоник с одинаковой частотой информация о фазах отдельных гармоник теряется безвозвратно. Я бы не спешил. Если есть некий закон затухания и фазового сдвига, то не все потеряно. Вольфрам в помощь - https://www.wolframalpha.com/input/?i=sin(50*f)%2B0.9*sin(50*f%2B1)%2B0.8*sin(50*f%2B2) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
blackfin 11 2 сентября, 2020 Опубликовано 2 сентября, 2020 · Жалоба 1 minute ago, AlexandrY said: Если есть некий закон затухания и фазового сдвига, то не все потеряно. Судя по описанию ТС, затухание каждой гармоники от времени не зависит. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Avex 1 2 сентября, 2020 Опубликовано 2 сентября, 2020 · Жалоба От времени никак не зависит. Просто, сложены копии опорного синуса с разной фазой и амплитудой - нужно узнать эти фазы, и - желательно- амплитуды Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
blackfin 11 2 сентября, 2020 Опубликовано 2 сентября, 2020 · Жалоба Just now, Aleх said: От времени никак не зависит. Просто, сложены копии опорного синуса с разной фазой и амплитудой - нужно узнать эти фазы, и - желательно- амплитуды Попробуйте сложить N (нет, N мало! Лучше M) комплексных чисел, а потом по полученной сумме найти все слагаемые по отдельности.. ;) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Avex 1 2 сентября, 2020 Опубликовано 2 сентября, 2020 · Жалоба 12 minutes ago, blackfin said: Никаким.. После суммирования гармоник с одинаковой частотой информация о фазах отдельных гармоник теряется безвозвратно. Сигнал выглядит как периодический, той же частоты, но с кривой формой. Если вручную сложить несколько синусов, то форма подбирается. Ниужели нельзя это сделать алгоритмически, программой? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_pv 49 2 сентября, 2020 Опубликовано 2 сентября, 2020 · Жалоба 1 minute ago, Aleх said: Сигнал выглядит как периодический, той же частоты, но с кривой формой. тогда это не синусы одной частоты. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Avex 1 2 сентября, 2020 Опубликовано 2 сентября, 2020 · Жалоба Может быть я ошибаюсь относительно вида сигнала на вейвформе, но точно известно, что составляющие получены из одного исходного синуса путем сдвига фаз и изменения (про затухание я напрасно написал) амплитуды. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_pv 49 2 сентября, 2020 Опубликовано 2 сентября, 2020 · Жалоба сложение скольки угодно синусов одной частоты с разной амплитудой и фазой даст абсолютно тот же синус, абсолютно той же частоты, но с другой амплитудой и фазой. вспоминайте школьную тригонометрию, если пример со сложением M комплексных чисел слишком сложный. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Avex 1 2 сентября, 2020 Опубликовано 2 сентября, 2020 · Жалоба Про комплексные числа я действительно не уловил. Значит, восстановить не удастся? Понял. Спасибо Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Avex 1 14 декабря, 2020 Опубликовано 14 декабря, 2020 · Жалоба Разбираюсь с ЦОС, возник вопрос по БИХ фильтру и алгоритму Герцеля. 1. Есть набор данных с АЦП - 4096 отсчетов. Сигнал - косинус с частотой 20кГц, начальной фазой 0 и амплитудой 1, дискретизация с частотой 2МГц. Загрузил в эксель, там же разместил формулы БИХ фильтра ( воспользовался статьей https://ru.dsplib.org/content/goertzel/goertzel.html ). Получилось, что 20КГц соответствует 41й спектральной составляющей. БИХ фильтр для k=41 выдал некое комплексное число на выходе. Я ожидал увидеть Re=1 Im=0, но получилось что то совершенно не похожее. Далее, я взял набор входных данных и подвигал вперед-назад на входе БИХ фильтра: результат на выходе (почти) не поменялся, тот же самый комплексный вектор, хотя я рассчитывал что он будет крутиться вместе с входными данными. 2. Я решил, что ошибся в формулах БИХ фильтра. По ссылке https://ru.dsplib.org/content/goertzel/goertzel.html в конце есть пример фильтра на 8 точек, перепечатал в эксель и убедился что формулы были забиты верно. Но - попробовал циклически прокрутить входные данные из примера, и снова на выходе фильтра - тот же вектор. Вопрос. Что за вектор на выходе у БИХ фильтра, почему его фаза (почти) не меняется от циклической прокрутки входных данных? Я планировал применить этот фильтр именно для вычисления фазы сигнала: снимать данные с ацп, грузить в БИХ фильтр и наблюдать относительное изменение фазы сигнала. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Самурай 12 14 декабря, 2020 Опубликовано 14 декабря, 2020 · Жалоба 1 час назад, Aleх сказал: Загрузил в эксель, там же разместил формулы БИХ фильтра Не маялись бы Вы ерундой и делали бы все в Matlab/Scilab/Octave. 2 часа назад, Aleх сказал: Я ожидал увидеть Re=1 Im=0, но получилось что то совершенно не похожее Не сложно догадаться, что получили Вы 2025 - 256i. И что Вас так напугало? Делить на 2048 (Nfft/2) кто будет, Пушкин?:) 2 часа назад, Aleх сказал: Далее, я взял набор входных данных и подвигал вперед-назад на входе БИХ фильтра: результат на выходе (почти) не поменялся, тот же самый комплексный вектор, хотя я рассчитывал что он будет крутиться вместе с входными данными. Не совсем понятно, что такое "подвигал вперед-назад", но в любом случае, результат меняться должен. Вот это вот Ваше "почти", это сколько? 2 часа назад, Aleх сказал: Я планировал применить этот фильтр именно для вычисления фазы сигнала: снимать данные с ацп, грузить в БИХ фильтр и наблюдать относительное изменение фазы сигнала. Боюсь Вас разочаровать, но полученная таким образом фаза будет от включения к включению равномерно и случайно распределена в диапазоне +пи...-пи. Да и два последовательных измерения тоже будут совпадать только в очень частном и в очень идеальном случае:))) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Avex 1 14 декабря, 2020 Опубликовано 14 декабря, 2020 · Жалоба 2 hours ago, Самурай said: Не маялись бы Вы ерундой и делали бы все в Matlab/Scilab/OctaveНе сложно догадаться, что получили Вы 2025 - 256i. И что Вас так напугало? Делить на 2048 (Nfft/2) кто будет, Пушкин?:) Про деление на N/2 я в статье не увидел (и кажется там и нет этого), спасибо! Но непонятно следующее. Исходный сигнал имеет заранее заданную частоту, амплитуду, и фазу (я начал наполнять таблицу искусственно по формуле). При этом полученный после БИХ-ф вектор имеет кривую амплитуду и угол, даже если поделить на 2048 (под рукой нет компьютера, точного значения нет, но не Re=1 Im=0) результат непонятен. Так как же тогда трактовать результат, как пересчитать его в исходные (известные) характеристики сигнала? По методике измерения - у меня чтото вроде дальнометра - я сам формирую исходный сигнал, а потом принимаю его отражение. Т.е. я могу запускать АЦП одновременно с запуском генератором исходного сигнала, и надеюсь что БИХ фильтр посчитает мне фазовый сдвиг. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Самурай 12 14 декабря, 2020 Опубликовано 14 декабря, 2020 · Жалоба 16 минут назад, Aleх сказал: Про деление на N/2 я в статье не увидел (и кажется там и нет этого) Есть, но на один уровень выше. Вам бы лучше начать совсем с самых основ, уровня 1-ого курса ВУЗа, т.к. вопросы, наподобие того, что ниже, это цветочки... 16 минут назад, Aleх сказал: При этом полученный после БИХ-ф вектор имеет кривую амплитуду и угол, даже если поделить на 2048 (под рукой нет компьютера, точного значения нет, но не Re=1 Im=0) результат непонятен. Так как же тогда трактовать результат, как пересчитать его в исходные (известные) характеристики сигнала? Кривая амплитуда и угол возникли потому, что Ваша частота 20кГц не попала РОВНО на 41-й бин ДПФ, а размазалась по всему спектру. Это же очевидно, т.к. шаг по частоте 2МГц/4096 = 488.2813...Гц. Т.е. что бы не было откликов на других частотах, входной сигнал должен быть 20019.53...Гц. Что с этим делать? Выбирать правильную частоту, выбирать правильное количество выборок, делать аппроксимацию спектрального максимума различными методами. Все сильно зависит от точности и шумов. По вопросам точного измерения частоты на форуме очень много тем и сломанных копий:) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться