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

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

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

Предлагаю отталкиваться не от того, что реализовано у вас; а то того, что должно быть реализовано. Вам нужен фильтр, так? Если фильтр, значит нужна свертка входного сигнала с коэффициентами фильтра, а значит нужна сумма.

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


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

Предлагаю отталкиваться не от того, что реализовано у вас; а то того, что должно быть реализовано. Вам нужен фильтр, так? Если фильтр, значит нужна свертка входного сигнала с коэффициентами фильтра, а значит нужна сумма.

Хорошо.

 

Я правильно понимаю, что то, что вы называете сигналом значимости, в буржуйских источниках обычно называют как-то так: clk_enable или что - то похожее?

 

Как я понял из вашего объяснения, механизм такой: изначально наш clk_enable имеет значение 1 ( ведь первый входной отсчет нам нужен ). Затем, он 5 тактов сохраняет значение 0. По приходу 6-ого такта он получает значение 1 . Отсчеты со входа мы берем, только когда clk_enable имеет значение 1. Только понять не могу, где здесь сумма вылазит. Мы же не можем так копить 6 отсчетов и их складывать, потому что получается, что у нас выход изменяться за 36 тактов.

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


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

Понимаете в любой задаче кроме всего прочего нужна еще капелька здравого смысла...

 

Вы с огромным усердием переставляете цифирки и буковки, но теряете общий смысл того что вы делаете... Просто опишите словами что вы хотите получить и что вы получаете....

 

Вот берем вашу последнюю схему:

ИЗ входного сигнала вы выбираете каждый 6 отсчет, и умножаете их на коэффициент, причем 6 отсчет на м0, 12 отсчет на м1, 18 отсчет на м2 и так далее...

 

теперь допустим у вас на входе был сигнал

111111111, что будет на выходе? м0, м1, м2, м3, м4, ....

если был сигнал 00000000000, то на выходе будет 0 0 0 0 0 0

Вы можете внятно объяснить при какой цифровой обработке может понадобиться входной сигнал состоящий из исходного в котором 85% выкинуто, а оставшиеся 15% искажены? Зачем надо на следующий этап передавать умноженные на коэффициенты значения, почему нельзя подать исходные?

 

Вам надо понять задачу!

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


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

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

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

 

ЗЫ. Все же возьмите матлаб, пригодится.

post-3453-1416588884_thumb.png

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


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

Да, именно clk_enable.

 

Сумма должна вылазить в самом фильтре и в этой самой полифазной реализации.

 

Если первый входной отсчет x0, то на первом такте вы должны получить x0*h6, на втором - x1*h5, потом x2*h4, x3*h3, x4*h2 и наконец на шестом такте - x5*h1 плюс все предыдущие произведения.

И это будет первый выходной отсчет:

y0 = x0*h6 + x1*h5 + x2*h4 + x3*h3 + x4*h2 + x5*h1.

Следующий выходной отсчет будет:

y6 = x6*h6 + x7*h5 + x8*h4 + x9*h3 + x10*h2 + x11*h1, поскольку отсчеты y1, y2, y3, y4, y5 мы выбрасываем из-за децимации.

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


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

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

Без терминов окно, фильтр, коэффициенты... просто на пальцах так сказать.

 

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

 

 

 

если хотите я вам помогу в этом деле...

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

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


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

Да, именно clk_enable.

 

Сумма должна вылазить в самом фильтре и в этой самой полифазной реализации.

 

Если первый входной отсчет x0, то на первом такте вы должны получить x0*h6, на втором - x1*h5, потом x2*h4, x3*h3, x4*h2 и наконец на шестом такте - x5*h1 плюс все предыдущие произведения.

И это будет первый выходной отсчет:

y0 = x0*h6 + x1*h5 + x2*h4 + x3*h3 + x4*h2 + x5*h1.

Следующий выходной отсчет будет:

y6 = x6*h6 + x7*h5 + x8*h4 + x9*h3 + x10*h2 + x11*h1, поскольку отсчеты y1, y2, y3, y4, y5 мы выбрасываем из-за децимации.

Это, как я понимаю, если длина фильтра 6?

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


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

Это, как я понимаю, если длина фильтра 6?

Шесть коэффициентов, один умножитель. Если использовать два умножителя, то 12 коэффициентов. 3 - 18 и так далее.

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


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

Шесть коэффициентов, один умножитель. Если использовать два умножителя, то 12 коэффициентов. 3 - 18 и так далее.

Я имел в виду, что если у нас фильтр-прототип длины N , то для дециматора надо взять каждый N/6 коэффициент. Так?

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


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

Я имел в виду, что если у нас фильтр-прототип длины N , то для дециматора надо взять каждый N/6 коэффициент. Так?

Если исходный фильтр длины N, то для дециматора на шесть N должно быть кратно шести. Дальше эти N коэффициентов разбиваются на шестерки и на один умножитель фильтра приходится шесть коэффициентов, подставляемых поочередно.

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


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

Если исходный фильтр длины N, то для дециматора на шесть N должно быть кратно шести. Дальше эти N коэффициентов разбиваются на шестерки и на один умножитель фильтра приходится шесть коэффициентов, подставляемых поочередно.

Ага. Вот есть у меня фильтр длиной 54. Значит, получаем 9 наборов коэффициентов.

Если посмотреть на импульсную характеристику прототипа, то брать надо справа налево. То есть, для первого набора ( если крайний справа коэффициент занумеровать как 1 ), это будут коэффициенты 1,7,13,19,25,31. Все так? Если так, значит в данный момент я делаю правильно.

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

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


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

Ага. Вот есть у меня фильтр длиной 54. Значит, получаем 9 наборов коэффициентов.

Если посмотреть на импульсную характеристику прототипа, то брать надо справа налево. То есть, для первого набора ( если крайний справа коэффициент занумеровать как 1 ), это будут коэффициенты 1,7,13,19,25,31. Все так? Если так, значит в данный момент я делаю правильно.

Нет, для первого набора коэффициенты будут 1, 2, 3, 4, 5, 6.

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


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

Не могу понять, почему жалуется на то, что последние значения в обоих case не достигаются.

t_module.vhd

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


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

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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