ncs5 0 11 декабря, 2018 Опубликовано 11 декабря, 2018 · Жалоба Создал в Simulink IIR filter (direct form II transposed). Сделал такую же поведенческую модель в Hdl. Рассчитал коэффициенты для одной полосы аудио параметрического эквалайзера (Gain, Fc, Q). Подаю на обе модели шум. Модель на Hdl считает в double. Сравниваю результат работы Hdl модели и Simulink модели, - ачх одинаковые, за исключением референсного уровня, в Simulink он 0 db, как и тестовый шум, a в Hdl модели он смещен примерно на минус 20 db. В чем может быть причина, чего я не понимаю? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Skryppy 0 12 декабря, 2018 Опубликовано 12 декабря, 2018 · Жалоба Можете рассказать как ваша модель hdl считает в double? Под double вы подразумеваете 64 бита в формате fixed_64_63 или я чего-то не понимаю. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_b 14 12 декабря, 2018 Опубликовано 12 декабря, 2018 · Жалоба 1 час назад, Skryppy сказал: Можете рассказать как ваша модель hdl считает в double? Под double вы подразумеваете 64 бита в формате fixed_64_63 или я чего-то не понимаю. Да, автор не уточнил, что у него за модель. В VHDL еcть тип real. Для модели, не предназначенной для синтеза, его использовать никто не запрещает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ncs5 0 12 декабря, 2018 Опубликовано 12 декабря, 2018 · Жалоба Извиняюсь, не уточнил. На самом деле есть 2 модели - первая для быстрой оценки, ускорения верификации, там применен Real (Verilog), вторая - для синтеза, в ней используются Xilinx IP core Float Point, там честные IEE754 Double. Результаты работы у них одинаковые, как и написал выше. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Grizzly 0 12 декабря, 2018 Опубликовано 12 декабря, 2018 · Жалоба Как вы получаете АЧХ фильтра? Смотрите на спектр выходного сигнала, когда на вход подаёте белый шум? Я бы на вашем месте сделал несколько контрольных точек внутри схемы. Но сначала проверил бы отдельно сам фильтр (коэффициенты, коэффициент усиления, если такой имеется как отдельный параметр, и т.д.). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Skryppy 0 12 декабря, 2018 Опубликовано 12 декабря, 2018 · Жалоба Подайте на эталонный фильтр и hdl фильтр одинаковую последовательность чисел и сравните результаты, после какой операции появляются расхождения с эталоном. Расхождение в 20 дБ может быть из-за разного количества бит для хранения промежуточных результатов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ncs5 0 12 декабря, 2018 Опубликовано 12 декабря, 2018 (изменено) · Жалоба Еще один момент, о котором забыл упомянуть. Поведенческая модель сгенерена HDL кодером, рабочая для синтеза написана от руки (pipeline, multichannel, coefficient load, etc). Повторюсь, работают одинаково(как и Simulink модель), за исключением смещения уровня (обе смещают одинаково в минус уровень), в отличии от Simulink модели, у которой референс в нуле. Меня терзают смутные сомненья, - Simulink и сгенеренная HDL кодером, это творенья Mathworks, но работают по разному. Изменено 12 декабря, 2018 пользователем ncs5 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ncs5 0 12 декабря, 2018 Опубликовано 12 декабря, 2018 (изменено) · Жалоба 18 minutes ago, ncs5 said: "Расхождение в 20 дБ может быть из-за разного количества бит для хранения промежуточных результатов." Все вообще в 64 битах производится (вход, обработка, промежуточные, коэффициенты, выход). Изменено 12 декабря, 2018 пользователем ncs5 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться