Krys 2 24 сентября, 2015 Опубликовано 24 сентября, 2015 · Жалоба ТС, Вы куда исчезаете так надолго? Потом приходится людей опять в тему созывать через приват... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Corner 0 28 сентября, 2015 Опубликовано 28 сентября, 2015 · Жалоба Для ускорения аккумулятора больше 4 счетчиков избыточно-частота перестает расти. Для реализации синуса можно использовать кусочно-линейную аппроксимацию. Хватает двух таблиц на 256 точек - основная и поправочная. Точность выходить в районе 16 бит. Что лучше таблицы в 4096 точек - дает только 12 бит. Стандартный DDS это аккумулятор+сумматор фазы+табличка. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Krys 2 29 сентября, 2015 Опубликовано 29 сентября, 2015 · Жалоба Не очень понятно, про какие 4 счётчика идёт речь? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Krys 2 29 сентября, 2015 Опубликовано 29 сентября, 2015 · Жалоба И как пользоваться поправочной табличкой? Может, дадите ссылку, что читануть по этому поводу? И вот Вы пишете: "Стандартный DDS это аккумулятор+сумматор фазы+табличка." непонятно: чем аккумулятор отличается от сумматора фазы? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Golikov 0 29 сентября, 2015 Опубликовано 29 сентября, 2015 · Жалоба ну как так? аккумулятор - аккумулирует а сумматор - суммирует... потому что там w*t+fi сумматор складывает фазу fi и набегующую от времени w*t. А она в свою очередь реализуется аккумулятором, складывающим по тактам... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Krys 2 29 сентября, 2015 Опубликовано 29 сентября, 2015 · Жалоба иногда просто под аккумулятором понимается сумматор с регистром хранения предыдущих данных. Без суммирования не накопить. А здесь похоже под аккумулятором понимается просто регистр. Зачем тогда путать людей и использовать один термин вместо другого... Начальную фазу fi можно затолкать сразу в регистр аккумулятора как начальное значение. Тогда её не придётся постоянно прибавлять к текущей фазе wt Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Golikov 0 29 сентября, 2015 Опубликовано 29 сентября, 2015 · Жалоба аккумулятор - это хранение и сумма сумматор - это сумма просто фазу нельзя сразу затолкать, вы не сможете ее тогда на лету менять.... Если вы делаете фазовую подстройку, к примеру... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Krys 2 30 сентября, 2015 Опубликовано 30 сентября, 2015 · Жалоба Ааа, тогда вопросов нет, спасибо. Точнее остаются вопросы к ув. Corner, как пользоваться 2 табличками на 256 и что за 4 счётчика Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Artemius_tv 0 30 сентября, 2015 Опубликовано 30 сентября, 2015 · Жалоба Видимо эти 2 таблицы это таблица значений и таблица коэфициентов для линейной поправки. Если берем 16 бит фазы phase[15:0], то старшие 8 бит будут использоваться для выбора значений из таблиц, а младшие 8 бит для линейной поправки. Если таблица A - значения, а B - коэфициенты, то что-то типа: A[phase[15:8]] + B[phase[15:8]]*phase[7:0]/256 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Krys 2 12 октября, 2015 Опубликовано 12 октября, 2015 · Жалоба Хорошо, допустим с таблицами понятно. Хотя тоже не очень. Если Вы говорите про линейную поправку, подразумевая кусочно-линейную сплайн-интерполяцию, то почему бы её без таблицы не сделать примерно такой записью: A[phase[15:8]] + (A[phase[15:8 + 1'b1]] - A[phase[15:8]]) * phase[7:0] / 256 ? Т.е. берутся 2 соседние точки таблицы, между ними проводится прямая, конкретная точка на прямой определяется младшими разрядами фазы. Остаётся тогда вопрос: что за 4 счётчика? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Artemius_tv 0 12 октября, 2015 Опубликовано 12 октября, 2015 · Жалоба Ну, я это вариант не предлагал, а только написал свое объяснение (возможно, неточное или даже неверное :laughing: ). Кстати, в варианте: A[phase[15:8]] + (A[phase[15:8] + 1'b1] - A[phase[15:8]]) * phase[7:0] / 256 будет два обращения к памяти по адресу phase[15:8] и phase[15:8] + 1'b1, соответственно, нужно либо 2 такта, либо опять две таблицы. 4 счетчика, видимо (я опять только предполагаю), относится к самому началу темы, когда ТС спрашивал, зачем делить один счетчик на 10 маленьких. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Krys 2 12 октября, 2015 Опубликовано 12 октября, 2015 · Жалоба соответственно, нужно либо 2 такта, либо опять две таблицы.Либо двухпортовую память )) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться