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

p.socrat

Свой
  • Постов

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

  • Посещение

Сообщения, опубликованные p.socrat


  1. Во-первых, уберите real. У действительного сигнала не может быть асиметричный спектр!!! Во-вторых, если хотите увидеть спектр, какой он у вас есть, то нужно повернуть половинки результата преобразования fft. Код будет выглядеть следующим образом: plot(abs(fftshift(fft(x))))

  2. Переходите к комплексной форме сигнала, тогда получится сделать спектр сигнала асиметричным относительно нуля. В этом случае каждый тон будет представлять собой комплексную экспаненту вида exp(jwt) = cos(wt)+j*sin(wt)

  3. Так вроде RRSI это просто попугаи, пропорциональные мощности, попавшей в полосу приема (сигнал + шум). Если подобрать правильно коэффициент, учитывающий усиление тракта и антенны, то можно будет выразить в ваттах. Соответственно вычисляется следующим образом: усреднение на интервале с последующим возведением в квадрат и умножением на вычисленный коэффициент. Пример здесь http://www.ieee802.org/16/tgd/contrib/C80216d-03_92.pdf

  4. Вопрос: "Как можно сделать задержку луча на дробное колл-во отсчетов?"

    Дробная задержку можно сделать с помощью фильтра Фэрроу (Farrow), только надо смотреть чтоб ширина спектра сигнала не сильно искажалась фильтром, который имеет завал на ВЧ и максимален при задержке 0.5 периода дискретизации. Т.е. надо что бы частота дискретизации была с запасом в несколько раз, а не в притык по Котельникову. АЧХ фильтра Фэрроу можно глянуть у Незами, ну или я могу выложить если нужно. Если реализация в Simulink то посмотрите модели по ссылке. Там реализуется дробная задержка в петле символьной синхронизации. Если вы работаете только с m-файлами, то смотрите в help матлаба, там есть какой-то Farrow filter.

  5. Окно Блэкмана или Хэмминга это тоже ИХ ФНЧ. Назначение окна убирать "растекание" спектра за счет подавления внеполосный пульсаций АЧХ. На рисунке, который я привел для прямоугольных окон, хорошо видны эти медленно затухающие пульсации. Можно конечно взять и известные окна, но внимательно следить за тем, чтобы не было пробелов в спектре или излишнего перекрытия АЧХ бинов. А можно и самому рассчитать окно, как КИХ фильтр в любой программе, чтобы получить то, что нужно и не заниматься перебором всех возможных известных окон. Кстати ИХ вида sin(x)/x только у идеального ФНЧ с АЧХ в виде прямоугольника. Затухающе колебание ИХ не обязательное условие для ФНЧ.

  6. Значит например у нас сигнал длинной секунда при Fs=8000 соответственно 8000 отсчетов. Я разбиваю сигнал на временные окна чтобы для каждого вычислить гребенку-спектр, например 20 окон таймслотов. Получаю 400 значений в окне. Проверяю на четность потому что длина сигнала будет разной. (это алгоритм захвата выделения команды возвращает разные длины сигнала в зависимости кто как сказал слово - быстрее медленнее).

     

    Накладываю окно на 400 значений после него на краях задавленый сигнал будет в завис от окна. Делю эти 400 значений после окна на 20 полос окнами да? Почленно складываю эти 20 каналов по 20 значений и эти 20 значений кидаю на FFT так?

     

    Не понимаю как делать из 20ти значений FFT там ничего не успеет посчитаться. Или суб полосы нужны просто для уменьшения вычислений? И их не нужно 20шт по кол-ву требуемых полос? А достаточно 4-5 как у Лайноса?

    Ну во-первых, для FFT лучше буфер длинной 2^m, т.е. если хотите близкое к 20, то либо 16, либо 32. Полифазное FFT – это по сути обычное FFT, но который проредили по частоте, т.е. часть выходных коэффициентов просто взяли и выкинули. А если они нам их все равно выкидывать, зачем их рассчитывать? Но чтобы восполнить пробелы в частотном спектре, возникшие вследствие прореживания, нужно расширить АЧХ оставшихся бинов. Бин это по сути один из фильтров, образующих гребенку и имеющий АЧХ применяемого окна, разумеется смещенной по частоте. Так вот, в случае обычного FFT с прямоугольным окном АЧХ бина имеет вид sinc-функции. Применяя окно мы изменяем АЧХ бина, при этом расширяя его. Следовательно нужно подобрать такое окно, которое нам даст нужное перекрытие АЧХ бинов при частотном прореживании, т.е. полифазном FFT. На прикрепленном рисунке приведены АЧХ бинов для обычного FFT с прямоугольным окном и полифазного с прореживанием в 2 раза для прямоугольного окна и рассчитанного заранее. Окно рассчитывается как КИХ фильтр. Видно что частотное перекрытие сохранилось, но количество бинов уменьшилось в 2 раза, а следовательно и требуемые ресурсы на вычисление уменьшились в 2 раза. Поясню как получается прореживание по частоте, если вы еще не поняли из ссылки, которую я привел. Берем буфер размера 2*N и складываем первую половину буфера со второй, после чего от буфера размера N делаем обычное FFT.

     

    Перейдем к вашему примеру. Берем буфер 384 (400 не подходит, т.к. не делится на степень двойки) и применяем к нему окно. Потом делим его например на 12 более мелки буферов и получаем буфер размером 32 от которого и вычисляем FFT. В итоге на выходе получаем разом 32 коэффициента, пропорциональных энергии сигнала, попавшей в полосу одного фильтра гребенки (бина). Итого одно окно размером 384 и одно FFT для расчета сразу 32 отчетов. Если не хотите терять сигнал в промежутках, когда он подавляется окном, то нужно также делать FFT с перекрытием.

    post-47461-1362562673_thumb.jpg

  7. Эй, уважаемый, полегче на поворотах! Особенно с фразой " не предназначены для ЦОС". В корне неверная фраза. Докажу в пять минут: вспомните старые добрые АОНы. Ничего, что там выполнялась фильтрация и DTMF-детектирование с помощью алгоритма Гёрцеля пусть и на отсчётах с сильно пониженной разрядностью (вплоть до 1р.). А ваш покорный слуга успешно упихал в ATmega прогу, которая реагировала на хлопок в ладоши (не на любой громкий звук, а именно на хлопок!). И ничего влезло и не плохо работало. Так что не надо маленьких-восьмиразрядненьких обижать.

     

    Насчёт "контроллер выбирается под задачу" верно, да не совсем, иначе тоже можно дойти до маразма. Знавал одного знакомого DSP'шника, которому подай обязательно плавающую запятую и программить он готов только с объектами в полном комфорте. В результате у чела ничего не получилось, он уволился, а в хитросплитении его классов мне теперь разбираться приходится :(

     

    Да, конечно, при желании можно и на 8-битных ЦОС делать, и компьютеры на лампах, и автомобиль из дерева и шкур животных... Раньше люди катались и радовались. Я надеюсь у вас не такое авто, а свой язвительный пост выписали не на ламповом компьюторе.

    Задача инженера заключается в оценке современной элементной базы и выбора оптимальных элементов по критериям цена/характеристики для выбранной задачи. Рассматривать 8-битные контроллеры для задач ЦОС, при том, что цена современных 32 и 16-битных контроллеров и DSP вплотную приблизилась к цене 8-битных, а потом еще 90% рабочего времени тратить на то, чтобы уместить алгоритм в эти 8 бит без потере качества это как минимум не профессионально. Тем более когда задача - распознование речи. Каждому контроллеру должно быть свое место.

  8. Вот возьмем ваш синус частотой 50 Гц и частотой дискретизации 100Гц, передискретизируем его в 1.5 раза, но результат будем рассматривать не как синус 50 Гц с fd=150, а как синус 33,33 Гц с fd=100. Тогда получится как-будто на вход АЦП попал синус сдвинутый доплером, при этом частота дискретизации та же самая.

  9. На гребенке 20ти БИХ фильтров работает. Но хочу как можно быстрее все делать по вычислениям. Вот и крутится вопрос в голове как минимизировать вычисления да еще для 8ми битного МК который не любит операции с плавающей точкой.

    А что вы привязались к 8-битному контроллеру? Только потому что вы его знаете, а другие нет? Всегда контроллер выбирается под задачу, а не наоборот! 8ми битные контроллеры не предназначены для ЦОС. А от треугольных окон вы собираетесь уходить, используя банк фильтров вместо БПФ? Это на работу алгоритма не скажется впоследствии?

     

    Смотрел Лайноса по полифазному FFT как я понял там также нужно расчитывать фильтры 20 штук для получения 20ти полос спектра-фильтрации не уверен что будет быстрее вышеприведенного метода. Да еще там сигнал как я понял должен быть длиннее в зависимости от числа каналов. При 20 или 30 полосах это существенно. При 5ти может и лучше полифазное FFT. Незнаю буду дальше копать.

    Какие 20 штук фильтров? Нужно рассчитать только одно окно, которое длиннее окна БПФ в целое число раз. Там не сигнал должен быть длиннее, а окно БПФ будет короче. Почитайте еще это http://www.dsplib.ru/content/polyphasefft/polyphase.html

     

  10. Может мне нужны просто названия алгоритмов или подходов которые позвволяют вычислить спектр. Ну например:

     

    1. Цифр фильтры.

    2. Преобразование Фурье.

    3. Вейвлеты

    4. CIC фильтры.

    5...

    и т.д.

    У вас немного не правильный ход мыслей. Вы в одну группу ставите цифровые фильтры, вейвлеты, Фурье и CIC… И к тому же сначала вы хотели методы фильтрации, потом вычисления спектра. Классификация должна делить на группы по определенным признакам, каждая группа в свою очередь делится на подгруппы и т.д. и т.п. Например, по типу сигнала фильтры делятся на: цифровой и аналоговый; по виду передаточной функции: эллиптические, Баттерворта, Чебышева… цифровые фильтры можно разделить на: рекурсивные и нерекурсивные и т.п. В данном случае определитесь, что вы хотите знать, тогда и вопрос будет благозвучный, и не будет вызывать отторжения. А приводить полный список всех фильтров, которые только бывает, никто не будет.

  11. Действительно, нашёл... но подключить нормально не смог, на вход ref подал вектор с координатами четырёх точек qpsk, на вход in - сигнал с приёмника, но среднее MER и EVM от того, на сколько созвездие развалено, не меняется... Что я делаю не так?

     

    Вас не смутило, что EVM было больше 100%? На ref нужно подавать исходный сигнал, поступающий на модулятор, а не константу. При этом внести задержку в эталонный сигнал, чтоб компенсировать задержку в тракте. В общем как-то так будет выглядеть my_BPSK_QPSK_QAM16_model_5_corrected.rar

  12. Цитата из мануала:

    "На плате предусмотрено два возможных способа программирования внутренней Flash памяти контроллера:

    1) через JTAG/SWD интерфейс, программное обеспечение зависит от используемого аппаратного отладчика-программатора...

    2) через RS232 интерфейс, к сожалению, программное обеспечение предоставляемое фирмой ST не позволяет воспользоваться автоматическим переводом в режим программирования и требуется самостоятельная сборка программатора..."

     

    Про USB ни слова. Если только Через преобразователь USB-UART...

  13. Spectrum Scope отлично работает с комплексными чслами, просто в настройках Spectrum type нужно поставить Two-sided (-Fs/2 ... Fs/2). Для измерения MER или EVM в Simulink есть блоки, которы так и называются. Хотя можно и самому накидать данные блочки, зная формулу.

  14. поставить а канал Phi(t) ФНЧ, и посмотреть, как изменяется, например, EVM на выходе модулятора от полосы пропускания ФНЧ.

    А разве фильтр на Phi(t) нужно ставить, я думал на Amp(t). У вас же DCDC именно амплитуду меняет...

  15. Вы думаете задача засинхронизировать 2 счетчика в разных независимых клоковых доменах с одинаковой частотой , нерешаема ?

    Решаема, просто ошибка будет всегда, как и у любой другой синхронизации. А вот большая ошибка или маленькая это уже зависит от реализации.

  16. Дело в том что генератор характеризуется не одним асбтрактным параметром как "стабильность". Есть точность настройки, есть долговременная нестабильность вызванная старением, есть нестабильность вызваная температурным перепадом и т. д., а есть еще фазовые шумы, которые характеризуют кратковременную нестабильность частоты. Следовательно для кратковременного случайного изменения частоты можно определить только границы её изменения. Хотя кратковременную нестабильность чаще характеризуют либо величеной джиттера, либо зависимостью фазовых шумов от частоты. Соответственно вы получаете разные результаты благодаря джитеру, ну и чем больше интервал работы без веншней синхронизации, тем больший вклад вносят другие медленно меняющиеся воздействия, напрмер температурное.

  17. Например метод подавления и восстановления огибающей (метод EER) предполагает наличие dcdc источника, с помощью которого восстанавливается огибающая сигнала (изменением напряжения на стоке транзистора выходного каскада усилителя). Для построения такого источника необходимо знать, как будет изменяться его нагрузка во времени (т.е., как будет изменяться огибающая). Для АМ выходное напряжение с такого источника полностью соответствует модулирующему сигналу, для ЧМ - просто постоянное напряжение и т.д... А как быть со сложными сигналами? Как узнать, каким быстродействие должен обладать такой источник?

     

    Так соберити простейшую модель какого-либо модулятора в симулинке, выделите огибающую и посмотрите. У PSK и QAM модуляции огибающая сильно скачет и может (не всегда) переходить через ноль. Сами прикиньте как должна измениться огибающая, при скачке фазы например на 180 градусов. Также скорость изменения огибающей зависит не только от вида модуляции, но и от применяемого сглаживания. В общем, собирайте модель, и сами все увидите. Это дело 5 минут.

  18. Оставлять их нет смысла, т. к. переключение между режимами осуществляется только путем подачи постоянного напряжения на вывод HP Sense, соответственно если наушники не нужны, то вывод заземляется и все выкидывается из схемы. Других назначений у данной цепочки нет

  19. У вашего фильтра слишком широкая полоса пропускания. Им разве что в 2 раза можно продецимировать или проинтерполировать, причем сигнал с полосой не больше +/-0,37 от частоты Найквиста (Fn). Фильтр должен иметь полосу пропускания такую, чтоб пролазил спектр сигнала, и обеспечивал нужное подавление на той частоте, где будет находиться копия сигнала (интерполяция) ну или то, что завернется на спектр сигнала (децимация). Т.е. в вашем случае для интерполяции в 8 раз полоса пропускания должна быть 10 кГц, а подавление начиная с частоты 41,25-10 = 31,25 кГц и выше. Замечу что частота дискретизации при расчете фильтра уже 330 кГц, а не 41.25. К тому же т. к. частота начала заграждения 31,25 кГц меньше частоты 8/5 Fn т.е. 33 кГц, то для децецимации в 5 раз дополнительная фильтрация не нужна. Во втором каскаде можно тоже обойтись одним фильтром, но подавление должно начинаться уже с частоты не выше 48 кГц-10 кГц=38 кГц, при частоте дискретизации (8/5 fs1)*8 = 528 кГц. И зачем такое большое подавление в 153 дБ??? По моему это перебор, хватит и 70 - 90 дБ. Кстати, использование fdatool в матлабе гораздо упрощает процедуру расчета фильтров. И не забывайте про полифазную реализацию фильтров, которая уменьшит вычислительные затраты

  20. Если это сработает, то можно попробовать сенсор сделать не в виде одиночного круга, а в виде круга внутри кольца, при этом кольцо заземлить. Тогда это будет эквивалентно последовательному включению конденсатора "кольцо - палец" и "палец - сенсор" и по идее это должно избавить от привязке к земле. Ну а если не будет работать, тогда тут не нужен вовсе механизм заряда, достаточно только снимать наводки с тела, как указывалось ранее.

×
×
  • Создать...