Speex был полностью портирован на stm32f1xx (Cortex-M3), по крайней мере встречал в сети исходники.
А зачем ее отлаживать?
А что не работает? Спрашивайте, может что-то подскажу. Я пару дней назад перенес прием телетайпа со старого трансивера в Неон, не смотря на экран 3.5" по сравнению со старым выглядит шикарно
Почитать прямо сейчас наверное не найду где, но фильтр очень простой. Считается автокорреляционная функция от входного сигнала, усредняется, накладывается окно и результат используется в качестве коэффициентов FIR фильтра. Когда-то очень давно нашел этот алгоритм в маленькой статье про алгоритмы для слуховых аппаратов. Потом как-то не попадался нигде, наверное потому, что CW фильтровать у него получается намного лучше.
Хорошо, подумаю как это сделать нагляднее. Сейчас попробую просто снять "картинку" АЧХ фильтра, принимая шума эфира. Учитывая, что у меня ДД по аудиовыходу больше 100дБ должно получиться. Да, все картинки пока будут без кварцевых фильтров, т.к. синтезатор в Неоне все еще "в процессе" - т.е. приемник будет работать, как "чистый" SDR.
Олег, что такое Speex?
Автокорелляционная функция считается так же во временном окне, т.е. постоянно смещается? Какая длина окна? Зачем ее усреднять если она и так как бы усредняется? Как ее связать с коэффициентами FIR? Или ее значение подается на линию задержки как в традиционном ALE или ANC с LMS?
Мне очень нравились по звучанию фильтры в DSP от K6STI (db217), которые были сделаны под Creative карты. Программа работала на основе прямого доступа к ресурсам платы. Тогда Winows еще не было. Можно было набрать кубиков из разных фильтров.
Потом были DSP в трансиверах и программные , все уже не то. DSP599+ со знаменитым призвуком "Звездных войн".
Карту Creative AWE32 берегу, как память , CW фильтр был в ней просто замечательный.
https://ru.wikipedia.org/wiki/Speex несколько постов ранее была инфа, что в этот кодек входит шумодав.
Да, считается 12тыс. раз в секунду.
Настраиваемая, для CW мне нравится 10..14мс, для SSB особо не экспериментировал - я SSB мало использую. По идее в SSB оптимально будет покороче.
Я может не совсем удачно выразился. Имел ввиду, что время усреднения (интегрирования, оценки) влияет на работу фильтра, оно сделано настраиваемым.
В смысле? Я ж вроде написал - помножили на окно и получили коэффициенты.
Так выложили бы кусочек "эталона"
Добавлено через 35 минут(ы):
Вот еще у меня вопрос возник, а кто-нибудь когда-нибудь получал положительный результат от использования менее "прямоугольных" фильтров в реальном эфире?
Последний раз редактировалось UR3IQO; 28.10.2015 в 22:24.
Олег, если не сложно можете структуру нарисовать? Есть где-то недопонимание. Под окном я понимаю по сути задержку. Для этой задержки вычисляется АКФ. Окно постоянно смещается по принципу FILO. А вот что нужно умножить на окно, чтобы получить коэффициенты? Рисунок прояснил бы картину.
Добавлено через 8 минут(ы):
От использования фильтров с плохой прямоугольностью получал только отрицательные эмоции. Иногда работаю на коллективке на ic756 с dsp. Это просто ужас. Соседние станции мешают нормальной работе, причем нормально PBT не отстроишься- не помогает. Это в SSB.
В CW на мой взгляд сильная прямоугольность не очень нужна т.к. для узких фильтров приводит к сложности настройки на станцию.
Последний раз редактировалось rx9cim; 28.10.2015 в 22:35.
Понял, мы про разные окна Смотрите, "заготовку" для коэффициентов получили (оценка АКФ), дальше делаем также, как при расчете "windowed-sinc" FIR фильтров - т.е. умножаем "заготовку" на оконную функцию (у нас получится половина фильтра, но другая такая же, так что это не проблема).
Рисунок смогу только завтра, но думаю разобрались о каких окнах речь .Рисунок прояснил бы картину.
Вот и я тоже, хотя везде модно делать этот параметр настраиваемым. Даже у себя в новом аппарате сделал (поддался моде ), а теперь не знаю зачем - только память жрет Наверное снесу...
Для SSB лучше оставить хорошую прямоугольность. Кстати обработку в частотной области не рассматривали? Или проблемы с объемом памяти? Хотя с вашим процом это пожалуй не очень актуально т.к. он мощный.
Теперь про фильтр - тут без структуры как без 0,5 литра поскольку возникло множество вопросов, но пока подожду рисунка, не все понял.
Кстати статья была русская или английская?
Выложу вечером исходники RTTY, нет понимания почему не работает.
Про отработку фильтров на матмодели - многие матмодели это некая абстрактность которая иногда не имеет отношения к реальной жизни. Отрабатывать все гораздо проще в реальном эфире. Я например так выбирал себе оконную функцию для БПФ. Остановился на окне Блэкмана-Харриса. Смотрел по прямоугольности фильтра и приятности звучания. Со многими другими окнами слушать сигнал было не очень приятно- прямоугольность есть, но сам звук утомляет.
RX9CIM, файл отправил.
UR3IQO, експериментировал с фильтрами с различными коффициентами прямоугольности. Не вижу смысла делать этот параметр настраиваемым. В CW ползуюсь фильтрами Gauss to -12dB, в SSB Windowed Sync, окно Кайзер-Бессел. Все FIR, в временной области. Использую набор фильтров с разными полосами, с приблизительно одинаковыми коеффициентами прямоугольности, около 1.15 6dB/60dB.
Затухание вне полосы - 110 до 120дБ. Децимация до 12ks/s в SSB, до 4ks/s в CW. Все целочисленное, филтры короткие. В SSB - 127 коеффициентов, в CW - нужно посмотреть, но ЕМНИП приблизительно как в SSB.
Последний раз редактировалось LZ1AO; 29.10.2015 в 13:47.
Еще до стадии имплементации алгоритма есть смысл прогнать его на более высоком уровне, скажем в Матлабе, где проще покрутить его параметры. Тут же для целей повторяемости тестов есть смысл подумать о записях в виде I/Q файлов или просто оцифрованной ПЧ, на которых все это сравнивать. Хотя, "подогнать по месту напильником" - это "по-нашему, по-бразильски", поддерживаю
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)