24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!
Цифровой сигнал — представление какого-либо процесса последовательностью дискретных отсчётов. Отсчёт — число, показывающее уровень сигнала в выбранной точке.
Цифровая обработка сигналов — математическая магия, которая позволяет через умножение и сложение отсчётов производить операции над сигналом (поднять уровень низких частот, демодулировать, убрать помехи, построить трёхмерное томографическое изображение мозга по набору рентгеновских снимков и так далее).
Что почитать для начинающих: Юкио Сато, "Без паники! Цифровая обработка сигналов"
Что почитать дальше: Оппенгейм, Шафер, "Цифровая обработка сигналов" (классика, учебник MIT) Сергиенко, "Цифровая обработка сигналов" (хорошее изложение и руководство по Matlab)
Дальше дерево скиллов начинает сильно ветвиться, так что спрашивай советов по конкретным направлениям в треде.
Что почитать по цифровой схемотехнике тем, кто интересуется реализацией ЦОС на ПЛИС: David Harris, Sarah Harris, "Digital Design and Computer Architecture"
Сап, фильтрач. Дело в том, что есть один КИХ-фильтор, который я написал на Verilog. С помощью него нужно преобразовать сигнал с PDM-микрофона в PCM формат. Однако, т. к. я ньюфаг, то скорее всего где-то накосячил. Поэтому мой фильтр работает очень говёно (см. видиорилейтед). Чтобы выяснить, что не так, я хочу построить импульсную характеристику получившегося фильтра, а затем и частотную. Как посоветуешь это сделать для альтеровской ПЛИСины? INB4: Ололо, диванон по отражению в езернет разъеме.
>>139426 красава, да! ты, сука, вручную писал ких? не стоит, можно накосячить очень просто, тем более если ты ньюфажина. сделай ких в матлабе, посмотри срезы на грахфике, сгенерируй хдл и попробуй в нём покапаться. добра тебе, плисо-кун.
>>139432 Вероятно, этот вопрос стоило задать в плисотреде. Какой сигнал нужно подать на фильтр понятно. Меня больше интересует, с помощью каких инструментов возможно провести эти измерения на реальном железе. Спрошу у плисоанонов, а сюда принесу результаты замеров.
>а я ссаный теоретик Зато ты ясно понимаешь процессы происходящие в дсп-системах, а не как слепой котенок натыкаешься на препятствия.
>>139467 >ты, сука, вручную писал ких? Если ты о самой структуре фильтра, то да. Стандартная реализация мне не подходит, т. к. она не использует возможности камня. Например, я разместил коэффициенты в блоках встроенной памяти и учел симметричность фильтра. Плюс, запилил некотурую оптимизацию в виду того, что фильтр децимирующий и нет необходимости выдавать сигнал на каждый входной отсчет. Что касается самих коэффициентов, то они залиты в память через конфиг файлы не ебашить же 1.5к коэффициентов вручную, лол и ошибка в них исключена.
>сделай ких в матлабе Сам фильтр рассчитан в матлабе, как и полагается.
>>139494 Сделай простенький конечный автомат, которой сгенерирует единичный импульс, некоторое количество нулевых отсчётов и остановится (и остановит передачу результата).
Поскольку для снятия характеристики тебе необязательно в реальном времени обрабатывать единичный импульс, то сделай UART. Тактовый сигнал фильтра (и генератора входной последовательности) выдавай синхронно с работой уарта. Подал синхроимпульс на генератор и фильтр — фильтр считал вход с генератора и выдал результат. Уарт переслал это дело на комп. После завершения передачи подавай следующий импульс. И так пока конечный автомат не скажет, что хватит.
>>139500 Отличная идея. Так и поступлю. Вот только уарт пилить лень. Помню, биткоин майнер на моей борде работал пользуясь только усб кабелем идущим к программатору. Не знаешь, случайно, что за способ обмена мог там использоваться?
>>139505 Я хз, но с очень большой вероятностью предполагаю, что там встроенный преобразователь USB-UART на FT232RL или CP210x.
То есть на борде ты видишь идущие к нему сигналы RX и TX, а на компе он определяется как виртуальный com-порт, который можно открыть в эмуляторе терминала. Чтобы на него пересылать инфу, UART всё равно придётся запилить, но ничего проще, чем UART, ты всё равно не сделаешь.
>>139508 Не, там все-таки, вероятно, какой-то свой отладочный канал запилен, т. к. в майнере не было выбора ком-порта. Ну и пикрилейтед говорит об отсутствии эмулятора. Попробую найти на гитхабе проект и посмотреть, что там у них.
>>139512 >Попробую найти на гитхабе проект и посмотреть, что там у них. Лучше сразу иди на альтеровский форум, вокруг этих дев борд целое комьюнити сформировано, там точно помогут. Или любой другой англоязычный, форум/irc чат по плисам.
>>139512 Да, похоже, у этой борды действительно нет USB-UART и придётся позаниматься любовью, пичалька. Вот поэтому себе я взял борду, у которой он есть.
>>139516 Там есть православный RS-232. Вот только у меня его нет, лол. Алсоу, где-то валялся китайский усб-уарт. Но я все-таки хочу попробовать через отладчик сделать. Выяснил, что в майнере использован JTAG IP Core залитый в плис, а на пекарне TCL скрипт.
В общем, запилил скрипт, который тактирует фильтр минут 50 ждать результата придется, из-за того, что тормознутый скрипт не может генерить более быстрый тактовый сигнал и подает на него входной сигнал. Все это происходит через отладчик. Один только неясный момент есть. Фильтр принимает на вход либо 1, либо 0 - т. е. максимальный и минимальный уровни сигнала. Как в таком случае запиливать единичный импульс? Пока сделал так: 110101010101....
>>139586 Но лог. "1" - это "Х", а лог. 0 - это "-Х". Если сделать, как ты говоришь, то получится дельта-функция, за котрой следует функция Хевисайда со знаком минус. Разве нет?
>>139592 Зависит от начальных состояний в фильтре, на самом деле. Если в его элементах задержки после резета нули, то лучше делать так, как я написал. Это тоже даст импульсную характеристику, просто удвоенную по амплитуде. Подавая на неициализированный фильтр 010101, ты тоже подаёшь по сути ступеньку (величиной в половину максимальной амплитуды). Если хочешь сделать импульс "честно", как он в идеале выглядит в PDM, то лучше перед его подачей прогнать последовательность 010101(...) длиной с импульсную характеристику, чтобы инициализировать память в фильтре на нулевой уровень.
>>139597 Произвел "честные" измерения. Результат пикрилейтед. Т. к. фильтр децимирующий, то снято всего 48 точек вместо 3072 и запилена интерполяция. В общем, какая-то хуйня получилась. Завтра буду осмыслять и исправлять код. Помогай, анон, если сразу видишь в чем тут дело.
>>139664 Тебе сильно помогло бы помоделить на логическом уровне, при помощи тестбенчей. Но раз ты используешь не только чистую логику, но и специализированные устройства на самом кристалле, то с этим, насколько я понимаю, проблемы, да.
>>139664 >А разве моделсим может в IP-блоки? Не знаю, как это устроено в Альтере, но поидее должно быть возможным прикрутить моделсим к Альтеровскому САПРу (Квартус или че там у них), после чего, запуская моделсим из САПРа, компилятся библиотеки корок и все норм моделится. По крайней мере у Зайлинксов так.
Понял в чем ошибка. Последовательность 010101... не является строго нулевым сигналом и соответствует близкому к нулю значению на выходе фильтра, равному некому А. Тогда получается 101010... это -А. И при подаче сигнала 010101101010 на вход фильтра получилась не импульсная, а передаточная характеристика. Для получения пикрилейтед, я подал на фильтр 010101110101. Получилось немного похоже на оригинал. Но пока не понятно, почему фильтр такой говеный.
>>139667 >>139676 Попробую потыкать этот ваш моделсим в следующий раз. Пока с задачей неплохо справляется встраиваемый отладчик.
Смотри, анон, чего удалось получить, после разгребания моего говнокода. На первой пикче интерполированная характеристика снятая с фильтра, на второй то, что получилось в результате расчета. Алсо, светодиодики все-равно не мигают как надо. Подозреваю, что дело в неправильном снятии сигнала с микрофона.
>>139744 Уже наладил его, анончик. Но если тебя интересует реализация, то могу залить куда-нибудь.
>>138868 Не смотря на хорошую характеристику фильтра, чувствительность микрофона так и не стала лучше. Может есть еще какие-то особенности работы с PDM микрофоном?
Похоже виновата постоянная состовляющая - из-за нее приходится сильнее масштабировать сигнал и полезную его часть видно хуже. Научите меня, как сделать обрезатор постоянки, посоны. Пока я сделал единичное звено с интегратором в цепи отрицательной обратной связи. Интегратор выполнил, как цепь из элементов задержки с сумматором значений в этих элементах, а от полученного результата взял часть старших бит - получается как бы деление на количество суммируемых элементов (если их количество равно степени двойки). Это немного помогло, но все-равно чувствительнось слабовата. Может можно как-то более качественно отфильтровать постоянку?
>>140337 >Дискретный оператор Лапласа. Чего-то не работает он у меня. Первого порядка ведь достаточно? Алсо, он же будет поганить сигнал в полосе пропускания.
>>140363 Это ведь одна секция IIR-фильтра. Тогда уж лучше его сразу. Он почти готовый есть.
Раз уж ты тут, анон, скажи, что лучше: high-pass IIR + low-pass IIR или IIR bandpass?
[1 -2 1] это второй порядок же. Полосу пропускания он пидорасит, да. Просто первое, что на ум пришло. И достаточное, чтобы проверить твою идею насчёт постоянки.
>анон, скажи, что лучше
Если суммарный порядок одинаковый, то разницы никакой. Раздельные фильтры проще будет проверить, делают ли они то, что от них требуется.
>>140363 >>140384 Нет, анончик. Все эти штуки только немного улучшают ситуацию. Даже хороший IIR снял с него импульсную характеристику - 10 из 10 ГОСПАДИ 10 из 10 дает лишь небольшое улучшение. Вероятно в выходном сигнале присутствует шум. Вот только откуда ему взяться, если характеристика FIR-фильтра почти полностью соответствует расчетной?
Допустим у нас есть сигнал с SNR = x. Этот сигнал последовательно проходит через блоки, у которых SNR = y и z. Чему будет равен результирующий SNR сигнала?
>>140571 Ну хз, я же ньюфаг. Он например может вносить шум уменьшая длинну слова. Вот есть у нас некий аналоговый сигнал с SNR 90dB. Мы его оцифровываем с разрешением 24 бита. В 24 битном сигнале, максимальный SNR 144.49 dB. Что будет с сигналом в таком случае? Его SNR так и останется 90 или шум квантизации его как-то ухудшит?
>>140584 Переводишь децибеллы в мощность (принимая уровень 0дБ за единичную мощность), складываешь (считаем, что шумы некоррелированы), переводишь суммарную мощность обратно в децибеллы.
Это опять я, анончики. Дело в том, что у меня есть текстовый(!) файл, в котором 1024102416 семплов однобитного PDM сигнала. Записал я его для того, чтобы посмотреть на его спектр и выяснить откуда берется шум в моей системе. Дак вот, чем бы мне его обработать? Матлаб от такого вешается и выдает ошибки о нехватке памяти.
>>141230 Каждая строчка - это байт, в котором биты заполнялись последовательно во времени сигналом с микрофона от LSB до MSB. http://rghost.ru/58356501
>>141232 X = textread('_sram.txt','%s','delimiter','\n'); Xb = hexToBinaryVector(X); Xbf = fliplr(Xb); выстраиваем в правильном порядке биты Xbft = Xbf'; Xv = Xbft(:); Xvd = +Xv; переводим из Logic в Double size(Xvd)
ans =
16777216 1
За минуту отрабатывает где-то. Matlab R2013b в прыщах под вайном.
>>141240 ГОСПАДИ, да ты просто бог матлаба у меня все было на циклах оче тормозило. Смотри чего получилось. Очень похоже на присутствие 1 кГц, который звучал во время записи семпла. Только почему то не видно такого распределения шума, какое рисовали в книжках.
Привет, анон. Это снова я. Появилось немного времени, чтобы позаниматься микрофоном. В общем суть такова. Всю малину портит шум. Я записал сигнал 1 кГц поданный на микрофон, но на этот раз через фильтр в прошлый раз был 1-битный сигнал напрямую с микрофона, если помнишь. Вот что получилось. Может по форме спектра этого шума можно определить его причину? Первые две пикчи - спектр с разным масштабом, третий - кусок сигнала во временной области. Фильтр использую КИХ 2047-порядка, с 16-битными коэффициентами, с ослаблнием сигнала на примерно 80 дБ вне области пропускания и частотой среза 15 кГц. Выручай, анон.
>>145264 Не пробовал это делать. Мне анон скидывл скрипт для обработки однобитного сигнала, там вроде норм было. Но он делал это через урезание точек в частотной области. Надо попробовать через фильтор близкий к реальному.
>>145226 >Оцифровка неправильная Микрофон же ее производит, я тут не причем. Разве что сигнал с него неправильно беру и просираю часть отсчетов. Тогда получилась бы как бы децимация без фильтра. Надо проверить еще раз код. Может проблема в этом.
>>145279 >Надо попробовать через фильтор близкий к реальному. Ну так попробуй, что ж ты ждёшь? Благо, когда сигнал есть и коэффициенты фильтра есть, это делается в матлабе одной строчкой. Поймёшь, по крайней мере, ошибка ли у тебя в алгоритме обработки или в его реализации.
Да не с микрофоном хуета, а с оцифровкой. Какие-то биты не туда пишутся. Старшими синус более-менее рисуется, а в младших мусор. С этим разбирайся. Вот жеж программисты, блин. Что угодно будут винить, железо, маму, аллаха - только не свою криворукость.
>>145308 Хотя вообще-то даже с неправильными коэффициентами КИХ-фильтрация - это линейная процедура, она по определению не может срать гармониками™. Так что да, либо микрофон, либо (кстати) твой источник звука.
>>145344 Итак понятно, что останутся. Вот спектр оригинального PDM-сигнала. Есть мысль, что я убил микрофон, второй по счету, блеать! пока выпаивал его из платы феном, и сенсор просто напросто "заклинило", в следствии чего он потерял чувствительность. Хрен поймешь эти ваши MEMS-технологии. Алсо, в даташите про допустимые температуры ничего нет.
>>145351 Я лучше запишу тишину этим микрофоном и запощу сюда ее спектр. Так мы все и узнаем. Только займет больше часа я ньюфаг и не знаю, как быстро сливать содержимое рам с отладочной платы на комп
>>138868 Котаны, посоветуйте алгоритм определения основной частоты (первой гармоники). Слышал, что это делается через автокореляцию, даже нашел одно упоминание в этом посте на форуме: http://electronix.ru/forum/index.php?s=&showtopic=11590&view=findpost&p=78932 Но что он имел ввиду под этим: "Находится максимум автокорреляции. Он и соответствует периоду." Так и не понял.
>>145872 Сигнал слегка зашумленный, шум высокочастотный очень. Искомый сигнал 100 Гц. Попробовал такой алгоритм: ФНЧ (fсреза 100 Гц) -> Децимация -> БПФ -> поиск максимального пика Получилось так, что в отсутствии искомого сигнала получаю огромный пик на нулевой гармонике. Когда есть сигнал, то максимум там где надо. Подводные камни такого алгоритма?
>>145874 >Подводные камни такого алгоритма? Он покажет тебе не основную частоту исходного сигнала, а максимальную проекцию исходного сигнала на базис Фурье. Базис Фурье состоит из строго определённого ряда частот (1/T, 2/T, 3/T и так далее), если твой сигнал не совпадает с одной из них, ты получишь ошибочное значение. Если это ни о чём тебе не говорит, то представь себе, что тебе надо определить направление вектора по трём координатам. Ты выбираешь самую большую координату и говоришь "вот оно, направление".
>>145872 >Но что он имел ввиду под этим: (...) Так и не понял. АКФ - это функция от той же переменной, что и сигнал (в твоём случае от времени t). Находишь АКФ в виде функции r(t), ищешь максимум. Значение времени t в этой точке и есть длина периода исходного сигнала. Из неё ты находишь частоту. Только учти, что вообще-то максимум АКФ всегда находится в нуле (потому что функция идеально похожа сама на себя, если она не сдвинута). Так что ищи максимум АКФ за исключением t=0.
>>145889 О! Спасибо, бро. Построил в матлабе АКФ: [code] figure; plot(signal); title('Исходный сигнал'); corr = autocorr(signal, length(signal)-1); figure; plot(corr); title('АКФ'); [/code] И тут становится непонятно: если я выброшу нулевой отсчет АКФ, то это же ничего не поменяет. Как быть?
>>145894 >если я выброшу нулевой отсчет АКФ, то это же ничего не поменяет. Как быть? Ты имеешь в виду, что максимум всё равно останется в районе центрального пика? Я думаю, ты догадался, что тебе надо как-то принудительно натравить алгоритм нахождения максимума на второй по счёту пик, а не на центральный (относительно t=0). Попробуй какой-нибудь алгоритмический костыль. Например, начни в t=0, перебирай отсчёты до тех пор, пока значение снижается. Как только оно начало снова расти, начинай искать максимум.
>>145895 Либо, кстати, если диапазон полезного сигнала извесен, то начинай его искать с t=T_min, то есть с минимального периода, соответствующего самому высокочастотному возможному сигналу. Это заодно поможет не зависеть от помех, потому что если они сильные, то могут поднасрать в АКФ в районе t=0 и сбить алгоритм поиска. Имей ещё в виду, что когда ты будешь вычислять АКФ не по пяти периодам, а по более долгим кускам, то пики будут значительно тоньше и отчётливее.
>>145897 Покрутил амплитуду входного сигнала - на результат не повлияло. Это же здорово, можно взять какой-нибудь порог типа 0.6 и если получится больше, чем N пересечений, то у нас есть сигнал, частоту которого может точно измерить :3
>>148684 Аналогично, это не часть АЦП, а преобразователь ДСМ в ИКМ, при чем тут полноценность? ДСМ ни чуть не менее полноценный способ кодирования, чем Мкм.
>>148767 Дело не в полноценности модуляции, а полноценности АЦП, как устройства. Почти все дельта-сигма АЦП выдают ИКМ на выходе и иногда ДСМ, как бонус. Алсо, ДСМ неполноценна пока еще, т. к. до сих пор не существует годных алгоритмов обработки такого сигнала без преобразования в ИКМ
>>138868 Котаны, у меня к вам вопрос. Интерполировать сигнал (увеличить частоту дискретизации) можно в целое или дробное число раз. Последовательность действий такова: [Повысили fд0 в L раз] -> [ФНЧ Tc=T0/L] -> [ФНЧ Tc=T0/M] -> [Понизили в M раз] В итоге получим сигнал с частотой дискретизации fд = fд0 L/M Почему ни в коем случае нельзя поменять местами порядок действий, т.е. сначала децимация, потом интерполяцию?
>>148869 >сначала децимация В этом случае ты потеряешь нахуй все частоты выше найквистовой (которая в процессе децимации у тебя снизится в M раз от исходного сигнала). Причём если ты их предварительно не отфильтруешь, то получишь наложение спектров (алиасинг).
>>150478 "корелляция" означает похожесть. Высококореллированный, соответственно - похожий на некий образцовый. Белый шум - не кореллирует ни с чем. Прямоугольник - кореллирует с прямоугольником той же частоты.
>>150478 Я этот термин видел в теории информации и кодирования, там это означало предсказуемость следующего отсчёта сигнала по его предыдущим. Если сигнал случаен, каждый его отсчёт вообще не зависит от предыдущих. Если высококоррелирован, то его можно с определённой точностью предсказывать при помощи алгоритмов. Такую предсказуемость показывает автокорреляционная функция, для слабокоррелированного сигнала она очень быстро уходит в ноль в хвостах.
>>150548 >2014 >почти 2015 >не знать английского У меня к тебе только один вопрос - а как ты даташиты на ПЛИСы читать собрался?
>>150659 Оцифровка даёт задержку T/2 (11 микросекунд). Сколько-то дадут всякие буферы внутри АЦП и ЦАП, но немного. Всё остальное целиком в твоих руках. Можно целиком повторить аналоговую обработку цифровыми методами (если сделаешь модель), задержка будет такая же, как в аналоге. Никто не заставляет копить отсчёты и пакетами обрабатывать, можно и на лету это делать.
>>151639 И тебя ОПушка с Новым годом. Спасибо, что создал и поддерживаешь годный тред и отвечаешь на наши вопросы. постоянный задаватель вопросов и читатель уютного цос-тредика
Коллеги! Прошу опа приложить книгу по ЦОС, которая, имхо, просто необходимо читать всем новичкам и тем, кого ЦОСа не было в процессе обучения (или даже был) -
Чрезвычайно полезная книга, рассматриваются подброно и на пальцах вопросы дискретизации, квадратурного представления сигналов, фильтрации, преобразования частоты дискретизации и спектра.
Самая любимая глава - про хитрости и трюки в ЦОС. КАк сказал мой руководитель - мне бы такую книжку лет 30 назад.
>>155410 >>155409 Спасибо! Заранее извиняюсь за глупые вопросы, т. к. не спец в ЦОС (вообще не спец), но разобраться хочу. Вот в 90-е были популярны радиомодемы. Пакетная связь, X25 там и прочие Амторы-Ситоры. Так там в качестве физического уровня передачи данных использовался радиотракт КВ-трансивера, у которого полоса пропускания в районе 100-3000 Гц и сигнал уже модулированный, т. е. подключение велось прямо к тангенте. Таким образом получается, что тут на лицо двойное преобразование сигнала? Сначала модем преобразует цифровой сигнал в аналоговый, предназначенный для передачи по аналоговому каналу (это манипулирование и есть?), а потом идет модулирование (?) созданного сигнала, скажем в АМ (чаще конечно использовали SSB, что не есть модулирование, а скорее просто перенос участка звукового спектра в ВЧ область)? Кака тут грамотнее терминологию применить? Что есть что?
>>141225 Сначала переведи этот файл в PCM, то есть простенькая прога, которая из исходного файла вычитывает по одному битуне проеби правильную последовательность!, а в выходной файл пишет например 16-битное число так: если на входе 1, то 32767, если 0, то -32767. На выходе у тебя получится RAW PCM файл. Далее можно взять прогу для обработки аудио, например Sound Forge и открыть её полученный файл как RAW PCM, с выбором соответствующего формата, например Signed 16-bit mono. А там уже можешь слушать, смотреть спектр, применять фильтры
>>155432 >чаще конечно использовали SSB, что не есть модулирование, а скорее просто перенос участка звукового спектра в ВЧ область Почему же, это тоже модуляция высокочастотного сигнала низкочастотным. Модуляция - умножение синусоиды на сигнал. Если умножение выполняется в аналоговом виде, то это аналоговая модуляция. Если в цифровом - цифровая модуляция (или манипуляция, если угодно). Если и там и там, то и та и та.
>>155432 Тебе с терминологией надо с самого начала разбираться. Начать с того, что такое аналоговый, что такое дискретный и что такое цифровой сигнал (дискретный по времени и амплитуде).
Дальше. Манипуляция — это модуляция несущей дискретным сигналом, то есть сигналом, который принимает строго определённое число значений (например, однобитный принимает 2 значения, восьмибитный принимает 256 и так далее). Так что да, модуляция при помощи цифрового сигнала — это по определению манипуляция. Как и модуляция, манипуляция может быть амплитудной, частотной, фазовой и так далее, разница только в модулирующем сигнале, который является дискретным.
SSB — это вполне себе модуляция. По-русски оно так и называется — "однополосная модуляция", разновидность амплитудной модуляции. Несущая частота у неё тоже есть, вот это расстояние, на которое спектр переносится — это несущая частота.
>>155438 >Если умножение выполняется в аналоговом виде, то это аналоговая модуляция. Нет, неверно. Манипуляция может производиться в аналоговом виде, но модулирующий сигнал должен принимать конечное число значений.
>>155448 >модулирующий сигнал должен принимать конечное число значений Типа аналоговый сигнал должен принимать конечное число значений? Ловите наркомана!
>>155500 В чём проблема? Представь, что у тебя есть сигнал типа многоуровневой ШИМ (красная линия на пике). Подаёшь его на смеситель, получаешь манипуляцию
>>155874 Извлеку ли я для себя что нибудь нужное в области ЦОС после ее прочтения? Ну если уровень знаний то только начал разбираться в ЦОС, мат на уровне университетского курса.
>>155924 Если нужен ЦОС читай книжки по ЦОС. Могу сказать, мало того, что у ЦОС много особенностей по сравнениюс теорией непрерывных сигналов, так ещё и по ЦОС книжки написаны в целом лучше, чем Баскаков, человечнее и понятнее. У Баскакова махровое формальное изложение, никакого объяснения на пальцах в троднопонимаемых местах, ну ты понел, типичный отечественный академический учебник, задача которого показать студенту, что он дебил, а задача обучающегося по нему студента сдать предмет и забыть как страшный сон. Из этих студентов лишь пара станет специалистами (вопреки изнасилованию их отечественной системой образования), а стране чтобы клепать радары для танчиков, больше и не надо.
>>155981 короче нахуй не нужен? Просто у меня тут валяется, я полистал формулы какие то букв много, слова заумные. Только вот нахуй надо все это немного недопонял.
>>155988 Ну, начать надо с того, что там говорят о непрерывных сигналах, аналоговых. И хотя у аналоговых и цифровых сигналов есть схожие вещи в плане матана, на практике методы для их обработки используются совершенно разные.
Привет, анон. Помнишь меня? Я тот кун, который пытался разобраться с фильтром для PDM-микрофона. Дак вот, я таки разобрался. Дело было вовсе не мертвом микрофоне, а в неправильно написанном фильторе. На этой неделе я взял себя в руки и наконец-то отладил его в симуляторе. Если интересно, то характеристики получились следующие:
Задержки: входной сигнал захватывается каждые 8 тактов, выходной вылезает каждые 8*64 (децимация 64 типо) Порядок: 3072 (можно запилить любой кратный 512 без потери производительности) Кол-во каналов: до 18 (после 18 будет жрать больше памяти) Размеры: 657 LE + 58386 бит памяти (при компиляции одноканального фильтра)
Хочу сказать тебе большой спасибо за помощь, анончик. Без твоих мудрых советов, я бы не знал в какую сторону двигаться и в каких местах искать ошибки. Ты молодец.
Абу, какого хера размер WEBM ограничен пятью мегабайтами? Школота в вебм-тредах по 50Мб видосы заливает, а правильные посоны в /ra/ вынуждены жать свои ролики до неприличных размеров. Спасибо тебе, сука.
Анон, а что за окно такое Magnitude Response Estimate в FDATool? В справке про него ничего нет. Неужели это реальная АЧХ фильтра? Я то думал, она как на первом пике будет, а реальная она, как на втором? Что за хуйня? Я понимаю, что квантизация коэффициентов вносит ошибку, но ведь АЧХ для флоатпоинта тоже на вид, как земля.
>>161648 MRE делается пропусканием через фильтр синтезированного белого шума. По дефолту там берется не очень много точек тестового сигнала, можешь после первого запуска MRE зайти в Analysis → Analysis Parameters и поставить побольше.
>>161786 >делается пропусканием через фильтр синтезированного белого шума Вот спасибо, анон. А я то думал, чего у меня IIR фильтр то нормально выглядит, то разваливается при абсолютно тех же параметрах. А тут оказывается случайный входной сигнал замешан.
Алсо, можешь ли посоветовать структуру для IIR фильтра с минимальной чувствительностью к ограниченной разрядности переменных? Пока остановился на Direct-Form I. Может есть что-то лучше? INB4: плисоебы не могут во флоатпоинт
>>161969 Я, честно говоря, хз, какие формулы для синтеза фильтров меньше чувствительны к погрешностям округления, но я очень рекомендую, если ты ещё этого не сделал, во всех местах, где у тебя происходит округление (во всех перемножителях, короче говоря), сделать дитеринг. Устойчивость фильтра повысится, а с ней и характеристики.
>>166474 Рост можно связать с АЧХ твоего приемника. Понятно что он будет валится с низов и с верхов, возрастая к середине. А вот резонансные пики - с чем они связаны?
>>166499 Там АЧХ приёмника ирает роль в первом проценте полосы. Всё остальное — шум квантования. Его специально формируют так, чтобы он был поменьше в полосе полезного сигнала и побольше там, где полезного сигнала нет (остальные 99% полосы). Потому он и растёт. Эта магия называется "дельта-сигма-модуляция".
>>166512 Не заметил у тебя в шкале множитель 10^5. Тогда у тебя шума меньше как раз где-то в области 10000Гц что соответствует некому звуковому сигналу. Вообще зашел мимокрокодилом, но сейчас почитал про ДСМ и проникся. Такой спектр шума дает сама схема и вообще сдвиг спектра зависит от количества интеграторов. Но откуда пики?
>>166611 Анончик >>166474 объяснил же — часть отчётов у него проёбана. Причём проёбана равномерно. что вполне может быть причиной гармоник. >зашел мимокрокодилом, но сейчас почитал про ДСМ и проникся Да, у нас тут тепло и лампово. К слову, обнаружил dsp.stackexchange.com , теперь тоже посиживаю там, в ламповой атмосфере фильтров Калмана и Фурье-преобразований.
Раз вам интересно, то вот спектр нормально обработанного сигнала, снятого с реального PDM микрофона. Зеленым выделена частота в 2 кГц, которую я пищал телефоном во время записи.
Бамп лучшему треду на борде. Куда подаваться, если есть знания вот этих ваших Фурье, цос, матлаба, маткада? Пока в радиолокации работаю, немного с этим связан, но работа может вскоре закончиться и нужно будет что-то новое искать. Душа лежит к цос.
>>171342 Попробуй сунуться к этим чувакам — https://www.linux.org.ru/forum/job/11579945 Сам мечтаю о такой работе, чтобы чистый ЦОС, без примесей в виде ебли со схемотехникой (пусть ей занимаются те, кого прёт от всех этих CANов, эзернетов и прочего чтения пятисотстраничных даташитов), но уже нацелился на другую контору. :3
Кстати, раз ты спец по радарам — можно я тут немного протеку из /po/, лол? Скажи, как по-твоему, мог ли Бук М1 в автономном режиме засечь Боинг 777 на высоте 10 км и на какой дистанции? Почему у Бука М2 с фазированной решёткой дальность обнаружения указана 20 км, а у М1 с обычной РЛС порядка 80-ти? Фазированные решётки на меньшей дистанции работают? А какая дальность обнаружения реально нужна для таких установок?
>>174301 Так не взлетит. Кидай сюда всю инфу и пиши "ололо ньюфаги не могут в обнаружение мелких объектов", тебе напишут сроки и прайс если хоть кто-то умеет, лол.
Сосоны, нужно ваше мнение и совет. Есть Cortex M0, есть датчик с аналоговым выходом, выход идет на ацп микроконтроллера. MCU преобразовывает данные с датчика в цифровую форму и на основе его формы/длительности/etc считаются разные интересные плюшки. Пока собираешь на коленке макетку и крутишь мк все время в run-режиме все ок - успеваешь считывать данные, преобразовывать, etc. Но начал продумывать как все это должно быть, что называется, в реальности, с соблюдением power-бюджета и понял, что нужно делать так, чтобы мк спал все время, пока полезного сигнала с датчика нет. Но тогда не понятно когда должен просыпаться мк - если делать по внешнему прерыванию (допустим сигнал с датчика превысил порог), то теряешь большую часть информации. Так как в тот момент, когда напряжение превысило некоторый порог, основная часть сигнала уже "ушла". Если просыпаться раз в милисекунду - то тоже плохое решение, во-первых можно опередить или проспать момент снятия сигнала, во-вторых датчик может раз в 5 лет реагировать, а может раз в микросекунду и заранее это неизвестно. Хочу услышать ваше мнение, как выйти из тупика, у вас-то опыта в таких делах наверное побольше чем у меня. Спасибо!
>>174696 Нема, иначе проблема решилась бы тривиально. По сути я сам программно генерирую синхровыход на одну из ножек микроконтроллера по результатам анализа сигнала.
>>174700 Опуская вопросы цены, площади и прочего просто напомню, что таким образом задержка перед приходом сигнала и его обработкой только увеличится.
В общем пока хуй знает, что делать. Буду экспериментировать с низкоскоростными режимами работы и засыпанием, активно управлять периферией, отрубая ее до востребования.
Есть ли какие-то алгоритмы, чтобы убрать влияние АРУ на сигнал? АРУ реагирует не особо быстро, можно заметить как спадает амплитуда сигнала при его превышении выше некоторого уровня.
>>175589 Готовых не знаю. Теоретически решить задачу можно в некоторых случаях (не во всех). Первым делом надо построить точную модель АРУ в виде уравнения. По нему уже будет видно, можно ли его инвертировать. Не знаю, что ты хочешь таким образом переделать, но вангую, что проще найти источник с отключаемым АРУ.
>>175667 Лол, у всех твоих видосов одинаковая проблема — ты напиши хоть в кратце, что ты делаешь, и куда смотреть. На линейке это всё микрофоны у тебя? Фазированная решётка?
>>175669 >что ты делаешь, и куда смотреть Делаю, как здесь: http://www.labbookpages.co.uk/audio/beamforming/delaySum.html Смотреть на столбики. Позиция самого высокого столбика соответствует углу, с которого приходит сигнал. Но вообще, я результатами не доволен. Мне обещали овер 20 дБ отношения сигнал шум при 16-ти микрофонах. Где мои 20 дБ, блять?
Какой оптимальный способ задетектить сигнал в известной области спектра? В моем случае это 700 - 1000 Гц, частота не известна. Известно, что меандр. Нужно понять присутствует он в сигнале или нет. Также в сигнале может быть высокочастотныц шум (более чем 18 кГц).
>>175726 Кароч вычисляешь автокорреляционную функцию своего сигнала, оптимальный способ — через БПФ. Потом смотришь, есть ли у неё пики в области 2pi/1000...2pi/700, пороговое значение подбери опытным путём. Этот способ задетектит не только меандр, но и сигнал любой формы с периодом 700...1000 Гц.
Если надо детектить конкретно меандр, и чтобы детектор ни на что другое на семёнов не срабатывал, то придётся обмазаться, я думаю, вейвлет-преобразованием с материнским вейвлетом Хаара.
>>175764 "..." — это диапазон. Обрати внимание, АКФ — это функция от времени, а не от частоты, поэтому ты ищешь пики не для частоты, а для периода, соответствующего интересующей частоте. (T = 1/f, если f в герцах)
Если диапазон частот 700...1000, то диапазон периодов 1/1000...1/700 постом выше я написал 2pi, это косяк
>>175671 >Мне обещали овер 20 дБ отношения сигнал шум при 16-ти микрофонах. Как считал? У меня даже в теории получается 12дБ.
Допустим, у нас белый шум X с дисперсией (средней мощностью) = D[X].
Если 16 источников суммируются в фазе, это даёт увеличение амплитуды в 16 раз, D[\alpha X] = \alpha^2 D[X], дисперсия (средняя мощность) увеличится в 256 раз. Если все сигналы сдвинуты, мы считаем, что соседние отсчёты сигнала независимы друг от друга, это дисперсия суммы шестнадцати независимых случайных величин, то есть просто 16D[X] Тогда отношение сигнал-шум = 10\lg_{10}(256/16) = 12дБ (логарифм при вычислении децибелл умножаем на 10, а не на 20, потому что логарифмируем соотношение мощностей, а не амплитуд).
Алсо у тебя, во-первых, комната, а не безэховая камера. Во-вторых, у тебя волна на таком расстоянии не плоская, а сферическая, ты это учитывал?
А вообще респект, клёвая тема. Будь у меня такая хуйня, я бы поэкспериментировал с адаптивным выделением полезного сигнала или слепым разделением источников, но я ленивый хуй же. Правда, у меня с недавних пор есть MicroZed с системой-на-кристалле Xilinx Zynq, в которой сделан армовский процессор и подключенная к нему плисина. Вот на ней идеально такие темы делать, пока плисина складывает 16 сигналов, проц обсчитывает коэффициенты адаптивным алгоритмом или сингулярную декомпозицию для разделения источников.
>>175856 >Как считал? У меня даже в теории получается 12дБ. Доверился пирилейтеду №1, взятому с labbookpages.co.uk. И судя по твоим выкладкам, зря. Но мой видиорилейтед даже до 12 дБ не дотягивает.
>Алсо у тебя, во-первых, комната, а не безэховая камера. Это я понял, когда носил девайс в универ на демонстрацию. В аудитории он работает немного получше, чем в моей копро-комнате.
>Во-вторых, у тебя волна на таком расстоянии не плоская, а сферическая, ты это учитывал? Учесть это проблематично, поэтому я просто старался отойти подальше от решётки. Алсо, по идее сферичность не должна никак проявляться при расположении источника сигнала под углами 90 и -90 градусов к нормали решётки, однако, при таких углах ситуация не улучшается.
На данный момент прорабатываю версию о разных задержках вносимых микрофонами. Чтобы её проверить, я записал сигнал частотой 100 Гц (чтобы меньше отражался от стен) с 16-ти микрофонов одновременно. На пикрилейтеде №2 посчитанные матлабом кросс-корреляции между самым запаздывающим сигналом и остальными 15-ю. Задержки, которые нужно внести (в тактах на частоте 48 кГц) для компенсации, получились следующие: 79, 31, 0, 0, 36, 65, 73, 78, 130, 53, 70, 64, 56, 84, 44, 47. Попробовал их учесть, но стало ещё хуже. Теперь вот думаю, либо я накосячил с введением задержек или их расчётом, либо дело в неправильно проведённых измерениях.
>у меня с недавних пор есть MicroZed с системой-на-кристалле Xilinx Zynq Я тут как раз делал недавно для одной конторы пару проектов на ZedBoard, в которой тоже стоит Zynq. Если у тебя есть какие-то вопросы по этой платформе, то я готов на них ответить.
>>175880 Оу, вот это удача. Скажи, ты, случаем драйвера линуксовые для цинкового арма не писал? Я хочу написать драйвер для обмена данными между плисиной и процессором через DMA. Выделение памяти и чтение/запись в обход кэша сделал (в sysfs псевдофайлик, при записи в который происходит инвалидация кэша), теперь хочу, чтобы устройство могло дёрнуть анус прерывание после того как данные в память залило, а линукс увидел это дело. Писал такое для прыщей когда-нибудь?
>>175903 >ты, случаем драйвера линуксовые для цинкового арма не писал? Вот до этого дело как раз и не дошло. Юзал /dev/mem, имел проблемы с кешем, но т. к. от меня требовалось только написание корок, то для тестов это сгодилось.
>>175880 >>175667 Ну что ананасы? Нет ли у вас идей, как улучшить пространственную чувствительность? Не может же получаться такое говно с 16-ю микрофонами. Тут явно что-то не так...
>>177410 здесь с таким петухом даже говорить не будут, это ж тред ЦОС тут сидят только Боги которые смотрят с высока на твои потуги и ухмыляются, раскладывая твое нечеленораздельное кукареканье в ряд Фурье в уме.
>>177463 че еще прокукарекаешь? >>177468 с таким петухом никто говорить тут не будет, тут отдыхают люди вечерами которые возвращаются из своих интелов, самсунгов. Возвращайся в свой петушиный угол с джавашкольниками и пхпмакаками.
>>178269 Какое конкретно ДСП? Радио, звук, картинки? Может быть, видео? В любом случае, начать можешь со скачивания и установки Матлаба. Там полно примеров на все случаи жизни.
Сап парни. Вот прошел курс в ВУЗе по Теории сигналов, учили по Баскакову. Но я ничего не понял, в смысле понял что там ряды Фурье раскладывают сигналы, но хотелось бы какой нибудь практики для большой осознанности. Реквестирую годных методичек на эту тему желательно в что бы все строилось в Матлабе.
>>179187 Придумай что-нибудь. Вот думаю сделать FSK модем на AVR. На скриншоте модель. На графике справа сверху - сигнал после модулятора. Сообщение: 1 1 1 0 1 0 1, частота дискретизации 6 кГц, частота еденицы 300 Гц, нуля 600 Гц, тактовая частота 300 Гц. На графике слева - сигнал с приемника, до 400-ого отсчета идет гауссовый шум, потом шум + полезный сигнал, SNR=0.3 Справа снизу - демодулированный сигнал. Демодулировано правильно. Теперь осталось придумать как будем синхронизироваться? Какой способ обработки лучше: непрерывный или блочный?
>за кыламетр праслушка делать? Можно прослушка делать теоретически. На практике дело осложнено низкой пространственной чувствительностью. Тут нужны всякие улучшаторы и прочие свистелки.
Вот я чего вспомнил. Нет ли у вас какой книжки по ЦОС на примете? Нужна современная хотя бы с 2000г и на английском. Мне просто для аспирантуры по английскому надо дохулион символов текста прочитать с пруфами. Вот я и подумал книженцию какую по ЦОС освоить, чтобы не тратить время на всякие научные YOBA-статьи. Спасибо.
>>192603 The Scientist and Engineer's and Guide to Digital Signal Processing by Steven W. Smith - 1997 год, скачать можно бесплатно минус - в книге есть бейсик
>>192609 >The Scientist and Engineer's and Guide to Digital Signal Processing Спасибо, анон. Буду иметь ее пока как основной вариант. Но нет ли чего поновее? И без Бейсика
>>192679 >зачем тебе настолько новые книги Просто помню, что говорилось о необходимости новизны источника инфы. Но не помню точно насколько новой она должна быть.
>>192679 >Выбирай всё, что душа пожелает За ссылку спасибо. Теперь я точно подберу что-нибудь. Особенно порадовало наличие литературы по DSP на FPGA.
>>192691 >Просто помню, что говорилось о необходимости новизны источника инфы. Насколько я понимаю ОПу того поста нужна была вводная книга. А 97 году уже было достаточно фундаментального материала по Фурье, z-преобразованиям и тд.
>>192691 >необходимости новизны источника инфы тогда тебе точно надо читать актуальные научные статьи. Благо их дохуя и они действительно интересные. Новые книги по фундаментальным знаниям по дсп редко привносят что-нибудь новое и по сути являются наглым рерайтингом старых книг 80-х годов и та книга 1997 года - не исключение. Ну разве что можно почитать говно типа "ДСП на йобаАРМкортих4/матлаб2014))))))", но я бы советовал читать о каждом инструменте в разных специфических книгах.
>>195152 Ну а хули ты хотел? Ты бы хоть рассказал, че за сигнал, какой вид модуляции, какая полоса, непрерывный или импульсный, прочие параметры. А то "хочу чтоб было пиздато".
>>195154 Он, скорей всего, хотел, чтобы ему объяснили все в стиле SDR-треда. Я как-то в этот загон зашел, попроигрывал с их знаний и больше не заходил.
>>195958 >Матлаб широко используется при цифровой обработке сигналов? Да, и симулинк тоже. И матлабовские тулбоксы тоже. >Что еще (пакеты, языки) нужно подучить, чтобы двигаться в нужном направлении? Учи фундаментальную теорию. Лично мне матлаб вообще не вставляет. Он громоздкий. Чтобы что-то получить, надо перелопатить весь справочник. Мне гораздо проще написать на питоне скрипт для расчетов. Там еще удобно с данными работать. Мне нравится, короче.
>>195959 > Да, и симулинк тоже. И матлабовские тулбоксы тоже. Это хорошо, тулбоксы мне нравятся. > Учи фундаментальную теорию. Это-то понятно, но даже если заучить какой-либо раздел, чтобы на его основе создать какой-нибудь пример, нужно также разобраться в среде. Например, чтобы реализовать прочитанный в книжке алгоритм согласованной фильтрации с помощью двух дпф и перемножения в матлабе, нужно хорошо себе представлять как матлаб с этими матрицами работает и какие функции ты собираешься использовать. И если мне придется другие языки/пакеты использовать при этом, хотелось бы знать, какие именно часто используются.
>>195975 Если я тебя правильно понял, то ты не совсем правильно воспринимаешь процесс разработки в области ЦОС. Допустим, поставлена некая задача(например, осуществить прием сигнала согласно некоторому стандарту и реализовать это в устройстве). Работа делится на несколько частей. Сначала ты на основе фундаментальной теории составляешь блоки: говоришь, что несущую будешь восстанавливать так-то. Декодирование будет вестись такое-то. Оценка канала связи будет таким-то. Потом ты хочешь проверить правильность этой архитектуры. Ты запускаешь матлаб и симулинк или, как я, питон с сайпаем. И начинаешь просто моелировать. Тебя не должно волновать время моделирования. Ты можешь выбрать упрощенные алгоритмы. Ты просто проверяешь концепцию. На выходе ты должен получить параметры своего потенциального приемника и сказать, удовлетворит архитектура ТЗ или нет. А потом ты говоришь, что вот этот блок будет работать в железе по такому-то конкретному алгоритму, потому что для архитектуры данного DSPшника наиболее удовлетворяет именно этот алгоритм. хотя сейчас DSPшники большие дяди применяют для отладки алгоритмов с реальными сигналами, а потом эти алгоритмы переводят в ПЛИСы или АСИКи, если денег жопой жуй К чему это все. В среды моделирования не нужно закапываться. Их задача - проверить правильность концепции.
>>195979 Честно, не знаю, что делать в матлабе. Я ЦОС изучил без него. Толк от матлаба будет только если ты хреново знаешь теорию и не можешь взять какие-нибудь интегралы. Там это все компенсируется обилием функций. Я на работе как-то заядлому матлабщику объяснял, как связаны импульсная и частотная характеристики. Тот все искал в справочнике функцию перевода одного в другое.
>>195981 >заядлому матлабщику объяснял, как связаны импульсная и частотная характеристики >Тот все искал в справочнике функцию перевода одного в другое Чет либо ты пиздишь, либо заядлый матлабщик туповат.
>>196099 Ну как бы да. Я вот примерно год работаю в направлении ЦОС. И мне матлаб вообще не пригодился. Правда, я в кухню глубоко не залезал, ибо на мне больше теоретические изыскания. Но, скажем, если бы мне надо было по-быстрому коэффициенты фильтра посчитать или спектры прикинуть, то я бы запустил матлаб, но не более, чем для этого. Да я даже интегралы на питоне считал.
>>196107 >на питоне Хули вы все так этот питон любите? Заебали уже. Тут питон, там питон. В нем же нет ничего такого особенного. Чем вам С/С++/Java не нравятся? Нормальные же языки.
>>196109 Я сам пару лет назад думал, что все можно на си написать. Но потом я понял, что заебешься все досконально реализовывать. В питоне все готово. Мне там очень нравится то, что мне не надо запариваться над выбором типа данных для расчетов. И еще очень хорошая фича - это словари. Очень удобно данные организуются. Мне в одной из работ надо было собрать хренову кучу данных для оценки работы одной системы. Так вот их все очень удобно собрать в словари и выводить то, что нужно и как нужно. Естественно, питоновские скрипты не для чистовой реализации. Но прикинуть алгоритмы и расчеты - самое оно. Рекомендую.
>>196118 Ну с си понятно, не для того он. Но есть же кресты и жава. Там этих словарей и прочих структур данных, как говна - на любой вкус. А вот эта ваша нестрогая типизация в питоне меня убивает, ибо не знаешь чего ждать от вызова функций, к примеру. И вообще.
>>196124 Чтобы на плюсах все списки организовать, нужно выучить STL или еще что-то подобное типа буста. На питоне создание словаря это dict1 = {} Все. И потом добавляешь туда то, что тебе надо. Выигрыш очевиден. А типизация данных нужна для начинающих программистов. Да и ни разу не встречал каких-то проблем, что у меня там функция возвращает. Короче не придумывай, а пользуйся благами и ускоряй время разработки.
>>196118 >В питоне все готово. Пиздец >>196124 > с си понятно, не для того он. Пиздец >Но есть же кресты и жава. Пиздец >>196109 >С++/Java. Нормальные же языки. Пиздец >>196164 >на плюсах списки организовать, нужно STL или типа буста. Пиздец >типизация данных нужна для начинающих программистов. Пиздец >не встречал каких-то проблем, что у меня там функция возвращает. Пиздец У меня просто слов других нет.
>не знаешь чего ждать от вызова функций Не пиши говнокод и будешь всё знать. Видел я олигофренов, которые на бидоне в названиях переменных пишут их тип. На вопрос "нахуя вам вообще это язык тогда?" ничего вразумительного ответить не могли.
Почему бы вам не пройти обратно в /pr/ и меряться хуями там?
Учитывая простую истину: если руки растут из жопы, то любые плюсы языка тут же превращаются в минусы.
Знаете как сделать просто отпадное, фирменное ГОВНО?. Кодить жопой? Хаа, да если бы. Нет, самое говнистое несопровождаемое говно получается с мотивацией АЗАЗА А СМАРИ КАК Я ЕЩЁ МОГУ, А ТЫ НЕ МОЖЕШЬ ТАК XDDD.
>>196212 Нет правда. Я абсолютно против спец олимпиад. Для каждой задачи свой инструмент, многие языки во многом эквиваленты, многое зависит от того каким ты их образом используешь итд итп. Какой язык лучше - бредовый вопрос. Если подходит для твоей задачи - все в порядке.
Но. Я еще ни разу не видел чтобы питон подходил для какой-то задачи.(Или не имел лучшей замены) Это просто глупая шутка, а не язык. Создается впечатление, что им интересуются недоучки не осилившие даже какой нибудь турбопаскаль. Это говно из разряда Го и прочих так и не оживших бредовых студенческих фантазий. Единственный смысл использовать питон есть если ты только питон и знаешь, все. Это как жрать говно от того, что ты знаком с вкусом говна.
А утверждать что питон лучше матлаба в разработке, ох.
>>196249 >Не пиши говнокод и будешь всё знать. Видел я олигофренов, которые на бидоне в названиях переменных пишут их тип. На вопрос "нахуя вам вообще это язык тогда?" ничего вразумительного ответить не могли. Это пушка.
>>196255 Ну расскажи тогда, чем матлаб превосходит питон? На мой взгляд, абсолютно такое же говно. Только у этого говна нулевое комьюнити. Если на питоне не можешь что-то написать, то пиздуешь на стековерфлоу и там будут ответы на все твои вопросы. А если в матлабе у тебя затык, то попадаешь на протухжий форум mathworks и жрешь говно аля "я разобрался, тему можно закрывать". И я не говорил про разработку (хотя применять матлаб в разработке это край ебанутости). Нужен удобный инструмент проверять математические гипотезы. И этих инструментов совсем мало: математические пакеты с тухлыми справочниками или питон без некоторых редких функций, но с живым комьюнити. >>196250 Мы тут вообще-то инструмент для работы в области ЦОС выбираем и разбираемся, для чего он нужен, если ты не заметил.
>>196257 >Ну расскажи тогда, чем матлаб превосходит питон? Чем космический шатл превосходит запорожец? У них не так уж много пересекающийся параметров.
> Только у этого говна нулевое комьюнити. Это у матлаба то? Который известен просто бесконечным количеством различных тулбоксов и готовых модулей на все случаи жизни созданных сообществом? Ты наркоман?
>комьюнити швабодка столман наш бог Пиздец, просто пиздец.
>питон без некоторых редких функций Ты элементарно не понимаешь даже масштаба вещей которые ты сравниваешь, наркоман.
>>196257 >я не говорил про разработку >инструмент проверять математические гипотезы Ты просто из праздного любопытства гипотезы проверяешь, или что-то разрабатываешь быть может? Какую-то систему цифровой обработки сигналов?
>>196260 А системы обработки не в железе реализуются в итоге? А ты прямо сразу ебошишь в железяку алгоритмы на авось? А у тебя все алгоритмы стандартные и их поведение не нужно моделировать?
>>196261 Такое чувство, что ты не понимаешь простые предложения вообще.
>А системы обработки не в железе реализуются в итоге? Иногда в железе. Иногда программно. Иногда и так и так.
>А ты прямо сразу ебошишь в железяку алгоритмы на авось? Нет, а ты?
>А у тебя все алгоритмы стандартные и их поведение не нужно моделировать? Нет, а у тебя?
>>196262 Та не парься ты. Все нормально. И питон твой нормальный, если тебе нравится. Просто как нибудь попробуй что нибудь другое попробовать, для расширения кругозора так сказать.
>>196262 По существу. Матлаб - мощнейшая система матричных вычислений. Питон - скриптовый язык созданный первокурсниками линуксоидами не знающими что есть lua perl m4 и сотня других решений на все случаи жизни.
Я не понимаю как их вообще можно сравнивать. Это вещи из разных миров. Как на питоне посчитать обратную матрицу? А обратную матрицу от вырожденной матрицы? А как с аппаратным ускорением расчетов дело обстоит? А построением графиков? А нахождением главных компонент?
Матлаб - для матричных вычислений. Питон - не для матричных вычислений. Питон - для скриптования линуксов и игрулек(но зачем еще один велосипед?). Матлаб - не для скриптования линуксов и игрулек.
Может я конечно чего-то о питоне сильно не знаю. Первый раз сталкиваюсь с тем, что его кто-то для научных/математических расчетов использует. Потому рекомендую попробовать что-то другое. Хоть фортран, хоть, прости Госпади, сисярп. Без обид и троллинга. Алсо, я не тот анон с которым ты/вы начинали полемику.
>>196324 У меня одногруппник на питоне обсчитывал поля для научной деятельности. Не для курсовой или диплома, а для реальных расчетов для лабы. Он сейчас вполне себе российский ученый, выступающий на международных конференциях и мелькающий в репортажах о достижениях российской науки. Для любых вычислений на питонах можно применять scipy, numpy, matplotlib и еще что-нибудь подобное.
>>196324 У тебя пара незначительных ошибок, дай поправлю: Матлаб - кривописанное говно, к которому очень даже применимы шутки о жабе, уровня "85гб памяти хватило на хелловорлд и он почти не тормозит", а ответы на сложные вопросы часто заканчиваются пресловутыми "идите нахуй, у вас лицензия закончилась 4 секунды назад" и "для вашей задачи вам надо купить oche_bolshaya_dilda_toolbox". Питон - скриптовый язык созданный экспертом в области ит, с учетом достоинств и недостатков языков своего времени.
> Матлаб - для матричных вычислений. > Питон с numpy - для матричных вычислений.
> Может я конечно чего-то о питоне сильно не знаю. Первый раз сталкиваюсь с тем, что его кто-то для научных/математических расчетов использует С подключением. У яндексов-гуглов, да разных сайтов-агрегаторов научных статей спросишь, где вычисления на питоне.
> Без обид и троллинга > созданный первокурсниками линуксоидами не знающими что есть lua perl m4 и сотня других решений на все случаи жизни. Ты это серьезно? В любом случае, я уже написал ту хуйню выше, а удалять жалко.
>>196331 Ебашишь БПФ и смотришь, какие частоты он выдает.
>>196324 >мощнейшая система матричных вычислений Мощнейшая и неповоротливая. >Как на питоне посчитать обратную матрицу? А обратную матрицу от вырожденной матрицы? Так же как и на матлабе - используя уже написанные другими людьми функции для расчета. >А построением графиков? ГНУплот не завезли, да?
>не знающими что есть lua perl m4 >perl Все с тобой понятно. Не заходи в этот тред, пожалуйста. А еще лучше - вообще не заходи в интернет.
>>196370 >>196351 >>196329 Спасибо, господа! Отказавшийся от срача анон. Сейчас придет один дебил, возьмет в гринтекст ваши предложения и напишет "пиздец". Готовьтесь.
>>196370 >Так же как и на матлабе - используя уже написанные другими людьми функции для расчета. А хули бы тогда джаву не использвать? Там тоже все для матана есть в либах. Почему питон? Почему питон, я тебя спрашиваю?
>>196403 Потому что неосилит. Все это скриптоговно и жава с сисярпом спецом создается для ограниченных, которые не могут в нормальные языки, впроде C, Фортрана или Эрланга. Это не тралинг, я просто вещи своими именами называю. Программист взял кусок памяти у ОС, но написал такой заебательский алгортим, что сам не может понять, когда память можно вернуть а когда нет. Не проблема, на тебе GC. Не можешь осилить синтаксис - на тебе синтаксис проще некуда. Не можешь в строгую типизацию - не переживай, дружище, мы сами во всем разберемся во время компиляции байт-кода. В итоге плодится куча вот таких вот скриптокодеров, каждый из которых со своим охуительно важным экспертным мнением.
>>196408 Потому что неосилит. Все это макроговно и си с фортраном спецом создается для ограниченных, которые не могут в нормальные языки, впроде ассемблера или 16-ичного кода. Это не тралинг, я просто вещи своими именами называю. Программист взял кусок памяти у ОС, но написал такой заебательский алгортим, что сам не может понять, заполнен стек или нет. Не проблема, на тебе КОМПИЛЯТОР. Не можешь осилить синтаксис - на тебе синтаксис проще некуда. Не можешь в регистры - не переживай, дружище, мы сами во всем разберемся во время компиляции. В итоге плодится куча вот таких вот макрокодеров, каждый из которых со своим охуительно важным экспертным мнением. Ты на втором курсе учишься или на третьем?
>>196410 Ты можешь конечно писать и на машинно-ориентированном языке. Но глупо отрицать, что С - единственная удачная реализация высокоуровневого языка по возможностям и скорости исполнения максимально близкого к машинно-ориентированному ассемблеру. Я закончил магистратуру и аспирантуру и уже 15 лет работаю в области телекома. Почему спрашиваешь?
>>196408 >Потому что неосилит Удваиваю. Хотя ты и перегибаешь палку.
>>196351 >Матлаб - кривописанное говно Поэтому его во всяких цернах используют. Алсо, ты сейчас просто "обосрал" технологию, без какого либо конструктива.
>Питон - скриптовый язык созданный экспертом в области ит Ну, я этому создателю под платьем не щупал, эксперт он там или кто еще. И его личность вообще не имеет никакого отношения к теме. >Питон - скриптовый язык Все.
> Питон с numpy - для матричных вычислений. Каковы причины использовать Питон с numpy вместо десятков аналогичных, и более много лучших(не скриптовых) связок? Какое это вообще имеет отношение к системам вроде матлаба? С тем же успехом можно какой нибудь питон+хмл сравнивать с MySQL например. Это бред.
>>196370 >ГНУплот не завезли, да? >ГНУ Надеюсь не завезут никогда. )))
>Все с тобой понятно. Не заходи в этот тред, пожалуйста. А еще лучше - вообще не заходи в интернет. Как ти меня проффисионально опустиль. У миня типерь батхид а ти такой умний и проффесиональний.
>>196388 >Спасибо, господа! За что ты их благодаришь, если не секрет?
>>196403 >А хули бы тогда джаву не использвать? Там тоже все для матана есть в либах. Почему питон? Почему питон, я тебя спрашиваю? Я писал выше. Потому, что они ничего кроме питона не знают и не понимают. И может быть неспособны изучить в принципе. И в этом в общем-то нет ничего плохого. Если только не выдавать свою темность и глупость за офигенные достоинства. Мол это все вокруг в дерьме роются, а я один весь в белом на питоне кодю1111 Это уже клиника.
А питон получил распространение просто в виду "энтузиазму" "комьюнити". Мол модно молодежно ГНУ все дела вот я ношу бабушкины очки ем маффены и пишу на питоне, сидя в старбаксе само собой. Фуфел смотрит на это все, и думает - "вау, питон, надо его попробовать".
>Прекрати. Моя жопа не выдержит такого пожара. Cи - это продвинутый ассемблер. Собственно высокоуровневым его и не назовешь особо. От чего тебе полыхает непонятно, понятно же что анон выше шутит.
>>196420 Это понятно. Было бы странно, если бы кто-то использовал что-то что ему неудобно. Мы же тут как бы объективную сторону вопроса обсуждаем. Предполагающую, что сам факт владения питоном не является достаточным основанием для утверждения его удобства и/или превосходства над чем либо.
>>196422 >основанием для утверждения его удобства и/или превосходства над чем либо Альтернативы предложи. На чем мне можно по-быстрому набросать различные вычисления и подвести по ним статистику? Есть аноны, которые предложили питон, есть аноны, которые ебошат в матлабе и почему-то агрятся на питонщиков. Читаю вас и не понимаю. Вы хоть когда бочку катите, альтернативу предлагайте.
>>196417 >Хотя ты и перегибаешь палку. Есть немного, каюсь. >>196419 Ок, ниосилил, молодец. Твои проблемы, продолжай писать на питоне. >>196422 >Cи - это продвинутый ассемблер. Собственно высокоуровневым его и не назовешь особо. В этом вся макотка, можно делать и низкоуровневые и высокоуровневые решения, и комбинировать их.
>>196426 >На чем мне можно по-быстрому набросать различные вычисления и подвести по ним статистику? Каким инструментом владеешь, тот и используй. Главное не начинай кукарекать в духе >типизация данных нужна для начинающих программистов. > с си понятно, не для того он. Говори честно, я не осилил СИ и строгую типизацию, поэтому использую питон, и мне норм.
>>196431 Нахер тебе низкоуровневые вычисления для моделирования и отладки принципов? Я это еще в самом начале срача писал >>196118 >Естественно, питоновские скрипты не для чистовой реализации А Си как язык сейчас действительно не оче. Я его еще использую на работе для мелких проектов и контроллеров. Но в остальном он все-таки устарел.
>>196426 >Альтернативы предложи. На чем мне можно по-быстрому набросать различные вычисления и подвести по ним статистику? Есть аноны, которые предложили питон, есть аноны, которые ебошат в матлабе и почему-то агрятся на питонщиков. Читаю вас и не понимаю. Вы хоть когда бочку катите, альтернативу предлагайте. Альтернатива - ЛЮБОЙ язык программирования. Что за глупые вопросы. Питон это дно, ВСЕ ЧТО УГОДНО лучше питона. О чем блин тебе и толкуют. Загугли - "языки программирования", википедию почитай.
>аноны, которые ебошат в матлабе и почему-то агрятся на питонщиков Лол. У тебя странное восприятие действительности.
>Есть аноны, которые предложили питон Вроде никто ничего не предлагал. Или я что-то пропустил?
>На чем мне можно по-быстрому набросать различные вычисления и подвести по ним статистику? Какие это различные? Если вычисления матричные, и тебе неважна лицензионность софта, или у тебя есть много денег - пользуй матлаб.
В противном случае ищи спецсофт. Если спец софта нет, смотри в сторону ЯП общего назначения. Заморачиваться с памятью и низкоуровневостью тебе точно ненужно, так что всякие Си С++ отпадают. Хотя если у тебя сложные вычисления то можешь наоборот заморочиться. Классический фортран бывает хорошим выбором. Мне приглянулся C# например в виду богатейшей встроенной библиотеки и документации, которая снимает кучу проблем. При этом можно и числодробилки писать. И есть широкие возможности процедурного программирования, что оценят разного рода мат саентисты.
Тебе явно ненужен perl lua javascrip или питон, они не для того существуют. Лисп Пролог Хаскель - тебе то-же скорее всего ненужны.
>>196431 >В этом вся макотка, можно делать и низкоуровневые и высокоуровневые решения, и комбинировать их. Да. Но для мат моделирования на коленке он совсем мимо.
>>196432 >Каким инструментом владеешь, тот и используй. Главное не начинай кукарекать в духе >>типизация данных нужна для начинающих программистов. >> с си понятно, не для того он. >Говори честно, я не осилил СИ и строгую типизацию, поэтому использую питон, и мне норм. Люто удваиваю.
>>196435 >А Си как язык сейчас действительно не оче. Я его еще использую на работе для мелких проектов и контроллеров. Но в остальном он все-таки устарел. Воу воу парень полегче. И на чем же сейчас пишут ведра ОС и прочее системное погромирование? А сотни миллионов программ для микроконтроллеров? Я не в курсе если честно, может появилась более современная альтернатива?
>>196440 >Аргументы уровня /b/. Это не аргументы. Я никому ничего не доказываю и спора не веду. Это мое мнение.
>>196439 >Тебе про numpy уже несколько раз написали, но до тебя так и не доходит. Что не доходит? Что мне про нумпи написали? От того, что есть нумпи для питона, или что-то аналогичное для луа или жаваскрипта - не делает их подходящими яп для мат вычислений, и вообще, не делает из них универсальных ЯП, и не делает их оче хорошими много лучше всего остального. Скриптовый язык это скриптовый язык. Хоть что ты с ним делай.
>>196442 То есть ты на питон гонишь только потому что он скриптовый? Пролистай тред вверх и прочитай >>195959>>195978 Я тот анон, который первым упомянул про питон. Потом прибежали неучи с раскаленными сраками, которые про этот язык только от веб-макак и игродебилов слышали. Так еще и у них фиксация по поводу уровней абстракции: все что выше си - тормозящее говно. Я, блядь, просто написал, что numpy удобен для быстрой прикидки принципов работы алгоритмов ЦОС и оценки их эффективности А вы, блядь, своими сраками половину ЦОС-треда подожгли. Так еще и аргументы у вас, как у даунов. Идите нахуй!
>>196435 >Нахер тебе низкоуровневые вычисления для моделирования и отладки принципов? Я это еще в самом начале срача писал А ты только модельки и отладки принципов делаешь? На этом все завершается, реализация не нужна?
>>196445 >То есть ты на питон гонишь только потому что он скриптовый? Я не гоню ни на что.
>Пролистай тред вверх и прочитай >Я тот анон I don't care.
>этот язык только от веб-макак и игродебилов слышали Целевое использование питона.
>Я, блядь, просто написал, что numpy удобен для быстрой прикидки принципов работы алгоритмов ЦОС и оценки их эффективности Наверное удобен. Но учить ради этого питон не стоит. Если ты его уже знаешь - другое дело.
>Так еще и аргументы у вас, как у даунов. Идите нахуй! А кто про типизацию и вот это все вот писал?
>А вы, блядь, своими сраками половину ЦОС-треда подожгли. У тебя какие-то комлексы. Ты искаженно оцениваешь ситуацию.
>>196448 >Я не гоню ни на что. >Питон это дно, ВСЕ ЧТО УГОДНО лучше питона. Ясненько)))))) >Целевое использование питона. В твоих фантазиях. >А кто про типизацию и вот это все вот писал? То есть основной аргумент это отсутствующая типизация и менеджмент памяти? И это плохо по-твоему? Нужно все ручками делать, я не пойму?
>>196446 Да я хуй знаю, что ты писал, а что нет. >VHDL (System Verilog срач объявляю открытым). По мне так вообще не принципиально, но мне ближе Verilog, так как он чуть более близок к СИ.
>>196450 >То есть основной аргумент это отсутствующая типизация и менеджмент памяти? И это плохо по-твоему? Один из множества аргументов. Да и вообще, я уже говорил выше, пиши на питоне если он решает твои задачи, но не обманывай себя и других, просто честно признайся "не могу в типизацию и самостоятельный менеджмент памяти, поэтому пишу на питоне".
>>196454 >просто честно признайся "не могу в типизацию и самостоятельный менеджмент памяти, поэтому пишу на питоне" Не пытайся больше ванговать. Я как минимум 2 года прогал на си в международной компании. Да и сейчас у меня работа над проектом на Си идет.
>>196450 >То есть основной аргумент это отсутствующая типизация и менеджмент памяти? И это плохо по-твоему? Нужно все ручками делать, я не пойму? Менеджер памяти - хорошо. Отсутствие типазации - плохо.
Питон - это просто вырвигалзное говно. Взяли все худшие практики и получился синтаксис питона. Ничего хуже придумать было нельзя. Си с его дефайнами и прочим <-~%>>-(\{-%+}) отдыхает.
>Нжно писать как бох и тогда нинужна типизация 111 Я тебя понял уже очень давно. Это очень непрофессиональная точка зрения. Которая похоже у тебя же самого существует только для того, чтобы тешить ЧСВ. Ты блох, и тебе нинужен нормальный синтаксис и типизация. Я понял. Он понял, и вот он понял, все поняли.
Дело в том, что другие вокруг тебя, обычные люди, которые иногда даже ошибаются, им типизация нужна. И твой опыт к человеческой реальности неприменим.
>>196408 Пшел нахуй, щенок! Кукарекать о скриптоговне и лишних уровнях абстракции ты сможешь, когда на асме писать начнешь, а пока становись в один ряд со скриптоблядьми и принимай лучи мочи в лицо, ограниченная сиблядь-фортранодаун.
>>196417 > Поэтому его во всяких цернах используют. И? Пистон еще чаще используют. А еще церны используют матлаб из-за йоба-лицензий, по которым им все эти средства достаются за нихуя и упоминание в цитируемых статьях, такой-то пиар зажравшимся матвоксам. На деле же, кластер, у которого, хотя бы на некоторых нодах, стоит, хотя бы, ядро матлаба - та еще задачка, не только в россии, а пистон с нампаями/скайпаями почти везде есть - та-дам!
> Алсо, ты сейчас просто "обосрал" технологию, без какого либо конструктива. Лишь максимально показательно сделал ровно то же, что и ты, со своим "не знаю, но осуждаю".
Скажи честно, ты случаем не в матвоксах работаешь, каким-нибудь менеджером-продвиженцем? Уж больно фанатично выглядишь. Завезите в тред еще йобнутых пеарщиков каки-нибудь NI, для пущей абсурдности происходящего!
>>196458 Эй, бомбанейло, почему ты так бомбанейло? Себя узнал? А ассемблер я учил еще по книженции с пика, в те теплые ламповые времена отсутствия этих ваших интернетов, да и вообще отсутствия практически всего, мне она досталась совершенно случайно, чему я был несказанно рад, не смотря на большое количество опечаток.
>>196477>>196485 Дети интернета, попробуйте расширить словарный запас за пределы "бомбануло", а то скучно же, все у вас бомбит, одни вы - камнежопые. Гипербола, сарказм, вот это все. А еще попробуйте читать больше первого предложения/абзаца, опять же, скучно.
>>196485 >А ассемблер я учил еще по книженции с пика, в те теплые ламповые времена отсутствия этих ваших интернетов Усатый Кузьмич в треде, все в кинескоп!
Задрали вы уже. Лучше посоветуйте легкий инструмент где можно производить расчеты и строить нескучные графики. Сейчас я использую эксель с его вба и возможностью быстро построить графики, но это пиздец как медленно и мучительно больно. Матлаб на хуй у меня комплюктер слабый.
>>196529 >Лучше посоветуйте легкий инструмент где можно производить расчеты и строить нескучные графики. Матлаб.
>Матлаб на хуй у меня комплюктер слабый. Не понимаю как это связанно. Матлаб не требует кластера-суперсервера для своей работы. 8мой должен нормально работать на всем на чем WinXP заводится. Если вдруг у тебя железо слабее, то ставь 7мую версию, или 6тую.
>>196529 >легкий инструмент где можно производить расчеты и строить нескучные графики >Матлаб на хуй у меня комплюктер слабый Python + Numpy + Scipy + Matplotlib
>>196543 Траллинг только в том, что сейчас набегут продаваны из Mathworks. В остальном все нормально, если к питону нет аллергии. Я бы выложил нескучные движущиеся 3D графики на матплотлибе, но я так в гифки их и не перевел.
>>196529 > Лучше посоветуйте легкий инструмент где можно производить расчеты и строить нескучные графики. Фортран (производит расчёты) и гнуплот (строит графики).
тут следует добавить, только при правильном использовании эта связка работает заябись, т.к. numpy охунный конструктор написаный на С тупой похапе стайл может убить всю эффективность
>>196535 During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "<string>", line 20, in <module> File "C:\Users\Peka\AppData\Local\Temp\pip-build-nizcjsur\scipy\setup.py", line 253, in <module> setup_package() File "C:\Users\Peka\AppData\Local\Temp\pip-build-nizcjsur\scipy\setup.py", line 250, in setup_package setup(metadata) File "c:\python35\lib\distutils\core.py", line 108, in setup _setup_distribution = dist = klass(attrs) File "c:\python35\lib\site-packages\setuptools\dist.py", line 268, in __init__ self.fetch_build_eggs(attrs['setup_requires']) File "c:\python35\lib\site-packages\setuptools\dist.py", line 313, in fetch_build_eggs replace_conflicting=True, File "c:\python35\lib\site-packages\pkg_resources\__init__.py", line 836, in resolve dist = best[req.key] = env.best_match(req, ws, installer) File "c:\python35\lib\site-packages\pkg_resources\__init__.py", line 1081, in best_match return self.obtain(req, installer) File "c:\python35\lib\site-packages\pkg_resources\__init__.py", line 1093, in obtain return installer(requirement) File "c:\python35\lib\site-packages\setuptools\dist.py", line 380, in fetch_build_egg return cmd.easy_install(req) File "c:\python35\lib\site-packages\setuptools\command\easy_install.py", line 629, in easy_install return self.install_item(spec, dist.location, tmpdir, deps) File "c:\python35\lib\site-packages\setuptools\command\easy_install.py", line 659, in install_item dists = self.install_eggs(spec, download, tmpdir) File "c:\python35\lib\site-packages\setuptools\command\easy_install.py", line 842, in install_eggs return self.build_and_install(setup_script, setup_base) File "c:\python35\lib\site-packages\setuptools\command\easy_install.py", line 1070, in build_and_install self.run_setup(setup_script, setup_base, args) File "c:\python35\lib\site-packages\setuptools\command\easy_install.py", line 1058, in run_setup raise DistutilsError("Setup script exited with %s" % (v.args[0],)) distutils.errors.DistutilsError: Setup script exited with error: Could not initialize compiler instance: do you have Visual Studio installed? If you are trying to build with MinGW, please use "python setup.py build -c mingw32" instead. If you have Visual Studio installed, check it is correctly installed, and the right version (VS 2008 for python 2.6, 2.7 and 3.2, VS 2010 for >= 3.3).
Original exception was: [WinError 2] Не удается найти указанный файл, and the Compiler class was MSVCCompiler
Охуенно, пердолинг начинается еще на моменте установки.
тебе же пояснили мудак, что этот инструмент норм работает только при условии прямых рук, криворукий уёбок неполучит никакого профита от мегаинструметнов
>>196786 > Психологическая защита говнокодера как она есть. Прямо себя описал. Это не машина виновата, а отсутствие необходимых для работы компонентов в системе. Ты бы еще пытался компилировать код про какой-нибудь МК, выпилив из системы компилятор, а потом вопя о том, что среда разработки говно и в ней ничего не работает. Просто привык к тому, что все тебя обхаживают и сами тянут зависимости, те же игори, не особо спрашивая пользователя, а еще совсем недавно говорили что-то вроде: "Не найден d3dx9.dll. Идите нахуй."
>>196817 При чем тут пердолинг? Тебе совет по делу дали - пиздовать на сайт мелкомягких за компилятором, т.к. в твоем посте виндовые пути. Рака всего тебе, галлюцинирующий пердолефоб.
>>197023 Я - тот хуй, что да совет по установке скайпая. Какой питонист-линуксоид? Какой пердолик? Прими уже колеса, пока не скатился до шизофазии без заглавных букв и знаков препинания.
>>197027 Нахрена вообще пистон под винду собирать? Есть же все собранное. А есть еще и с модулями все вместе сложенное. Я вот выше порекомендовал Pyzo.
>>197032 Ну заебись же. А тому, кто пердолиться начал, советую ставить матлаб. Это как раз для его уровня развития. Будет в симулинке квадратики передвигать.
Хуясе, тред ещё жив. Вкачусь аккуратно в срачик. >>195981 >Толк от матлаба будет только если ты хреново знаешь теорию и не можешь взять какие-нибудь интегралы. Это пока твои numerics ограничены взятием интегралов. Уже на первой convex optimization ты люто насосёшься несвежих хуйцов. Матлаб силён не средой и не синтаксисом, а тем, что под него есть реализации огромного количества численных методов, причём оптимизированных и обложенных костылями для улучшенной сходимости в разных специальных случаях. Какая-нибудь численная хрень может писаться целыми компаниями или кафедрами годы (причём только лишь под матлаб), а ты предлагаешь их по-быстрому на питоне накидать. Я сейчас прохожу божественный курс Underactuated Robotics, и мужик, который его ведёт и который сотрудничает с Boston Dynamics, рассказывает, что внутри робота Atlas стоит пека, на которой крутится Matlab, и она обсчитывает все его действия. А причина одна — нужно много очень сложных оптимизированных вычислений, в детали которых ты даже не станешь вникать, потому что те, кто спецом в них вникал, вникли намного лучше, но потратили по полжизни.
>>197413 Ты бесконечно прав, только вот на том, этапе, когда человек задает вопрос, что ему использовать для обучения какой-то теории, матлаб точно не пригодится. Естественно, когда дело дойдет до серьезных вещей аля "у нас огромная система и в ней есть жрущий сложный алгоритм, о работе которого мы практически ничего не представляем", то тогда и надо искать среды, в которых этот алгоритм реализован. Но на таких этапах, грубо говоря, покупается не сам матлаб (хотя не без этого), а именно алгоритм.
>>197420 >Ты бесконечно прав Принятие, наконец то.
>только вот Сеньер питонис. Хватит уже извиваться как подстреленный червяк. Вы пишите уже откровенную чушь. >тот этап >когда человек задает вопрос >ну точно уже не пригодится >а именно алгоритм Пригодится.
Вы же кстати выше писали что >матлаб никто серьезно не использует 11 это всиё маркетинг нету комунити а вот в питоне либы и решение всего и вся11. А теперь, после многократного мокания вас мордой в собственное дерьмо начали реверсировать: >матлаб это очень серьезно а вот несерьезно его никто не использует и оно нинужно
Спешу макнуть вас в собственное дерьмо еще раз. Если в матлабе есть реализация >жрущего сложного алгоритма То кто-то, матлаб использует, не для использования уже написанного сложного жрущего алгоритма, а для написания/разработки/отладки оного. Жизнь это боль если ты питонист, смирись с этим.
Сап, БПФач! Прошу хелпануть с выбором литературы по великому и могучему ОБНАРУЖЕНИЮ СИГНАЛОВ. Посоветуйте, плз, ньюфажине годных книжек, где есть дохуя и больше алгоритмов тех самых энергетических/корреляционных/etc обнаружителей. Алсо люто респектую тому, кто подскажет, где можно отыскать реализации тех алгоритмов, или тому, кто подкинет тутор по реализации в каком-нибудь матлабе или с++.
Господа, может тут кто посоветовать алгоритм или даже идею как определить воздействие ик спектра на матрицу видеокамеры с возможностью управления фильтром. Мб какой-то разностный алгоритм или что-то специфическое?
Использую Окно Хемминга при обратном преобразовании его влияние отчетливо видно, как это убрать? Пытался использовать перекрытие блоков данных, ничего не вышло, только сигнал по времени сжимается.
>>199005 > нафига сигнал портить Ну почему портить. Преобразование Фурье вычислял от блока данных помноженный на оконную функцию, вроде так и делают. Со спектром необходимо произвести манипуляции и вычислить обратное преобразование Фурье. Может домножить на функцию обратную оконной?
>>199026 У тебя часть отсчётов обнуляется, часть почти обнуляется, ты из них только мусор получишь. Нафиг тебе окно, оно для анализа используется, а не для манипуляций с сигналом. Без него попробуй.
>>199041 Ну в умных книжках пишут, что оконная функция нужна без неё херня получится.
Как считать Фурье с перекрытием блоков? К примеру беру 1024 отсчета, множу на окно вычисляю Фурье. Шаманю с спектром, вычисляю обратное Фурье, результат кладу в выходной файлик. Дальше беру 512 из первого блока и 512 следующих отсчета, повторяю шаманство. В результате в выходном файлике сигнал сжат по времени. Где я обосрался?
>>199098 Херня получится, если тебе надо на спектральную картинку смотреть. А если обрабатывать, то всё нормально. Почитай ещё раз назначение оконных функций.
Напишу-ка тут ещё. Самое подходящее место. Анон, не гони ссаными тряпками. Суть преобразований понимаю прекрасно, но вот с математикой проблемы. Где я обосрался?
Анон, поясни ньюфагу, почему матлаб генерит такие странные значения фазы? Это как-то связано с погрешностью округления? Код: sampling_frequency = 32; period = 2 pi;
>>204752 >period = 2 умножить_на pi; >f = cos(period умножить_на x); Макаба съела знаки умножения удивительно, но уже столько времени сижу здесь, но не знаю как правильно вставлять в сообщение знак умножения
Аноны, у кого есть время и опыт, объясните, пожалуйста, как с помощью алгоритма Герцеля для МК найти несколько частот (определить их наличие) в оцифрованном ADC сигнале?
Может где-то есть, не знаю, прям подробно описанный, понятный образец для дебилов? В тырнете только вычурные формулы и мешанина.
Или есть способ ещё проще? Посмотрел на ДПФ - ещё больше в ахуе, чем от Герцеля. Без пояснений нихуя не понятно.
>Посмотрел на ДПФ - ещё больше в ахуе, чем от Герцеля. Без пояснений нихуя не понятно. Преобразование фурье интуитивно намного легче понять, так что признайся - ты даже не пытался разобраться.
>>216459 А из онлайн-курсов обязательно смотреть лекции Оппенгейма на opencourseware.
Пацаны, где почитать можно про сравнение сложности реализации и максимально возможной пропускной способности кодера и декодера ldpc/турбокода на FPGA/DSP-процессоре? Нихуя что-то найти не получается.
Кто нибудь пользуется SPICE симуляторами для моделирования цифровых фильтров?
Нашел годную статью, где чувак хуячит цифровые фильтры в Микрокапе, пользуясь фичей ZVofV - z-преобразование напряжения. Тут он показывает как можно анализировать эффекты квантования, частотные характеристики, сигналы в различных точках фильтра. Вообще мощная штука же, можно составлять схему из блоков фильтров, использовать цифровые фильтры в цепях обратной связи, оптимизировать перебором параметров и т. д.
>>222427 Я тоже зашел. Даже программу посмотрел. Бляя.... Это пиздец конечно. Стыдно > д.т.н., профессор Дворкович В.П. д.т.н., профессор Дворкович А.В. > член-корр. РАН Зубарев Ю.Б., д.т.н., проф. Золотарёв В.В., д.т.н., проф. Овечкин Г.В., к.т.н., доц. Овечкин П.В. Сука, целыми семьями на бюджетном бабле сидят
>>222452 > написаны всякие йоба темы На самом деле это просто йоба названия, а внутри обычно какая-нибудь хрень уровня 2-го курса MIT или лекций на курсере. Вообще, мне довелось наблюдать, как пишутся такие доклады. Там выбирается какая-нибудь заурядная тема и раздувается так, чтобы внешне это выглядело как будто ниибаца какая передовая тема. И часто, не имеющая полезного воплощения в жизни.
Пробегусь по рандом темам >Дискретно-частотное преобразование Фурье и его приложения Проф. Пономарев В.А., доц. Пономарева О.В., к.э.н. Пономарев А.В. Охуеть вообще
>>222645 Пробегусь по рандом темам >Дискретно-частотное преобразование Фурье и его приложения Проф. Пономарев В.А., доц. Пономарева О.В., к.э.н. Пономарев А.В. И да, кстати, приглядимся к фамилиям. Писался целым выводком грантососов
>Размерное по времени и частоте преобразование Фурье >Алгоритм спектрального анализа сигналов на основе дискретного вейвлет-преобразования Основы основ
>Оценка полосы пропускания каналов связи IP-сети в задаче построения системы видеоконференцсвязи Нихуя, наука
>Цифровая сверхширокополосная радиолиния для связи между роботами, работающими в самоорганизующейся группе
Как звучит-то! А что уже роботы есть?
>Вычисление цифровой оценки спектральной плотности мощности на основе фурье-преобразования взвешенной временной последовательности результата знакового аналого-стохастического квантования случайного процесса Смотрю, Фурье-преобразование - жаркая тема. Как будто недавно только открыли
>Метод измерения частоты сигналов на базе параметрического дискретного преобразования Фурье асп. Пономарева Н.В., асп. Пономарева В.Ю. Опять семейное дело...
>>222421 Запилю-ка я отчетик по dspa. Пошел на последний день. На секцию по аппаратным средствам. Пришли не все докладчики. Сразу скажу, что крайне годным оказался доклад, от которого я этого не ожидал: "Бортовые регенеративные системы летательных аппаратов". Вышел суровый мужик и по-хардкору рассказал про архитектуры отказоустойчивых систем. Потом в конце на этого докладчика взъелся какой-то полоумный дед, который начал затирать, что это все фигня, потому что докладчик цифр не привел. Но все согласились, что у деда кукушечка еще с зимовки не вернулась. Еще интересным был доклад про dds синусоид с помощью функций Уолша. Даже Солонина отметила(да, она там была среди слушателей), что автор харашо зделол. Остальные доклады были проходными. Некоторые норм, но очень узкоспециализированные (про резервирование памяти в процессорах парень уж очень нудно рассказывал про то, как у него там полуслова располагаются). Разочаровался в докладе про применение плис в качестве сопроцессора. Думал, сейчас расскажут про гигабиты данных, про то, как уделывают CUDA, ибо у самого такой проект был в списке. Но вышел парень и сказал, что он не знает верилога и вообще лошара. Но скорость отклика надо было сокращать, поэтому он взял zynq залил зачем-то туда еще софт ядро и написал алгоритм на си, который перевел в железо с помощью модного вивалдо. И у него все получилось. Потом его научрук нахваливал неистово, что заебись все вышло, что прямо уровень кандидатской. Как-то грустно стало. В их шараге(балтийский государственный), видно, уровень кандидатских в разы ниже. По поводу здешних борющихся с распилами и прочей ересью. Немного расскажу про науку в РФ и про преподов. Суть токова. Хочешь выжить, борись за гранты. 80 процентов твоего времени будет составлять составление отчетов. Остальное будет наукой. Но нахуй так жить. Но на этой секции таких практически не было. Людям для получения степени, даже бакалаврской, нужно выступить на определенном количестве конференций. Что они и делают. В целом их полезно послушать, чтобы осознавать свой уровень. Про однофамильцев или родственников собсвенно похуй. В вузе зарплата зависит от количества публикаций хоть где, вот все друг друга и вписывают. Это же работает и в больших компаниях. Когда я в самсунге работал, я провел большой рисерч, а в докладе со мной было человек 10, включая всех начальников и тех, кто мне пару раз помогал со смежными вопросами. А вы как дети какие-то. Так искренне всему этому удивляетесь, что мне как-то даже смешно стало от вас.
>>222882 > Еще интересным был доклад про dds синусоид с помощью функций Уолша. Даже Солонина отметила(да, она там была среди слушателей), что автор харашо зделол. Первая ссылка в гугле https://www.researchgate.net/publication/224337492_Sine-wave_synthesis_using_walsh_functions > Date of Publication :February 1987 > 1987 Блять, это почти 30 ебаных лет назад! Что, неужели ничего нового не появилось?
> Немного расскажу про науку в РФ и про преподов. Суть токова. Хочешь выжить, борись за гранты. 10 процентов твоего времени будет составлять составление отчетов. Остальное будет прогулки по университету, пересказ анекдотов, непрерывеые чаепития и т. д. Поправил тебя > Людям для получения степени, даже бакалаврской, нужно выступить на определенном количестве конференций > В вузе зарплата зависит от количества публикаций хоть где, вот все друг друга и вписывают Охуенно эффективная организация. И ты хоть приукрашивай, пожалуйста, когда пересказываешь всю эту безысходность, пожалей анона, не жги ему пердак сильно
>>222986 Блядь. Отвлекись от своего борцунства. Наука не может быть эффективной. Ни у кого и нигде. Можешь вспомнить процент успешных инновационных проектов в кремниевой долине для примера. Дальше. Про Уолша. Сложи написанные мною ранее А и Б. Я сказал, что там и бакалавры участвуют. У тебя якобы что-то прорывное было на дипломе. И про твои маняпоправки. Не путай НИИ с динозаврами, сидящими на окладе и которые забыли, как статьи писать, с нормальными лабами. Я знаю как минимум трех людей из разных лаб, которые активно осваивают гранты и въебывают они огого как. Ну и статьи у них в рецензируемых и международных журналах. Но тебе-то лучше знать. Тебе в /b/ и /po/ много рассказали про нашу науку, я вижу.
>>224104 Физтех. В Калужской области только производство, если я правильно помню. У Самсунга RnD центр на савеловской. Этажа 4 занимает. В основном софтварщики. Вот там я и работал.
>>224109 Во многих отделах там довольно обезьянья работа. Задачи тебе будут скидывать либо те, которые корейцам влом решать, либо которые они в принципе не представляют, как решать. Сами корейцы тоже довольно ебанутые и у них абсолютно другое мировоззрение и отношение к нженерам. От этого можно обезопаситься только хорошим начальником. Перспективы там никакие. Заслуги особо не учитывают. Есть квартальная оценка работы. По оценкам есть квота. В основном всем ставят среднюю оценку. Так и будешь продвигаться "по выслуге". Зарплата средняя по индустрии. Если не ниже среднего. В отделы, занимающиеся умными вещами(цос, машинное обучение, алгоритмы), обычно хрен попадешь. Туда в основном кандидатов наук берут. Однако, что парадоксально, бывает туда набор фрешменов без опыта. Я ебал их логику. Ну и переход между отделами воспринимается с истеричным визгом обоих начальников. Из плюсов: штабильность, оплаченные обеды, хороший офис, всякие страховки(я когда решил увольняться пошел и вылечил все зубы), адекватные коллеги.
>>224473 Чего плохого в вопросе о зарплате? Надо же людям как-то сравнивать себя с другими, и понимать в какой ситуации они находятся — все хорошо или сидим в говне.
>>224473 а вот вообще если спрашивать у умудренных жизнью олфагов, советов на будущее. Я в этом году заканчиваю универ в Мухосранске на электронщика. Куда податься что бы нормально развиться в специалиста?
>>229578 Если relative magnitude выше, чем порог - то искомый сигнал есть. Вопрос в том: какими вычислительными возможностями ты располагаешь и как определить порог.
>>222646 >>222645 А чего ты хотел? Для получения обоссаного бакалавра/специалиста/магистра/etc в любом говновузе нужно обязательно поучаствовать в нескольких конференциях, поэтому хорошие доклады, которые делались реальными специалистами, разбавляются говном, которое делается для галочки. Олсо, подобная практика применяется и во всяких передовых банановых республиках типа Индии, Китая. Всегда проигрывал со статеек индусов, когда натыкался на оные. мимобугуртящий магистр, отправивший пол часа назад унылое говно на очередную МЕЖДУНАРОДНУЮ КОНФЕРЕНЦИЮ
>>229654 Порог подбирается экспериментально. Для начала запрогай герцеля на ПК и погоняй с разными входными сигналами: с реальными и с синтезированными. Кстати, выложи сюда образец сигнала. Надо знать насколько часто тебе нужно анализировать массив оцифровки и какого он размера, от этого зависиткакогогерцеля делать: с фиксированной точкойили с плавающей.
>>229800 >Надо знать насколько часто тебе нужно анализировать массив оцифровки и какого он размера
Если нижняя частота 5Гц, которую хотим контролировать, то надо 1/5 секунды, потому что 5Гц - это событие, повторяющееся 5 раз в секунду; частота сэмплирования всего 125Гц; семплов надо забрать 1 в 1/125 секунды.
Итого, надо прогнать 25 семплов на наличие трёх частот.
С записью сигнала не пойму как сделать лучше: чтобы записать сигнал через вход звуковой карты нудо слишком длинный провод до системника -> куча помех будет, да и звуковуху, если что случится, жалко.
>>229846 25 семплов это 1 период для 5Гц, 1.8 периодов для 8 и 2.3 периода для 14 Гц. Не получится стабильно детектить 5 Гц, особенно на фоне шумов, надо больше периодов, а значит нужно больше отсчетов. Насколько больше можешь себе позволить?
Алсо, на вход АЦП поставь подтяжку к опоре АЦП и минусу резисторами. Сопротивление их выбери исходя из: выходное сопротивление источника * 10. Постоянную составляющую на входе надо будет отсечь кондером на 10...100 мкф. В плане низкоуровневого кода: Для начала сделай так: любым способом набирай необходимое кол-во отсчетов, далее прекращай оцифровку и анализируй. В начале анализа меняй состояние любой линии порта на противоположенное: далее измерив частоту поймешь, сколько по времени выполняется код. Далее можно уже оптимизировать.
>Не получится стабильно детектить 5 Гц, особенно на фоне шумов, надо больше периодов, а значит нужно больше отсчетов. Насколько больше можешь себе позволить? Я пока не проверял, но можно попробовать прогнать все 125 семплов до начала следующей оцифровки сигнала.
Пацаны, не могу никак книгу найти "Michael Rice - Digital Communications. A Discrete-Time Approach". Ни у кого нет? Или, может, кто-то знает, где ещё можно поискать?
>>235431 Хорош тебе, я обычный быдловыпускник из мухосранской шараги, работаю и пишу диплом в местном НИИ радиотехники, и чуток познакомился с этой кувалдой. Тут делов-то: вытянуть данные из записи и прогнать через fft().
>>235434 Система проста. Быдловыпускники из мухосранских шараг подсаживаются на матлаб и потом только на нем и могут работать. Потом идут на работу и заявляют, что только на матлабе и могут думать. И тут уже работодателю приходится покупать матлабец. А хули делать?
Аноны, что-то туплю. Как аналитически доказать, что если мы передаем модулированный сигнал в квадратурах (mPSK, QAMm и т.д.) в канале с АБГШ, то на сигнальном созвездии плотность распределения будет аля пикрилейтед, то есть Gaussian Mixture? Почему Gaussian? Почему считается, что матрицы ковариаций у компонент распределений диагональные? Только объяснений на пальцах вот не надо мне, пожалуйста (хотя для поддержания беседы можно).
>>235616 Ну да. Почему? У нас куча преобразований. Мы домножаем на синусы и косинусы: ищем значения амплитуд и фаз. Схуяли у нас будет ГШ, а не хи-квадрат, например?
Господа, продублирую вопрос. Собираю модель фазовой синхронизации несущей для QPSK с помощью возведения в 4 степень. Вот прямо QPSK на несущей возвожу в степень и фильтрую полосно-пропускающим, получаю гармонику на 4*Fc и, соотвественно, с опорного генератора синус тоже надо возвести в степень, отфильтровать и сдвинуть фазу на pi/2, чтобы потом, перемножив, получить разность фаз. Каким образом в цифре осуществляется сдвиг фазы? В симулинке готовый блок умеет двигать фазу только у комплексного сигнала. Задержкой тоже не вариант. Краем уха слышал про фильтр Гильберта, но так и не понял нихуя, как сделать, чтобы у меня на его выходе был сдвиг на pi/2. А во всех книжках рисуют сраные блочки, обозначающие сдвиг фазы, значит, как-то же это реализуется, блджад! Как?
>>239930 >Задержкой тоже не вариант. Это почему? Или цифровые фильтры перестали строиться на линиях задержки? >В симулинке готовый блок умеет двигать фазу только у комплексного сигнала. А тут в чем проблема? Ты в матлабе делаешь или уже в железе?
>>240018 Ну я просто в симулинке собрал vco по формуле почти - косинус от интеграла суммы управляющего сигнала и круговой частоты по умолчанию, а так слышал звон, но не знаю, где он - cordic. Этим я займусь, обязательно займусь, но потом. В целом он работает, но при одинаковых параметрах петлевого фильтра библиотечный блок vco симулинка имеет время подстройки в пару раз меньше. Почему-то если собирать именно по формуле выходного сигнала vco, которая в справке по блоку приведена, у него на выходе постоянно 1. >>240064 >Это почему? Я не уверен, но ведь получится, что в какой-то начальный момент времени петля будет пытаться синхронизировать синус с нулем. >А тут в чем проблема? В том, что и мой, и встроенный vco умеют генерировать действительный синус. Вообще, я сейчас поправил это дело, оказалось, что при возведении в степень комплексного сигнала мнимая часть как раз сдвинута на pi/2, только схема все равно не работает, лол, но это уже другая история. Делаю пока в матлабе, а точнее, в симулинке, но пытаюсь как можно меньше использовать встроенных блоков, потому что не всегда понятно, как они работают, да и как по этим схемам потом реализовывать все в железе я точно не соображу.
>>239930 >с опорного генератора синус тоже надо возвести в степень, отфильтровать и сдвинуть фазу на pi/2 Так тебе надо выделенную чистую синусоиду сдвинуть на pi/2? Элементарная задача же. Проинтегрируй, интегратор даёт чоткую фазовую задержку на pi/2.
>Каким образом в цифре осуществляется сдвиг фазы? В симулинке готовый блок умеет двигать фазу только у комплексного сигнала. >Краем уха слышал про фильтр Гильберта Это всё не для чистой синусоиды (т.е. несущей), а для квадратурного сигнала (т.е. комплексной огибающей). Имеют смысл только когда несущая у тебя уже есть, и ты уже с самим сигналом работаешь.
>>240091 Я пробовал. Если просто суммировать, то в 13 раз больше амплитуда и по модулю минимальное значение меньше максимального. То есть, область значений не [-13; 13], а [-12; 13], что для меня странно. Если встроенный интегратор взять, то та же херня, только амплитуда наоборот меньше, причём раз в 300. Если производную взять, получается в 300 с лишним раз амплитуда больше, но зато по модулю максимальное и минимальное значение одинаковое. Правда, сдвиг фазы не pi/2, а 3pi/2 с небольшим. Вообще, я не уверен, что всё делаю правильно, потому что в книге ппф стоит перед возведением в степень, больше фильтров нет. Но тогда при возведении в степень получается прыгающая туда-сюда хуита, которая по форме даже не синус. Я же вместо ппф с центром на несущей поставил ппф с центром на 4*Fc уже после возведения в степень. Так получается синус, но у него амплитуда дрожит немного.
>>240122 >Если просто суммировать, то в 13 раз больше амплитуда Потому что интеграл это не просто суммирование значений функции, а суммирование значений функции, умноженных на дельта тэ. Можешь руками подобрать коэффициент, чтобы на выходе была нужная амплитуда, и всё будет норм (по сути ты введёшь в формулу дельта тэ). > по модулю минимальное значение меньше максимального. То есть, область значений не [-13; 13], а [-12; 13] Если постоянная составляющая в момент старта пролезла в интегратор, она остаётся там навсегда. И тебе ещё повезло, что она там просто есть, а не постоянно растёт как было бы в случае, если бы на входе был бы синус с постоянной составляющей. Можешь выделять постоянную составляющую на выходе (скользящим средним) и подмешивать её с минусом на вход, только не жадничай, подмешивай по чуть-чуть, чтобы автоколебаний не возникло, и постоянка плавненько ушла до нуля. Длину скользящего среднего бери кратной периоду синуса. >Но тогда при возведении в степень получается прыгающая туда-сюда хуита, которая по форме даже не синус. По идее да, там сумма гармоник и постоянки. http://100formul.ru/54 >Так получается синус, но у него амплитуда дрожит немного. Она не дрожит, просто вряд ли максимумы функции постоянно с временными дискретами совпадают. Думаю, так и должно быть.
>>240123 Да видел я эти модели. Некоторые блоки там вообще составлены по хуй знает какому принципу, некоторые отличаются лишь некоторыми деталями от того, что я видел в книгах. Может, автор и дохуя соображает, но я не автор, и мне хотелось бы разобраться, что как работает и откуда это взялось. Почему его модель собрана так, а не как в книге, я не понял, поэтому решил, что лучше с другой стороны зайти. К тому же как такового там переноса на несущую нет. >>240130 >Потому что интеграл это не просто суммирование значений функции, а суммирование значений функции, умноженных на дельта тэ. Это я вот под конец рабочего дня как раз и понял - встроенный интегратор по сути так и работает, но почему тогда у него амплитуда в 300 раз меньше? Да и область значений меня очень удивляет. >Если постоянная составляющая в момент старта пролезла в интегратор, она остаётся там навсегда. Но если на входе интегратора синус без постоянки, откуда она там возьмется? А можешь про постоянку пояснить? Вот у меня петлевой фильтр в цепи ФАПЧа на выходе такую хуйню и показывает - какие-то колебания с небольшой амплитудой вокруг постоянки. Это даже при идеальной синхронизации. По идее, это должно быть на нуле. Если ввести фазовый сдвиг, то все эти шумы поднимаются резко и потом плавно опять спадают до нуля - система синхронизируется. А у меня получается так, что даже если ГУН другой системой подстраивается, выход петлевого фильтра так и остается на какой-то постоянке. С чем такое может быть связано? Петлевой фильтр по сути интегратор, выходит, что в какой-то момент времени (возможно, в тот, когда на входе фильтра появляется сигнал), в него пролазит постоянка? >Можешь выделять постоянную составляющую на выходе (скользящим средним) и подмешивать её с минусом на вход Надо попробовать, но в уравнении выходного сигнала VCO или в схема фапч я такого не видел еще ни разу. >По идее да, там сумма гармоник и постоянки. Да, расписал все на бумаге - там 1/8 от суммы удвоенной несущей и учетверенной. Причем, что интересно, из-за учетверения фазы на 4Fc получается вообще чистый синус, информационная составляющая только на 2Fc есть. Согласись, было бы очень логично с помощью ППФ этот синус выделить как из возведенного в степень модулированного сигнала, так и из возведенного сигнала с ГУНа, и у этих синусов уже искать разность фаз, перемножив, но почему-то в книге в схеме такого сделать не предлагают, предлагают именно эту сумму гармоник сравнивать, причем с ГУНа их надо сдвинуть на 90 градусов - тут-то у меня вопрос и возник, как это реализовать. Алсо, можешь пояснить один момент с ФАПЧ? Вот есть два генератора, сигналы с них перемножаются, пропускаются через петлевой фильтр (ФНЧ по сути), и далее поступают на вход одного генератора. Почему-то всегда система сама делает так, что между этими генераторами разность фаз 90 градусов. Я не могу никак понять, почему, ведь при умножении любой комбинации синусов/косинусов один хер будет функция суммы аргументов и функция разности. То есть, получается, что никакой нахрен разницы нет, что будет на входах умножителя: два синуса, два косинуса или синус с косинусом. Почему тогда петля всегда дает разность фаз в 90 градусов? >Она не дрожит, просто вряд ли максимумы функции постоянно с временными дискретами совпадают. Думаю, так и должно быть. Я думал об этом, но потом решил, что такая же петрушка была бы с сигналом с ГУНа, но он-то ровненький и на осциллограмме лежит как влитой.
http://rgho.st/775bvdhld Бамп книгой Discrete-Time Signal Processing 3rd edition в хорошем качестве. Несколько месяцев искал ее, даже лазил по файлопомойкам в китайском интернете через vpn никогда бы не подумал, что у них столько всего интересного там. inb4 нищеброд, книга не дешевая, хоть и стоит своих денег.
как отфильтровать помехи и вычленить постоянную составляющую сигнала посредством микроконтроллера? сейчас использую самый простой алгоритм 1. замеряю 1000 раз 2. нахожу среднее арифметическое в исходе помогает, но при увеличении значения помехи результат начинает болтаться, чего я хочу избежать
>>252714 Или меряй чаще Или реализуй фильтр посложнее Скользящее среднее, паереодическое звено ну и на закуску IIR и FIR. В армоском СДК есть готовые функции
Вычисляю БПФ, предварительно применив к исходному сигналу окно хэмминга в итоге амплитуда частотных составляющих уменьшается. Как восстановить обратно?
>>252731 >Скорей всего больше высокочастотных помех только вылезет. А они никуда и не деваются. Если мерять реже, то ВЧ-помехи просто алиасятся в область рабочих частот, что имхо хуже.
>>252714 Один хуй придётся уменьшать частоту среза, т.е. усреднять по большему количеству выборок. Поскольку держать всё это в памяти не вариант, то сделай экспоненциальный фильтр:
y[n] = y[n-1]•(alpha) + x[n]•(1-alpha)
x - измеренное значение y - отфильтрованное значение (n - текущее, n-1 - предыдущее)
Чем ближе alpha к единице, тем сильнее эффект. Только не взумай делать float, делай что-то вроде (если alpha принять 998/1000 ):
y[n] = ( y[n-1]•(998) + x[n]•(2) )/1000
Или ещё лучше, чтобы избежать накопления ошибок округления на каждом шаге:
y[n] = y[n-1] - (y[n-1]•2)/1000 + x[n]•(2)
Тогда у тебя в y[n] будет постоянно находиться отфильтрованное значение, умноженное на 1000, а сам фильтр будет более стабильным.
Обязательно следи, чтобы не было переполнений, uint32_t во все поля, ну ты понел.
Ну не надо, ну не стукай! Вкачусь-ка. В плисотреде спрашивал про FIR Compiler в Квартусе, но ответа не получил, поэтому стал писать руками. Пикрелейтед 1. В Матлабе посчитал ФНЧ на 51 коэффициент с окном Блэкмана, пикрелейтед 2. Сверху импульсная, снизу частотная характеристика (вторая в децибелах). Тактовая частота - 50 МГц / 10 бит = 48.28 кГц, срез считал на 3 кГц. Если раскомментить то, что на первом пике, то на вход фильтра идёт сигнал шириной 5 тактов, и получается отклик с пикрелейтед 3. Пила из-за того, что для вывода аналогового сигнала использую ШИМ. Нету ЦАПа годного, а даже восьмибитный R-2R оказался говном, поэтому пришлось так. С оцифровкой входного сигнала тоже беда, поэтому прямо на плисине собрал сигма-дельта АЦП. Пикрелейтед 4 - используемое железо. Альтеровская EP4CE6 с флешкой EPCS16.
Такой вот первый опыт. В планах - состроить приёмник 0..14 МГц с АМ и SSB/CW. 10-битные 50 Msps АЦП вроде едут, если китаец не наебал.
>>254800 Я бы линию задержки загнал в SYNC_RAM, и использовал циклический счетчик - фактически кольцевой буффер. И коэффициенты тоже в SYNC_RAM. Как-то так.
>>254877 Я когда с синтезатором маялся, компилятор сам запихал таблицу синуса в M9K, а тут с коэффициентами такого не происходит. Хз почему. В остальном устраивает. Ну и по-хорошему, стоит использовать мегафункции квартуса, потому что они хорошо оптимизированы. Но FIR Compiler у меня не работает.
>>254901 >хули как не родной? Да чёт сложна, сделал что первое в голову пришло.
Котаны, если я оцифрую сигнал, наивысшая частота в котором около 3 кГц на 43200 Гц и потом децимирую до 14400 Гц, я получу то же самое, что и при оцифровке на 14400 Гц?
Частота идёт вниз от 20 кГц до 500 Гц, на входы X и Y даны сигналы до и после фильтра. Почему фаза так крутится? Вроде должна же быть окружность во всём диапазоне.
И да, таки сделал сигма-дельта ЦАП, хорошо работает.
>>255246 >Почему фаза так крутится? Вроде должна же быть окружность во всём диапазоне. Может, выходные фильтры вносят задержку? Симуляцию в матлабе пробовал?
Нуб в треде. Пытаюсь замутить векторное управление синхронником, проблема с измерением токов на фазах. На каскады с МК уходит ШИМ, соответственно в сигнале с датчиков тока я получаю перемноженный полезный сигнал и ШИМ. Подскажите верный подход к избавлению от этого дела? Я додумался только увеличить частоту ШИМа и отфильтровать его фильтром первого порядка
>>255409 По-моему, не совсем это правильно - повышать частоту ШИМ в силовой схеме, чтобы удобнее измерять было. Один силовой ключ, тянущий более высокие частоты, может обойтись по цене как десяток микроконтроллеров, в зависимости от мощности.
Измеряй скользящим средним, у него в характеристике есть нули (пикрел), и если взять длину скользящего среднего, кратную периоду ШИМ, то нули как раз будут давить частоту ШИМ.
Скользящее среднее делай не тупым суммированием всего, что в апертуру попадает на каждом шаге, а рекурсивно прибавляй то, что в апертуру въезжает, и вычитай то, что выезжает. Первое бери с АЦП, второе - с буфера задержки. Задержка должна быть равна длине скользящего среднего.
У фильтра Гильберта хуёвый скат АЧХ, поэтому для устранения завала на НЧ и повышения подавления второй боковой полосы его частоту дискретизации пришлось опустить до 12 кГц, у остального же тракта она 48.8 кГц. В текущем виде подавление нижней боковой около 40 дБ получается.
Собираюсь делать КВ трансивер, и для норм характеристик надо будет накинуть порядок (который сейчас 50) и подобрать более пиздатое окно, а по всему тракту увеличить разрядность бит до 12. Ну а так, работает!
>>255546 >аналоговой >в пайтоне Аналогово было только в фортране. Может быть и лампово даже. Невозможно программно обрабатывать неоцифрованные сигналы. Ни на каком языке.
>>255442 >У фильтра Гильберта хуёвый скат АЧХ, поэтому для устранения завала на НЧ и повышения подавления второй боковой полосы его частоту дискретизации пришлось опустить до 12 кГц,
А как потом обратно интерполируешь до 48кГц? Интерполяционным фильтром какого порядка? КИХ или БИХ?
Алсо почему бы фильтр Гильберта не делать на частоте дискретизации 6-с-чем-то кГц, ведь рабочая полоса у тебя 3кГц? Получишь в рабочей полосе лучший результат при том же порядке фильтра.
>>255731 >А как потом обратно интерполируешь до 48кГц? А никак. В записанном голосе выше 6 кГц нету нихуя, поэтому тупое прореживание с 48 на 12 кГц здесь работает без заметных наложений. Интерполировать не надо, наоборот децимировать. >ведь рабочая полоса у тебя 3кГц? С запасом, до 5 кГц, чтобы вещательные станции влезали.
Сделал шилд с более-менее вменяемым АЦП AD7899 (400 кГц @ 14 бит), и сейчас план - сделать демодуляцию однополосного сигнала на ПЧ 100 кГц, которую получать переносом спектра откуда-нибудь с КВ аналоговым гетеродином На зеркальный канал похуй, лишь бы работало.
У АЦП дискретизация со скоростью 400 кГц, что для нужной полосы много; хватит 12 кГц. Встаёт задача децимации. Но просто вырвать каждый [400/12]-й отсчёт нельзя, потому что будет наложение. Нужен фильтр.
Пытаюсь понять CIC (http://www.dsplib.ru/content/cic/cic.html), и вроде успешно, но с реализацией жопа. В моей задаче нужна задержка на 64 отсчёта и порядок - пятый, чтобы обеспечить минимальное подавление наложения хотя бы 60 дБ.
Квартус опять ебёт мозги, застывая при компиляции, поэтому снова делаем ручками, пикрелейтед 3. Начал с одного каскада. У него при порядке 1 (потому что один каскад) и задержке 64, усиление получается 32 дБ, из-за чего приходится накидывать 5 бит. Такой каскад работает, но при попытке соединить несколько таких последовательно начинается непонятный пиздец, наверное из-за переполнения, непонятного мне происхождения. Если второй каскад делаю в этом же модуле и не усекаю разрядность, увеличивая её ещё на 5 бит, то получаю то же самое.
Хуй знает, что делать. Приёмник цифровой хочу, аж трясёт, опять простыню накатал.
>>255742 >Пытаюсь понять CIC Никогда его не видел, но понял сразу же, кек. Часть I — интегратор, часть C генерирует из поступающих отчётов сумму из них самих плюс их же, только задержанных и со знаком минус. Это ж прям один в один как я тут >>255411 скользящее среднее предлагал сделать если части I и C местами поменять, а поменять их можно, поскольку система линейная, и АЧХ точно такая же.
Да, интегратор скорее всего переполняется. Совет такой: поменяй местами I и C получишь более устойчивую систему, так как всё, что у тебя в интегратор добавится, 100% гарантированно из него позднее вычтется, и гарантированно не позднее времени задержки. Интегратор делай с увеличенной разрядностью: на сколько тактов была задержка в C, во столько же раз увеличится максимальное значение в I. Включай несколько таких каскадов один за другим: CI-CI-CI-CI... Между ними можешь отбрасывать или не отбрасывать младшие биты, хз, попробуй и так и так. Думаю, что можно отбрасывать. Или отбрасывать с дитерингом.
Анон, можно ли измерять частоту гитарного звука без буфера? Пробую делать синтезатор, для которого осциллятор - бас, сначала сделал детекцию по двойному изменению производной, но это работало только для синуса. Сейчас - по двойному изменению знака сэмпла, но волна типа пикрелейтед все портит. Можно добавить отсечку, выше которой будет считаться, что это следующая волна, но тогда придется делать буфер.
>>255787 Не ищи лёгких путей, если хочешь хорошего результата. Сделать без буфера ты, может, и сделаешь, но работать на практике это будет тошнотворно. Посмотри тут (и далее в ответах) лучший способ: >>145872
>>255778 >>255779 >>255783 Не разобрался с параметрами, внимания видимо не хватает, продолжил пердолить своё говно.
И таки допердолил. Дело было в присваиваниях. Увидел, что вместо нормальной импульсной характеристики на выходе хуйня. Пикрелейтед 1 - рабочий вариант. 2, 3, 4 - импульсные характеристики для 1, 2 и 3 порядков соответственно, полученные последовательным соединением.
>>255788 >>255858 Спасибо за советы, но тут мне видится проблема в окне для АКФ. Что если волна окажется разделена им? Да и само окно минимум 3 периода должно быть, надо будет как-то вставлять волны, которые не входят целиком в него. Попробую запилить, посмотрю на результат, но, думаю, будет не оче.
Синтезатор у меня простой, видит период - вставляет заданную волну с этим периодом. Плюс играть буду всегда одной струной, без аккордов. Пока прикрутил алгоритм, который после смены знака смотрит, если сигнал превысил половину максимальной амплитуды(само собой, задано через переменную), то засчитывает это как полупериод, вроде лучше звучит.
>>255909 Очень, очень плохо. Просто чудовищно хуёво. Пиздец говно и блевотина. "=" внутри синхронного always это ад и зашквар. Зачем ты меня расстраиваешь?
Ты можешь писать как хочешь, но одно ты должен понимать пиздец как чётко: где у тебя комбинационная и где у тебя синхронная логика. Сейчас этого понять невозможно. По случайности твои проблемы ушли "по случайности" потому что ты и сам теперь не понимаешь, как устроена твоя схема, да и проблему вряд ли решил, просто у тебя сейчас чётное число ошибок, но если появятся другие проблемы, то проще будет застрелиться, чем найти причину. Сразу могу сказать, что на высоких частотах это работать не будет.
ЗАПОМНИ: внутри always @ (posedge clk) ТОЛЬКО "<=" aka синхронная логика, а комбинационная логика - ТОЛЬКО "=" внутри always @ (*) или assign.
>>255909 Могу сказать, какая проблема у тебя была, и какую ты скомпенсировал чётной ошибкой. delay[0]-delay[63] это задержка на 63 такта, а не на 64. Сейчас ты делаешь блокирующее присваивание, потом сдвигаешь линию задержки, поэтому задержка получается 64, как положено. Но правильно было бы делать
delay[0] <= delay[1] + in; // здесь может быть переполнение buffer <= delay[0] - delay[64]; // я тебе писал тут "обрати внимание на индексы"
И не обязательно делать out <= buffer[...], ты так вставляешь бессмысленную задержку на один такт. Можно
>>255924 Ну надо же, с первого раза сделал так, что работает. На выходных басист запишет пару примеров, вброшу сюда. Только вот окно нужно большое, на 48 килогерцах 3 периода по 50 герц занимают 2880 сэмплов.
>>255942 Само собой, но все равно придется много данных обрабатывать.
Дешевых DSP-плат для разработки нет, как я понимаю? Смотрю, цены от 150 баксов начинаются. Может, свою разведу да куда-нибудь выложу.
>>255930 Что ты такой добрый? Посмотрел начало треда - что-то никто не обоссал анона с микрофоном, хотя он ИХ фильтра нормально снять сначала не мог.
>>255931 Так и сделал. Но не понял, почему при задержке 63 на выходе какой-то шумоподобный пиздец, а при 64 - нормальный сигнал. Сейчас задача децимировать с 50 МГц до 12 кГц. Это как лучше: разом, или же в несколько ступеней?
Алсо, позвонили с почты и сказали, что посылка пришла. Забрал. Китаец-пидор плохо упаковал, но выправить получилось. TDA8763M/5 - 10 бит @ 50 мспс.
>>256186 Потому что ты без уринирования имеешь тенденцию игнорировать хоршие советы. Вот я тебе посоветовал поменять местами Int и Comb, намекнул не прибивать разрядность и задержку гвоздями, а использовать parameter - ты внял? Ну вот. Наверняка и блевотную мешанину из "<=" и "=" так же бы оставил, а хуле, работает же. А я тебе только добра желаю и дружбомагии.
>Но не понял, почему при задержке 63 на выходе какой-то шумоподобный пиздец, а при 64 - нормальный сигнал. Неустойчивость, обычное дело, особенно когда приходится иметь дело с интеграторами. Они находятся на границе устойчивости, и чуть что не так, любая мельчайшая мелочь чаще всего округление, например, которое вносит мелкую, но ненулевую постоянную составляющую, и всё, пизда, полюса выезжают в область неустойчивости, кровь, кишки, распидорасило. Можешь попробовать разобраться, из-за чего она появляется, можешь забить. Я такие места обычно просто жопой чую и стараюсь заранее проектировать, чтобы свести неустойчивость к минимуму. Отсюда был совет поменять Comb и Int местами. Можешь, если интересно, проверить: сначала в версии 64 поменять местами I и C, убедиться, что характеристика не изменилась, потом сделать задержку 63, и фильтр, скорее всего, будет нормально работать.
> Это как лучше: разом, или же в несколько ступеней? А смысл там что-то мудрить-то?
>>256262 >Вот я тебе посоветовал поменять местами Int и Comb Попробовал, но у меня видимо мозги из жопы, не заработало, точнее скомпилилось всего в 160 бит памяти. Но не покажу, потому что проебал, а писать заново лень.
>Можешь попробовать разобраться, из-за чего она появляется, можешь забить. Представляю в общих чертах, на ТАУ рассказывали.
>Можешь, если интересно, проверить: сначала в версии 64 поменять местами I и C, <...> потом сделать задержку 63 Не менял, как уже сказал, но увидел, что фильтр нормально работает при задержке, кратной двум. Т.к. задержка - это коэффициент децимации, помноженный на два, то есть смысл не ебаться и задавать коэффициент децимации, а не задержку, которая в таком случае всегда получается чётной.
Что я и сделал, смотри пик. В таком виде работает. Прикрутил возможность сдвигать выход в младшую сторону, чтобы реализовать усиление, которое понадобилось, например, когда выделял разностную частоту на выходе перемножителя. Ну и параметры. Менял factor от 15 до 100 - работает, смотрел ИХ осциллографом.
>А смысл там что-то мудрить-то? Надо децимировать с 50 МГц до 12 кГц, т.е. в 4170 раз. Если для этого модуля задаю factor равным 4200, то Квартус при компиляции говорит, что в цикле (которым линия задержки описана) должно быть не более 5000 итераций. Если задаю 2000, то начинает компиляцию и не заканчивает.
>>256313 Три каскада с коэффициентом 1000 таки скомпилились за 20(!) минут и даже работают при клоке 50 МГц. Но на это ушла половина памяти (120 из 270 кбит). И это только при третьем порядке. Не подходит.
>>255958 Но ведь так неинтересно. Использую, если будет ясно, что отдельная плата не взлетит.
>>256155 >Измерение частоты основной гармоники и отображение? Ага.
>Какая максимальная частота входного сигнала? 500 Гц, или сколько там на басу сыграть можно. Меня минимальная беспокоит, чем она меньше, тем задержки больше.
Смотрите, на что наткнулся. Вот такая форма дает странную функцию. Последний пик больше первого. Это норма? Пока добавил костыль в виде поиска максимума на интервале до 30мс.
>>256468 >>256469 Спасибо. Пиздец я доаутировался, не дошло, что нужно тот же регистр суммировать с самим собой, потому что так берётся его предыдущее значение, что и нужно для интегратора. Позже запилю настраиваемый модуль.
Собрал всё в кучу, сделал синтезатор от 100 кГц до 15 МГц с шагом 100 Гц и 50 кГц и с управлением с энкодера, сделал переключение кнопкой верхней/нижней боковой полосы. Дециматор 4 порядка, коэффициент 3333. Дискретизация АЦП, DDS и умножителей - 50 МГц, далее децимируется до 15 кГц. Гильберт 50 порядка, в принципе неплохо, децибел 40 подавления при отстройке на полкилогерца в нерабочую боковую полосу есть. Избирательность пока обеспечивается дециматором, у которого полоса по нулю - 7.5 кГц, а по -3 дБ - около 3 кГц. Уже лучше аналогового приёмника, на замену которому этот делается.
Динамика на слух и по генератору ВЧ 60 дБ получилась. Как и предполагалось с 10-битным трактом. Сейчас набрал транзисторов, сделаю входной усилитель и послушаю радиолюбителей на 7 МГц, если взлетит. Запилю видео-репорт.
Потом надо сделать модули гибкими и запилить фильтры-корректоры, чтоб АЧХ прямоугольная была, а не кардинально-синусоидальная, как сейчас.
На входе одноконтурный преселектор и трёхкаскадный усилитель (2 пик - он) на пиздатых малошумящих ОУ ADA4817-1 с общим усилением 2200, которое даёт 16 уровней квантования при входном напряжении 5 мкВ. Завал на 14 МГц - 2.5 дб (1.3 раза по напряжению). При этом входном напряжении отношение с/ш децибел 20 на слух.
Нашёл по дешёвке знакосинтезирующие индикаторы 1602, вхуячил сюда один, а следом за ним МК в виде ардуины. Она воспринимает энкодер, считает код частоты для синтезатора в плисине и циферки для индикатора, и выводит это всё соответствующе.
Вроде работает: https://www.youtube.com/watch?v=efNsscuIWEU Пока только вещалки (и аэродромные маяки, которые из-за преселектора в видео не попали), потому что нормальной антенны за окном ещё нет. Теперь надо реализовать АРУ и пиздовать к другу с антенной.
Кстати, прислали тут почтой подарок, 3 пик. Самая жара - АЦП и ЦАП 14-битные и эти самые ОУ, которые уже в дело пустил.
>>262958 Насмотревшись на тебя тоже решил попробовать сделать подобное. Для начала попробую подать на вход синусоиду и построить спектр для оценки SFDR. Кстати, ты уверен в качестве тактового сигнала? Фазовые шумы тактового сигнала будут оказывать приличное влияние на отношение сигнал/шум.
>>262982 >тоже решил попробовать сделать подобное Каковы характеристики АЦП? Платку самодельную опиши вообще.
>ты уверен в качестве тактового сигнала? Да не особо. Платы у нас одинаковые, сам видел, какой там простой генератор. Но нужного отношения с/ш добился. Если совсем припрёт - прикручу свой Гиацинт-М и блоком ФАПЧ получу нужную частоту.
>>263070 АЦП ADC12L066 (12 разрядов, 66 МГц), входная часть по схеме из даташита на LMH6550MA. Генератор на NB3N502 и разветвитель CDCV304. Но учитывая 15 пс джиттер NB3N502, все 12 разрядов имеет смысл использовать только на средних волнах.
При малом сигнале работает, причём на удивление (для меня) хорошо. При большом же из-за малого порядка CIC пролезают соседние вещалки. Просто так порядок накидывать не буду, потому что АЧХ совсем завалится и надо корректирующие КИХ фильтры делать, что пока отложу ненадолго.
Верх речевого спектра 3 кГц, частота дискретизации 15 кГц, т.е. выше в 5 раз. Правильно ли я помню, что из-за избыточной дискретизации при малом сигнале АИМ можно воспринимать как PDM с разрядностью, соответсвующей этим 5 разам? Если так, то получается добавление двух эффективных бит. Шум квантования хорошо отличим (т.е. слышно, что это именно он), и за ним вроде бы сигнал должен пропадать, но нет, разборчивость сохраняется ещё долго.
Пикрелейтед - выходной звуковой сигнал при сигнале 5 мкВ на входе усилителя.
>>263168 Построил спектр путем записи в память отсчетов и последующей выдачи через UART. Результат на первой картинке. Как оказалось гармоники появляются из-за LMH6550MA. Также измерил спектры генератора на NB3N502 (вторая картинка) и имеющегося на плате генератора, пропущенного на 103-ю ножку ПЛИС (третья картинка).
Ананасы, помогите ньюфагу. Прохожу нубский курс Signals and systems на opencourseware и, решая задания к лекциям, немного охуел с того, что система y[n] = x[n] + x[n-1] + x[0] - не стационарная, мол T[x[n-N]] = x[n-N] + x[n-N-1] + x[0] не равно y[n-N] = x[n-N] + x[n-N-1] + x[-N]. Почему эта хуйня происходит с x[0] при сдвиге времени? Не могу понять - то ли я туплю на элементарной хуйне и пора отдохнуть, то ли и правда здесь что-то хитрое происходит
>>263843 Ну смотри, стационарная система — это система, выход которой не меняется, если входной сигнал сдвигается по времени влево-вправо, он лишь тоже сдвигается влево-вправо вслед за ним. В системе, которая у тебя описана, выход в каждой точке зависит от того, какой конкретно отсчёт попадает на вход при определённом моменте N=0, потому что x[0] прибавляется к каждому y[n].
Поэтому если в каком-то случае у тебя x[0] = 0, потом ты сдвинул по времени входной сигнал, и у тебя выпало x[0] = 1, то выходной сигнал не только сдвинется по времени, но ещё и приподнимется, потому что к каждому y[n] прибавится единица. А он не должен этого делать, чтобы система являлась стационарной.
>>263858 О, да, забыл, что там еще было условие, что x[0] > 0. В общем спасибо, на пальцах всё понятно, однако все-равно не доходит, как математически для себя обосновать этот сдвиг x[0] на x[-N]. Ну да хуй с ним.
Лол, тебе надо математически обосновать, почему (бла-бла-бла)+x[0] не равно (бла-бла-бла) + x[-N]? А это не очевидно?
Это формальное описание того, что по смыслу можно передать как "x[0] не сдвигается на N отсчётов, когда всё остальное сдвигается, поэтому система нестационарная. Вот если бы x[0] сдвигался, и вместо него мы брали бы x[-N] а не опять тот же самый x[0], то была бы стационарная".
>>263962 Да нет, я чето не смог понять, схуяли y[n] = x[n] + x[n-1] + x[0], а y[n-N] = x[n-N] + x[n-N-1] + x[-N], а не y[n-N] = x[n-N] + x[n-N-1] + x[0] . В x[0] ведь нет внутри независимой переменной n (например, x[0-n]).
>>263843 О, а кто смотрел эти Signals and Systems? Чем оно отличается от похожего, но более старого курса оппенгейма Discrete Time Signals and Systems и стоит ли смотреть оба?
>>264172 Хей, мань, я за омс получаю 100 долларов в месяц, за общение с ~100 бабушек. Живу за деньги платных пациентов. Вот уж кто кто пидар, так это околокомпьютерные мудилы в нашей сфере. Которые не могут нихуя сделать с ПО того же томографа выиграв контракт вместо офицалов. Я уж не говорю про самописные crm которые к треду отношения не имеют. Что же касается трехмерных изображений из серии слоев, о котором написано в шапке, то тут не особо цифровая обработка сигналов. Традиционный подход - пороговое, плотносное построение 3д поверхности из вокслей с серии 2д картинок. Особо нахуй не нужно в диагностике, веселит только пациентов и прочих нуфагов. Есть подходы и поинтереснее, более похожие на векторные, но тоже без задач. Другое дело, что придумал Кормак 50 лет назад - реконструкция 2д среза из сигнала от вращающегося вокруг пациента датчика. Но это совсем не то, что написано в оп посте про кт.
>>264179 Спасибо за интересную инфу, братишка это я тебя в шутливо-дружелюбной форме пригласил поделиться инфой по существу а то ты вкатился с каким-то высокомерием в тред, уёбок рад, что ты адекватен, добра
>>264179 Праздный вопрос - если бы какому-нибудь школоло-Сифуну http://www.rosbalt.ru/moscow/2009/06/08/646378.html захотелось запилить в мамкином гараже аппарат для томографии похуй чего, чисто электронику и математические методы позадротить, что было бы проще всего сделать из палок и говна?
>>264185 Про сифуна в курсе. Мне трудно представить реализацию из говна и палок. Источник найти не очень трудно, как по мне. У меня вот 2 трубки лежит на шкафу. С приемником, который будет давать нормальный динамический диапазон, бит на 12, как имхо - сложнее. Надо городить что то осцилирующее и фотоприемник, видимо. Затем надо обеспечить вращалку пары приемник- датчик вокруг обьекта, с позиционированием. Но это не очень сложно. А вот в математической части я ваще нуб. По крайней мере абсолютно тупым медсестричкам, которые не отличают катод от электрона, я объясняю на примере японского кроссворда. При этом и сам то понимаю не более.
Поясните по поводу точности CORDIC-а. Вся тригонометрия мне понятна, но непонятно какие последствия получаются от замены деления на сдвиги. Ведь если сдвинуть -1 (оператором >>>), то все равно получится -1. Результат моих усилий: http://pastebin.com/5fHvtJdx Результат моделирования на картинке - косинус из CORDIC, $cos и их разность. Конечно по нормальному нужно построить спектр, но мне лень. И что еще делать с удлинением векторов в кордике? Я решил не подавать на вход кордика I/Q, а подать константный вектор такой длины, чтобы длина повернутого вектора была максимальной для выбранной разрядности, и только потом умножать на I/Q.
>>264190 Рентгеновские трубки типа БС-1, БСВ применяются в аппаратах для рентгеноструктурного анализа материалов для получения мягкого рентгеновского излучения и обладают невысокими напряжением на трубке – 45 кВт и эффективной энергией генерируемого рентгеновского излучения – 15 кВт. Только в силу этих характеристик (мягкий спектр рентгеновского излучения) эксперимент не смог привести к более тяжким последствиям для здоровья подростка и не произошло облучения населения.
Малограмотные журнашлюшки не понимают, что чем мягче спектр, тем опаснее. И энергию измеряют в киловаттах.
>>265114 >Ведь если сдвинуть -1 (оператором >>>), то все равно получится -1. Ну достигнут предел точности, ограниченный разрядностью. Что тебя смущает? >И что еще делать с удлинением векторов в кордике? Я решил не подавать на вход кордика I/Q, а подать константный вектор такой длины, чтобы длина повернутого вектора была максимальной для выбранной разрядности, и только потом умножать на I/Q. Можешь подавать IQ на вход, а выход умножать на константу, можешь IQ сигнал умножать на константу и передавать на вход. Как хочешь.
>>265702 >Что тебя смущает? То что по правилам арифметики целочисленное деление -1 на 2 даст 0. Но во всех кордиках которые я нашел на гитхабе, используются сдвиги. Построил спектры обоих вариантов, надеюсь ничего не напутал: http://pastebin.com/w9J1RuGK Когда частота дискретизации кратна генерируемой частоте, в варианте со сдвигами возникают палки с частотами кратными половине генерируемой частоты. В остальных случаях интегральная мощность шумов практически одинакова.
>>265812 Запили костыль, который для случаев "0b1111>>1", "0b111x>>2", "0b11xx>>3" и т.д. будет давать ответ "0". Если костыль оформить в виде отдельной комбинаторной цепи, которая будет заводиться на reset регистра с результатом (в идеале синхронный, если у плисины такие регистры есть), то даже в скорости не потеряешь.
Ребятки. Есть вопрос, пожалуйста скажите куда копать и каким прибором? Есть семпл с параметрами: Signal: data (1.4765GHz) Center Frequency: 1.4765GHz Sample Rate: 20MHz RF Gain: 50 dB Размер файла около 870 Мег Вопросы такие как определить наличие сигнала? на какой частоте сигнал? тип модуляции? деммодулированые данные? Буду признателен братаны.
>>266094 >как определить наличие сигнала? По энергетическому спектру семпла >на какой частоте сигнал? 3.5МГц >тип модуляции? Вычислить комплексную огибающую, построить сигнальное созвездие. >деммодулированые данные? В соответствии с типом модуляции.
>>266112 >По энергетическому спектру семпла Что делать если мощность шума в полосе сигнала больше мощности сигнала хотя бы на 10дБ?
>>266116 Так бы и спрашивал про гнурадио. Но лучше возьми матлаб или питон, octave и прочее. Вот не понимаю чем так хорошо гнурадио? Чем оно может быть лучше симулинка или labview?
>>266128 >Что делать если мощность шума в полосе сигнала больше мощности сигнала хотя бы на 10дБ? Согласованный фильтр. Но это надо знать, что конкретно ищем, а не как в вопросе, когда даже тип модуляции ещё только определить предстоит.
>>266539 Немного поподробнее. Пусть регистр будет 4 битным. Тогда -1 будет хранится как 1111. При арифметическом сдвиге вправо знаковый бит сохраняется а слева выходит остаток, в нашем случае 1. То есть -1 = (-1)2 + 1. Для Евклидово деления остаток должен быть неотрицательным.
>>266544 >>266539 Я уже разобрался. Оба варианта дают абсолютно одинаковые результаты при ненулевом угле поворота.
>>265812 >частотами кратными половине генерируемой частоты Тут я ошибся, это происходит когда частота дискретизации в целое нечетное целое число раз больше генерируемой частоты. Интересно, что несмотря на то что оба варианта почти всегда дают одинаковый результат, вариант с сдвигами в этом случае дает более плохой спектр.
>>266892 >можно ли Можно. Разрешаю тебе, можешь делать. >Стоит ли Это решается исходя из требуемых параметров. Существует множество однокристальных трансиверов - почему бы их не использовать? Или у тебя могут быть такие скорости что хватит атмеги.
>>268292 Молодец! Пока я только демодулятор АМ сделал для >>262982 До преселектора и предусилителя пока руки не доходят. Но у меня в Москве даже на деген во всем КВ слышно только пару АМ станций. Пока демодулировал только сигнал с генератора. Наверное прием КВ придется отложить до начала начала дачного сезона.
Расскажи, какой у тебя преселектор, он одноконтурный? Какая у него добротность?
>>268294 >какой у тебя преселектор, он одноконтурный? Да. 9 витков на кольце 50ВЧ размером 16х8х6. Входная обмотка - 1 виток, подключен к антенне через резистор 270 Ом, выходная обмотка 2 витка, подключена напрямую к высокоомному входу усилителя. Конденсатор от китайской говномагнитолы, все четыре секции в параллель. Диапазон получился от 4.6 до 18 МГц.
>добротность? Внизу 150, в середине 100, сверху 70.
>даже на деген во всем КВ слышно только пару АМ станций Послушай сороковку любительскую вечерком - охуеешь. Особенно в москваблядске, даже днём грохот на диапазоне. Также вещательные станции на СВ и КВ с Европы.
>демодулятор АМ сделал Опиши, если не секрет. Тоже думаю сделать, но пока не пойму как. В голову лезет только тот же квадратурный преобразователь, но с ФАПЧ по несущей, что сложно, либо же перенос на низкую ПЧ, фильтрация на ней и детектирование простейшим амплитудным детектором, что затратно.
Пикрелейтед - выход ЦАПа при первой проверке платы. Клок 50 МГц, выходная частота 10 МГц.
>>268297 >Послушай сороковку любительскую вечерком - охуеешь. Особенно в москваблядске, даже днём грохот на диапазоне. Один шум. Понаставили все себе энергосберегающих лампочек и прочего импульсного. А за городом все отлично слышно.
>Опиши, если не секрет. Тоже думаю сделать, но пока не пойму как. Амплитуда - это квадратный корень из суммы квадратов I и Q. Это несложно вычислить CORDIC-ом. Я сделал так http://pastebin.com/gUZq0cVq Схема весьма не оптимальна для такой частоты, могу сделать компактнее если потребуется.
>>268297 >В голову лезет только тот же квадратурный преобразователь, но с ФАПЧ по несущей, что сложно А что если использовать такую систему: взять какую-нибудь одну составляющую (I или Q), пропустить через ФНЧ и за счёт обратной связи (на ГУН через ПИД-регулятор) держать её поближе к нулю. Тогда сообщение будет целиком находиться в перпендикулярной составляющей, её и принимать.
>пропустить через ФНЧ Чтобы выделить постоянную составляющую, соответствующую несущей. А потом удерживать эту составляющую перпендиклуярно одному из векторов (I/Q).
>за счёт обратной связи (на ГУН через ПИД-регулятор) держать её поближе к нулю В принципе, это и есть ФАПЧ, только не надо фазу считать "честно" через арктангенс. По сути, используется приближение, что около нуля угол примерно равен тангенсу.
>>268301 >Один шум Ебать вы там бедные. Даже выход на улицу не помогает?
>Это несложно вычислить CORDIC-ом Поесни, как ета твоя штука работает. Понятно вроде, что вычисляет длину вектора комплексной огибающей, но не понятно, куда её пихать и на какой частоте она работает.
>>268310 ПОС-61, чистый глицерин, паяльник. Каплю размером со спичечную головку можно по квадратному метру размазать.
>>268350 >Поесни, как ета твоя штука работает. Понятно вроде, что вычисляет длину вектора комплексной огибающей А что тебе ещё надо-то? Длина (амплитуда) вектора и есть сигнал + пост. составляющая (несущая). Частота, соответственно, должна быть в 2 раза выше полосы сигнала
>>268361 Сомнения были про перенос спектра в около-ноль с расстройкой и фильтрацию высшего говна (на удвоенной частоте). Проверил - зря сомневался. Тактовая частота какая?
>>268364 В радиомагазине 100 мл бутылки продаются, пик 3.
>>268367 Я лутом плату сделал, лол. Ну, верх только. Низ фоторезистом.
>>268350 На улице не проверял. Несколько лет назад и в квартире более-менее принималось.
>Поесни, как ета твоя штука работает. Понятно вроде, что вычисляет длину вектора комплексной огибающей, но не понятно, куда её пихать и на какой частоте она работает. Пихать после дециматора, естественно. Результат выдает задержанный на WIDTH_XY тактов. Тактировать с частотой меньшей частоты выборок АЦП нет смысла. Теория расписана тут: http://www.psi-ras.ru/disk_20/e-book/e-book/1-4/03-Zakharov-Algoritmy-CORDIC-p-353.pdf Вот тебе еще тестовая последовательность: http://pastebin.com/Lm5SMRXP результат на картинке.
Анон, как ты думаешь, реально ли собрать за недорого портативный рефлектометр для медных линий на какой-нибудь ацп ~300Mips с плисиной или шустрой МК. Посоветуй годную ацп. Что-то в интернетах ебаных трудно цены узнать на ацп такие
>>268744 >ацп ~300Mips MIPS - это million instructions per second, а также архитектура процессоров. При чем тут АЦП? Представь себе, цена АЦП зависит не только от частоты выборок, но еще и от многих других параметров.
Блин, котаны, почему интеграторы в CIC фильтре не переполняются? Если я подам на него сигнал прямо с АЦП - получу переполнение. Может дело в том, что реальный сигнал лежит в диапазоне -1...1?
Пикчи 2 и 3 - АЧХ говно, снятая путём подачи белого шума на вход. 4 - какая-то музыка. После "микрофонного" АЦП запилил КИХ-ФНЧ 50 порядка, но окно Блэкмана чёт сильно валит, надо пересчитать на частоту повыше. Но вроде разборчивость какая-то есть.
>>268863 Переполняются, но гребенчатый фильтр переполняется в противоположную сторону и результат получается правильным. Нужно только разрядность правильную выбрать.
В качестве примера можно рассмотреть восьмиразрядный интегратор и гребенчатый фильтр с той же разрядностью и задержкой D = 1. Если на вход подать 100, на выходе интегратора будет последовательность: 0 100 -56 44 -112 -12 На выходе гребенчатого фильтра будет 0 100 100 100 100 Примерно то же самое получается для фильтров с большим числом звеньев.
>>269365 >Мне пришлось всрать дополнительно 51 бит при задержке 6666 и порядке 4. Пиздец. Да, у меня приблизительно так же. Только я взял сгенерированный матлабом код фильтра.
>Не, кристалл весь занял Прямо весь? У тебя EP4CE6? У меня на EP4CE10 он занимает 10%, у тебя займет всего лишь 16%. Хорошо, в течение недели попробую переделать.
>>269414 >какая разрядность мне нужна Как и в других фильтрах, на каждые 6 дБ услиления по одному разряду.
Вообще-то CIC фильтр это и есть скользящее среднее. Дециматор - это ФНЧ для подавления алиасинга и отбрасывание части отсчетов после него. Поэтому решение этого вопроса зависит от заданных параметров - частоты дискретизации, требуемого подавления, тактовой частоты устройства, нелинейности АЧХ, количества доступных ресурсов вычислителя и прочего.
>>269414 Формула же на пикче. D - задержка, равная удвоенному коэффициенту децимации/интерполяции, N - порядок. Получив усиление, делишь нап 6.03 дБ - получаешь дополнительную разрядность. Её прибавляешь к разрядности входа. У меня вход 10 бит, дополнительно 51 бит, итого 61-битные интеграторы и гребенчатые фильтры.
>>269413 >У тебя EP4CE6? Да. Но я не про твой алгоритм, а про свой трансивер. Он все LE занял, из-за дублирования тракта. Прост хочу поскорее с этой махарайки в эфире попиликать.
>>269319 >Если на вход подать 100, на выходе интегратора будет последовательность: 0 100 -56 44 -112 -12 >На выходе гребенчатого фильтра будет 0 100 100 100 100 Ебануться, нахуй. Это просто пиздец. Это самый ебанутый костыль, который я когда-либо в жизни видел. Но если это работает для произвольного сигнала - это ебануться вдвойне.
>>269459 Почему же костыль? Ситуация похожа на представление фазы периодического сигнала, когда она начинается с нуля, переваливая за два пи. Такая же цикличность. Но никто не считает это ебанутым. Иначе уходящие в бесконечность величины физически невозможно представить. А работает оно потому, что решает не абсолютное значение, а его изменение.
Спасибо за содействие, сбылась мечта долбоёба. Самодельный цифровой трансивер работает: https://www.youtube.com/watch?v=6d0sty91fg8 Диванон похуй; вести связь без указания имени и QTH невежливо.
На пикчах всё видно, в принципе. Усилок пока взял готовый - драйвер выходного каскада трансивера IC-720, мощность по сервис-мануалу 6 Вт.
Последняя пикча - как сделана микрофонная НЧ часть. Простейший усилитель с завалом на НЧ и жёстким диодным ограничителем в цепи ОС, цифровой ФНЧ (не тот, который в АЦП, а далее) со срезом на 3 кГц дают очень хороший разборчивый сигнал с узким динамическим диапазоном: http://rgho.st/7R4jKnxTz Импровизированный АЦП заметно шумит, ну да похуй, всё равно ДД сжат.
>>270013 Прикручу чуть погодя (600 LE таки осталось), просто надо ещё править программу МК, в который я лезу очень неохотно.
В scipy надо определить, что затухание амплитуды в stopband диапазоне фильтра не менее чем на столько-то дБ. Есть функция готовая или надо будет например, в freqz массив частот из диапазона передавать и максимум искать?
Есть ли какие-то способы детектирования тонального сигнала (2 кГц синус) известной длительности оптимальнее, чем fixed point IIR фильтр 2-ого порядка? Важно быстродействие.
Съездил со своей шарманкой на полигон института солнечно-земной физики, где товарищ, занимающийся приёмом ЛЧМ-сигнала с ионосферных зондов, наконец-то по существу обосрал мой трансивер. Напомнил, что при сужении полосы происходит увеличение эффективной разрядности.
По возвращении я попробовал убавить усиление перед АЦП и сдвинуть выход на более младшие биты CIC, - и оно таки реально работает, сейчас получилась динамика 80 дБ (от 1.5 мкВ до 15 мВ) при разрядности на выходе 16 бит из которых работают пока только 10 младших.
Вопрос: каким отношением (формулка, лул) связано увеличение разрядности с сужением полосы?
>>274873 Так это ты оверсемплинг имел в виду? Я раз десять твой пост читал, но так и не догнал, о чём речь.
Обычно это описывают через виртуально добавленные биты АЦП. Правило такое: берешь fs выше ширины полезного сигнала в 4 раза — получаешь дополнительный виртуальный бит к разрядности, в 8 раз — два дополнительных бита, в 16 — три и так далее. Для правильной работы этого метода нужен шум на частоте выше рабочей полосы и амплитудой 1LSB АЦП (дитеринг).
>>274890 насколько я понял используется сигма-дельта АЦП. А там шум во всем диапазоне. Сужая полосу он избавляется от шума. Можно сказать подругому, усиляет сигнал вне шумовой полосы.
>>274920 Сигма-дельта АЦП добавляет шум и фильтрует его бай дизайн, но в принципе, так можно на любом АЦП делать.
Алсо есть вариант использовать сигму-дельту высокого порядка, они сделаны так, что добавленный шум почти целиком находится за пределами рабочей полосы, и после фильтрации полезный сигнал будет ещё чище при том же порядке оверсемплинга. Называется "noise shaping".
>>274921 Он виртуальный в том смысле, что физически отсутствует на АЦП.
>>274934 На третьем пике пиксели только двух цветов, белого и чёрного. Никакого другого цвета там нет.
>>274873 Спасибо, так и думал. >pG = 10lg(fs/(2BW)) Что можно записать как 10lg(0.5fs/BW), т.е. тупо отношение ширины полосы на входе (которая равна 0.5fs, т.е. ширине зоны Найквиста) к полосе на выходе. Просто.
>>274920 >насколько я понял используется сигма-дельта АЦП Нет, 10-битный параллельный. А вот для оцифровки микрофона таки сигма-дельта, сделанный прямо в ПЛИС. Он говно, но похуй, всё равно далее ДД сжимается для повышения разборчивости в шумах.
>>274890 Так это ты оверсемплинг имел в виду? Получается, так. >Я раз десять твой пост читал "Ответ" не мой.
>>274936 >Он виртуальный в том смысле, что физически отсутствует на АЦП. Насколько я понял, это называется "эффективный".
>>274934 Сглаживание есть, причём в самой пикче, при таком-то разрешении. Увеличь и увидишь.
Получается, что при 10-битном АЦП, дискретизации 50 Мспс и выходной полосе 3 кГц ДД может доходить до 104 дБ. Из этих 104 дБ у меня реализовано 84 дБ. Из разницы 10 дБ уходят на с/ш на выходе, при котором измеряю, а остальные 10 дБ - на неидеальность АЦП (у которого SFDR не лучше 70 дБ по даташиту, т.е. реальная динамика в загруженном эфире ещё меньше).
Всем спасибо, вопрос разрешился. Получилось выкинуть преселектор, который ограничивал диапазон приёмника 4.5 до 18 МГц, и теперь он стал 100 кГц до 21.5 МГц. Слышно всё: аэродромные маяки и вещательные станции на СВ, вещалки на КВ, любительские диапазоны 3.5, 7 и 14 МГц. 18 и 21 ещё не пробовал, прохождение тухлое там и антенны не настроены туда да и не стоит у меня на ВЧ диапазоны.
>>274951 Да, серыё есть. Я подумал сначала, что это макаба пидорасит цвета. Значит, авторы картинки проебались, там должно быть что-то типа этого (если они действительно имели ввиду 1 бит).
Инженеры Корнелльского университета нашли способ, как реализовать в одном чипе все функции трансивера, так, чтобы мощный передаваемый радиосигнал не мешал работе схем приёмника.
>>275941 >Все их индивидуально взвешенные вклады суммируются в широком диапазоне частот так, чтобы усиливать радиосигнал на антенном порту и обнулять его на входе приёмника. СМЕРТЬ СТРАШНАЯ ОТ КСВ
Цосаноны, допустим есть 8-битный сингал [+127:-127], я нормализую его [0.5:-0.5] и далее каскадном ставлю несколько фильтров, каждый из которых срезает некую полосу. Но вот какой уровень будет являться достаточным для гарантированного подавления амлитуды нужной частоты? По идее что -80 дБ, что -100 дБ, для 8 бит любое значение амплитуды срезают до нуля. Или же с учетом того, что я преобразовал к типу с плавющей точкой, и каскадно фильтры ставлю может погрешность накапливаться? И лучше допустим на -120 дБ рассчитать фильтры?
>>277175 После каскадных фильтров еще процессинг в формате с плавающей точкой. Собственно убираю высокие частоты перед децимацией, дабы альясинг не лез.
>>277144 Математически если, то сколь высокое подавление ты бы ни сделал, что-то всё равно останется, алиасинг от него всё равно произойдёт, и накапливаться оно тоже в любом случае будет. Идеального ничего не бывает. Тебе надо подумать не "как подавить до 0", а "какое увеличение уровня шума я годов допустить без ущерба для решаемой задачи".
>>277260 >какое увеличение уровня шума я годов допустить без ущерба для решаемой задачи А как на практике этот уровень рассчитывают? Амплитуда альясинга исходя из битности -127:+127, подавление -100 дБ - в 100000 раз, допустим при обратной конвертациив 8 бит - получу 0, -80 дБ - 10000, также при обратной конвертации получу 0. То есть, очевидно, что между разрадностью и допустимым уровнем подавления есть зависимость, но вот какая точно - непонятно. Во многих статьях фигурирует уровень -80, но почему именно такое значение выбрано - тоже непонятно.
>>277290 Ты учитывай, что в сигнале, квантованном в 8 битах, у тебя уже есть шум в рабочей полосе, шум квантования. Его величина -48дБ. И дальше что бы ты ни делал — ты увеличиваешь этот шум. Понятно, что выбор велик, и можно засрать сигнал до -40дБ, а можно — только до -47.999999дБ. Просто имей в виду, что шум в результате у тебя не будет меньше 1LSB по амплитуде, и в ноль он при дискретизации не уйдёт. Он сложится с уже существующим шумом квантования, и в сумме они будут >1LSB. Вот и смотри, какой шум на выходе теья устроит, начиная с -48дБ, и стоит ли рвать анус, чтобы вместо -47.99 получить -47.999
>>277295 Очень упрощенная постановка вопроса. Важно какой спектр у этого шума, как его можно перераспределить, какова линейность (а чаще - нелинейность, и не одна а набор из нескольких разных нелинейностей) этого шума. Одни 47.99% другим 47.99% - рознь.
>>277295 >>277412 Блядь, вы ебанулись? У одного 1 бит это ровно 6.00000000 дБ, что он сотые доли децибела с серьёзными щщами счичает, другой вообще децибелы с процентами путает. Пиздец, а шум квантования в спектре ровная полка, да блять? Вот прям ровная полоса на -48.0000000000000 дБ?
>>277457 Дальше ты будешь конструировать обвязку ЦАП исходя именно из этой полезной инфы. По сути, все искусство аудиосхемотехники - это о том как нужным образом перераспределить спектры помех и шумов, имманетно присущие ключевым элементам схемы, с целью минимизации их влияния на конечный результат - а именно восприятие музыкального сигнала слушателем.
Есть два подхода: 1) взять матмодель из учебника, подставить значения и рассчитать по ней 2) устроить срач, восприятие какого слушателя больше соответствует канонам настоящего аудиофила. Я не против обоих подходов, но для аудиофилопидоров вроде как отдельный тред есть, не? 666-гет
1) Измеряй амплитуду сигнала на выходе АРУ 2) Периодически вычитай измеренное значение амплитуды из желаемого значения 3) Умножай разницу на коэффициент k 4) Отправляй на интегратор 5) Значение интегратора используй как коэффициент усиления на входе АРУ. Чем меньше коэффициент k, тем медленнее АРУ будет перестраиваться. Если сделать k очень большим (усиление меняется очень быстро), то система может стать неустойчивой, значение в интеграторе будет постоянно колебаться.
>>277629 Велосипед не изобретай. Берешь абсолютное значение, отправляешь на простейший БИХ ФНЧ фильтр и получаешь сигнал управления k, потом входной сигнал умножаешь на 1/k и всё
>1. Чем круче спады, тем длиннее переходной процесс. Кардиографы делают только с фильтрами Бесселя, длинные колебательные процессы после кадждого изменения уровня испортили бы всю диагностику. И цифровые фильтры с длительным переходным процессом делают пожалуй только любители чтобы их заметили. В большинстве случаев быстрота реагирования важнее. >2. Чем круче спады, тем выше чувствительность к изменениям отдельных компонентов фильтра. В аналоговой технике приходится применять очень стабильные емкости и индуктивности, а в цифровой увеличивать разрядность вычислений.
>>278148 Это вообще о чем? Если что, то фильтры Бесселя имеют бесконечную импульсную характеристику. Сложность передаточной характеристики зависит только от порядка фильтра.
>>278148 > а в цифровой увеличивать разрядность вычислений. Кек. Вангую, это написано в те времена, когда увеличение разрядности умножителя с 8 до 12 бит было охуеть каким дорогим. Вообще блядь, из какого музея ты эти книги берешь?
>>278280 > 2011 > форум для придорашек из совковых говноНИИ, не осиливших английский, поэтому рассказывающих друг другу охуительные истории на этой помойке в рабочее время между чаепитиями, перекурами и рисованием фейковых отчетов для распила бабла Ты перетолстил
>>278370 Дело не в этом, а в том что фильтр Бесселя является БИХ фильтром. БИХ-фильтры друг от друга отличаются только коэффициентами и разрядностью. Чем тогда фильтр Бесселя сложнее других БИХ-фильтров того же порядка?
>>278375 Ничем не сложнее, и вообще, давай ты в следующий раз будешь графики матлабом/октавом/питоном/чем угодно делать. А то порожняк какой-то гонишь, Бесселя приплёл, крутизна у него слишком крутая, вообще охуеть. Анону всего лиш agc нужно замутить, а тебя уже понесло
>>277806 Если бы ты когда-нибудь слышал про усталость металла эквивалентные преобразования, то ты бы понимал, что схема >>277629 эквивалентна схеме >>277806. Домашнее задание: определить вид БИХ-фильтра, который получается после приведения схемы >>277629 к виду >>277806.
>>278408 > Если бы ты когда-нибудь слышал про усталость металла эквивалентные преобразования, то ты бы понимал, что схема >>277629 эквивалентна схеме >>277806 Кукарек громкий, но не по делу. Я предложил анону готовую реализацию на стандартных элементах, которые есть в любой dsp библиотеке, которая занимает пару строчек кода и считается в онлайн калькуляторе в три клика > Домашнее задание: определить вид БИХ-фильтра, который получается после приведения схемы >>277629 к виду >>277806. Кек, ты сам-то сможешь, умник? Еще раз, приноси свои картини/скрипты в матлабе/октаве/питоне, тогда будем с тобой говорить. А пока твои посты являются не более, чем звонкими вскукареками не по делу
>>278433 Ладно, я сдаюсь. Приделывайте свои костыли в виде и-регулятора, считайте его коэффициенты, ебитесь с переполнением интегратора, если вам так интересно. Но помните, что вы нихуя не радиотехники, и пытаетесь засунуть своё тау туда, где можно обойтись только помощью цос, просто, быстро и элегантно
>>278376 Ты о чем? Бесселя приплел не я, а >>278148 Я лишь указал что фильтр Бесселя это БИХ-фильтр, который часто можно назвать простейшим.
>>278430 >>278408 Оно будет эквивалентно, если интегратор H(Z) = 1/Z, с бесконечным коэффициентом усиления на нулевой частоте, заменить на H(Z) = Z/(Z + a) или на другой фильтр с не бесконечным коэффициентом усиления на нулевой частоте.
>которые есть в любой dsp библиотеке В квартусе этого нет. Как будешь делать на верилоге измеритель амплитуды?
Что-то мне увиделось проще всё: сделаю память, в которую насую заранее рассчитанные коэффициенты усиления, адресом для неё возьму амплитуду, а выход дам на перемножитель, в котором и будет регулироваться усиление. Один хуй память (270 кбит) почти вся свободна.
>>278436 >Как будешь делать на верилоге измеритель амплитуды? if (пизда > говно) говно <= пизда; else if(говно > 0) говно <= говно - 1'd1;
>>278446 Лол, до некого подобия интегратора схема уже доэволюционировала. Когда надоест переписывать таблицу усилений и магические циферки в коде, переходи на следующий шаг, к И-регулятору.
>>278448 Мне таблицу только одну написать, чтоб задать амплитудно-амплитудную характеристику, а дальше играться с инкрементом и декрементом говна для достижения желаемой реакции и спада, которые один хуй придётся на слух подбирать.
>>278449 >задать амплитудно-амплитудную характеристику Про частоты и фазу не забыл? >играться с инкрементом и декрементом говна для достижения желаемой реакции В пяти измерениях? >придётся на слух подбирать SAT-solver вживил себе?
>>278449 Я всё равно не понимаю, зачем делать костыль, когда можно сделать нормально. В качестве бонуса получишь, например, что усиление будет меняться быстрее, когда уровень далёк от желаемого, и медленнее, когда он меняется несильно.
>>278460 >Реакция на увеличение сигнала должна быть одинаковой и в идеале мгновенной Добро пожаловать в реальный мир. Ничего, обеспечивающего даже одно из этих двух качеств, не существует.
>>278460 Ладно, переходи на следующий шаг, когда надоест, что твоя АРУ увлечённо реагирует на импульсные помехи, эксплозивные согласные и прочий мусор, а собственно то, что надо слушать, регулируется как-то хуёво и непредсказуемо.
>>256525-гай репортинг. Посмотрел я звуковое API линукса, и что-то расхотелось мне переносить программу на него. Но недавно решил вернуться к этом проекту и увидел, что у STM есть серия STM32F4, там интегрированы DSP-инструкции и БПФ можно сделать весьма быстро. Плюс нашел схему пикрелейтед, она смотрит на амплитуду сигнала и потом поднимает его до заданного делителем уровня. Заказал http://www.ebay.com/itm/272501820584 пока, для начала буду транслировать звук через COM-порт на комп, если взлетит, то возьму I2S-модуль.
>>279531 Не знал про них, STM видел в куче статей уже, вот решил сам попробовать. Потом посмотрю повнимательней, но сомневаюсь, что удастся найти голую плату с похожим чипом за 13 баксов.
С гитары всего 250 милливольт получить можно, придется усилитель делать. Операционник и 2 резистора, понижение думаю делителем напряжения сделать, он не меняет частотные характеристики сигнала. 4 часа пытался разобраться, что у меня не так с импортированными библиотеками, в итоге решил забить на это хуй и делать все c основ, через регистры. Таймер и прерывание для него уже готовы.
>>279537 >С гитары всего 250 милливольт получить можно
От звучков зависит на самом деле, есть пассивные на ебейших магнитах которые и по вольту могут выдать, про активные звучки в которые усилитель уже встроен я и не говорю.
>>279537 >делителем напряжения сделать, он не меняет частотные характеристики сигнала Это в каком букваре написано что во Вселенной существуют элементы не меняющие частотные характеристики сигнала?
>>279550 Это да, но я таких еще не видел. >про активные звучки в которые усилитель уже встроен я и не говорю. Так я ими все равно пользоваться не буду.
>>279692 Это я придумал, надо было написать, что почти не меняют. Само собой, у резисторов есть индуктивность и емкость, но они крайне малы.
Решил маленько CMSIS запользовать, от нее не сбоит компиляция.
>>279798 >резисторов есть индуктивность и емкость, но они крайне малы. Это от частот зависит, малы они или не очень. И ты забыл о температуре, как минимум. А на переменном токе очень весело с ней - резистор то нагревается, то остывает, причем с запаздыванием и инерцией относительно греющего его тока. А кроме ТКС (temperature coefficient) есть еще и voltage coefficient, и это только для начала.
>>279813 Как много факторов, оказывается. Максимальная частота 48 кГц, если теорема Найквиста-Котельникова работает в обратную сторону. Резисторы на выход от сотни килоом использовать буду, там максимальная мощность 10 микроватт. Может, и они смоут что-нибудь нагреть, но не думаю, что это будет сильно заметно.
Задумался тут, как выходной сигнал преобразовывать. У меня будет оффсет 1.65В и максимальная амплитуда 3.3, нужно его сдвинуть вниз и уменьшить. Сначала хотел запользовать схему с конденсатором и делителем, но она очень долго адаптируется к смене оффсета. Придумал сперва вычесть из сигнала оффсет, а потом делить. Не перестаю удивляться, сколько всего умеет ОУ.
>>279842 >Она применима только к стационарному периодическому бесконечному сигналу. А в моем случае нет, разве? Может, это не именно она будет, а какой-нибудь вывод Я же никак не смогу сделать сигнал частотой больше 48кГц, если только не брать несколько волн и складывать их.
>Нет, в таких условиях главная проблема будет не в нагреве. А в чем? Сегодня опробовал, все работает, только на 100кОм у меандров фронты на полвольта выше задраны, чем уровень, выглядит как индуктивность. У делителя то же самое. Может, дело в том, что я не обрезал ноги у DIP-резисторов. Пикрелейтед — неинвертирующий усилитель с 2кОм и около 7 на потенциометре. У основной камеры сломался фокус, пришлось на переднюю снимать. А еще я взял неправильный щуп для генератора сигналов и полчаса думал, почему у меня на выходе уровни вместо прямых косые, лол. Прочитал описание АЦП, в следующий раз до регистров дойду.
Вот как это будет выглядеть. Резисторы пересмотреть придется, и усилитель на инвертирующий поменять, а то у этого очень низкое сопротивление между сигналом и землей, конденсатор будет разряжаться. http://tinyurl.com/k5xqdvg
>>280078 >А в моем случае нет, разве? Эта манька тебя тралит, не слушай её и используй теорему Найквиста. Кстати, это — >Она применима только к стационарному — чушь. И это — >периодическому — тоже чушь.
>>280583 Хоть до Википедии дойди >рассматривает идеальный случай, когда сигнал начался бесконечно давно и никогда не закончится, а также не имеет во временной характеристике точек разрыва. Если сигнал имеет разрывы любого рода в функции зависимости его от времени, то его спектральная мощность нигде не обращается в ноль. Именно это подразумевает понятие «спектр, ограниченный сверху конечной частотой >Разумеется, реальные сигналы (например, звук на цифровом носителе) не обладают такими свойствами, так как они конечны по времени и обычно имеют разрывы во временной характеристике. Соответственно, ширина их спектра бесконечна. В таком случае полное восстановление сигнала невозможно
>>280583 Или ты меня тралишь. C Википедией лучше не спорить.
Я думал, что можно взять из моего сигнала небольшой кусок и сделать его бесконечным. Пилообразная волна, например, из двух сэмплов, с одним наверху и одним внизу. Может, у сложных сигналов частота измеряется по-другому, я с ними до этого проекта вообще дел не имел.
Доделал АЦП, сейчас надо настроить DMA. Решил подождать, пока плата придет. У STM, оказывается, внутричиповая отладка есть, буду сразу смотреть, работает или нет.
>>281098 >Я думал, что можно взять из моего сигнала небольшой кусок и сделать его бесконечным. Пилообразная волна, например, из двух сэмплов, с одним наверху и одним внизу. Это пожалуйста, сколько угодно. Если твое устройство делается для работы с именно таким сигналом, конечно.
>Может, у сложных сигналов частота измеряется по-другому У сложных сигналов она измеряется словами "предположим что мы можем представить любой сигнал бесконечной суммой синусоид разной длительности, разных частот и амплитуд". Для математиков это, конечно, полностью решило проблему, но только для математиков. Странно что все остальные на этом основании продолжают наблюдать синусоиду на осцилографе и считать что это имеет какое-то отношение к звуку.
>>281215 >Странно что все остальные на этом основании продолжают наблюдать синусоиду на осцилографе и считать что это имеет какое-то отношение к звуку. Впаривать обскурантистское отношение к теории сигналов хорошо получается только аудиофилам, которым можно внушить любую мракобесную хуйню, которая им будет приятна. Например, что дорогая ламповая поебень с неконкурентоспособными характеристиками - она особенная, и её могут услышать только избранные с особенными ушами. А в отраслях, где такой маркетинг не работает и за обработку сигналов решает чистая инженерия, Фурье-анализ (как и теория дискретных систем, в т.ч. теорема Найквиста) является стандартным инструментом, оспаривать который никому даже в голову не приходит - системы управления, радиолокация, телекоммуникации и т.д.
>>281098 >Пилообразная волна, например, из двух сэмплов, с одним наверху и одним внизу Пила, вообще-то, не является сигналом с ограниченной полосой частот. После антиалиасингового фильтра никакого пилообразного сигнала у тебя не будет. Впрочем, аналоговых сигналов идеальной пилообразной формы не существует в принципе, поскольку они требуют бесконечной мгновенной мощности в точках излома.
>>281515 Ну, еще один Википедий начитался и поднял на щит "наукам всё известно". В какую область не посмотри (чуть поглубже чем учебник для 7 класса - в нём-то всё зашибись и электроны красиво по орбитам летают), везде своя эзотерика. От биохимии до радиотехники - чуть только посложней паяния усилителя на TDAшечках, и сразу оно. >Ну для объемных моделей с неэкзотическими материалами без пластиков всяких совпадение в единицы процента получить можно, если грубо не ошибаться в составлении модели. Конечно добротность так посчитать не получится - только экспериментально. Да и доводку резонатора тоже приходится делать экспериментально - зажимается диск в шлифмашинке (или приклеивается на воск) так, чтобы сильно добротность держалки не садили (ближе к центру). Снимается небольшой слой, полируется начерно, смывается грязь от полировки, петлю связи подносим и смотрим частоту. Потом доводим толщину по максимальной добротности (надо отклеивать), потом снова радиус, и так итеративно. Точно в частоту попасть сложно - раза с 5 начинаешь попадать, а через пол-года руки забывают и снова надо нарабатывать мастерство И это всего-навсего про генераторы всего-навсего в несколько ГГц. С некоторыми, впрочем, интересными требованиями по фазовому шуму, например. Ничем принципиально не отличается от мотания выходных трансформаторов, то же только в профиль - и про экспериментально, и про набивание руки.
Только вот с аудио всё принципиально сложнее, если говорить о музыке как о средстве передачи эмоций, а не частотных составляющих. Классический инженерный подход - он ведь в правильном выборе компромиссов, понимании чем пожертвовать и ради чего - чтобы изделие отвечало четким измеримым параметрам, указанным в ТЗ, и было оптимизировано по параметрам остальным. А тут же до сих пор непонятно не то что какие углы срезать можно, а какие ни-ни, но и даже что вообще измерять (не говоря уж про как измерять), потому что никто не знает что на эту самую передачу эмоций влияет. С четными и нечетными гармониками чуть-чуть продвинулись, и то сколько десятков лет на то ушло, всё в спорах с воинствующими ПТУшниками такими же. Но один хрен до сих пор все официяльно всякую бессмыслицу типа THD+N мерюють, где всё в кучу.
>>281544 С позиции ПТУшника с Википедией, наверное называется. Он же знает что надо было просто взять правильную TDAшечку и в симуляторе просимулировать, чего изобретать-то. >По поводу шумов ДДС - я бы так однозначно не доверял фирменной документации от AD. Как пример - если у кого сохранились старые даташиты на 98хх серию - там на спектре шумов ДДС явно виден спектр шумов источника с ФАПЧ (пьедестал). Потом AD ткнули носом в это дело, и в новых даташитах они исправились.
>>281522 >И это всего-навсего про генераторы всего-навсего в несколько ГГц >Только вот с аудио всё принципиально сложнее, если говорить о музыке как о средстве передачи эмоций, а не частотных составляющих. Я не нашел подходящей картинки.
>>281522 >если говорить о музыке как о средстве передачи эмоций
Быстро, решительно и объективно квантифицировал мне эмоции и описал их матмодель. А то сдаётся мне ты какую-то субъективную метафизику пытаешься нам тут впарить с умным видом.
>>281215 >"предположим что мы можем представить любой сигнал бесконечной суммой синусоид разной длительности, разных частот и амплитуд" И какой-то определенной частоты у него нет? В принципе верно, я же смотрел на частоту основной гармоники. Попробую поискать, на каких факультетах у нас преподают теорию сигналов.
>>281516 Пила, вообще-то, не является сигналом с ограниченной полосой частот. Я имел в виду на выходе АЦП, там она приобретет аналоговые свойства. Про сигналы с углами уже в курсе.
Получил плату вчера, неправильно выставил перемычки и полдня думал, почему у меня программа застряла в петле, потом прочитал про адресацию памяти и понял, что нахожусь в служебной области. С таймерами непонятно, завел внешний кварц копипастой с форумов, прерывания работают стабильно, но на частоте в 2 раза выше, чем максимальная частота шины. Завтра с АЦП разбираться буду.
Снова долбоёб со своей шарманкой к которой заебенил усилитель, с которым она стала полностью самодельной выходит на связь.
Заебали щелчки при перестройке частоты, которые возникают из-за разрывов фазы, потому что на выходе АЦП (5 на схеме) есть небольшая постоянка.
Как её подавить? Должно быть достаточно простейшего дифференцирующего звена, но я не допру, как его реализовать в цифровом виде. Шина там 10 бит @ 50 Мспс, если что.
>>282825 Хохо, черновая версия готова. Написал свою функцию на перемножение чисел с их сопряжениями, которая работает в одном массиве, штатными можно только сопрядить и перемножить отдельно, нужен еще один массив. 4096 значений обрабатываются с частотой 70Гц, в библиотеке есть преобразование для реальных чисел, которое знает, что мнимые части нулевые, с ним частота до 90 поднимается, но оно странно работает, надо разбираться. Охуительность внутричиповой отладки зашкаливает, написал функцию, которая выписывает данные в файл и черчу его гнуплотом, можно в 3 тыка мышкой смотреть, что пришло и что выходит.
Придумал сымитировать диодный мост, менять знак у "отрицательных" уровней. Частота увеличится в 2 раза и можно будет уменьшить окно выборки, но и точность автокорреляции уменьшится.
Сап, есть один проект по обработке аудио сигнала на мк, суть в том, что для его реализации нужна библиотека для С которая бы могла обрабатывать аналоговый сигнал в цифровом виде(преобразование Фурье, байпас фильтры и тп) существует ли она, и если да, то буду признателен за ссылку.
>>283929 > проект по обработке аудио сигнала на мк Начал проект. Не провёл предпроектные исследования. Как ты себе это представляешь? Что за контроллер, какие требования к скорости обработки. Если на скорость пофиг, то берёшь любую реализацию на C и портируешь, не думаю что там много чего надо будет делать. Если же нужна скорость, то ни о каком C речи быть не может, нужна реализация оптимизированная под конкретный процессор. Вангую что у тебя ARM.
>>283933 Няш, не злись, это студенческий проект по стеганографии. Пикрил- мой кит, ты был прав на счет ARM, просто возможно ты бы смог посоветовать библиотеки которые можно было бы переделать чтобы мой проц, ведь в ЦОС я новичок, и не знаю какие библиотеки нормальные, а какие-нет.
>>283936 > библиотеки которые можно было бы переделать Боюсь такого нет. Уточни какие алгоритмы тебе нужны, ищи реализацию на С, потом пробуй компилить, корректируй и будет тебе счастье. Но скорости не жди. И не думай, что найдёшь код, который заработает из коробки. Всё что я делал под ARM как правило из коробки не работает, т.к. часто пишут индусы, и ляпов там куча. Я так понял ты по сути скремблер хочешь.
Аноны, объясните, как в различном SDR-софте непрерывно по времени отрисовывают спектр в виде водопада? Допустим частота сэмплирования - 2МГц, а точек для отрисовки всего 512. Но на 512 сэплах при 2МГц будет полная хуйня вместо спектра.
>>284120 Ну, способа два: непрерывно брать семплы по 2^n елементов -> окно -> fft -> abs -> усреднение группы елементов или просто делать эту ципочку десяток раз в секунду
>>284136 >окно -> fft А поясни еще за окно. Я правильно понимаю, что применение окна перед fft к сигналу так или иначе всегда вносит искажения в получаемый спектр. То есть даже синус на заданную частоту отображается более чем одной точкой спектра. Да и по всем частотам вносятся низкоуровневые искажения. То есть во всех этих SDR-софтиках отображается сигнал с подмешанными искажениями, которые стремяться минимизировать. Я вот так хочу сделать: взять Dolph–Chebyshev окно, для которого вроде как искажения по всему спектру имеют один уровень, и собственно все что ниже этого уровня - тупо не отображать. Насколько это норм подход?
>>285253 >Смотря для чего. Лобаю свою SDR-софтинку, хочу отображать водопад в 256 точек на TFT дисплейчике. Сигнал - 8 бит приведенный к float, по идее ниже -48 Дб, только шумы будут, если я допустим Dolph–Chebyshev окно рассчитаю на уровень side-lobe (не знаю как этот термин переводится) в -60 Дб, то по идее полезный сигнал потерять не должен. Или другое окно взять, зная что ниже -48 Дб все искажения можно срезать?
>>285295 >Сигнал - 8 бит приведенный к float Нахуя? > side-lobe (не знаю как этот термин переводится) Боковой леписток > -48 Дб все искажения можно срезать? Я бы не называл это искажением. Окно на сигнал ты всегда накладываешь, из за того что количество точек ФФТ конечно. Это называют прямоугольное окно. Посмотри какие окна можно выбрать в других СДР софтинах, и выбери то что лучше выглядит
>>285338 >Нахуя? Ну чтобы не пердолится с переполнением разрядности. И куча кода готового для плавающей запятой есть, который использую. >Посмотри какие окна можно выбрать в других СДР софтинах, и выбери то что лучше выглядит А что значит лучше выглядит? В моем понимании -синусоида заданной частоты и максимальной амплитуды должна отображаться одной точкой с уровнем в 0 Дб.
>>285471 В идеале он должен попасть либо в одну точку либо в другую. Собственно количество точек и есть фактически разрешающая способность отображения спектра.
>>285499 Невозможно, сорян. Преобразование Фурье делается на конечном интервале, за его пределами сигнал принимается периодическим. Если синусоида не укладывается в интервал целое число раз, то на границах периодов она будет иметь разрыв, и синусоидой уже не будет. Можно увеличивать длину периода, но и сигнал твой должен быть стационарным, т.е. если синусоида — то честная синусоида от начала и до конца периода, на котором делается Фурье.
Необходимо сделать математическую модель цифрового анализатора спектра на основе одного из алгоритмов спектрального анализа, может кто помочь? https://vk.com/id359974703
Как в матлабе сделать такую трансформацию: прохожу по изображению окном 3x3 пикселя, и записываю вектор из этих 3 пикселей? Был для RGB изображения массив: 1) ширина-высота-3 Должен стать массив: 2) ширина-высота-9
>>291220 Выбор зависит от скорости передачи и требуемого метода синхронизации. Выбор метода синхронизации определяется отношением сигнал/шум и временем установления синхронизации. И также: >Или у тебя могут быть такие скорости что хватит атмеги.
Делиться уже кем-то выложенными знаниями можно. Но не стоит выкладывать готовых решений и разжевывать все до состояния каши. Если вас заставляют писать документацию к вашему проекту или к части проекта, то не стоит разжевывать все такого состояния, чтобы понял первый встречный. Еще нужно создавать неформальные профсоюзы во всех городах, объединяться в Facebook Messenger, Google Plus, Signal, Tox, Jabber, Telegram, группироваться по профессиям и проводить разъяснительные работы с идиотами, которые готовы бесплатно создавать продукты или оказывать бесплатные консультации ради стажа, лайков в карму, репутации и так далее. Нужно объяснять молодежи, что абсолютно любая работа на дядю должна оплачиваться. Также нужно коллективно осуждать тех, кто выкладывает на YouTube самоучители по диагностике и ремонту любых неисправностей материнских плат ноутбуков или диагностике жестких дисков, или профессиональному восстановлению данных, например. Нужно препятствовать опусканию любых инженерно-технических специальностей на дно и уничтожению рынка труда экономически безграмотными инженерами, которые хорошо разбираются в своих областях (электротехника, электроника, VHDL, сетевые протоколы, восстановление данных), но являются профанами в экономике и не понимают, что своими деяниями они уничтожают свою же профессию. Выкладывание максимально разжеванных материалов плодит дилетантов и мошенников на рынке труда, которые одновременно и позорят профессию, формируя общественное мнение о том, что типичный городской специалист в данной конкретной области - это мошенник, и сбивают цены на услуги, поскольку все клиенты начинают утверждать, что данная сложная работа должна стоить намного дешевле, "...потому что Васян вон за 270 рублей то же самое делает". Иначе вам придется тратить уйму времени на объяснение каждому клиенту того, почему после неудачного восстановления данных у Васяна вы не сможете ничем помочь.
Нужна совет грамотного анона, предположим есть некий датчик, который выдает непрерывный аналоговый сигнал в котором присутствует определенная резонансная частота (например 2.5 ГГц), требуется оцифровав сигнал определить эту частоту и сравнить её с эталонной, скажите как бы вы решили эту задачу? Любые предположения мне бы очень помогли
>>303984 Автокорреляционная функция. Посчитай её, она покажет пик. Этот пик соответствует периоду присутствующего периодического сигнала.
Но считать её прямо на твоих гигагерцах, наверное, не требуется, и лучше сперва это дело гетеродинировать, оставив только ширину полосы, в которой сигнал изменяется.
>>304023 Про автокорреляционную функцию очень дельный совет, спасибо, а без гетеродина тут наверное и не выйдет никак оцифровать сигнал, это же АЦП нужно с частотой дискретизации 5-6 ГГц, такие наверное не существуют даже
>>304068 >>304072 Тут дело в том что использовать стендовое оборудование не пойдёт, потому что в данный момент эта резонансная частота определяется на анализаторе визуально, но так как это вещь очень громоздкая стоит задача разработать электронное устройство, пока лучший вариант это с помощью гетеродина перейти на другую частоту, оцифровать, а вот каким образом дальше обрабатывать полученные данные идей нет(в схемотехническом плане),может кто-нибудь знает как в железе реализуются дпф или автокорреляционная функция? Или где почитать про это можно
>>304111 Что-то я сомневаюсь что автокорреляционная функция и ДПФ дадут разные результаты по отношению сигнал/шум на выходе. При этом, в быстром методе вычисления свертки используется БПФ.
>как в железе реализуются дпф или автокорреляционная функция? Это от полосы сигнала зависит. Для относительно широкой полосы можно записывать отсчеты в статическое ОЗУ (через мультиплексор), а потом считать на любом микроконтроллере. Аналогично можно делать на FPGA с использованием nios или microblaze. Если частота дискретизации относительно небольшая, то хватит простого микроконтроллера.
>>304129 Да, датчик представляет собой проходной резонатор, в котором присутствует резонансная частота, т.е. пик, эта частота равна 2.45 ГГц, в процессе работы эта резонансная частота не сильно меняется, максимум на +- 100 МГц, т.е. точность не очень большая. Ну и рабочие частоты лежат в диапазоне 2.35 ГГц - 2.55 ГГц.
>>304164 Делаешь ГУН, например 600-800 mhz, дальше смешиваешь с опорным в 1800 mhz, пропускаешь через свой фильтр, детектируешь амплитуду после фильтра. Смотришь, при каком напряжении на ГУН-е появляется пик амплитуды.
Цифровая обработка сигналов — математическая магия, которая позволяет через умножение и сложение отсчётов производить операции над сигналом (поднять уровень низких частот, демодулировать, убрать помехи, построить трёхмерное томографическое изображение мозга по набору рентгеновских снимков и так далее).
Что почитать для начинающих:
Юкио Сато, "Без паники! Цифровая обработка сигналов"
Что почитать дальше:
Оппенгейм, Шафер, "Цифровая обработка сигналов" (классика, учебник MIT)
Сергиенко, "Цифровая обработка сигналов" (хорошее изложение и руководство по Matlab)
Дальше дерево скиллов начинает сильно ветвиться, так что спрашивай советов по конкретным направлениям в треде.
Онлайн-курсы:
https://www.coursera.org/course/dsp
https://www.coursera.org/course/digital
https://www.coursera.org/course/images
Что почитать по цифровой схемотехнике тем, кто интересуется реализацией ЦОС на ПЛИС:
David Harris, Sarah Harris, "Digital Design and Computer Architecture"
оп-пик — https://ru.wikipedia.org/wiki/Лена_%28изображение%29