реклама на сайте
подробности

 
 
> 1 bit stream - to 16 bit output
Don Man
сообщение Oct 3 2007, 18:38
Сообщение #1





Группа: Новичок
Сообщений: 9
Регистрация: 29-09-07
Пользователь №: 30 927



всем привет.

тема уже поднималась как минимум раза 2, но все же - скажите правильно ли я думаю

Есть выход дельта-сигма модулятoра, 1 bit stream идет с частотой 64*44.1 (kHz) = 2.8224 (MHz)

нужно провести децимацию и на выходе получить 16 бит PCM с sample rate = 44.1 kHz.

как проводим децимацию вроде бы понятно: (M=64) ФНЧ КИХ- (вырезаем шумы) + регистр (тактируемый частотой 2.8224 MHz / 64).

но вот как получить 16 битные x(n) из однобитового потока.

в pdf статье (в самом конце) написано, что используется трансверсальный фильтр с коэффициентами = 1.
Если коэффиценты = 1, то это похоже на сдвиговый регистр разрядность 16 бит. я прав?

Далее, в начале этой статьи написано, что fT = Kпер * fД
в моем случае fT = 2.8224 MHz
fД = 44.1 кГц
Kпер = 64.
Но ниже написано Kпер = 2^N, N - разрядность выходного сигнала.
мне надо 16 бит, 2^16 = 65536, получается Kпер = 65536, но ведь у меня 64. что я неправильно понял?
И все же, сколько линий здержек долно быть в фильтре-преобразователе 1 bit to 16 bits? 16 или 6 (2^6=64)? если шесть, то где разрядность 16 бит?
Эскизы прикрепленных изображений
Прикрепленное изображение
 

Прикрепленные файлы
Прикрепленный файл  SIGMA_DELTA_ARTICLE.pdf ( 208.27 килобайт ) Кол-во скачиваний: 95
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Саша Z
сообщение Oct 4 2007, 20:19
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 921
Регистрация: 6-04-07
Из: Israel
Пользователь №: 26 822



По идее, если я правильно понял, после необходимого LPFа (antialiasing режущий на 1/4 первоначального nyquist-bandwithа) нужно просто брать каждый 4ый sample и пихать его в сдвиговый регистр с параллельным считыванием 16 бит.
Хоть я не знаком с синтаксисом Верилога, но чисто интуитивно строчки:
Код
decim_cnt<=decim_cnt+1;
if(decim_cnt==2'b11)

как раз и отсчитывают каждый четвертый sample.
А вот след. часть кода мне не совсем ясна. То что вижу это каждый четвертый sample принимается на вход сдвиг. регистра и затем в for рутине сдвигается на 16 позиций вперед (по принципу fifo ?). Но если так, то по идее, насколько я понимаю каждый послд. отобранный sample (т.е. каждый четвертый последующий) должен сдвигаться на одни сдвиг меньше (т.е. второй отобранный идет на 15ое место, третуй отобранный на 14ое место и т.д. пока 16ый отобранный не станет на первое место). А в коде все отобранные биты сдвигаются на одинаковое (максимальное) кольво сдвигов (т.е. на 16)

Я ошибаюсь ?
Go to the top of the page
 
+Quote Post
PSP
сообщение Oct 5 2007, 18:15
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 118
Регистрация: 1-10-07
Пользователь №: 30 988



Цитата(Саша Z @ Oct 4 2007, 23:19) *
По идее, если я правильно понял, после необходимого LPFа (antialiasing режущий на 1/4 первоначального nyquist-bandwithа) нужно просто брать каждый 4ый sample и пихать его в сдвиговый регистр с параллельным считыванием 16 бит.
Хоть я не знаком с синтаксисом Верилога, но чисто интуитивно строчки:
Код
decim_cnt<=decim_cnt+1;
if(decim_cnt==2'b11)

как раз и отсчитывают каждый четвертый sample.
А вот след. часть кода мне не совсем ясна. То что вижу это каждый четвертый sample принимается на вход сдвиг. регистра и затем в for рутине сдвигается на 16 позиций вперед (по принципу fifo ?). Но если так, то по идее, насколько я понимаю каждый послд. отобранный sample (т.е. каждый четвертый последующий) должен сдвигаться на одни сдвиг меньше (т.е. второй отобранный идет на 15ое место, третуй отобранный на 14ое место и т.д. пока 16ый отобранный не станет на первое место). А в коде все отобранные биты сдвигаются на одинаковое (максимальное) кольво сдвигов (т.е. на 16)

Я ошибаюсь ?


Видимо ошибаетесь.
Цитата
for(i=1;i<16;i=i+1)
delay[i]<=delay[i-1];

Этот код означает не 16 сдвигов входного бита, а сдвиг на 1 разряд 16-ти битного регистра. Т.е. 0-й разряд в 1-й, 1- во 2-й и т.д.

Сообщение отредактировал PSP - Oct 5 2007, 18:15
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 00:35
Рейтинг@Mail.ru


Страница сгенерированна за 0.01393 секунд с 7
ELECTRONIX ©2004-2016