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

stealth-coder

Участник
  • Постов

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

  • Посещение

Весь контент stealth-coder


  1. Любая инженерно-техническая задача начинается с расчета (оценки), исходя из расчета выбираются пути реализации. Если вам подходит стандартный БПФ, то он есть в примерах CUDA, можете скачать, поставить, запустить и посмотреть на цифры. В вашем конкретном случае может это и так, не зная подробностей задачи и железа и не посмотрев в код ничего внятного сказать нельзя. Но меня жизнь научила, что в 90% случаев "дело не в бобине". Раз производители делают PCIe на много линий, значит железо в состоянии их утилизировать, т.е. для современной видеокарты скорости обмена в десятки гигабит в секунду - нормальный режим работы.
  2. GPU предусматривают 2 режима обмена данными - синхронный и асинхронный. Скорость копирования в асинхронном режиме ограничивается только скоростью памяти хоста и карточки и скоростью PCIe, со скоростью 15 Гбит/с на мощном железе не должно возникнуть проблем, такую скорость дает PCIe Gen 2 x4, для DDR 1600 МГц/64 бита это вообще ни о чем. В задаче ТС больше вопросов может возникнуть к карточке, скорость вычислений сильно зависит, например, от разрядности шины. Вообще информация по FLOP для разных карточек есть в интернете, для БПФ сделать оценку требуемой производительности не составляет труда.
  3. С практической точки зрения повторение конца символа как раз и позволяет снизить требования к точности синхронизации, в таком случае при наличии временнОй ошибки на выходе БПФ все поднесущие будут повёрнуты на некоторый угол, линейно зависящий от величины ошибки и индекса поднесущей. Если вы заполните циклический префикс чем-нибудь другим, то поднесущие будут искажены, а не просто повернуты на какой-то угол. Искажения спектра, порождаемые разрывом фазы между символами, приводят к появлению внеполосных помех, которые должны быть подавлены фильтром передатчика. Также существуют методы плавного снижения мощности на переходе.
  4. Зависит от решаемой задачи: 1. Есть RF ADC, у них встроенные дециматоры, иногда программируемые FIR. Например, ADC32RF45. 2. Есть малогабаритные трансиверы типа AD9361, AD9364, AD9371, AD9375, LMS6002, LMS7002, на вход подаётся аналоговый сигнал на РЧ, на выходе - отфильтрованные IQ отсчёты с заданной частотой дискретизации. 3. Собственная или покупная реализация на FPGA, тут уж без ограничений, "дороха, бохато". 4. Есть очень интересная серия сигнальников от TI 66AK2L06/TCI6630 с встроенным Digital Front End, идея отличная - прямое подключение АЦП/ЦАП по интерфейсу JESD204B с последующей расфильтровкой до 48 каналов в зависимости от требуемых полос, но доступен только RFSDK с ограниченным набором конфигураций, заточенных под 3G/4G, остальных на форуме посылают в некие фирмы, которые осуществляют поддержку, естественно не бесплатно.
  5. Как вам по числу 345 понять из каких слагаемых я его получил? Очевидно только угадыванием. По всей видимости восстанавливать ничего не нужно и эти биты четности участвуют в процессе итеративного декодирования каким-то иным образом.
  6. Частота и фаза отражают одно и то же, математически связаны между собой как производная и первообразная (фазовая и частотная модуляция имеют общее название угловая модуляция), поэтому амплитуду-фазу можно визуализировать через фазовую плоскость (если развернуть во времени - будет глазковая диаграмма), амплитуду-частоту через амплитудный спектр, а изобразить вместе нельзя как нельзя нарисовать на листе бумаги монету с двух сторон сразу в виде единого рисунка. На ваши идеи с 3-х мерной комплексной переменной смотреть забавно, но IMHO вы форумом ошиблись, перебирайтесь к математикам поближе.
  7. Ну так разместите этот микрофон максимально близко к пассажирам :) Если речь о попытке создать некий аналог фазированной антенной решетки, то с одним микрофоном это физически невозможно, нужно хотя бы 2 микрофона, тогда можно сформировать диаграмму направленности 180 градусов, 4 микрофона - 90 градусов и т.д. Или поместите микрофон внутрь параболического зеркала (пример условный, просто демонстрация идеи).
  8. 1. За 1 такт ПЛИС у вас накапливается несколько отсчётов сигнала? Я не плисовод, но что-то когда-то где-то читал об однотактных реализациях умножений/сложений за счёт распараллеливания, быстрого переноса и т.п. Подозреваю, что таким образом можно реализовать коррелятор с временем вычисления 1-2 такта. 2. Частота дискретизации не выше тактовой ПЛИС, а ожидаемая форма импульса прямоугольная? В таком случае вопрос можно свести к интегрированию (суммированию) отсчётов на заданном промежутке, по приходу очередного отсчёта из суммы вычитаете самый первый отсчёт в линии задержки, прибавляете вновь полученный отсчёт. 3. Задержка при вычислениях важна? Если нет, то можно сделать коррелятор в виде конвейера, результат будет вычисляться за один такт, только с задержкой в N тактов.
  9. Наберите в гугле "умножение комплексных чисел". Не имеет.
  10. Тогда для чего на картинке присутствует "Kaiser"? Как же не имеет, если ИХ с АЧХ+ФЧХ связана через преобразование Фурье, а количество отсчетов ИХ определяет вычислительные затраты на реализацию? Фильтрацию/свертку и в частотной области делают, для больших апертур при использовании алгоритма БПФ это позволяет уменьшить вычислительные затраты.
  11. 1. ЦОС как фундаментальная наука была изучена в 50-60 гг. и, по большому счету, с фундаментальных позиций прекрасно описана в книге Рабинера и Голда, с тех пор ничего особенного в этом плане придумано не было. 2. ЦОС как прикладная область знаний есть способ (как правило не единственный) решения задач в некоторой предметной области: связь (радио, акустическая, ...), локация (радио, гидро, ...), астрономия, аудио, видео, изображения и др. Алгоритм: 1. Изучите фундаментальные основы (Рабинер и Голд будет хорошим выбором) 2. Выберите предметную область для дальнейшей работы (судя по Вашему посту - обработка звука) 3. Прочитайте парочку толковых книг по данному вопросу (по аудио ничего не могу порекомендовать, по радиосвязи можно начать с учебника Сергиенко, а дальше по списку ссылок из учебника) 4. Ну и практика - берете практическую задачи и делаете, делаете, ..., делаете, 10000 часов - и Вы специалист :) Для себя понял что (лично мне) крайне важно что-то изучать в рамках работы, которая меня кормит, таким образом достигается максимальное противодействие прокрастинации...
  12. 667х уже устарел, надо брать keystone 2, кто там кого быстрее по мнению представителя TI бабка надвое сказала, все определяется целями и задачами, чтобы ввести поток данных в интел еще попотеть придется с каким-нибудь PCI-Express, если вычислительной мощности не с избытком, придется юзать SSE/AVX, а они под ЦОС не заточены, больше под графику/видео. FPGA тоже геморрой, иногда без них никак для каких-нибудь "тупых мипсов" типа фильтров или для сигналов с очень широкими полосами от 50 МГц, но разработка и отладка более-менее сложных алгоритмов та еще радость по затрачиваемому времени и поиску специалистов. Поэтому ИМХО опрос странный, отталкиваться нужно от целей и задач, а не от статистики использования другими людьми, да еще и конкретного процессора, у того же TI сейчас линейка довольно широкая, есть новый процессор от AD, тоже вроде неплохо смотрится по описанию в сравнении с аналогами.
  13. Пару раз встречался с проблемой появления непонятных гармоник, оказывалось, что они порождаются соединением генератора и анализатора кабелем, стоило прямое соединение разорвать и сделать "передачу по эфиру", т.е. к выходу генератора подключить антенну и ко входу анализатора тоже подключить антенну, гармоники исчезали.
  14. А в чём сложность с мягким Голеем? Алгоритм Чейза даёт 2 дБ, плата - увеличение количества вычислений. Можно построить код Рида-Маллера на основе функций Уолша, тогда для декодирования используется быстрое преобразование Адамара, т.е. честные мягкие решения. Так сделано кодирование TFCI для UMTS (см. 3GPP 25.212).
  15. Позиции идеальных точек известны и зависят от конкретного демодулятора, но для оценки вектора ошибки надо каким-то образом выбрать одну идеальную точку из множества идеальных точек созвездия, это можно сделать приняв жесткое решение либо вычислив ближайшую в смысле Евклидова расстояния. Можно и квадратный корень вычислять, но если после вычисления переходить к децибелам, то квадратный корень можно учесть в формуле вычисления децибел, поэтому квадратный корень на практике стараются убрать. При низких сигнал/шум будет много ошибок в определении идеальной (переданной) точки созвездия, поэтому вектор ошибки будет вычисляться как разность принятого вектора и неправильной точки созвездия, т.е. на передающей стороне была точка 1, а при приеме из-за большой мощности шума ближайшая точка оказалась 2, поэтому вектор ошибки будет неправильным (меньше, чем на самом деле), что приведет к завышению оценки сигнал/шум.
  16. Как посчитать сигнал/шум: 1. Считаете мощность сигнала Psignal=sum(In^2 + Qn^2) / n 2. Определяете идеальную точку созвездия через жёсткое решение 3. Вычисляете вектора ошибок как разницу между принятыми векторами и соответствующим им идеальными точками созвездия 4. Считаете мощность шума Pnoise=sum(Ierror_n^2 + Qerror_n^2) / n 5. Вычисляете (в децибелах) Es/N0=10log(Psignal / Pnoise) 6. Вычисляете (в децибелах) Eb/N0 = Es/N0 - 3 * log2(M), где M - количество точек сигнального созвездия Способ имеет большую ошибку в случае низких соотношений сигнал/шум.
  17. Официально принятого стандарта 5G нет, опубликована версия от Verizon http://www.5gtf.org/, по сути это тот же LTE, только в диапазоне СВЧ и скорости 5x. Северная Корея не такая уж и отсталая как многие думают: 1. Развернут 3G (доступа к международному интернету у населения нет, развёрнут автономный сегмент Кванмён) 2. Производятся мобильные телефоны (видимо по китайским лицензиям)
  18. TDMA/МДВР - это общий принцип множественного разделения. Например, и GSM и TETRA - это TDMA системы, но вряд ли существует корка, чтобы принять и то и другое, т.к. они отличаются видом модуляции, скоростью, количеством слотов, длительностью слотов и т.д. То же самое "несущая на несущей" - это общий принцип, на котором основаны различные системы связи.
  19. А куда же делось понятие "чувствительность"? При заданном виде модуляции для достижения максимально допустимой вероятности ошибки требуется совершенно конкретное соотношение сигнал/шум, которое в случае канала АБГШ будет определяться мощностью передатчика, антеннами и их направленностью, затуханием в канале, тепловым шумом (который, в свою очередь, определяется полосой сигнала). Например, в стандартах ETSI четко указаны требуемые значения чувствительности для базовых и мобильных станций (например, для телефона GSM -102 дБм, для TETRA -112 дБм (для АБГШ канала)).
  20. Простейший вариант реализации эквалайзера (вычисление коэффициентов КИХ фильтра для заданной АЧХ): Предположим, у Вас частота дискретизации 48 кГц, длина линии задержки фильтра 128 отсчетов. Для расчета фильтра нужно: 1. требуемую АЧХ зеркалировать (т.е. относительно нулевой частоты АЧХ должна быть зеркально идентична, преобразование Фурье работает с комплексными числами, зеркальная идентичность даст нулевые значения мнимой составляющей после обратного преобразования Фурье, поэтому фильтр будет иметь только вещественные коэффициенты и позволит обработать звуковые отсчеты, которые тоже чисто вещественные). 2. максимальное значение АЧХ по частоте - половина частоты дискретизации, т.е. в нашем примере от -24 кГц до +24 кГц. 3. полученную АЧХ дискретизируете по частоте на 128 точек, все точки должны быть равноудалены от соседей справа и слева 4. в полученных по частоте точках берете амплитуду, при необходимости квантуете, т.е. выставляете по разрядной сетке. Теперь имеете набор из 128 комплексных значений, где вещественная часть - частота (в нашем примере от -64 до +63, но не кГц, это индексы позиций бинов ПФ!), мнимая - амплитуда (кстати, обычно амплитуду в аудиоэквалайзерах рисуют на логарифмической шкале, потребуется пересчитать децибелы в разы). Полученный массив подвергаете обратному преобразованию Фурье и получаете коэффициенты фильтра (если АЧХ построили симметрично, то мнимые составляющие будут равны нулю и их можно отбросить). При необходимости можно отнормировать коэффициенты фильтра так, чтобы в сумме они давали 1 (или иное требуемое значение согласно разрядной сетке, например, если разрядность аудиоотсчетов 16 бит (15 значащих, 1 знаковый), то коэффициенты фильтра в сумме должны давать 32767 (2 в 15 степени минус 1). Простейший эквалайзер готов! Если меняется частота дискретизации, то меняются максимальные значения по частоте (для 44.1 кГц будет от -22.05 до 22.05), соответственно, расстояние между точками дискретизированной по частоте АЧХ будет меньше. Длина фильтра в общем случае может быть не степенью двойки, это потребует только лишь отказаться от быстрого преобразования Фурье или использовать специальные версии БПФ для требуемого числа точек, дискретное преобразование Фурье, посчитанное "в лоб", позволит строить фильтры на любое количество точек.
  21. Обычно слейв подстраивается под мастер. Как правило это делают аппаратно, изменяя частоту опорного генератора с помощью ЦАП (в частности таким образом функционируют все мобильные телефоны, имеющие собственный низкостабильный опорник из-за ограниченных габаритов и потребления и использующие сигнал базовой станции в качестве референсного для подстройки). Если возможности такой подстройки у Вас нет, то это можно сделать программно с помощью передискретизации.
  22. Адаптивный эквалайзер полезен только, когда канал "дишит". Задача эквалайзера - оценить импульсную характеристику канала и компенсировать её, если ИХ канала не меняется во времени, то и коэффициенты эквалайзера меняться не будут (точнее будут болтаться вокруг некоторого точного значения с некоторой амплитудой, зависящей от соотношения сигнал/шум). Использую LMS-эквалайзер с обратной связью по решению и меня не устраивает, как на данный момент принимаются кадры с высокой кратностью модуляции (АФМ-16, АФМ-32). Предполагаю, что использование другого алгоритма может улучшить ситуацию. Обычно (не всегда) другие алгоритмы дают более высокую скорость сходимости в обмен на более высокую вычислительную сложность. Возможно, у Вас несогласованный фильтр и symbol spaced эквалайзер, попробуйте fractionaly spaced.
  23. Finf = 3.145728 МГц Какой оригинальный выбор :) Чувствуется, что все из-за межсимвольной интерференцией. Как именно "чувствуется"? Может у Вас там какие-то мощные промышленные помехи? Лучше потратить неделю на постановку точного диагноза, чем пару месяцев делать эквалайзер, который, возможно, не поможет. Т.е. это абстрактные модели, где нет переноса и снятия с модулирующего baseband-сигнала. Да не абстрактные они, просто перенос (имеется ввиду перенос по частоте?) не имеет отношения к эквалайзеру, это два последовательных этапа. Что такое "снятие модулирующего baseband сигнала"? Получение мягких решений демодулятора? Это (обычно) делается после эквалайзера. Вопрос: как реализовать эквалайзер? 1. Поставить диагноз (эквалайзер вообще нужен?) 2. Выбрать подходящую схему (насколько быстро изменяется импульсная хар-ка канала? насколько быстро эквалайзер должен адаптироваться?) 3. С некратными тактовыми работать, наверное, можно (сам не пробовал, но умозрительно могу это представить: сам по себе эквалайзер суть цифровой фильтр и ему в целом всё равно какая тактовая, а для адаптации коэффициентов можно, наверное, использовать не точное значение тренировочных символов, а их аппроксимированное значение на основе оценки текущей расстройки тактовой частоты, т.е. символ длительностью 15 отсчётов получается не сразу, а в результате накопления ошибки за несколько символов).
×
×
  • Создать...