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

ElrondTelvanni

Свой
  • Постов

    100
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о ElrondTelvanni

  • Звание
    Частый гость
    Частый гость

Контакты

  • ICQ
    Array

Информация

  • Город
    Array

Посетители профиля

1 345 просмотров профиля
  1. Денис, спасибо за титанический труд! Стал пробовать запустить LDPC (который WiMax) - и там не хватает части исходников. В частности, ldpc_dec_cnode_pp_engine, ldpc_dec_cnode_ps_engine, ldpc_dec_source_dwc
  2. Corner -10 конечно по Уолшам (hint: STANAG 4415). А каналы чуть получше (6 дБ+) - честное 8PSK, разумеется с эквалайзером.
  3. Corner Принципиальная разница в том, что в LUT для генерации синуса лежит четверть периода единичной окружности, а при обратном преобразовании для общего случая нужно хранить единичный квадрат. Если взять хотя бы 10-битную точность, получаем необходимость хранить 2^(10*2) = 2^20 точек. Не многовато ли? А CORDIC, если делать две итерации за такт, сделает преобразование такой точности за 5-6 тактов.
  4. У нас речь идёт о приёме 8PSK сигналов с SNR вплоть до -10. При таких условиях любые дополнительные искажения, вносимые трактом, могут помешать. Нужен именно такой IIR, у которого было бы константное ГВЗ в ППФ не более 20 отсчётов.
  5. Corner Для синтеза синуса/косинуса - безусловно. А как насчёт перевода комплексного числа из декартовой системы координат в полярную? Для этой задачи я не нашёл ни одного метода, который по скорости и точности был бы сравним с CORDIC. Может вы подскажете?
  6. Для PSK/QAM модемов, как минимум. Каким образом? Расскажите пожалуйста поподробнее, или скажите, где почитать. Сейчас для FIR используются реальные коэффициенты и комплексный входной сигнал. Но ограничений по архитектуре фильтра у меня никаких нет, поэтому если с комплексным БИХ ГВЗ в полосе пропускания будет меньше и близким к константе - я им воспользуюсь.
  7. Задался я тут целью минимизировать задержку в приёмном тракте. Сейчас для обеспечения требуемой избирательности используется FIR ~128 порядка на частоте дискретизации 9.6 кГц, что соответствует задержке ~6.7 мс (64 отсчёта). Сделал аналогичный по характеристикам эллиптический фильтр, получился примерно 12 порядок. Казалось бы - задержка должна быть в 10 раз меньше. Но прикрутив выравниватель фазы (нужна линейная), получил результаты по ГВЗ в несколько раз хуже, чем при использовании КИХ 128 порядка! Можно ли с этим что-нибудь поделать?
  8. Неужели до сих пор не было утечки исходников миландровских DSP'шников?
  9. Для меня наибольший интерес представляют процессоры, которым на ассемблере можно написать что-то типа R1.H = (A1 = R3.L * R0.H), R1.L=(A0 = R3.L * R0.L) || [P0++] = R6 || R2 = [I2++]; Есть ли вообще в открытом доступе подобные soft-DSP?
  10. Leka Глянул проц, спасибо. :) Но где же самое интересное? Даже не сам ассемблер как таковой, а в первую очередь адаптация LCC под свой ассемблер?
  11. Нельзя просто так взять и отсечь младшие разряды. Нужно к результату усечения прибавить значение старшего (знакового) разряда.
  12. Для 1 порядка - 512х18бит. Для 2 порядка - 512х32бит. В таблице четверть круга. Уменьшил таблицу в 2 раза - потерял 18 дБ (на 2 порядке).
  13. Ради интереса сделал генератор с применением ряда Тейлора 2 порядка. Результаты по сравнению с 1 порядком: 1) Выигрыш по SFDR 20 дБ (132 против 112). 2) По занимаемым LUT - в 2.5 раза больше. 3) По занимаемой памяти - в 2 раза больше. 4) По умножителям - в 3.3 раза больше. По-моему, для большинства случаев оно того не стоит. И если занимаемую память можно сократить в 2 раза (уменьшив таблицу), то с остальным ничего не поделать.
  14. Golikov A. Точка определяется старшими битами аккумулятора фазы (в моём случае 11-ю). В таблице хранится четверть круга. А вторая таблица вам зачем, если суть метода как раз и заключается в уточнении табличных значений вычисленными членами ряда Тейлора?
  15. Шаманъ Нет, таблица на 512 значений, и содержится в ней четверть круга [0..pi/2]. Остальные три четверти получаются путём нехитрых манипуляций с адресом и выходом, что даёт нам фактический размер в 2048 значений, то есть 11 бит от аккумулятора фазы. Ещё 18 бит используются для тейлоровской коррекции, три оставшихся игнорятся. Формулы следующие: sin(X+x) = sin(X) + (x * PHASE_UNIT * cos(X)); cos(X+x) = cos(X) - (x * PHASE_UNIT * sin(X)); где PHASE_UNIT = (2 * pi / 2^11) * (2^25); Здесь 11 - это разрядность X, а 25 - это расширение разрядности для того чтобы умножить fract18xfract18. diwil У нас нет аналогового смесителя, сигнал на несущей частоте подаётся на АЦП. Написал выше. У меня 112 dB, но этого вполне достаточно. Очень просто конвейеризуется, всего 4 ступени. В дальнейших вопросы не понял, какие "лишние" биты вы имеете ввиду. У CIC-фильтра огромный коэффициент усиления, там на выходе, если его не обрезать, получается вообще 60+ бит.
×
×
  • Создать...