Jump to content
    

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

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

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

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

 

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

Share this post


Link to post
Share on other sites

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

 

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

 

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

Share this post


Link to post
Share on other sites

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

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

 

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

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

 

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

Share this post


Link to post
Share on other sites

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

 

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

 

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

Share this post


Link to post
Share on other sites

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

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

 

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

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

 

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

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

 

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

 

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

 

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

 

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

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

Share this post


Link to post
Share on other sites

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

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

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

 

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

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

 

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

Edited by desmond breezey

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

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

 

Share this post


Link to post
Share on other sites

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

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

Не правда.

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

Share this post


Link to post
Share on other sites

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

 

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

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

 

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

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

 

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

 

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

Share this post


Link to post
Share on other sites

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

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

 

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

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

 

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

 

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

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

 

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...