Jump to content

    

Aleх

Участник
  • Content Count

    240
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Aleх

  • Rank
    Местный

Информация

  • Город
    Array

Recent Profile Visitors

2183 profile views
  1. @quato_a Спасибо! Почитаю, как это имплементировать в железе. Раньше о такой функции (conj) не слышал. @petrov Согласен, но в моей задаче они помогают получить это самое комплексное число, из которого я вытаскиваю угол и амплитуду. С помощью арктангенса Re/Im и корня из суммы квадратов. К тому же, во всех статьях что я нагуглил, фазу измеряют именно так (коррелятор, но почему то не Герель). Плюс, есть еще совсем примитивный/неточный способ - формировать строб и заполнять его импульсами, с последующим подсчетом. А как бы вы решили эту задачу?
  2. @petrov У меня задача - отправить сигнал, и принять отражение, а потом вычислить сдвиг фазы в отражении. Вот я и перебрал все варианты вычисления фазы: Герцеля, БПФ на одну частоту, и корелятор. Т.е. я искал вовсе не фильтр, а способ посчитать фазу. И выбор не в пользу коррелятора/БПФ - как написал выше, Герцель проще, а результат вроде бы той же точности (не знаю как оценить точность, и вообще сравнивать алгоритмы, кроме сложности их реализации). Хотя, по идее, фильтр мне тоже полезен, поскольку приемный сигнал слегка зашумлен, и шум предположительно только белый.
  3. @dragonfly Спасибо огромное! Стало намного понятнее. Кажется, я перебрал все что бывает для вычисления сдвига фазы. Кроме разложения в ряд, но и там наверное то же самое. Если сравнивать БПФ на одну частоту и Герцеля, то у Герцеля явно меньше констант надо хранить, и меньше умножений. Выходит, Герцель сильно проще в реализации (на мк с плавающей точкой). Вопрос исчерпан
  4. Вопрос возник. Частный случай БПФ для одного спектрального отсчета, и алгоритм коррелятора - это случаем не одно и то же? Поясню. Прочитал статью "МЕТОДЫ ПОВЫШЕНИЯ ТОЧНОСТИ ИЗМЕРЕНИЯ ДАЛЬНОСТИ В ЛАЗЕРНЫХ ФАЗОВЫХ ДАЛЬНОМЕРАХ" и попробовал посчитать в экселе, сравнить с Герцелем. Результат получился очень близок к Герцелю, но что смутило - у меня вышло, что БПФ на один бин и коррелятор - одно и то же, одинаковые умножения на синус и косинус, и последующее накопление. Все одинаково и результат одинаков. Либо я где то что то не понял, либо ... почему тогда называются по разному? Назвали бы коррелятор частным случаем БПФ, и все. p.s. Разложение в ряд пока не осилил. За совет большое спасибо, разберусь, но пока в экселе не работает.
  5. @blackfin Спасибо! Так вот сходу даже не знаю с какой стороны подойти к этой формуле, но буду разбираться. Главное, чтобы этот алгоритм хорошо ложился на stm32 c fpu. С ПЛИС связываться не хочется, все же это хоббийная разработка. @Dragon_Fly Меня сначала смутило, что при наличии нулей на входе фильтр может выдать левые данные. Но, подумал, если данные с АЦП не выравнивать по уровню относительно ноля, то такой ситуации не возникнет. Значит, можно использовать. По поводу остального - задача считать фазу, как можно точнее. И, сигнал конечно же приходит зашумленный. А фильтр или БПФ или разложение в ряд - мне без разницы, главное результат. Я почему то решил, что мне нужен БИХ. Но, попробую Гильберта если он окажется точнее, спасибо!
  6. Всем спасибо! Получил два результата. 1. Герцель на 128 точек заработал (в экселе). Амплитуда, фаза - все четко работает. 2. На 4096 точек расчет синуса в экселе немного плывет по фазе (из-за округлений, или я криворуко закодил таблицу), и действительно - результат тоже дает неверную фазу. Впрочем, может быть еще найду у себя ошибку. @dragonfly Резонатор мне не нужен, совсем. А КИХ фильтр так же себя ведет? Сигнал мне чистить не надо, просто измерить фазу-амплитуду на интересующей частоте. Желательно, как можно точнее. Синхронный детектор, как я слышал - что то примитивное и не точное, поэтому я и обратился к БПФ/КИХ/БИХ.
  7. @Самурай Спасибо! Попробую частоты подвигать, чтобы точно в бин попасть. И, я правильно понял, что фазу все же можно вычислить - если запускать дискретизатор синхронно с источником сигнала? И еще вопрос. Что точнее для вычисления фазы -БИХ фильтр по алгоритму Герцеля, или КИХ фильтр?
  8. Про деление на N/2 я в статье не увидел (и кажется там и нет этого), спасибо! Но непонятно следующее. Исходный сигнал имеет заранее заданную частоту, амплитуду, и фазу (я начал наполнять таблицу искусственно по формуле). При этом полученный после БИХ-ф вектор имеет кривую амплитуду и угол, даже если поделить на 2048 (под рукой нет компьютера, точного значения нет, но не Re=1 Im=0) результат непонятен. Так как же тогда трактовать результат, как пересчитать его в исходные (известные) характеристики сигнала? По методике измерения - у меня чтото вроде дальнометра - я сам формирую исходный сигнал, а потом принимаю его отражение. Т.е. я могу запускать АЦП одновременно с запуском генератором исходного сигнала, и надеюсь что БИХ фильтр посчитает мне фазовый сдвиг.
  9. Разбираюсь с ЦОС, возник вопрос по БИХ фильтру и алгоритму Герцеля. 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 точек, перепечатал в эксель и убедился что формулы были забиты верно. Но - попробовал циклически прокрутить входные данные из примера, и снова на выходе фильтра - тот же вектор. Вопрос. Что за вектор на выходе у БИХ фильтра, почему его фаза (почти) не меняется от циклической прокрутки входных данных? Я планировал применить этот фильтр именно для вычисления фазы сигнала: снимать данные с ацп, грузить в БИХ фильтр и наблюдать относительное изменение фазы сигнала.
  10. Честно говоря, вообще не понял что делает схема, но - флопы подключены неверно. Они работают в режиме защелок, причем управление и данные поступают одновременно. Поскольку "одновременно" в реальности не бывает, на выходах этих флопов будут образовываться глитчи положительной или отрицательной полярности, а может и метастабильное состояние - зависит от разности фаз прихода сигнала на входы.
  11. Вот это развод. Ездил собеседоваться к ним года три назад, тоже повелся на офис в Москве в тексте вакансии. Полтора часа собеседования, и узнаю что дескать девочка ейчар что то напутала, и все связанное с железом находится только в Зелеке. То ли ейчары норму выполняют, то ли это способ получить инфу о конкурентах, но уезжал оттуда в непонятках - что это было. p.s. Против Элвиса ничего не имею, и глубоко уважаю их шефа.
  12. Если задействовать неиспользуемый вход-выход, то задержку можно наращивать внешним конденсатором и уменьшением выходной мощности пада (если это есть в данном чипе).
  13. Если говорить о грамотности, то грамотно будет - переписать код, где будет формироваться клок с пониженной в 2000 раз частотой, а СЕ убрать. Констрейнт будет - create_generated_clock соответственно. А как у вас сделано сейчас - это 1999 раз впустую дернуть дерево клока (с перезарядом паразитов и сливом энергии в нагрев), и только на 2000й получить полезное переключение. Не грамотно со всех точек зрения.
  14. Где то 7%, если быть точным. 6% сам УСН, плюс обслуживание счета, плюс виртуальная бухгалтерия, плюс банки за перевод валюты часто процент дерут (Senders Charge т.н.). Сумму можно чуть уменьшить только если с налоговой самому общаться и все платежки заполнять, но это уже крахоборство. Да, а ИП - единственный легальный вариант получать зарплату в валюте. Теневая альтернатива - биткоины, но это для рисковых
  15. Нетлист сравнивается с восстановленным RTL. Доверяй, но проверяй, как говорится. Это кстати совершенно рядовая задача когда нужно на spare-cells сделать маск-патч для эсика (если обнаружена ошибка, а часть пластин лежит без BEOL на хранении): находится нужный кусок нетлиста, переводится в читаемый вид, изготавливается rtl-патч, синтезируется на spare-cells, патчится исходный нетлист, потом отдается в топологию, где переразводят металлы.