Michael358 0 25 апреля, 2023 Опубликовано 25 апреля, 2023 (изменено) · Жалоба При реализации адаптивного фильтра (lms-алгоритм) на ПЛИС как работать (выбирать, маштабировать и т.п.) с разрядностью промежуточных вычислений и результата? Например, длина фильтра 512, входные данные 12-разрядные, выходные данные тоже должны быть 12-разрядные. Если в КИХ-фильтре коэффициенты постоянные, то можно вычислить разрядность максимально возможного значения выхода фильтра и взять нужное количество старших разрядов. Как действовать с переменными коэффициентами? Изменено 25 апреля, 2023 пользователем Michael358 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
litv 0 25 апреля, 2023 Опубликовано 25 апреля, 2023 · Жалоба Simulink и моделировать. С переменными будет плохо, планировать что они максимальные плохо. АРУ еще бы тогда на входе. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 25 апреля, 2023 Опубликовано 25 апреля, 2023 · Жалоба 1 hour ago, Michael358 said: При реализации адаптивного фильтра (lms-алгоритм) на ПЛИС как работать (выбирать, маштабировать и т.п.) с разрядностью промежуточных вычислений и результата? Например, длина фильтра 512, входные данные 12-разрядные, выходные данные тоже должны быть 12-разрядные. Если в КИХ-фильтре коэффициенты постоянные, то можно вычислить разрядность максимально возможного значения выхода фильтра и взять нужное количество старших разрядов. Как действовать с переменными коэффициентами? Без всяких матлабо/симулинков: по логике здравого смысла. Задача эквалайзера - коррекция сигнала, узначит его усиление в положении сброса/адпатации должно быть равно единице. Из условия баланса мощностей по входу выходу и делаете вашу разрядность, положение плавающей точки и все остальное) ЗЫ. Сам фильтр естественно делается на полной разрядности, без переполнений, Адаптация обязана учитывать переполнение коэффициентов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Michael358 0 25 апреля, 2023 Опубликовано 25 апреля, 2023 (изменено) · Жалоба 3 hours ago, des00 said: Без всяких матлабо/симулинков: по логике здравого смысла. Задача эквалайзера - коррекция сигнала, узначит его усиление в положении сброса/адпатации должно быть равно единице. Из условия баланса мощностей по входу выходу и делаете вашу разрядность, положение плавающей точки и все остальное) ЗЫ. Сам фильтр естественно делается на полной разрядности, без переполнений, Адаптация обязана учитывать переполнение коэффициентов. 3 hours ago, litv said: С переменными будет плохо, планировать что они максимальные плохо. АРУ еще бы тогда на входе. А можно поподробнее для нуба: Разве не проще в ПЛИС реализовывать целочисленную арифметику? Полная разрядность - это: входные данные (х) с АЦП - 12-разрядов; под коэффициенты отводится тоже 12-разрядов; выход фильтра y = сумм(х * w) = 12 + 12 + log2(512) = 34 разряда, из них в выходные данные брать старшие 12 разрядов? Далее ошибка е = d - y = 13 разрядов. Брать старшие 12 ? Затем обновление коэффициентов w(k +1) = μ e(k) x(k)+ w(k). e(k)=12 разрядов, x(k) = 12 разрядов, μ - ? (не знаю, сколько). Получается w(k +1) = ? + 12 + 12 + 1 >= 26 разрядов ? Как масштабировать до 12 разрядов? Что есть усиление в цифровом фильтре? Изменено 25 апреля, 2023 пользователем Michael358 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 25 апреля, 2023 Опубликовано 25 апреля, 2023 · Жалоба 23 minutes ago, Michael358 said: Разве не проще в ПЛИС реализовывать целочисленную арифметику? Полная разрядность - это: входные данные (х) с АЦП - 12-разрядов; под коэффициенты отводится тоже 12-разрядов; выход фильтра y = сумм(х * w) = 12 + 12 + log2(512) = 34 разряда, из них в выходные данные брать старшие 12 разрядов? Далее ошибка е = d - y = 13 разрядов. Брать старшие 12 ? Затем обновление коэффициентов w(k +1) = μ e(k) x(k)+ w(k). e(k)=12 разрядов, x(k) = 12 разрядов, μ - ? (не знаю, сколько). Получается w(k +1) = ? + 12 + 12 + 1 >= 26 разрядов ? Как масштабировать до 12 разрядов? Ну так и делают, только не так как вы это написали. Вам нужна арифметика с фиксированной точкой(читать в любом более менее приличном учебнике). Например ваши 12 разрядов, представляем как s0.11, коэффииценты эквалайзера, например, как s8.8 и дальше понеслось. s0.11*s8.8 = ss8.19 и бла бла бла. 23 minutes ago, Michael358 said: Что есть усиление в цифровом фильтре? Тоже что и в любом устройстве: Kус = Uвых/Uвх. ЗЫ. А если учесть что эквалайзер штука с обратной связью, то коэффиицентами по 12 бит вы точно не отделаетесь) Вангую что у вас там будет поряда 18 бит коэффициенты и 32-36 бит аккумуляторы. UPD. И вообще, на 512 коэффициентов эквалайзер, может быть лучше на БПФ его сделать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Michael358 0 26 апреля, 2023 Опубликовано 26 апреля, 2023 · Жалоба 18 hours ago, des00 said: Например ваши 12 разрядов, представляем как s0.11, коэффииценты эквалайзера, например, как s8.8 и дальше понеслось. s0.11*s8.8 = ss8.19 и бла бла бла А, т.к. входные данные представляются числом < 1, то в результате умножения модуль числа будет только уменьшаться. Оставляем нужное количество разрядов после точки. Поэтому переполнения не будет. Верно понимаю? Тогда почему 18 hours ago, des00 said: А если учесть что эквалайзер штука с обратной связью, то коэффиицентами по 12 бит вы точно не отделаетесь) Вангую что у вас там будет поряда 18 бит коэффициенты и 32-36 бит аккумуляторы. не хватит 12 бит, если после умножения/сложения оставлять нужное количество разрядов ? 18 hours ago, des00 said: И вообще, на 512 коэффициентов эквалайзер, может быть лучше на БПФ его сделать? Мне надо сделать эхокомпенсацию. Её можно реализовать на БПФ ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 26 апреля, 2023 Опубликовано 26 апреля, 2023 · Жалоба On 4/26/2023 at 12:36 PM, Michael358 said: А, т.к. входные данные представляются числом < 1, то в результате умножения модуль числа будет только уменьшаться. Оставляем нужное количество разрядов после точки. Поэтому переполнения не будет. Верно понимаю? Нет не верно, все зависит от коэффициентов фильтра и требуемых характеристик. Например, вы можете в принципе не эквалайзировать сигнал, при ограничении коэффициентов фильтра < 1. Эквалайзер это же в том числе еще и АРУ, он тянет выходной сигнал к эталонному. On 4/26/2023 at 12:36 PM, Michael358 said: Мне надо сделать эхокомпенсацию. Её можно реализовать на БПФ ? Ваш FIR фильтр это линейная свертка, ее можно посчитать с помощью БПФ. В любом более менее приличном учебнике есть оценки производительности. ЕМНП начиная с 64 порядка, линейная свертка на БПФ становится выгоднее чем в лоб. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться