Tpeck 0 November 22, 2021 Posted November 22, 2021 · Report post 20 minutes ago, _sda said: Около того. А вы с какой целью интересуетесь? Чтобы понять насколько оправданы 24 бита ) Ну и 100 дБ - это уже очень и очень до фига. Хотя если это звук, то возможно. Quote Share this post Link to post Share on other sites More sharing options...
blackfin 3 November 22, 2021 Posted November 22, 2021 · Report post 28 minutes ago, _sda said: Около того. Путаетесь в показаниях.. :) On 11/20/2021 at 2:11 PM, _sda said: ... есть две шины комплексных данных разрядностью 24 бита RE и 24 бита IM в каждой шине. Две шины комплексных данных по 24 бита, это ~24,5 бит для вещественной огибающей. Так что ДД будет примерно: 24,5*6,02 + 1,76 ≈ 150 дБ. Видимо, 50 дБ где-то потерялись по дороге.. :) Quote Share this post Link to post Share on other sites More sharing options...
Tpeck 0 November 22, 2021 Posted November 22, 2021 · Report post 2 minutes ago, blackfin said: Видимо, 52 дБ где-то потерялись по дороге.. :) Может у него потери на обработку 0,001 дБ и КАМ256, тогда может ) Или звук, где пороговое SNR около 40 дБ и он должен мега помеху давить в соседнем канале, ибо аналоговая фильтрация не сдюжит. Quote Share this post Link to post Share on other sites More sharing options...
_sda 0 November 22, 2021 Posted November 22, 2021 · Report post 12 часов назад, blackfin сказал: Путаетесь в показаниях.. :) Две шины комплексных данных по 24 бита, это ~24,5 бит для вещественной огибающей. Так что ДД будет примерно: 24,5*6,02 + 1,76 ≈ 150 дБ. Видимо, 50 дБ где-то потерялись по дороге.. :) Но вы же посчитали динамический диапазон самой шины данных, а у всего приёмного тракта он будет заметно меньше. Ясный перец что размер шины можно уменьшить на несколько бит, я об этом говорил в самом начале. А оно мне надо? Quote Share this post Link to post Share on other sites More sharing options...
Самурай 7 November 22, 2021 Posted November 22, 2021 · Report post 1 час назад, _sda сказал: И...? Чем этот вариант лучше штатной IP-core? Не знаю... от Вас было много горя в голосе, что Ваш алгоритм вычисления квадратного корня выполняется слишком много тактов и Вас не устраивает... В то же время, Вы были в восторге от CORDIC-а, который можно конвейеризировать... Мне показалось странном, что Вы не сложили два + два, вот и решил немного Вам помочь...:) Хорошо, что с этим вопросом Вы все-таки определились... Quote Share this post Link to post Share on other sites More sharing options...
_sda 0 November 22, 2021 Posted November 22, 2021 · Report post Что ж тут поделаешь, материалистический дуализм - единство и борьба противоположностей. А насчёт своего алгоритма корня признаю - увлёкся и зациклился. Quote Share this post Link to post Share on other sites More sharing options...
_sda 0 November 23, 2021 Posted November 23, 2021 · Report post Коллеги, а может кто-то помочь разобраться с кордиком Альтеры? Режим Vector Translate Function. Что у них там за формат такой хитрый? Приводят константу К с точностью до 12-го знака, а сами пишут "has no fixed value". Как из выходного кода получить нормальные значения? Дополнительной информации найти не удалось. Quote Share this post Link to post Share on other sites More sharing options...
des00 9 November 24, 2021 Posted November 24, 2021 · Report post 16 hours ago, _sda said: Коллеги, а может кто-то помочь разобраться с кордиком Альтеры? Режим Vector Translate Function. Что у них там за формат такой хитрый? Приводят константу К с точностью до 12-го знака, а сами пишут "has no fixed value". Как из выходного кода получить нормальные значения? не с точностью, а сходится к числу, при устремлении количества итераций в бесконечность. Число зависит от количества шагов, ЕМНП, после 8го шага, оно константа, для типового альтеровского 18 битного умножителя. Про формат не знаю, но скорей всего, что-то типа fixed point u1.16 или u1.17 и умножитель знаковый или беззнаковый стоит Quote Share this post Link to post Share on other sites More sharing options...
_sda 0 November 24, 2021 Posted November 24, 2021 · Report post 5 часов назад, des00 сказал: не с точностью, а сходится к числу, при устремлении количества итераций в бесконечность. Число зависит от количества шагов, ЕМНП, после 8го шага, оно константа, для типового альтеровского 18 битного умножителя. Про формат не знаю, но скорей всего, что-то типа fixed point u1.16 или u1.17 и умножитель знаковый или беззнаковый стоит Спасибо! Вы реально с этой коркой работали? У меня отношение правильного значения к вычисленному примерно 1,26 - довольно далеко от указанного коэффициента. А с фазой как? При подаче на вход двух одинаковых компонент на выходе имею 35 градусов вместо положенных 45. Вот незадача... Quote Share this post Link to post Share on other sites More sharing options...
des00 9 November 24, 2021 Posted November 24, 2021 · Report post 1 hour ago, _sda said: Спасибо! Вы реально с этой коркой работали? Т.е. число должно стоять на входе корки несколько тактов (например 8), а не один? Это я не пробовал, в описании эту тонкость не видел. Я считал что корка потоковая... И у меня отношение правильного значения к вычисленому примерно 1,26 - довольно далеко от указанного коэффициента. А с фазой как? При подаче на вход двух одинаковых компонент на выходе имею 35 градусов вместо положеных 45. Вот незадача... с этой нет, я кордик сам делал, там работы минут на 15-20. Точность зависит от количества шагов. Вот например для кордика с разрядностью углов 16 бит и коэффициента масштабирования 8 бит в формате u1.7, до 16 шагов localparam int cANGLE_W = 16 ; // script defined typedef logic signed [cANGLE_W-1 : 0] angle_t; localparam angle_t cALPHA_DEG [0 : 15] = '{ 8192, 4836, 2555, 1297, 651, 326, 163, 81, 41, 20, 10, 5, 3, 1, 1, 0}; localparam int cK_W = 8 ; // script defined localparam logic [cK_W-1 : 0] cK [0 : 15] = '{ 181, 162, 157, 156, 156, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155 }; # angle in degrees '{45, 26.5649, 14.035, 7.12463, 3.57605, 1.79077, 0.895386, 0.444946, 0.22522, 0.109863, 0.0549316, 0.0274658, 0.0164795, 0.00549316, 0.00549316, 0} # k '{1.41406, 1.26563, 1.22656, 1.21875, 1.21875, 1.21094, 1.21094, 1.21094, 1.21094, 1.21094, 1.21094, 1.21094, 1.21094, 1.21094, 1.21094, 1.21094} Вот только сейчас, подняв старый проект, обратил внимание на цифры. 1.6, хмм, странная константа, откуда она у них взялась то. ЗЫ. Ну и как видно, количество шагов ограничено разрядностью угла. Если у вас углы 8 бит, то и делать больше чем 8 шагов не имеет смысла. ЗЗЫ. Про углы, есть еще особенность масштабирования и интерпретации. У меня скрипт мог делать кордик где 360 градусов это 2^N, а мог, где градусы задаются в нативном формате, например s8.8 (+-180 градусов). Там отображение нативное. Как работает корка от альтеры незнаю. Quote Share this post Link to post Share on other sites More sharing options...
_sda 0 November 24, 2021 Posted November 24, 2021 · Report post 17 минут назад, des00 сказал: странная константа, откуда она у них взялась то. Спасибо! Очень похоже на то что мне придётся отказаться от этой корки. Я лет 15 назад писал свой кордик (ещё когда модемами занимался), но он не параметризован. Копаться в столь древних исходниках то ещё удовольствие, поэтому решил попробовать альтеровскую корку, показалось что это будет быстрее. Сейчас вижу что параметризовать старый проект всё-же будет быстрее. Что-то альтеровцы там намутили... Quote Share this post Link to post Share on other sites More sharing options...
Serhiy_UA 1 November 24, 2021 Posted November 24, 2021 · Report post По поводу корней п 1 hour ago, _sda said: Спасибо! Очень похоже на то что мне придётся отказаться от этой корки. Я лет 15 назад писал свой кордик (ещё когда модемами занимался), но он не параметризован. Копаться в столь древних исходниках то ещё удовольствие, поэтому решил попробовать альтеровскую корку, показалось что это будет быстрее. Сейчас вижу что параметризовать старый проект всё-же будет быстрее. Что-то альтеровцы там намутили... посмотрите еще здесь: https://patents.su/4-1260951-matrichnoe-ustrojjstvo-dlya-izvlecheniya-kvadratnogo-kornya.html Quote Share this post Link to post Share on other sites More sharing options...
_sda 0 November 24, 2021 Posted November 24, 2021 · Report post 12 минут назад, Serhiy_UA сказал: По поводу корней п посмотрите еще здесь: https://patents.su/4-1260951-matrichnoe-ustrojjstvo-dlya-izvlecheniya-kvadratnogo-kornya.html Спасибо, но для меня вопрос с корнями уже решён. Теперь дело за реализацией. Quote Share this post Link to post Share on other sites More sharing options...
Самурай 7 November 24, 2021 Posted November 24, 2021 · Report post 4 часа назад, des00 сказал: Вот только сейчас, подняв старый проект, обратил внимание на цифры. 1.6, хмм, странная константа, откуда она у них взялась то. Откуда она взялась у них как раз известно и понятно:) А вот откуда у Вас такие константы... Хотя... можно предположить, что на константу 1.646 выходной результат надо таки делить, что я предполагаю, Вы и делаете, т.к. 1/1.646 это подозрительно близко к 155/256 и где-то даже выполняется равенство 1/1.646 = 1.2109/2...:) Quote Share this post Link to post Share on other sites More sharing options...
_sda 0 November 24, 2021 Posted November 24, 2021 · Report post 43 минуты назад, Самурай сказал: Хотя... можно предположить, что на константу 1.646 выходной результат надо таки делить А у меня нужно умножать: RE - 10000 IM - 20000 Вычисленный радиус - 18411 Должен быть - 22361 А-а-а, точно, там ещё на 2 нужно умножить... Спасибо! Осталось с фазой разобраться. А в гайде за это дело молчок... Quote Share this post Link to post Share on other sites More sharing options...