Golikov 0 23 ноября, 2014 Опубликовано 23 ноября, 2014 · Жалоба выбирая между Не знаю, может есть книжки в стиле " Практика ЦОС на ПЛИС"... и Или мне сначала надо принять 9 отсчетов думаю лучше 1, книжку почитать:) а потом надо правильно поставить и понять задачу.... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
desmond breezey 0 23 ноября, 2014 Опубликовано 23 ноября, 2014 (изменено) · Жалоба выбирая между и думаю лучше 1, книжку почитать:) а потом надо правильно поставить и понять задачу.... А что не так? Пусть у обычного КИХ фильтра N коэффициентов. Для того, чтобы начать фильтрацию, сначала надо накопить N-1 отсчет + 1 отсчет входящий. Вот у Лайонса в книжке пример работы КИХ фильтра поясняется на примере подсчета среднего количества машин на мосту за 5 минут. Картинку прилагаю. В этом примере N=5. Если у меня 54 коэффициента, и я разбиваю их на 9 групп по 6 Сначала надо принять 9 отсчетов, или я сошел с ума? Ну и параллельно их умножать,разумеется Изменено 23 ноября, 2014 пользователем desmond breezey Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Amurak 0 23 ноября, 2014 Опубликовано 23 ноября, 2014 (изменено) · Жалоба Короче вот так будет выглядеть фильтр на 54 коэффициента с децимацией на 6. В моем предыдущем дециматоре на 2 я ошибся - коэффициенты переключаются с задержкой. http://keep4u.ru/full/876cef80b1f7a4cb77236ea993a75aa8.html если нужно подробное объяснение схемы - предлагаю перейти в скайп. Изменено 23 ноября, 2014 пользователем Amurak Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
desmond breezey 0 23 ноября, 2014 Опубликовано 23 ноября, 2014 (изменено) · Жалоба Короче вот так будет выглядеть фильтр на 54 коэффициента с децимацией на 6. В моем предыдущем дециматоре на 2 я ошибся - коэффициенты переключаются с задержкой. http://keep4u.ru/full/876cef80b1f7a4cb77236ea993a75aa8.html если нужно подробное объяснение схемы - предлагаю перейти в скайп. Да в общем механизм понятен, я в последнем сообщении примерно это и имел в виду. Единственное, что не понятно - в самом начале какие коэффициенты подключены к умножителям? Грубо говоря, верхние в каждом столбце? И с каждым тактом на одном умножителе коэффициенты переключаются, причем в переключаются в порядке следования умножителей? То есть, первый такт - первый умножитель. второй такт - второй умножитель, и так далее? Например, с первым тактом приходит первый отсчет х1. По этому такту произошло переключение коэффициентов в первом умножителе, значит, будет h1*x1,да? И первый выходной отсчет сформируется тогда, когда накопим 9 отсчетов, а все последующие - каждые 6 тактов, да? Изменено 23 ноября, 2014 пользователем desmond breezey Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Amurak 0 23 ноября, 2014 Опубликовано 23 ноября, 2014 · Жалоба Да в общем механизм понятен, я в последнем сообщении примерно это и имел в виду. Единственное, что не понятно - в самом начале какие коэффициенты подключены к умножителям? Грубо говоря, верхние в каждом столбце? И с каждым тактом на одном умножителе коэффициенты переключаются, причем в переключаются в порядке следования умножителей? То есть, первый такт - первый умножитель. второй такт - второй умножитель, и так далее? Например, с первым тактом приходит первый отсчет х1. По этому такту произошло переключение коэффициентов в первом умножителе, значит, будет h1*x1,да? И первый выходной отсчет сформируется тогда, когда накопим 9 отсчетов, а все последующие - каждые 6 тактов, да? С каждым тактом коэффициенты переключаются у всех умножителей, причем снизу-вверх и с задержкой. http://keep4u.ru/full/7b91514b6c33d1b954e57eb8ad262809.html Что касается, какие коэффициенты подключены в самом начале, то здесь дело обстоит так: пусть девять наборов коэффициентов - это девять памятей. После сброса схемы, адреса всех памятей устанавливаются в ноль. Дальше, когда схема начинает работать, адрес первой памяти формируется как счетчик (0-5-4-3-2-1-0), а адреса каждой следующей памяти - это задержанный на такт адрес предыдущей памяти. То есть для второй памяти это будет (0(после сброса)-0(задержка на такт)-5-4-3-2-1-0), для третьей - (0-0-0-5-4-3-2-1-0). Стоит отметить, что реальный фильтр имеет переходной процесс - пока отсчет, который условно обозначен как х0, достигнет последнего умножителя, пройдет некоторое количество тактов. Как то так. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
desmond breezey 0 23 ноября, 2014 Опубликовано 23 ноября, 2014 · Жалоба Стоит отметить, что реальный фильтр имеет переходной процесс - пока отсчет, который условно обозначен как х0, достигнет последнего умножителя, пройдет некоторое количество тактов. То есть, я правильно говорю, что первый выходной отсчет будет только тогда, когда придут первые 9 входных отсчетов, а дальше - каждые 6 тактов? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Amurak 0 23 ноября, 2014 Опубликовано 23 ноября, 2014 · Жалоба Не 9 входных отсчетов, а 54. Для фильтра длины 54 (а дециматор 9х6 имеет длину 54) нужно 54 отсчета. А дальше - да, каждые 6 тактов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
desmond breezey 0 23 ноября, 2014 Опубликовано 23 ноября, 2014 · Жалоба Итак, что остается в сухом остатке: - линия задержки в 53 регистра; - 9 умножителей и 9 соот. наборов коэффициентов по 6 штук в каждом; - каждый такт мы умножаем и суммируем входные отсчеты Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Amurak 0 23 ноября, 2014 Опубликовано 23 ноября, 2014 · Жалоба + еще аккумулятор на выходе работает по-особому. Он накапливает все, что прошло через умножители-сумматоры в течение пяти тактов, на шестой он выдает все это дело на выход и начинает копить заново. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
desmond breezey 0 1 декабря, 2014 Опубликовано 1 декабря, 2014 · Жалоба Выпал на неделю из процесса, занимался прочими делами. Пока не соберем 54 отсчета, не получим данные со всех умножителей. То есть, за 6 тактов получаем копим на выходном аккумуляторе данные только с первого и второго умножителей, до остальных очередь пока не дошла. Это помимо счетчика тактов надо еще счетчик вводить, чтобы пока нет 54 отсчетов, отправлять с первых двух, а когда есть - то всех, или как? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Golikov 0 1 декабря, 2014 Опубликовано 1 декабря, 2014 · Жалоба до 54 отсчетов надо выдавать сигнал что верных данных нет как получите 54 отсчета данные стали валидны. выдавать в начальный момент с меньшего числа смысла не имеет, они все равно не верны, пока фильтр не наполниться а вот после получения 54 отсчетов данные будут верны постоянно, и будут меняться каждые 6 отсчетов, вернее будут меняться каждый отсчет, но обновлять на выходе или забирать с выхода надо каждые 6 отсчетов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
desmond breezey 0 3 декабря, 2014 Опубликовано 3 декабря, 2014 · Жалоба Можно таки воспользоваться CIC.... Почитал это http://www.dsplib.ru/content/cicid/cicid.html и это http://cyberleninka.ru/article/n/polifazny...imator-tipa-cic . В последней описывается построение полифазного CIC фильтра. Мне не совсем понятно, как определить значение D, то есть, величину задержки. Я предполагаю использовать схему первого порядка, а после нее просто включить КИХ фильтр для подавления боковых лепестков. Вообще, в первой статье сказано, что D = 2R, где R - коэффициент децимации, то есть в моей случае, 12. Переносится ли это правило на полифазный CIC? Какой-то очень длинный переходный процесс получается - ждать, пока накопится 72 отсчета... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Golikov 0 3 декабря, 2014 Опубликовано 3 декабря, 2014 · Жалоба 72 отсчета.... если они поступают с частотой 10 Гц, то это аж целых 7 секунд. А если с частотой килогерц 100, то 720 мкСек, прям не дождаться:)... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
desmond breezey 0 3 декабря, 2014 Опубликовано 3 декабря, 2014 · Жалоба Это ответ да? :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
desmond breezey 0 4 декабря, 2014 Опубликовано 4 декабря, 2014 · Жалоба Вот что получилось. CIC мне подарил Матлаб, КИХ фильтр написал сам. Что скажите? Я пока не тестил, ибо сильно спать хочу. Кстати, какие еще есть распространенные способы верификации проектов для ПЛИС, помимо написания тестбенча? Я имею в виду, имеются ли какие-то автоматизированные средства? fff.vhd Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться