Information
- Rating
- 2,998-th
- Location
- Санкт-Петербург, Санкт-Петербург и область, Россия
- Date of birth
- Registered
- Activity
Specialization
Embedded Software Engineer, Разработчик электроники
Lead
From 280,000 ₽
Electronics Development
Development of printed circuit board
FPGA
Programming microcontrollers
Sound processing
Про 10 мкс я честно списал из Википедии) При скорости звука 340 м/с и расстоянии между ушами 20 см это даст разрешение по азимуту 1°. Наверное, 1° - это действительно перебор, проверю как-нибудь в аудио-редакторе. Но перемещение источника звука на 5° уже вполне заметно. И даже 50 мкс - это тоже какая-то невероятная для физиологии цифра.
Передать такой "пакет"-то можно. Но это не снимает проблемы точности захвата сигнала и точности синхронизации между левым и правым "пакетами".
Вы сейчас из БПФ с помощью чёрной магии находите несколько выделяющихся частот в спектре сигнала. Потом их синтезируете и сдвигаете фазу на 90° вот здесь:
@iShrimp предлагает пропустить шаг поиска частот. Вместо этого взять весь спектр, и сдвинуть фазы всех частот на 90°. Раз уж комплексное БПФ посчитано, умножить его на ±i и преобразовать обратно в сигнал. Или сдвинуть фазу исходного сигнала фильтром
После этого в визуализации, как и сейчас, нарисовать трек сигнала - по оси X отложить исходный сигнал, а по Y обработанный, сдвинутый на 90°.
Ещё пара моментов: про метод интерполяции частоты и фазы. Сам похожей штукой пользовался, только считал по 3 точкам, а не по 4. Метод вполне можно обосновать аналитически, или хотя-бы графически выявить зависимость соседних комплексных амплитуд от сдвига частоты.
А вот интерполируя фазу в лоб вот так
вы будете получать непредсказуемые результаты при переходе через 180°. Например, интерполяция посередине между cP=+170° и bP=-170° (оно же 190°) вам даст 0°, а на самом деле будет 180°. Намного удобнее продолжать считать в комплексных числах, не вычисляя фазу явно.
В радиотехнике ровно такой-же принцип направленного излучения и приёма применяется в ФАР с частотным сканированием.
Ближайший оптический аналог такому устройству - не призма, а скорее дифракционная решётка.
Мозг - нет. Считается, что в самом ухе предобработка похожа на какое-то интегральное преобразование, т.к. нейроны не работают со звуковыми частотами.
На сколько я знаю (несколько лет назад изучал исходники, пытался делать анализ музыки, связанный с распознаванием событий, нот), пока науке не известно, в каком "формате" сигнал из уха идёт в мозг. Что-то ближе к Фурье, или к вейвлету, или к автокорреляции, или всё вместе. Есть несколько теорий, и все где-то не стыкуются с практикой. Зрение, например, гораздо лучше изучено.
Самая засада, что не получается объяснить, как стерео-слух определяет разность фаз (и направление на источник звука). Для этого нужно сравнивать сигналы с левого и правого уха с разрешением около 10 мкс. А нейроны работают на 4 порядка медленней!
Автору респект! Всегда очень боялся сетевых преобразователей... Поэтому подходил к их проектированию с особой тщательностью) Всё перепроверял по N+1 раз. И тепловизор пришлось купить, чтобы пальцами
и яйцамитуда не лазать.Не удержусь, и подкину идей для версии 2.0:
Интересная схема с симистором для софт-старта. Кроме ваших публикаций нигде такого не видел, приму во внимание. Но его не обязательно изолировать оптроном, если поставить его после выпрямительного моста. См. схему слева. Есть нюанс - симистор будет работать в IV квадранте, и ещё надо подумать, как не потратить на его открывание драгоценные ватты.
Я сам для софт-старта несколько раз использовал схему, похожую на то, что справа. На таком же силовом мосфете, какой стоит в мосту. В обратноходовом преобразователе он открывался от выбросов напряжения на силовом ключе. Тут же можно даже от снабберной цепочки запитать.
Токовый трансформатор - штука большая, и надо руками мотать. А это категорически лень делать) Импульсный ток доступен для измерения в других местах шунтом. Через нижний транзистор моста VT3, и часть тока течёт через нижние ВЧ-конденсаторы, или даже просто через один C3. Видел интересную реализацию - просто измеряют пульсации в средней точке, где у вас цепь 150V.
Ну и, конечно, фильтр от помех в/из сети, предохранитель, варистор - это обязательные вещи. Недавно, например, искал источник помех у себя на рабочем месте. Оказалось, что разработчики моего старенького монитора (марка DNS, был когда-то такой, "маде ин раша" даже на нём написано) положили болт на фильтр. И осцилл, включённый в тот же пилот, что и моник, естественно, мне вместо нормального сигнала показывал импульсные помехи миника. Мдя.
А вы не рассматривали другие способы решения задачи? Из аппаратных: перенести, например, часть формирателя АЧХ в обвязку выходного ОУ. ОУ - штука мощная, позволяет делать то, что не достигнуть чисто пассивными цепями.
Из программных: внести предыскажения АЧХ - подъём на частоте 1 кГц, например. Или увеличить частоту ШИМ, и тогда может, вообще в аппаратной части не нужно ничего менять. Если бы у меня в производстве уже висело 100 плат по 4 канала, я бы, наверное, прежде всего о софтовых путях решения задумался.
На сколько я знаю, в этом случае не было никаких хакеров. Россети купили зарядные станции у харьковского AutoEnterprise. А у производителя был вполне штатный удалённый доступ к станциям для диагностики и обновления софта.
Это проблема многих устройств касается: девайс-то куплен, и вроде он как-бы и твой, но превращается в тыкву по щелчку пальца производителя/регулятора/владельца какого-нибудь облака.
Не до конца понял, почему в описании 2 разных значения ε у одного материала. Какую из них использовать в расчётах?
И если учесть допуск на ε и на толщину ламината (там до 10% доходит), то китайский аналог и в эти рамки не влезает?
Попробуйте ещё в pcbtech спросить. Они в принципе сложными платами занимаются, но я очень давно с ними не имел дела.
Собственная ёмкость светодиодов. На 50 Гц это решение норамально заработает, но на 100 кГц может сильно мешать.
С авторством бага согласен. Компилятору же сказали: "скомпилируй для х86 и сравни это, как даблы", или хоть даже как fp32, и было бы всё детерминировано. "А он что? Пошёл, и кеды купил" (c) Захотелось ему аппаратно сравнить как fp80. Получается, можно ведь и на такую штуку нарваться:
// Написал в одном месте
если a > b, то делаем РАЗ
// потом ещё какой-то код
// а потом
если a <= b, то делаем ДВА
И вроде автор такого кода имел в виду, что всегда выполнится либо РАЗ, либо ДВА. И абсолютно чётко это сказал, и не пользовался "не принятыми в приличном обществе паттернами работы с fp". Но в зависимости от оптимизации и окружающего кода автор нарвётся на рандомное выполнение РАЗ и ДВА, или ни РАЗ и ни ДВА.