Перейти к содержанию
    

Подскажите, в чем может быть ошибка

выбирая между

Не знаю, может есть книжки в стиле " Практика ЦОС на ПЛИС"...

и

Или мне сначала надо принять 9 отсчетов

 

думаю лучше 1, книжку почитать:)

 

а потом надо правильно поставить и понять задачу....

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

выбирая между

 

и

 

 

думаю лучше 1, книжку почитать:)

 

а потом надо правильно поставить и понять задачу....

А что не так?

Пусть у обычного КИХ фильтра N коэффициентов. Для того, чтобы начать фильтрацию, сначала надо накопить N-1 отсчет + 1 отсчет входящий.

 

Вот у Лайонса в книжке пример работы КИХ фильтра поясняется на примере подсчета среднего количества машин на мосту за 5 минут. Картинку прилагаю. В этом примере N=5.

 

Если у меня 54 коэффициента, и я разбиваю их на 9 групп по 6

Сначала надо принять 9 отсчетов, или я сошел с ума?

Ну и параллельно их умножать,разумеется

post-83730-1416753667_thumb.jpg

Изменено пользователем desmond breezey

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Короче вот так будет выглядеть фильтр на 54 коэффициента с децимацией на 6. В моем предыдущем дециматоре на 2 я ошибся - коэффициенты переключаются с задержкой.

 

http://keep4u.ru/full/876cef80b1f7a4cb77236ea993a75aa8.html

 

если нужно подробное объяснение схемы - предлагаю перейти в скайп.

Изменено пользователем Amurak

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Короче вот так будет выглядеть фильтр на 54 коэффициента с децимацией на 6. В моем предыдущем дециматоре на 2 я ошибся - коэффициенты переключаются с задержкой.

 

http://keep4u.ru/full/876cef80b1f7a4cb77236ea993a75aa8.html

 

если нужно подробное объяснение схемы - предлагаю перейти в скайп.

Да в общем механизм понятен, я в последнем сообщении примерно это и имел в виду.

 

Единственное, что не понятно - в самом начале какие коэффициенты подключены к умножителям? Грубо говоря, верхние в каждом столбце? И с каждым тактом на одном умножителе коэффициенты переключаются, причем в переключаются в порядке следования умножителей? То есть, первый такт - первый умножитель. второй такт - второй умножитель, и так далее?

 

Например, с первым тактом приходит первый отсчет х1. По этому такту произошло переключение коэффициентов в первом умножителе, значит, будет h1*x1,да?

 

И первый выходной отсчет сформируется тогда, когда накопим 9 отсчетов, а все последующие - каждые 6 тактов, да?

Изменено пользователем desmond breezey

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да в общем механизм понятен, я в последнем сообщении примерно это и имел в виду.

 

Единственное, что не понятно - в самом начале какие коэффициенты подключены к умножителям? Грубо говоря, верхние в каждом столбце? И с каждым тактом на одном умножителе коэффициенты переключаются, причем в переключаются в порядке следования умножителей? То есть, первый такт - первый умножитель. второй такт - второй умножитель, и так далее?

 

Например, с первым тактом приходит первый отсчет х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, достигнет последнего умножителя, пройдет некоторое количество тактов.

 

Как то так.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Стоит отметить, что реальный фильтр имеет переходной процесс - пока отсчет, который условно обозначен как х0, достигнет последнего умножителя, пройдет некоторое количество тактов.

То есть, я правильно говорю, что первый выходной отсчет будет только тогда, когда придут первые 9 входных отсчетов, а дальше - каждые 6 тактов?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не 9 входных отсчетов, а 54. Для фильтра длины 54 (а дециматор 9х6 имеет длину 54) нужно 54 отсчета. А дальше - да, каждые 6 тактов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Итак, что остается в сухом остатке:

- линия задержки в 53 регистра;

- 9 умножителей и 9 соот. наборов коэффициентов по 6 штук в каждом;

- каждый такт мы умножаем и суммируем входные отсчеты

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

+ еще аккумулятор на выходе работает по-особому. Он накапливает все, что прошло через умножители-сумматоры в течение пяти тактов, на шестой он выдает все это дело на выход и начинает копить заново.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Выпал на неделю из процесса, занимался прочими делами.

 

Пока не соберем 54 отсчета, не получим данные со всех умножителей. То есть, за 6 тактов получаем копим на выходном аккумуляторе данные только с первого и второго умножителей, до остальных очередь пока не дошла. Это помимо счетчика тактов надо еще счетчик вводить, чтобы пока нет 54 отсчетов, отправлять с первых двух, а когда есть - то всех, или как?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

до 54 отсчетов надо выдавать сигнал что верных данных нет

как получите 54 отсчета данные стали валидны.

выдавать в начальный момент с меньшего числа смысла не имеет, они все равно не верны, пока фильтр не наполниться

а вот после получения 54 отсчетов данные будут верны постоянно, и будут меняться каждые 6 отсчетов, вернее будут меняться каждый отсчет, но обновлять на выходе или забирать с выхода надо каждые 6 отсчетов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Можно таки воспользоваться 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 отсчета...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

72 отсчета.... если они поступают с частотой 10 Гц, то это аж целых 7 секунд. А если с частотой килогерц 100, то 720 мкСек, прям не дождаться:)...

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот что получилось.

 

CIC мне подарил Матлаб, КИХ фильтр написал сам.

 

Что скажите?

 

Я пока не тестил, ибо сильно спать хочу. Кстати, какие еще есть распространенные способы верификации проектов для ПЛИС, помимо написания тестбенча? Я имею в виду, имеются ли какие-то автоматизированные средства?

 

fff.vhd

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...