|
альтеровская корка FIR, чудеса |
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 23)
|
Sep 14 2010, 08:06
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Цитата(vadimuzzz @ Sep 14 2010, 02:59)  дело не в единичном скачке, а в том, что на входе - константа, а на выходе синусоида. вот именно, что константа делает на входе устройства, если устройство спроектировано под Цитата каждый отсчет добивается N-1 нулями и пропускается через ФНЧ Но это все голословные утверждения, надо смотреть как построен интерполятор внутри. Может быть то что вы видите не генерация, а работа цепей ограничения сигнала, которые стоят как раз для этих случаев (такая интерполяция валит энергетику сигнала и на выходе фильтра нужно его усиливать или изменять усиление фильтра). Или сделать свой интерполятор, в преобразовании частоты на 16 ть никаких подводных камней нет %)
--------------------
|
|
|
|
|
Sep 14 2010, 08:27
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Цитата(vadimuzzz @ Sep 14 2010, 03:16)  так корка устроена (сама нули вставляет, где сигнал valid = 0), я с ней и раньше работал. впрочем, пожалуйста: а вот это уже интересно, мыльните проект, расковыряю что там да как Цитата т.е. корки не нужны?  для таких вещей как интерполяция на 16, мне не нужны %) Вот простой интерполятор на 16ть Код always_ff @(posedge iclk) begin data <= ival ? idat : 0; end
dat_t acc [0 : 3][0 : 15];
always_ff @(posedge iclk) begin for (int i = 0; i < $size(acc); i++) begin for (int j = 0; j < $size(acc[i]; j++) begin if (i == 0) acc[i][j] <= (j == 0) ? data : (acc[i][j-1] + data); else acc[i][j] <= (j == 0) ? acc[i-1][0] : (acc[i][j-1] + acc[i-1][0]) end end end подавление зеркала должно быть где то 60дБ. Отсюда можно уйти на цики или на acc ram фильтры %)
--------------------
|
|
|
|
|
Sep 14 2010, 10:00
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Цитата(vadimuzzz @ Sep 14 2010, 03:33)  а можно в мат. форме (не матерной  ) ? а то я не могу понять, где используются значения acc[0][15:1]. как я понял, по индексу j это гребенчатые фильтры? в коде приведено 4 FIRa со всеми единичными коэффициентами, которые обладают такой АЧХ, которая может использоваться для интерполяции. Фильтры реализованы по схеме цепи, как здесь. Фильтры соединены между собой следующим образом : data -> acc[0][15] -> acc[1][15] -> acc[2][15] -> acc[3][15]. Такой интерполятор многожрущий по ресурсу, но простой и гарантировано рабочий. Этот фильтр является полным аналогом CIC фильтра с N =4, M=1, R=16. PS. Если не вставлять нули по входу, то получим в цепи еще один фильтр и не завалим энергетику.
--------------------
|
|
|
|
|
Sep 14 2010, 12:45
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Цитата(vadimuzzz @ Sep 14 2010, 06:36)  только не бейте, но в упор не вижу такой связи  . я вижу 4 гребенчатых фильтра на 16 коэффициентов каждый. фильтры сдвинуты друг отн-но друга на 1 сэмпл каждый. но включены они параллельно, а не последовательно. вот это мне и непонятно. или это из контекста выдрано? потому как ошибка в коде %) Код acc[i][j] <= (j == 0) ? acc[i-1][15] : (acc[i][j-1] + acc[i-1][15]) ну смысл то я думаю понятен %)
--------------------
|
|
|
|
|
Sep 15 2010, 05:01
|

Универсальный солдатик
     
Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362

|
Цитата(vadimuzzz @ Sep 14 2010, 10:59)  ... я не знаю, как это можно сделать при помощи линейного устройства, которым является FIR-фильтр... Наверное, у вас где-то есть обратная связь, охватывающая фильтр, и FIR фильтр превратился в IIR. И разрядности не хватило. По каскадным интеграторам-гребенчатым фильтрам добавлю - книга Ричард Лайонс. Цифровая обработка сигналов, раздел 10.5. Там им уделено столько места, сколько они заслуживают  P.S. Обнаружил, что в книге повторяется то же, что в одной из приведенных выше ссылок, только на "великом и могучем". Оно и неудивительно, автор-то тот же.
|
|
|
|
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0
|
|
|