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

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

и все таки попробуйте в матлабе fdatool промоделировать, а также Вы получите коефициенты фильтра (скажу по секрету он и готовое описание для ПЛИС дает фильтра - вопрос же оптимальности реализации фильтра в ПЛИС я думаю у Вас не стоит)

Я так и получал коэффициенты.

Знаю, что так можно получить и код на VHDL. Но он мне не подходит. Потому что не оптимален.

 

Более того, в генерируемом коде еще и хрен разберешься...

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


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

Я хоть в правильном направлении иду?

 

Есть еще один непонятный момент, который в Лайонсе не особо освещен.

 

Пусть коммутатор в начальном положении. Спустя такт он переключает поток входных данных на следующий субфильтр. При этом, данные на первом субфильтре уже отфильтрованы - ведь субфильтр работает на частоте дискретизации в 6 раз меньше, чем происходит переключение коммутатора. Что происходит с выходными данными первого субфильтра? Они поступают на сумматор и ждут отфильтрованные данные со следующих субфильтров? То есть, счетчик на коммутаторе надо сделать таким,чтобы он считал 7 тактов, а не 6? 6 тактов на переключение коммутатора + 1 такт для суммирования?

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


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

то есть данные поступают раз в 6 тактов, а используете вы их раз в 7 тактов...

через 42 такта че будет?

 

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

один перемножают, другие складывают....

 

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

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


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

а почему Вы не хотите поставить N FIR фильтров последовательно и получить необходимую децимацию и характеристику с помощью коеффициентов фильтров?

 

Нужна другая децимация - загружаете новые коеффициенты в FIR фильтры

 

Зачем полифазник?

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


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

то есть данные поступают раз в 6 тактов, а используете вы их раз в 7 тактов...

через 42 такта че будет?

 

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

один перемножают, другие складывают....

 

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

Да,я уже понял, что глупость сморозил.

 

Разве проще будет проанализировать ~1.5 тысячи строк от Матлаба, чем выяснить, где какая ошибка у меня и как её исправить?

 

а почему Вы не хотите поставить N FIR фильтров последовательно и получить необходимую децимацию и характеристику с помощью коеффициентов фильтров?

 

Нужна другая децимация - загружаете новые коеффициенты в FIR фильтры

 

Зачем полифазник?

Потому что задание - разработать полифазный фильтр.

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


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

Разве проще будет проанализировать ~1.5 тысячи строк от Матлаба, чем выяснить, где какая ошибка у меня и как её исправить?

конечно проще:)

потому что то решение работает, а ваше нет. А по стилю изложения вы не очень уверено владеете темой и ошибки могут быть такие чудные что их фиг найдешь:))) Поиск ошибки часто дороже чем сделать заново.

 

я бы начал со схемы.

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

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


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

Потому что задание - разработать полифазный фильтр.

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

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


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

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

Боюсь, что я не понимаю, о чем вы говорите. Я же говорю,что занимаюсь этим делом совсем недолго.

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


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

Боюсь, что я не понимаю, о чем вы говорите. Я же говорю,что занимаюсь этим делом совсем недолго.

включайте голову, нарисуйте на бумажке неполифазный дециматор, распишите его математику и все увидите. задача 9 класс средней школы.

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


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

Самый простой вариант, который я вижу: в обычном КИХ фильтре сделать линию задержки, в которой накапливается число входных отсчетов, равное значению коэффициента децимации, из них выбираются те, которые не отбрасываются, умножаются на коэффициенты,склдаываются и подаются на выход.

 

Конкретно под мою задачу: за 6 тактов накапливаем 6 отсчетов. Нам нужен только самый первый. Умножаем его на соот. коэффициент и отправляем на выход. Освобождаем линию задержки, снова копим 6 отсчетов, берем самый старый отсчет на линии, умножаем на коэффициент, подаем на выход.

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

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


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

Повторю еще раз. Возьмите матлаб симулинк и реализуйте свой фильтр там. Уже давно бы сделали так (там освоиться с базой 1 день), вместо гадания на кофейной гуще

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


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

Повторю еще раз. Возьмите матлаб симулинк и реализуйте свой фильтр там. Уже давно бы сделали так (там освоиться с базой 1 день), вместо гадания на кофейной гуще

я же desmond breezey с самого начала советую матлаб...

Но ТС отказывается прислушивается к советам...

 

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


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

я же desmond breezey с самого начала советую матлаб...

Но ТС отказывается прислушивается к советам...

Не правда.

Я с самого начал знал о возможностях Матлаба в этой области - и генерирование фильтров, и получение сразу кода на VHDL. Просто в коде, который генерирует Матлаб, разобраться проблематично.

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


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

Конкретно под мою задачу: за 6 тактов накапливаем 6 отсчетов. Нам нужен только самый первый. Умножаем его на соот. коэффициент и отправляем на выход. Освобождаем линию задержки, снова копим 6 отсчетов, берем самый старый отсчет на линии, умножаем на коэффициент, подаем на выход.

 

что есть линия задержки?

6 регистров которые передают значение друг другу.

 

что есть освобождение линии задержки и снова копим 6 отсчетов?

это фактически замена всех значений новыми, через 6 тактов новые значения выдавят старые

 

И того ваша задача (ну в том виде что вы формулируете) сводиться к созданию цепочки из 6 регистров которые передают данные друг другу, а также параллельно им счетчика который каждый 6 клок, забирает из последнего регистра цепочки данные, умноженные на коэффициент...

 

и теперь вопрос, что не получилось?

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


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

что есть линия задержки?

6 регистров которые передают значение друг другу.

 

что есть освобождение линии задержки и снова копим 6 отсчетов?

это фактически замена всех значений новыми, через 6 тактов новые значения выдавят старые

 

И того ваша задача (ну в том виде что вы формулируете) сводиться к созданию цепочки из 6 регистров которые передают данные друг другу, а также параллельно им счетчика который каждый 6 клок, забирает из последнего регистра цепочки данные, умноженные на коэффициент...

 

и теперь вопрос, что не получилось?

Ну просто изначально я не по этому пути шел.

 

Чисто гипотетически, было сказано делать полифазный фильтр, потому что это самая оптимальная структура. В принципе, если такая структура будет удовлетворять требованиям по быстродействию, то думаю, что и так примут.

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


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

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

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

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

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

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

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

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

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

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