Amurak 0 21 ноября, 2014 Опубликовано 21 ноября, 2014 · Жалоба А что с чем суммировать? В линии задержки данной длины за 6 тактов есть всего один отсчет, который не отбрасывается при децимации. Предлагаю отталкиваться не от того, что реализовано у вас; а то того, что должно быть реализовано. Вам нужен фильтр, так? Если фильтр, значит нужна свертка входного сигнала с коэффициентами фильтра, а значит нужна сумма. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
desmond breezey 0 21 ноября, 2014 Опубликовано 21 ноября, 2014 · Жалоба Предлагаю отталкиваться не от того, что реализовано у вас; а то того, что должно быть реализовано. Вам нужен фильтр, так? Если фильтр, значит нужна свертка входного сигнала с коэффициентами фильтра, а значит нужна сумма. Хорошо. Я правильно понимаю, что то, что вы называете сигналом значимости, в буржуйских источниках обычно называют как-то так: clk_enable или что - то похожее? Как я понял из вашего объяснения, механизм такой: изначально наш clk_enable имеет значение 1 ( ведь первый входной отсчет нам нужен ). Затем, он 5 тактов сохраняет значение 0. По приходу 6-ого такта он получает значение 1 . Отсчеты со входа мы берем, только когда clk_enable имеет значение 1. Только понять не могу, где здесь сумма вылазит. Мы же не можем так копить 6 отсчетов и их складывать, потому что получается, что у нас выход изменяться за 36 тактов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Golikov 0 21 ноября, 2014 Опубликовано 21 ноября, 2014 · Жалоба Понимаете в любой задаче кроме всего прочего нужна еще капелька здравого смысла... Вы с огромным усердием переставляете цифирки и буковки, но теряете общий смысл того что вы делаете... Просто опишите словами что вы хотите получить и что вы получаете.... Вот берем вашу последнюю схему: ИЗ входного сигнала вы выбираете каждый 6 отсчет, и умножаете их на коэффициент, причем 6 отсчет на м0, 12 отсчет на м1, 18 отсчет на м2 и так далее... теперь допустим у вас на входе был сигнал 111111111, что будет на выходе? м0, м1, м2, м3, м4, .... если был сигнал 00000000000, то на выходе будет 0 0 0 0 0 0 Вы можете внятно объяснить при какой цифровой обработке может понадобиться входной сигнал состоящий из исходного в котором 85% выкинуто, а оставшиеся 15% искажены? Зачем надо на следующий этап передавать умноженные на коэффициенты значения, почему нельзя подать исходные? Вам надо понять задачу! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 21 ноября, 2014 Опубликовано 21 ноября, 2014 · Жалоба В линии задержки данной длины за 6 тактов есть всего один отсчет, который не отбрасывается при децимации. давно бы слабали прекрасную картинку, типа той что в атаче, ну и расковыряли бы как оно там внутри. У меня ушло 2 минуты скидать вот это и сверить с оригинальным прототипом. ЗЫ. Все же возьмите матлаб, пригодится. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Amurak 0 21 ноября, 2014 Опубликовано 21 ноября, 2014 · Жалоба Да, именно 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 мы выбрасываем из-за децимации. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Golikov 0 21 ноября, 2014 Опубликовано 21 ноября, 2014 · Жалоба Ребяты при всем уважении, вы говорите со студентом... Вы пытаетесь объяснить решение, а человек пока не понял даже постановки задачи. Ему надо просто словами объяснить смысл того что он делает и зачем это надо. Без терминов окно, фильтр, коэффициенты... просто на пальцах так сказать. И уверяю как только вы это сделаете, вы сразу поймете насколько были наивны ваши действия). А также сразу станет понятно зачем нужен матлаб, чем он поможет.... если хотите я вам помогу в этом деле... дальнейший разбор решения считаю не целесообразным, пока не поймем задачу... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
desmond breezey 0 21 ноября, 2014 Опубликовано 21 ноября, 2014 · Жалоба Да, именно 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? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Amurak 0 21 ноября, 2014 Опубликовано 21 ноября, 2014 · Жалоба Это, как я понимаю, если длина фильтра 6? Шесть коэффициентов, один умножитель. Если использовать два умножителя, то 12 коэффициентов. 3 - 18 и так далее. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
desmond breezey 0 21 ноября, 2014 Опубликовано 21 ноября, 2014 · Жалоба Шесть коэффициентов, один умножитель. Если использовать два умножителя, то 12 коэффициентов. 3 - 18 и так далее. Я имел в виду, что если у нас фильтр-прототип длины N , то для дециматора надо взять каждый N/6 коэффициент. Так? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Amurak 0 21 ноября, 2014 Опубликовано 21 ноября, 2014 · Жалоба Я имел в виду, что если у нас фильтр-прототип длины N , то для дециматора надо взять каждый N/6 коэффициент. Так? Если исходный фильтр длины N, то для дециматора на шесть N должно быть кратно шести. Дальше эти N коэффициентов разбиваются на шестерки и на один умножитель фильтра приходится шесть коэффициентов, подставляемых поочередно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
desmond breezey 0 21 ноября, 2014 Опубликовано 21 ноября, 2014 (изменено) · Жалоба Если исходный фильтр длины N, то для дециматора на шесть N должно быть кратно шести. Дальше эти N коэффициентов разбиваются на шестерки и на один умножитель фильтра приходится шесть коэффициентов, подставляемых поочередно. Ага. Вот есть у меня фильтр длиной 54. Значит, получаем 9 наборов коэффициентов. Если посмотреть на импульсную характеристику прототипа, то брать надо справа налево. То есть, для первого набора ( если крайний справа коэффициент занумеровать как 1 ), это будут коэффициенты 1,7,13,19,25,31. Все так? Если так, значит в данный момент я делаю правильно. Изменено 21 ноября, 2014 пользователем desmond breezey Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Amurak 0 21 ноября, 2014 Опубликовано 21 ноября, 2014 · Жалоба Ага. Вот есть у меня фильтр длиной 54. Значит, получаем 9 наборов коэффициентов. Если посмотреть на импульсную характеристику прототипа, то брать надо справа налево. То есть, для первого набора ( если крайний справа коэффициент занумеровать как 1 ), это будут коэффициенты 1,7,13,19,25,31. Все так? Если так, значит в данный момент я делаю правильно. Нет, для первого набора коэффициенты будут 1, 2, 3, 4, 5, 6. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
desmond breezey 0 22 ноября, 2014 Опубликовано 22 ноября, 2014 · Жалоба Не могу понять, почему жалуется на то, что последние значения в обоих case не достигаются. t_module.vhd Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Amurak 0 22 ноября, 2014 Опубликовано 22 ноября, 2014 · Жалоба Кто жалуется? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
desmond breezey 0 22 ноября, 2014 Опубликовано 22 ноября, 2014 · Жалоба ISE Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться