Это копия, сохраненная 8 августа 2018 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Цифровая обработка сигналов — математическая магия, которая позволяет через умножение и сложение отсчётов производить операции над сигналом (поднять уровень низких частот, демодулировать, убрать помехи, построить трёхмерное томографическое изображение мозга по набору рентгеновских снимков и так далее).
Что почитать для начинающих:
Юкио Сато, "Без паники! Цифровая обработка сигналов"
Что почитать дальше:
Оппенгейм, Шафер, "Цифровая обработка сигналов" (классика, учебник 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/Лена_(изображение)
Нет, к сожалению. Видел твой вопрос ещё в прошлом треде, но эта ветка дерева скиллов у меня не прокачена, увы.
448x252
>я хочу построить импульсную характеристику получившегося фильтра
Ты не поверишь. подать на вход единичный импульс aka дельта-функцию, ну типа 000100000(...).
Ты не поверишь сделать преобразование Фурье импульсной характеристики.
А вообще ты молодец, анон, а я ссаный теоретик, который только книжки читает, в голове куча идей вертится, а реализовать в лом.
видос не смотрел, пошёл смотреть
красава, да!
ты, сука, вручную писал ких? не стоит, можно накосячить очень просто, тем более если ты ньюфажина.
сделай ких в матлабе, посмотри срезы на грахфике, сгенерируй хдл и попробуй в нём покапаться.
добра тебе, плисо-кун.
Вероятно, этот вопрос стоило задать в плисотреде. Какой сигнал нужно подать на фильтр понятно. Меня больше интересует, с помощью каких инструментов возможно провести эти измерения на реальном железе. Спрошу у плисоанонов, а сюда принесу результаты замеров.
>а я ссаный теоретик
Зато ты ясно понимаешь процессы происходящие в дсп-системах, а не как слепой котенок натыкаешься на препятствия.
>>139467
>ты, сука, вручную писал ких?
Если ты о самой структуре фильтра, то да. Стандартная реализация мне не подходит, т. к. она не использует возможности камня. Например, я разместил коэффициенты в блоках встроенной памяти и учел симметричность фильтра. Плюс, запилил некотурую оптимизацию в виду того, что фильтр децимирующий и нет необходимости выдавать сигнал на каждый входной отсчет. Что касается самих коэффициентов, то они залиты в память через конфиг файлы не ебашить же 1.5к коэффициентов вручную, лол и ошибка в них исключена.
>сделай ких в матлабе
Сам фильтр рассчитан в матлабе, как и полагается.
>добра тебе, плисо-кун
И тебе добра, цос-анон.
Сделай простенький конечный автомат, которой сгенерирует единичный импульс, некоторое количество нулевых отсчётов и остановится (и остановит передачу результата).
Поскольку для снятия характеристики тебе необязательно в реальном времени обрабатывать единичный импульс, то сделай UART. Тактовый сигнал фильтра (и генератора входной последовательности) выдавай синхронно с работой уарта. Подал синхроимпульс на генератор и фильтр — фильтр считал вход с генератора и выдал результат. Уарт переслал это дело на комп. После завершения передачи подавай следующий импульс. И так пока конечный автомат не скажет, что хватит.
Я бы так сделал.
Отличная идея. Так и поступлю. Вот только уарт пилить лень. Помню, биткоин майнер на моей борде работал пользуясь только усб кабелем идущим к программатору. Не знаешь, случайно, что за способ обмена мог там использоваться?
Я хз, но с очень большой вероятностью предполагаю, что там встроенный преобразователь USB-UART на FT232RL или CP210x.
То есть на борде ты видишь идущие к нему сигналы RX и TX, а на компе он определяется как виртуальный com-порт, который можно открыть в эмуляторе терминала. Чтобы на него пересылать инфу, UART всё равно придётся запилить, но ничего проще, чем UART, ты всё равно не сделаешь.
Не, там все-таки, вероятно, какой-то свой отладочный канал запилен, т. к. в майнере не было выбора ком-порта. Ну и пикрилейтед говорит об отсутствии эмулятора. Попробую найти на гитхабе проект и посмотреть, что там у них.
>Попробую найти на гитхабе проект и посмотреть, что там у них.
Лучше сразу иди на альтеровский форум, вокруг этих дев борд целое комьюнити сформировано, там точно помогут. Или любой другой англоязычный, форум/irc чат по плисам.
Да, похоже, у этой борды действительно нет USB-UART и придётся позаниматься любовью, пичалька. Вот поэтому себе я взял борду, у которой он есть.
Там есть православный RS-232. Вот только у меня его нет, лол. Алсоу, где-то валялся китайский усб-уарт. Но я все-таки хочу попробовать через отладчик сделать. Выяснил, что в майнере использован JTAG IP Core залитый в плис, а на пекарне TCL скрипт.
>Фильтр принимает на вход либо 1, либо 0 - т. е. максимальный и минимальный уровни сигнала. Как в таком случае запиливать единичный импульс?
В чём проблема-то? Одна единичка и все остальные нули — это и будет твой единичный импульс.
Но лог. "1" - это "Х", а лог. 0 - это "-Х". Если сделать, как ты говоришь, то получится дельта-функция, за котрой следует функция Хевисайда со знаком минус. Разве нет?
Зависит от начальных состояний в фильтре, на самом деле. Если в его элементах задержки после резета нули, то лучше делать так, как я написал. Это тоже даст импульсную характеристику, просто удвоенную по амплитуде. Подавая на неициализированный фильтр 010101, ты тоже подаёшь по сути ступеньку (величиной в половину максимальной амплитуды). Если хочешь сделать импульс "честно", как он в идеале выглядит в PDM, то лучше перед его подачей прогнать последовательность 010101(...) длиной с импульсную характеристику, чтобы инициализировать память в фильтре на нулевой уровень.
сажа приклеилась
Произвел "честные" измерения. Результат пикрилейтед. Т. к. фильтр децимирующий, то снято всего 48 точек вместо 3072 и запилена интерполяция. В общем, какая-то хуйня получилась. Завтра буду осмыслять и исправлять код. Помогай, анон, если сразу видишь в чем тут дело.
Тебе сильно помогло бы помоделить на логическом уровне, при помощи тестбенчей. Но раз ты используешь не только чистую логику, но и специализированные устройства на самом кристалле, то с этим, насколько я понимаю, проблемы, да.
>А разве моделсим может в IP-блоки?
Не знаю, как это устроено в Альтере, но поидее должно быть возможным прикрутить моделсим к Альтеровскому САПРу (Квартус или че там у них), после чего, запуская моделсим из САПРа, компилятся библиотеки корок и все норм моделится. По крайней мере у Зайлинксов так.
>>139667
>>139676
Попробую потыкать этот ваш моделсим в следующий раз. Пока с задачей неплохо справляется встраиваемый отладчик.
Ну вообще да, ничего вроде. Я как-то привык, что ФНЧ — это обычно какая-нибудь вариация на тему sinc(x).
>>139744
Уже наладил его, анончик. Но если тебя интересует реализация, то могу залить куда-нибудь.
Да, вот теперь он и выглядит так, как должен выглядеть ФНЧ.
Не смотря на хорошую характеристику фильтра, чувствительность микрофона так и не стала лучше. Может есть еще какие-то особенности работы с PDM микрофоном?
>Дискретный оператор Лапласа.
Чего-то не работает он у меня. Первого порядка ведь достаточно? Алсо, он же будет поганить сигнал в полосе пропускания.
>>140363
Это ведь одна секция IIR-фильтра. Тогда уж лучше его сразу. Он почти готовый есть.
Раз уж ты тут, анон, скажи, что лучше: high-pass IIR + low-pass IIR или IIR bandpass?
>Первого порядка ведь достаточно?
[1 -2 1] это второй порядок же. Полосу пропускания он пидорасит, да. Просто первое, что на ум пришло. И достаточное, чтобы проверить твою идею насчёт постоянки.
>анон, скажи, что лучше
Если суммарный порядок одинаковый, то разницы никакой. Раздельные фильтры проще будет проверить, делают ли они то, что от них требуется.
>>140384
Нет, анончик. Все эти штуки только немного улучшают ситуацию. Даже хороший IIR снял с него импульсную характеристику - 10 из 10 ГОСПАДИ 10 из 10 дает лишь небольшое улучшение. Вероятно в выходном сигнале присутствует шум. Вот только откуда ему взяться, если характеристика FIR-фильтра почти полностью соответствует расчетной?
Как у блока может быть SNR? SNR - характеристика исключительно сигнала. Блок может вносить шумы, давать ослабление.
Ну хз, я же ньюфаг. Он например может вносить шум уменьшая длинну слова. Вот есть у нас некий аналоговый сигнал с SNR 90dB. Мы его оцифровываем с разрешением 24 бита. В 24 битном сигнале, максимальный SNR 144.49 dB. Что будет с сигналом в таком случае? Его SNR так и останется 90 или шум квантизации его как-то ухудшит?
Переводишь децибеллы в мощность (принимая уровень 0дБ за единичную мощность), складываешь (считаем, что шумы некоррелированы), переводишь суммарную мощность обратно в децибеллы.
Потому что так длиннее!
У меня аналогичный вопрос про "вообщем" - откуда это вообще пошло?
Ну там 2 секунды в реалтайме всего. Это из-за передискретизации там много отсчетов.
Каждая строчка - это байт, в котором биты заполнялись последовательно во времени сигналом с микрофона от LSB до MSB.
http://rghost.ru/58356501
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 в прыщах под вайном.
ГОСПАДИ, да ты просто бог матлаба у меня все было на циклах оче тормозило. Смотри чего получилось. Очень похоже на присутствие 1 кГц, который звучал во время записи семпла. Только почему то не видно такого распределения шума, какое рисовали в книжках.
Да нормально там всё, если масштаб подходящий выбрать.
Алсо, чтобы два раза не вставать, код для фильтрации и децимации:
n = 1024102416;
Xfft = fft(Xvd);
Xfftlp = Xfft . [ones(n/256,1); zeros(n/256254,1); ones(n/256,1)];
clearvars -except Xfftlp n тут неплохо бы подчистить память
Xlp1 = real(ifft(Xfftlp));
Xlp1rs = reshape(Xlp1, [256, n/256]);
Xlp1dec = Xlp1rs(1,:);
soundsc(Xlp1dec,44100)
Коэффициент децимации наобум выбрал 256, так что питч может не соответствовать.
ёбаный парсер сожрал звезду, ставлю вместо неё x:
>Xfftlp = Xfft .x [ones(n/256,1); zeros(n/256254,1); ones(n/256,1)];
>Xfftlp = Xfft .x [ones(n/256,1); zeros(n/256x254,1); ones(n/256,1)];
окончательный фикс, блядь
Нет. Нихуя не окончательный.
>Xfftlp = Xfft .x [ones(n/512,1); zeros(n/512x510,1); ones(n/512,1)];
Вот теперь окончательный. Я надеюсь. Надо спать идти.
Как ты получил такой хороший спектр? может я чего-то не знаю и plot(fft(abs(x))) не подходит для его построения?
Во второй части делаешь что-то вроде фильтрации в частотной области?
Ну, АЧХ, по определению, вообще-то будет plot(abs(fft(x)))
Да, просто убираю все частоты кроме 1/256 от исходной полосы.
Ну если ты не можешь поймать нужный масштаб, то обнули нулевую гармонику (чтобы она диапазон не растягивала) и построй ЛАЧХ.
Xfft = fft(Xvd);
Xfft(1) = 0;
Xlog = log(abs(Xfft));
plot(Xlog)
По временному сигналу видно, что идет модуляция не то частотой дискретизации, не то еще чем-то.
Оцифровка неправильная, соответственно и спектр левый.
Если ты в матлабе делаешь те же самые операции (фильтрация с теми же коэффициентами и децимация с тем же отношением), там всё нормально?
Не пробовал это делать. Мне анон скидывл скрипт для обработки однобитного сигнала, там вроде норм было. Но он делал это через урезание точек в частотной области. Надо попробовать через фильтор близкий к реальному.
>>145226
>Оцифровка неправильная
Микрофон же ее производит, я тут не причем. Разве что сигнал с него неправильно беру и просираю часть отсчетов. Тогда получилась бы как бы децимация без фильтра. Надо проверить еще раз код. Может проблема в этом.
>Надо попробовать через фильтор близкий к реальному.
Ну так попробуй, что ж ты ждёшь? Благо, когда сигнал есть и коэффициенты фильтра есть, это делается в матлабе одной строчкой. Поймёшь, по крайней мере, ошибка ли у тебя в алгоритме обработки или в его реализации.
От такая хуйня, анон, получается после фильтрации даже без децимации. Какая-то хуита с микрофоном судя по всему.
Да не с микрофоном хуета, а с оцифровкой. Какие-то биты не туда пишутся. Старшими синус более-менее рисуется, а в младших мусор. С этим разбирайся.
Вот жеж программисты, блин. Что угодно будут винить, железо, маму, аллаха - только не свою криворукость.
Хотя вообще-то даже с неправильными коэффициентами КИХ-фильтрация - это линейная процедура, она по определению не может срать гармониками™. Так что да, либо микрофон, либо (кстати) твой источник звука.
Итак понятно, что останутся. Вот спектр оригинального PDM-сигнала. Есть мысль, что я убил микрофон, второй по счету, блеать! пока выпаивал его из платы феном, и сенсор просто напросто "заклинило", в следствии чего он потерял чувствительность. Хрен поймешь эти ваши MEMS-технологии. Алсо, в даташите про допустимые температуры ничего нет.
>твой источник звука
Источник - мобила. Гармоники она конечно дает, но не по всей же рабочей области.
Я лучше запишу тишину этим микрофоном и запощу сюда ее спектр. Так мы все и узнаем. Только займет больше часа я ньюфаг и не знаю, как быстро сливать содержимое рам с отладочной платы на комп
Котаны, посоветуйте алгоритм определения основной частоты (первой гармоники).
Слышал, что это делается через автокореляцию, даже нашел одно упоминание в этом посте на форуме:
http://electronix.ru/forum/index.php?s=&showtopic=11590&view=findpost&p=78932
Но что он имел ввиду под этим: "Находится максимум автокорреляции. Он и соответствует периоду." Так и не понял.
Сигнал слегка зашумленный, шум высокочастотный очень. Искомый сигнал 100 Гц.
Попробовал такой алгоритм:
ФНЧ (fсреза 100 Гц) -> Децимация -> БПФ -> поиск максимального пика
Получилось так, что в отсутствии искомого сигнала получаю огромный пик на нулевой гармонике. Когда есть сигнал, то максимум там где надо.
Подводные камни такого алгоритма?
>Подводные камни такого алгоритма?
Он покажет тебе не основную частоту исходного сигнала, а максимальную проекцию исходного сигнала на базис Фурье. Базис Фурье состоит из строго определённого ряда частот (1/T, 2/T, 3/T и так далее), если твой сигнал не совпадает с одной из них, ты получишь ошибочное значение. Если это ни о чём тебе не говорит, то представь себе, что тебе надо определить направление вектора по трём координатам. Ты выбираешь самую большую координату и говоришь "вот оно, направление".
>>145872
>Но что он имел ввиду под этим: (...) Так и не понял.
АКФ - это функция от той же переменной, что и сигнал (в твоём случае от времени t). Находишь АКФ в виде функции r(t), ищешь максимум. Значение времени t в этой точке и есть длина периода исходного сигнала. Из неё ты находишь частоту. Только учти, что вообще-то максимум АКФ всегда находится в нуле (потому что функция идеально похожа сама на себя, если она не сдвинута). Так что ищи максимум АКФ за исключением t=0.
О! Спасибо, бро.
Построил в матлабе АКФ:
[code]
figure; plot(signal); title('Исходный сигнал');
corr = autocorr(signal, length(signal)-1);
figure; plot(corr); title('АКФ');
[/code]
И тут становится непонятно: если я выброшу нулевой отсчет АКФ, то это же ничего не поменяет. Как быть?
>если я выброшу нулевой отсчет АКФ, то это же ничего не поменяет. Как быть?
Ты имеешь в виду, что максимум всё равно останется в районе центрального пика? Я думаю, ты догадался, что тебе надо как-то принудительно натравить алгоритм нахождения максимума на второй по счёту пик, а не на центральный (относительно t=0). Попробуй какой-нибудь алгоритмический костыль. Например, начни в t=0, перебирай отсчёты до тех пор, пока значение снижается. Как только оно начало снова расти, начинай искать максимум.
Либо, кстати, если диапазон полезного сигнала извесен, то начинай его искать с t=T_min, то есть с минимального периода, соответствующего самому высокочастотному возможному сигналу. Это заодно поможет не зависеть от помех, потому что если они сильные, то могут поднасрать в АКФ в районе t=0 и сбить алгоритм поиска. Имей ещё в виду, что когда ты будешь вычислять АКФ не по пяти периодам, а по более долгим кускам, то пики будут значительно тоньше и отчётливее.
Видимо иначе никак, да.
Нашел такую статью: http://www.ucl.ac.uk/~ucjt465/tutorials/praatpitch.html
Смоделировал, вот что получается.
Покрутил амплитуду входного сигнала - на результат не повлияло. Это же здорово, можно взять какой-нибудь порог типа 0.6 и если получится больше, чем N пересечений, то у нас есть сигнал, частоту которого может точно измерить :3
Хотя нафиг оно надо? Одной АКФ хватит.
Эти http://www.st.com/web/en/resource/technical/document/datasheet/DM00025467.pdf
Заказывал в Элитане.
Ты их просто ради удовольствия терзаешь или в рамках большего проекта какого-то?
Что такого "упрощенного" в дельта-сигме? Такая примитивная как на пике - говно, а нормальную - считать заебешься, зело премудрые фильтры в нее ставят.
Под упрощенностью я имел в виду то, что в эти микрофоны не ставят выходной ФНЧ, как это делают в полноценных дельта-сигма АЦП.
Аналогично, это не часть АЦП, а преобразователь ДСМ в ИКМ, при чем тут полноценность? ДСМ ни чуть не менее полноценный способ кодирования, чем Мкм.
Дело не в полноценности модуляции, а полноценности АЦП, как устройства. Почти все дельта-сигма АЦП выдают ИКМ на выходе и иногда ДСМ, как бонус. Алсо, ДСМ неполноценна пока еще, т. к. до сих пор не существует годных алгоритмов обработки такого сигнала без преобразования в ИКМ
Котаны, у меня к вам вопрос.
Интерполировать сигнал (увеличить частоту дискретизации) можно в целое или дробное число раз.
Последовательность действий такова:
[Повысили fд0 в L раз] -> [ФНЧ Tc=T0/L] -> [ФНЧ Tc=T0/M] -> [Понизили в M раз]
В итоге получим сигнал с частотой дискретизации fд = fд0 L/M
Почему ни в коем случае нельзя поменять местами порядок действий, т.е. сначала децимация, потом интерполяцию?
Хуй знает. Может быть из-за алиасинга?
>сначала децимация
В этом случае ты потеряешь нахуй все частоты выше найквистовой (которая в процессе децимации у тебя снизится в M раз от исходного сигнала). Причём если ты их предварительно не отфильтруешь, то получишь наложение спектров (алиасинг).
"корелляция" означает похожесть.
Высококореллированный, соответственно - похожий на некий образцовый.
Белый шум - не кореллирует ни с чем.
Прямоугольник - кореллирует с прямоугольником той же частоты.
А русскоязычные книги по ЦОС на ПЛИС есть? А то для прочтения книги в ОП придется для начала английский выучить.
Я этот термин видел в теории информации и кодирования, там это означало предсказуемость следующего отсчёта сигнала по его предыдущим. Если сигнал случаен, каждый его отсчёт вообще не зависит от предыдущих. Если высококоррелирован, то его можно с определённой точностью предсказывать при помощи алгоритмов. Такую предсказуемость показывает автокорреляционная функция, для слабокоррелированного сигнала она очень быстро уходит в ноль в хвостах.
>>150548
>2014
>почти 2015
>не знать английского
У меня к тебе только один вопрос - а как ты даташиты на ПЛИСы читать собрался?
Вот это больше всего подходит. Спасибо, анон.
Оцифровка даёт задержку T/2 (11 микросекунд). Сколько-то дадут всякие буферы внутри АЦП и ЦАП, но немного. Всё остальное целиком в твоих руках. Можно целиком повторить аналоговую обработку цифровыми методами (если сделаешь модель), задержка будет такая же, как в аналоге. Никто не заставляет копить отсчёты и пакетами обрабатывать, можно и на лету это делать.
Не надо тут траллить.
Не ходите туда, у меня от того треда брат с ума сошел.
Сап. Предстоит экзамен по Теории сигналов. Парни подскажите годный учебник на эту тему.
Просто сигналов или цифровых? Если просто, то
Баскаков, Радиотехнические цепи и сигналы других не знаю
С новым 2015 годом, посоны! Всем в 2015 году устойчивых обратных связей, незаваленных фронтов и гладких АЧХ в полосе пропускания!
оп и постоянный отвечальщик на вопросы уютного цос-тредика
И тебя ОПушка с Новым годом. Спасибо, что создал и поддерживаешь годный тред и отвечаешь на наши вопросы.
постоянный задаватель вопросов и читатель уютного цос-тредика
Есть библиотека от elm chan, которая написана на асемблере.
http://elm-chan.org/works/akilcd/report_e.html
Прошу опа приложить книгу по ЦОС, которая, имхо, просто необходимо читать всем новичкам и тем, кого ЦОСа не было в процессе обучения (или даже был) -
"Цифровая обработка сигналов"
Год выпуска: 2006
Автор: Ричард Лайонс
http://rutracker.org/forum/viewtopic.php?t=1729964
Чрезвычайно полезная книга, рассматриваются подброно и на пальцах вопросы дискретизации, квадратурного представления сигналов, фильтрации, преобразования частоты дискретизации и спектра.
Самая любимая глава - про хитрости и трюки в ЦОС. КАк сказал мой руководитель - мне бы такую книжку лет 30 назад.
от себя могу посоветовать Глинченко ЦОС тож книга хорошо написана
>>155409
Спасибо! Заранее извиняюсь за глупые вопросы, т. к. не спец в ЦОС (вообще не спец), но разобраться хочу. Вот в 90-е были популярны радиомодемы. Пакетная связь, X25 там и прочие Амторы-Ситоры. Так там в качестве физического уровня передачи данных использовался радиотракт КВ-трансивера, у которого полоса пропускания в районе 100-3000 Гц и сигнал уже модулированный, т. е. подключение велось прямо к тангенте. Таким образом получается, что тут на лицо двойное преобразование сигнала? Сначала модем преобразует цифровой сигнал в аналоговый, предназначенный для передачи по аналоговому каналу (это манипулирование и есть?), а потом идет модулирование (?) созданного сигнала, скажем в АМ (чаще конечно использовали SSB, что не есть модулирование, а скорее просто перенос участка звукового спектра в ВЧ область)? Кака тут грамотнее терминологию применить? Что есть что?
Сначала переведи этот файл в PCM, то есть простенькая прога, которая из исходного файла вычитывает по одному битуне проеби правильную последовательность!, а в выходной файл пишет например 16-битное число так: если на входе 1, то 32767, если 0, то -32767. На выходе у тебя получится RAW PCM файл. Далее можно взять прогу для обработки аудио, например Sound Forge и открыть её полученный файл как RAW PCM, с выбором соответствующего формата, например Signed 16-bit mono. А там уже можешь слушать, смотреть спектр, применять фильтры
>чаще конечно использовали SSB, что не есть модулирование, а скорее просто перенос участка звукового спектра в ВЧ область
Почему же, это тоже модуляция высокочастотного сигнала низкочастотным.
Модуляция - умножение синусоиды на сигнал. Если умножение выполняется в аналоговом виде, то это аналоговая модуляция. Если в цифровом - цифровая модуляция (или манипуляция, если угодно). Если и там и там, то и та и та.
Тебе с терминологией надо с самого начала разбираться. Начать с того, что такое аналоговый, что такое дискретный и что такое цифровой сигнал (дискретный по времени и амплитуде).
Дальше. Манипуляция — это модуляция несущей дискретным сигналом, то есть сигналом, который принимает строго определённое число значений (например, однобитный принимает 2 значения, восьмибитный принимает 256 и так далее). Так что да, модуляция при помощи цифрового сигнала — это по определению манипуляция. Как и модуляция, манипуляция может быть амплитудной, частотной, фазовой и так далее, разница только в модулирующем сигнале, который является дискретным.
SSB — это вполне себе модуляция. По-русски оно так и называется — "однополосная модуляция", разновидность амплитудной модуляции. Несущая частота у неё тоже есть, вот это расстояние, на которое спектр переносится — это несущая частота.
>>155438
>Если умножение выполняется в аналоговом виде, то это аналоговая модуляция.
Нет, неверно. Манипуляция может производиться в аналоговом виде, но модулирующий сигнал должен принимать конечное число значений.
Что можно почитать? То, что в шапке рекомендовано подойдёт?
В Сергиенко хорошо описано по "линейной" и "нелинейной" веткам. А поскольку начинать въезжать надо в любом случае с них, то его и рекомендую.
>модулирующий сигнал должен принимать конечное число значений
Типа аналоговый сигнал должен принимать конечное число значений? Ловите наркомана!
>Типа аналоговый сигнал должен принимать конечное число значений?
Не "аналоговый", лалка, а дискретный.
В чём проблема? Представь, что у тебя есть сигнал типа многоуровневой ШИМ (красная линия на пике). Подаёшь его на смеситель, получаешь манипуляцию
Парни поясните за книжку Баскакова по теории сигналов. Стоит ли обмазываться?
Тебе с какой целью? Как сам свой уровень знания предмета и уровень знания матана оцениваешь?
Извлеку ли я для себя что нибудь нужное в области ЦОС после ее прочтения? Ну если уровень знаний то только начал разбираться в ЦОС, мат на уровне университетского курса.
Если нужен ЦОС читай книжки по ЦОС. Могу сказать, мало того, что у ЦОС много особенностей по сравнениюс теорией непрерывных сигналов, так ещё и по ЦОС книжки написаны в целом лучше, чем Баскаков, человечнее и понятнее. У Баскакова махровое формальное изложение, никакого объяснения на пальцах в троднопонимаемых местах, ну ты понел, типичный отечественный академический учебник, задача которого показать студенту, что он дебил, а задача обучающегося по нему студента сдать предмет и забыть как страшный сон. Из этих студентов лишь пара станет специалистами (вопреки изнасилованию их отечественной системой образования), а стране чтобы клепать радары для танчиков, больше и не надо.
короче нахуй не нужен? Просто у меня тут валяется, я полистал формулы какие то букв много, слова заумные. Только вот нахуй надо все это немного недопонял.
а вообще о чем там? в чем разница между ЦОС и тем о чем там говорят. Просто теория отдаленная от жизни?
Ну, начать надо с того, что там говорят о непрерывных сигналах, аналоговых. И хотя у аналоговых и цифровых сигналов есть схожие вещи в плане матана, на практике методы для их обработки используются совершенно разные.
512x288
Задержки: входной сигнал захватывается каждые 8 тактов, выходной вылезает каждые 8*64 (децимация 64 типо)
Порядок: 3072 (можно запилить любой кратный 512 без потери производительности)
Кол-во каналов: до 18 (после 18 будет жрать больше памяти)
Размеры: 657 LE + 58386 бит памяти (при компиляции одноканального фильтра)
Хочу сказать тебе большой спасибо за помощь, анончик. Без твоих мудрых советов, я бы не знал в какую сторону двигаться и в каких местах искать ошибки. Ты молодец.
Абу, какого хера размер WEBM ограничен пятью мегабайтами? Школота в вебм-тредах по 50Мб видосы заливает, а правильные посоны в /ra/ вынуждены жать свои ролики до неприличных размеров. Спасибо тебе, сука.
Пожалуйста. Самому было интересно, ЦОС — это красивая вещь, с которой всегда приятно иметь дело.
Бумп.
MRE делается пропусканием через фильтр синтезированного белого шума. По дефолту там берется не очень много точек тестового сигнала, можешь после первого запуска MRE зайти в Analysis → Analysis Parameters и поставить побольше.
>делается пропусканием через фильтр синтезированного белого шума
Вот спасибо, анон. А я то думал, чего у меня IIR фильтр то нормально выглядит, то разваливается при абсолютно тех же параметрах. А тут оказывается случайный входной сигнал замешан.
Алсо, можешь ли посоветовать структуру для IIR фильтра с минимальной чувствительностью к ограниченной разрядности переменных? Пока остановился на Direct-Form I. Может есть что-то лучше? INB4: плисоебы не могут во флоатпоинт
Я, честно говоря, хз, какие формулы для синтеза фильтров меньше чувствительны к погрешностям округления, но я очень рекомендую, если ты ещё этого не сделал, во всех местах, где у тебя происходит округление (во всех перемножителях, короче говоря), сделать дитеринг. Устойчивость фильтра повысится, а с ней и характеристики.
В чём проблема-то? Не можешь равномерный псевдослучайный сигнал сделать?
Почему такой интересный график? Монотонный рост с ростом частоты и отдельные пики через равные частотные промежутки.
Это неправильный сигнал, анон. В нем проебан каждый 16-й отсчет, ибо я написал хуевый скрипт.
Рост можно связать с АЧХ твоего приемника.
Понятно что он будет валится с низов и с верхов, возрастая к середине. А вот резонансные пики - с чем они связаны?
Там АЧХ приёмника ирает роль в первом проценте полосы. Всё остальное — шум квантования. Его специально формируют так, чтобы он был поменьше в полосе полезного сигнала и побольше там, где полезного сигнала нет (остальные 99% полосы). Потому он и растёт. Эта магия называется "дельта-сигма-модуляция".
Не заметил у тебя в шкале множитель 10^5. Тогда у тебя шума меньше как раз где-то в области 10000Гц что соответствует некому звуковому сигналу. Вообще зашел мимокрокодилом, но сейчас почитал про ДСМ и проникся. Такой спектр шума дает сама схема и вообще сдвиг спектра зависит от количества интеграторов. Но откуда пики?
Анончик >>166474 объяснил же — часть отчётов у него проёбана. Причём проёбана равномерно. что вполне может быть причиной гармоник.
>зашел мимокрокодилом, но сейчас почитал про ДСМ и проникся
Да, у нас тут тепло и лампово. К слову, обнаружил dsp.stackexchange.com , теперь тоже посиживаю там, в ламповой атмосфере фильтров Калмана и Фурье-преобразований.
Куда подаваться, если есть знания вот этих ваших Фурье, цос, матлаба, маткада? Пока в радиолокации работаю, немного с этим связан, но работа может вскоре закончиться и нужно будет что-то новое искать. Душа лежит к цос.
Попробуй сунуться к этим чувакам — https://www.linux.org.ru/forum/job/11579945 Сам мечтаю о такой работе, чтобы чистый ЦОС, без примесей в виде ебли со схемотехникой (пусть ей занимаются те, кого прёт от всех этих CANов, эзернетов и прочего чтения пятисотстраничных даташитов), но уже нацелился на другую контору. :3
Кстати, раз ты спец по радарам — можно я тут немного протеку из /po/, лол? Скажи, как по-твоему, мог ли Бук М1 в автономном режиме засечь Боинг 777 на высоте 10 км и на какой дистанции? Почему у Бука М2 с фазированной решёткой дальность обнаружения указана 20 км, а у М1 с обычной РЛС порядка 80-ти? Фазированные решётки на меньшей дистанции работают? А какая дальность обнаружения реально нужна для таких установок?
electronix.ru
Так не взлетит. Кидай сюда всю инфу и пиши "ололо ньюфаги не могут в обнаружение мелких объектов", тебе напишут сроки и прайс если хоть кто-то умеет, лол.
Есть Cortex M0, есть датчик с аналоговым выходом, выход идет на ацп микроконтроллера. MCU преобразовывает данные с датчика в цифровую форму и на основе его формы/длительности/etc считаются разные интересные плюшки.
Пока собираешь на коленке макетку и крутишь мк все время в run-режиме все ок - успеваешь считывать данные, преобразовывать, etc. Но начал продумывать как все это должно быть, что называется, в реальности, с соблюдением power-бюджета и понял, что нужно делать так, чтобы мк спал все время, пока полезного сигнала с датчика нет. Но тогда не понятно когда должен просыпаться мк - если делать по внешнему прерыванию (допустим сигнал с датчика превысил порог), то теряешь большую часть информации. Так как в тот момент, когда напряжение превысило некоторый порог, основная часть сигнала уже "ушла". Если просыпаться раз в милисекунду - то тоже плохое решение, во-первых можно опередить или проспать момент снятия сигнала, во-вторых датчик может раз в 5 лет реагировать, а может раз в микросекунду и заранее это неизвестно. Хочу услышать ваше мнение, как выйти из тупика, у вас-то опыта в таких делах наверное побольше чем у меня. Спасибо!
Нема, иначе проблема решилась бы тривиально. По сути я сам программно генерирую синхровыход на одну из ножек микроконтроллера по результатам анализа сигнала.
добавить еще один махонький малопотребляющий МК с одним АЦП, работающим постоянно, генерирующим синхросигналы для основного МК
хотя так сигнал тоже проебется
Опуская вопросы цены, площади и прочего просто напомню, что таким образом задержка перед приходом сигнала и его обработкой только увеличится.
В общем пока хуй знает, что делать. Буду экспериментировать с низкоскоростными режимами работы и засыпанием, активно управлять периферией, отрубая ее до востребования.
АРУ реагирует не особо быстро, можно заметить как спадает амплитуда сигнала при его превышении выше некоторого уровня.
Готовых не знаю. Теоретически решить задачу можно в некоторых случаях (не во всех). Первым делом надо построить точную модель АРУ в виде уравнения. По нему уже будет видно, можно ли его инвертировать. Не знаю, что ты хочешь таким образом переделать, но вангую, что проще найти источник с отключаемым АРУ.
512x288
Лол, у всех твоих видосов одинаковая проблема — ты напиши хоть в кратце, что ты делаешь, и куда смотреть. На линейке это всё микрофоны у тебя? Фазированная решётка?
>что ты делаешь, и куда смотреть
Делаю, как здесь: http://www.labbookpages.co.uk/audio/beamforming/delaySum.html Смотреть на столбики. Позиция самого высокого столбика соответствует углу, с которого приходит сигнал. Но вообще, я результатами не доволен. Мне обещали овер 20 дБ отношения сигнал шум при 16-ти микрофонах. Где мои 20 дБ, блять?
>На линейке это всё микрофоны у тебя?
Ага.
>Фазированная решётка?
Угу.
Кароч вычисляешь автокорреляционную функцию своего сигнала, оптимальный способ — через БПФ. Потом смотришь, есть ли у неё пики в области 2pi/1000...2pi/700, пороговое значение подбери опытным путём. Этот способ задетектит не только меандр, но и сигнал любой формы с периодом 700...1000 Гц.
Если надо детектить конкретно меандр, и чтобы детектор ни на что другое на семёнов не срабатывал, то придётся обмазаться, я думаю, вейвлет-преобразованием с материнским вейвлетом Хаара.
"..." — это диапазон.
Обрати внимание, АКФ — это функция от времени, а не от частоты, поэтому ты ищешь пики не для частоты, а для периода, соответствующего интересующей частоте. (T = 1/f, если f в герцах)
Если диапазон частот 700...1000, то диапазон периодов 1/1000...1/700 постом выше я написал 2pi, это косяк
>Мне обещали овер 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. Если у тебя есть какие-то вопросы по этой платформе, то я готов на них ответить.
Оу, вот это удача. Скажи, ты, случаем драйвера линуксовые для цинкового арма не писал? Я хочу написать драйвер для обмена данными между плисиной и процессором через DMA. Выделение памяти и чтение/запись в обход кэша сделал (в sysfs псевдофайлик, при записи в который происходит инвалидация кэша), теперь хочу, чтобы устройство могло дёрнуть анус прерывание после того как данные в память залило, а линукс увидел это дело. Писал такое для прыщей когда-нибудь?
>ты, случаем драйвера линуксовые для цинкового арма не писал?
Вот до этого дело как раз и не дошло. Юзал /dev/mem, имел проблемы с кешем, но т. к. от меня требовалось только написание корок, то для тестов это сгодилось.
Бамп ЦОС-треду.
посоветуйте годную магистратуру и универ где можно было качественно изучить ПЛИС. Или не имеет смысла и надо сразу искать годную работу?
Очевидный МФТИ. Они тесно сотрудничают с МЦСТ, например. Но это МФТИ, он не для всех.
ну а вообще туда реально попасть? Ладно с ЕГЭ я проебался не набрал 270+ баллов, а вот в магистратуру есть шансы?
В МЦСТ можно и из Бауманки попасть, например. Только надо ли?
>Подготовка. Вычитаем из ряда среднее арифметическое. Преобразуем в комплексные числа. Дополняем нулями до 2^k. Затем дописываем в конец ещё 2^k нулей.
Есть у меня массив отсчетов и как преобразовать в комплексные?
Nкомплексное = Nдействительное+j*0
как подступиться к DSP? вообще понять что это такое и как оно работает. Отладочная плата нужна?
Какое конкретно ДСП? Радио, звук, картинки? Может быть, видео?
В любом случае, начать можешь со скачивания и установки Матлаба. Там полно примеров на все случаи жизни.
>Там полно примеров на все случаи жизни.
Нет, чтобы учиться, это хреновый вариант. Рекомендую книги из оп-поста и видеолекции на Coursera из оп-поста.
Придумай что-нибудь.
Вот думаю сделать FSK модем на AVR.
На скриншоте модель.
На графике справа сверху - сигнал после модулятора.
Сообщение: 1 1 1 0 1 0 1, частота дискретизации 6 кГц, частота еденицы 300 Гц, нуля 600 Гц, тактовая частота 300 Гц.
На графике слева - сигнал с приемника, до 400-ого отсчета идет гауссовый шум, потом шум + полезный сигнал, SNR=0.3
Справа снизу - демодулированный сигнал. Демодулировано правильно.
Теперь осталось придумать как будем синхронизироваться?
Какой способ обработки лучше: непрерывный или блочный?
извини, в глаза долблюсь
профит от нее есть? "лучем" можно двигать? за кыламетр праслушка делать?
>"лучем" можно двигать?
Можно
>за кыламетр праслушка делать?
Можно прослушка делать теоретически. На практике дело осложнено низкой пространственной чувствительностью. Тут нужны всякие улучшаторы и прочие свистелки.
А что?
идея для демонстрации этой штуки
стоят несколько человек в разных углах комнаты
говорят по очереди
штука автоматом ищет направление на говорящего и выставляет луч
Как тут? http://www.youtube.com/watch?v=gGlrY46nfe4
У них там 1024 микрофона, лол. Против моих-то 16-ти
The Scientist and Engineer's and Guide to Digital Signal Processing by Steven W. Smith - 1997 год, скачать можно бесплатно минус - в книге есть бейсик
Анон а вот эта книга
>Оппенгейм, Шафер, "Цифровая обработка сигналов" (классика, учебник MIT)
содержит тот же материал, что и вот эти http://ocw.mit.edu/resources/res-6-008-digital-signal-processing-spring-2011/video-lectures/ лекции? Или все-таки в книге больше информации?
>The Scientist and Engineer's and Guide to Digital Signal Processing
Спасибо, анон. Буду иметь ее пока как основной вариант. Но нет ли чего поновее? И без Бейсика
Не понимаю, зачем тебе настолько новые книги. Ну да ладно:
http://www.ebyte.it/library/refs/Refs_DSP_Books.html Выбирай всё, что душа пожелает.
>зачем тебе настолько новые книги
Просто помню, что говорилось о необходимости новизны источника инфы. Но не помню точно насколько новой она должна быть.
>>192679
>Выбирай всё, что душа пожелает
За ссылку спасибо. Теперь я точно подберу что-нибудь. Особенно порадовало наличие литературы по DSP на FPGA.
>Просто помню, что говорилось о необходимости новизны источника инфы.
Насколько я понимаю ОПу того поста нужна была вводная книга. А 97 году уже было достаточно фундаментального материала по Фурье, z-преобразованиям и тд.
>необходимости новизны источника инфы
тогда тебе точно надо читать актуальные научные статьи. Благо их дохуя и они действительно интересные.
Новые книги по фундаментальным знаниям по дсп редко привносят что-нибудь новое и по сути являются наглым рерайтингом старых книг 80-х годов и та книга 1997 года - не исключение. Ну разве что можно почитать говно типа "ДСП на йобаАРМкортих4/матлаб2014))))))", но я бы советовал читать о каждом инструменте в разных специфических книгах.
зумп
Ну а хули ты хотел? Ты бы хоть рассказал, че за сигнал, какой вид модуляции, какая полоса, непрерывный или импульсный, прочие параметры. А то "хочу чтоб было пиздато".
Он, скорей всего, хотел, чтобы ему объяснили все в стиле SDR-треда. Я как-то в этот загон зашел, попроигрывал с их знаний и больше не заходил.
>а не как в матлабе рисовать графики ам сигналов и прочий детский лепет
Чем тебя Сергиенко не устраивает, пес?
Слушай, я же в SDR треде даже код привел.
На, am демодуляцию
http://sourceforge.net/p/powersdr-sr40/code/HEAD/tree/trunk/Source/DttSP/am_demod.c
На, fm демодуляцию
http://sourceforge.net/p/powersdr-sr40/code/HEAD/tree/trunk/Source/DttSP/fm_demod.c
При желании можно и ssb найти и даже wfm с выделением моно\стереоканала и rds, и squelch с agc. Да чего уж там, можно и спектр разложить.
Ну для начала надо правда выучить C, и понимать что там написано.
Ну тогда ищи книгу
Nezami - RF Architectures and DSP Aspects of Digital Wireless Transceivers
если, конечно, владеешь ангельским.
Ну поясните уже за мой демодулятор
ента паста меня
самого шизика
еще пролемы у когта/,
>Матлаб широко используется при цифровой обработке сигналов?
Да, и симулинк тоже. И матлабовские тулбоксы тоже.
>Что еще (пакеты, языки) нужно подучить, чтобы двигаться в нужном направлении?
Учи фундаментальную теорию. Лично мне матлаб вообще не вставляет. Он громоздкий. Чтобы что-то получить, надо перелопатить весь справочник. Мне гораздо проще написать на питоне скрипт для расчетов. Там еще удобно с данными работать. Мне нравится, короче.
дублирую петон
> Да, и симулинк тоже. И матлабовские тулбоксы тоже.
Это хорошо, тулбоксы мне нравятся.
> Учи фундаментальную теорию.
Это-то понятно, но даже если заучить какой-либо раздел, чтобы на его основе создать какой-нибудь пример, нужно также разобраться в среде.
Например, чтобы реализовать прочитанный в книжке алгоритм согласованной фильтрации с помощью двух дпф и перемножения в матлабе, нужно хорошо себе представлять как матлаб с этими матрицами работает и какие функции ты собираешься использовать.
И если мне придется другие языки/пакеты использовать при этом, хотелось бы знать, какие именно часто используются.
Если я тебя правильно понял, то ты не совсем правильно воспринимаешь процесс разработки в области ЦОС.
Допустим, поставлена некая задача(например, осуществить прием сигнала согласно некоторому стандарту и реализовать это в устройстве).
Работа делится на несколько частей. Сначала ты на основе фундаментальной теории составляешь блоки: говоришь, что несущую будешь восстанавливать так-то. Декодирование будет вестись такое-то. Оценка канала связи будет таким-то.
Потом ты хочешь проверить правильность этой архитектуры. Ты запускаешь матлаб и симулинк или, как я, питон с сайпаем. И начинаешь просто моелировать. Тебя не должно волновать время моделирования. Ты можешь выбрать упрощенные алгоритмы. Ты просто проверяешь концепцию. На выходе ты должен получить параметры своего потенциального приемника и сказать, удовлетворит архитектура ТЗ или нет.
А потом ты говоришь, что вот этот блок будет работать в железе по такому-то конкретному алгоритму, потому что для архитектуры данного DSPшника наиболее удовлетворяет именно этот алгоритм. хотя сейчас DSPшники большие дяди применяют для отладки алгоритмов с реальными сигналами, а потом эти алгоритмы переводят в ПЛИСы или АСИКи, если денег жопой жуй
К чему это все. В среды моделирования не нужно закапываться. Их задача - проверить правильность концепции.
А если ты стремящийся нищеброд и тебе доступна только среда матлаб, что тогда делать?
Честно, не знаю, что делать в матлабе. Я ЦОС изучил без него. Толк от матлаба будет только если ты хреново знаешь теорию и не можешь взять какие-нибудь интегралы. Там это все компенсируется обилием функций.
Я на работе как-то заядлому матлабщику объяснял, как связаны импульсная и частотная характеристики. Тот все искал в справочнике функцию перевода одного в другое.
>заядлому матлабщику объяснял, как связаны импульсная и частотная характеристики
>Тот все искал в справочнике функцию перевода одного в другое
Чет либо ты пиздишь, либо заядлый матлабщик туповат.
Ну затупил он. Бывает.
То есть, нужно хорошо понимать, что и зачем ты делаешь — а опыт работы в пакетах это дело десятое?
Ну как бы да. Я вот примерно год работаю в направлении ЦОС. И мне матлаб вообще не пригодился. Правда, я в кухню глубоко не залезал, ибо на мне больше теоретические изыскания. Но, скажем, если бы мне надо было по-быстрому коэффициенты фильтра посчитать или спектры прикинуть, то я бы запустил матлаб, но не более, чем для этого. Да я даже интегралы на питоне считал.
>на питоне
Хули вы все так этот питон любите? Заебали уже. Тут питон, там питон. В нем же нет ничего такого особенного. Чем вам С/С++/Java не нравятся? Нормальные же языки.
Я сам пару лет назад думал, что все можно на си написать. Но потом я понял, что заебешься все досконально реализовывать. В питоне все готово.
Мне там очень нравится то, что мне не надо запариваться над выбором типа данных для расчетов. И еще очень хорошая фича - это словари. Очень удобно данные организуются. Мне в одной из работ надо было собрать хренову кучу данных для оценки работы одной системы. Так вот их все очень удобно собрать в словари и выводить то, что нужно и как нужно.
Естественно, питоновские скрипты не для чистовой реализации. Но прикинуть алгоритмы и расчеты - самое оно. Рекомендую.
Ну с си понятно, не для того он. Но есть же кресты и жава. Там этих словарей и прочих структур данных, как говна - на любой вкус. А вот эта ваша нестрогая типизация в питоне меня убивает, ибо не знаешь чего ждать от вызова функций, к примеру. И вообще.
http://rghost.ru/private/6JLZhLVly/63fcbc6cb0eea427bdd75d2d3bcc6065
Как из этого получить 0 и 1. Я так понимаю 0 и 1 соответствуют своя часота
Чтобы на плюсах все списки организовать, нужно выучить STL или еще что-то подобное типа буста. На питоне создание словаря это dict1 = {}
Все. И потом добавляешь туда то, что тебе надо. Выигрыш очевиден. А типизация данных нужна для начинающих программистов. Да и ни разу не встречал каких-то проблем, что у меня там функция возвращает. Короче не придумывай, а пользуйся благами и ускоряй время разработки.
>В питоне все готово.
Пиздец
>>196124
> с си понятно, не для того он.
Пиздец
>Но есть же кресты и жава.
Пиздец
>>196109
>С++/Java. Нормальные же языки.
Пиздец
>>196164
>на плюсах списки организовать, нужно STL или типа буста.
Пиздец
>типизация данных нужна для начинающих программистов.
Пиздец
>не встречал каких-то проблем, что у меня там функция возвращает.
Пиздец
У меня просто слов других нет.
>Попробуй, все же, выучить еще слов.
Фортран!
>Неужто байтоебство всю память заняло?
Сеньер питонис, мне 2 бургера пожалуйста и картошку фри.
>нестрогая типизация
>в питоне
лол
>не знаешь чего ждать от вызова функций
Не пиши говнокод и будешь всё знать. Видел я олигофренов, которые на бидоне в названиях переменных пишут их тип. На вопрос "нахуя вам вообще это язык тогда?" ничего вразумительного ответить не могли.
Учитывая простую истину: если руки растут из жопы, то любые плюсы языка тут же превращаются в минусы.
Знаете как сделать просто отпадное, фирменное ГОВНО?. Кодить жопой? Хаа, да если бы. Нет, самое говнистое несопровождаемое говно получается с мотивацией АЗАЗА А СМАРИ КАК Я ЕЩЁ МОГУ, А ТЫ НЕ МОЖЕШЬ ТАК XDDD.
Мимо погромизд
Да ладна тебе, они хоть не дают треду утонуть.
Нет правда.
Я абсолютно против спец олимпиад.
Для каждой задачи свой инструмент, многие языки во многом эквиваленты, многое зависит от того каким ты их образом используешь итд итп.
Какой язык лучше - бредовый вопрос. Если подходит для твоей задачи - все в порядке.
Но.
Я еще ни разу не видел чтобы питон подходил для какой-то задачи.(Или не имел лучшей замены)
Это просто глупая шутка, а не язык. Создается впечатление, что им интересуются недоучки не осилившие даже какой нибудь турбопаскаль.
Это говно из разряда Го и прочих так и не оживших бредовых студенческих фантазий.
Единственный смысл использовать питон есть если ты только питон и знаешь, все. Это как жрать говно от того, что ты знаком с вкусом говна.
А утверждать что питон лучше матлаба в разработке, ох.
>>196249
>Не пиши говнокод и будешь всё знать. Видел я олигофренов, которые на бидоне в названиях переменных пишут их тип. На вопрос "нахуя вам вообще это язык тогда?" ничего вразумительного ответить не могли.
Это пушка.
Ну расскажи тогда, чем матлаб превосходит питон? На мой взгляд, абсолютно такое же говно. Только у этого говна нулевое комьюнити. Если на питоне не можешь что-то написать, то пиздуешь на стековерфлоу и там будут ответы на все твои вопросы. А если в матлабе у тебя затык, то попадаешь на протухжий форум mathworks и жрешь говно аля "я разобрался, тему можно закрывать".
И я не говорил про разработку (хотя применять матлаб в разработке это край ебанутости). Нужен удобный инструмент проверять математические гипотезы. И этих инструментов совсем мало: математические пакеты с тухлыми справочниками или питон без некоторых редких функций, но с живым комьюнити.
>>196250
Мы тут вообще-то инструмент для работы в области ЦОС выбираем и разбираемся, для чего он нужен, если ты не заметил.
>Ну расскажи тогда, чем матлаб превосходит питон?
Чем космический шатл превосходит запорожец?
У них не так уж много пересекающийся параметров.
> Только у этого говна нулевое комьюнити.
Это у матлаба то? Который известен просто бесконечным количеством различных тулбоксов и готовых модулей на все случаи жизни созданных сообществом?
Ты наркоман?
>комьюнити швабодка столман наш бог
Пиздец, просто пиздец.
>питон без некоторых редких функций
Ты элементарно не понимаешь даже масштаба вещей которые ты сравниваешь, наркоман.
>я не говорил про разработку
>инструмент проверять математические гипотезы
Ты просто из праздного любопытства гипотезы проверяешь, или что-то разрабатываешь быть может? Какую-то систему цифровой обработки сигналов?
А системы обработки не в железе реализуются в итоге? А ты прямо сразу ебошишь в железяку алгоритмы на авось? А у тебя все алгоритмы стандартные и их поведение не нужно моделировать?
>я ничего конкретного не отвечу, но поглумлюсь над тобой. может, тогда меня на дваче за умного примут.
Такое чувство, что ты не понимаешь простые предложения вообще.
>А системы обработки не в железе реализуются в итоге?
Иногда в железе.
Иногда программно.
Иногда и так и так.
>А ты прямо сразу ебошишь в железяку алгоритмы на авось?
Нет, а ты?
>А у тебя все алгоритмы стандартные и их поведение не нужно моделировать?
Нет, а у тебя?
>>196262
Та не парься ты. Все нормально. И питон твой нормальный, если тебе нравится.
Просто как нибудь попробуй что нибудь другое попробовать, для расширения кругозора так сказать.
У нас с тобой похоже разные взгляды на работу в ЦОС и это нормально. Я заканчиваю срач со своей стороны.
По существу.
Матлаб - мощнейшая система матричных вычислений.
Питон - скриптовый язык созданный первокурсниками линуксоидами не знающими что есть lua perl m4 и сотня других решений на все случаи жизни.
Я не понимаю как их вообще можно сравнивать. Это вещи из разных миров.
Как на питоне посчитать обратную матрицу? А обратную матрицу от вырожденной матрицы?
А как с аппаратным ускорением расчетов дело обстоит? А построением графиков? А нахождением главных компонент?
Матлаб - для матричных вычислений.
Питон - не для матричных вычислений.
Питон - для скриптования линуксов и игрулек(но зачем еще один велосипед?).
Матлаб - не для скриптования линуксов и игрулек.
Может я конечно чего-то о питоне сильно не знаю. Первый раз сталкиваюсь с тем, что его кто-то для научных/математических расчетов использует. Потому рекомендую попробовать что-то другое. Хоть фортран, хоть, прости Госпади, сисярп.
Без обид и троллинга. Алсо, я не тот анон с которым ты/вы начинали полемику.
>я не тот анон с которым ты/вы начинали полемику
Подтверждаю. Я вбросил и затаился.
Мимо-тот-анон
У меня одногруппник на питоне обсчитывал поля для научной деятельности. Не для курсовой или диплома, а для реальных расчетов для лабы. Он сейчас вполне себе российский ученый, выступающий на международных конференциях и мелькающий в репортажах о достижениях российской науки. Для любых вычислений на питонах можно применять scipy, numpy, matplotlib и еще что-нибудь подобное.
Вся надежда на вас.
У тебя пара незначительных ошибок, дай поправлю:
Матлаб - кривописанное говно, к которому очень даже применимы шутки о жабе, уровня "85гб памяти хватило на хелловорлд и он почти не тормозит", а ответы на сложные вопросы часто заканчиваются пресловутыми "идите нахуй, у вас лицензия закончилась 4 секунды назад" и "для вашей задачи вам надо купить oche_bolshaya_dilda_toolbox".
Питон - скриптовый язык созданный экспертом в области ит, с учетом достоинств и недостатков языков своего времени.
> Матлаб - для матричных вычислений.
> Питон с numpy - для матричных вычислений.
> Может я конечно чего-то о питоне сильно не знаю. Первый раз сталкиваюсь с тем, что его кто-то для научных/математических расчетов использует
С подключением. У яндексов-гуглов, да разных сайтов-агрегаторов научных статей спросишь, где вычисления на питоне.
> Без обид и троллинга
> созданный первокурсниками линуксоидами не знающими что есть lua perl m4 и сотня других решений на все случаи жизни.
Ты это серьезно? В любом случае, я уже написал ту хуйню выше, а удалять жалко.
Ебашишь БПФ и смотришь, какие частоты он выдает.
>>196324
>мощнейшая система матричных вычислений
Мощнейшая и неповоротливая.
>Как на питоне посчитать обратную матрицу? А обратную матрицу от вырожденной матрицы?
Так же как и на матлабе - используя уже написанные другими людьми функции для расчета.
>А построением графиков?
ГНУплот не завезли, да?
>не знающими что есть lua perl m4
>perl
Все с тобой понятно. Не заходи в этот тред, пожалуйста. А еще лучше - вообще не заходи в интернет.
>Так же как и на матлабе - используя уже написанные другими людьми функции для расчета.
А хули бы тогда джаву не использвать? Там тоже все для матана есть в либах. Почему питон? Почему питон, я тебя спрашиваю?
Потому что неосилит. Все это скриптоговно и жава с сисярпом спецом создается для ограниченных, которые не могут в нормальные языки, впроде C, Фортрана или Эрланга. Это не тралинг, я просто вещи своими именами называю. Программист взял кусок памяти у ОС, но написал такой заебательский алгортим, что сам не может понять, когда память можно вернуть а когда нет. Не проблема, на тебе GC. Не можешь осилить синтаксис - на тебе синтаксис проще некуда. Не можешь в строгую типизацию - не переживай, дружище, мы сами во всем разберемся во время компиляции байт-кода. В итоге плодится куча вот таких вот скриптокодеров, каждый из которых со своим охуительно важным экспертным мнением.
Потому что неосилит. Все это макроговно и си с фортраном спецом создается для ограниченных, которые не могут в нормальные языки, впроде ассемблера или 16-ичного кода. Это не тралинг, я просто вещи своими именами называю. Программист взял кусок памяти у ОС, но написал такой заебательский алгортим, что сам не может понять, заполнен стек или нет. Не проблема, на тебе КОМПИЛЯТОР. Не можешь осилить синтаксис - на тебе синтаксис проще некуда. Не можешь в регистры - не переживай, дружище, мы сами во всем разберемся во время компиляции. В итоге плодится куча вот таких вот макрокодеров, каждый из которых со своим охуительно важным экспертным мнением.
Ты на втором курсе учишься или на третьем?
Ты можешь конечно писать и на машинно-ориентированном языке. Но глупо отрицать, что С - единственная удачная реализация высокоуровневого языка по возможностям и скорости исполнения максимально близкого к машинно-ориентированному ассемблеру.
Я закончил магистратуру и аспирантуру и уже 15 лет работаю в области телекома. Почему спрашиваешь?
>Потому что неосилит
Удваиваю.
Хотя ты и перегибаешь палку.
>>196351
>Матлаб - кривописанное говно
Поэтому его во всяких цернах используют.
Алсо, ты сейчас просто "обосрал" технологию, без какого либо конструктива.
>Питон - скриптовый язык созданный экспертом в области ит
Ну, я этому создателю под платьем не щупал, эксперт он там или кто еще. И его личность вообще не имеет никакого отношения к теме.
>Питон - скриптовый язык
Все.
> Питон с numpy - для матричных вычислений.
Каковы причины использовать Питон с numpy вместо десятков аналогичных, и более много лучших(не скриптовых) связок?
Какое это вообще имеет отношение к системам вроде матлаба?
С тем же успехом можно какой нибудь питон+хмл сравнивать с MySQL например.
Это бред.
>>196370
>ГНУплот не завезли, да?
>ГНУ
Надеюсь не завезут никогда. )))
>Все с тобой понятно. Не заходи в этот тред, пожалуйста. А еще лучше - вообще не заходи в интернет.
Как ти меня проффисионально опустиль. У миня типерь батхид а ти такой умний и проффесиональний.
>>196388
>Спасибо, господа!
За что ты их благодаришь, если не секрет?
>Потому что неосилит
Удваиваю.
Хотя ты и перегибаешь палку.
>>196351
>Матлаб - кривописанное говно
Поэтому его во всяких цернах используют.
Алсо, ты сейчас просто "обосрал" технологию, без какого либо конструктива.
>Питон - скриптовый язык созданный экспертом в области ит
Ну, я этому создателю под платьем не щупал, эксперт он там или кто еще. И его личность вообще не имеет никакого отношения к теме.
>Питон - скриптовый язык
Все.
> Питон с numpy - для матричных вычислений.
Каковы причины использовать Питон с numpy вместо десятков аналогичных, и более много лучших(не скриптовых) связок?
Какое это вообще имеет отношение к системам вроде матлаба?
С тем же успехом можно какой нибудь питон+хмл сравнивать с MySQL например.
Это бред.
>>196370
>ГНУплот не завезли, да?
>ГНУ
Надеюсь не завезут никогда. )))
>Все с тобой понятно. Не заходи в этот тред, пожалуйста. А еще лучше - вообще не заходи в интернет.
Как ти меня проффисионально опустиль. У миня типерь батхид а ти такой умний и проффесиональний.
>>196388
>Спасибо, господа!
За что ты их благодаришь, если не секрет?
>А хули бы тогда джаву не использвать? Там тоже все для матана есть в либах. Почему питон? Почему питон, я тебя спрашиваю?
Я писал выше.
Потому, что они ничего кроме питона не знают и не понимают. И может быть неспособны изучить в принципе.
И в этом в общем-то нет ничего плохого. Если только не выдавать свою темность и глупость за офигенные достоинства. Мол это все вокруг в дерьме роются, а я один весь в белом на питоне кодю1111
Это уже клиника.
А питон получил распространение просто в виду "энтузиазму" "комьюнити". Мол модно молодежно ГНУ все дела вот я ношу бабушкины очки ем маффены и пишу на питоне, сидя в старбаксе само собой.
Фуфел смотрит на это все, и думает - "вау, питон, надо его попробовать".
>нормальные языки, впроде C
>C
>Нормальный язык
>#ifndef MOYA_BIBLIOTEKA
>#define MOYA_BIBLIOTEKA
>...
>#endif
Прекрати. Моя жопа не выдержит такого пожара.
>Потому, что они ничего кроме питона не знают и не понимают.
Кто - они, блять? К кому ты обращаешься? Ты здесь один сидишь.
>Кто - они, блять?
Люди использующие питон для -вставить нужное-
>К кому ты обращаешься?
К анону на чей пост я отвечаю.
>Ты здесь один сидишь
Ну минимум ты еще тут есть. Если не ты насеменил большую часть постов выше, то есть еще кто-то кому я отвечаю.
>>196419
>#define TRUE FALSE
>Прекрати. Моя жопа не выдержит такого пожара.
Cи - это продвинутый ассемблер. Собственно высокоуровневым его и не назовешь особо.
От чего тебе полыхает непонятно, понятно же что анон выше шутит.
>>196420
Это понятно.
Было бы странно, если бы кто-то использовал что-то что ему неудобно.
Мы же тут как бы объективную сторону вопроса обсуждаем. Предполагающую, что сам факт владения питоном не является достаточным основанием для утверждения его удобства и/или превосходства над чем либо.
>основанием для утверждения его удобства и/или превосходства над чем либо
Альтернативы предложи. На чем мне можно по-быстрому набросать различные вычисления и подвести по ним статистику? Есть аноны, которые предложили питон, есть аноны, которые ебошат в матлабе и почему-то агрятся на питонщиков. Читаю вас и не понимаю. Вы хоть когда бочку катите, альтернативу предлагайте.
>Хотя ты и перегибаешь палку.
Есть немного, каюсь.
>>196419
Ок, ниосилил, молодец. Твои проблемы, продолжай писать на питоне.
>>196422
>Cи - это продвинутый ассемблер. Собственно высокоуровневым его и не назовешь особо.
В этом вся макотка, можно делать и низкоуровневые и высокоуровневые решения, и комбинировать их.
>На чем мне можно по-быстрому набросать различные вычисления и подвести по ним статистику?
Каким инструментом владеешь, тот и используй. Главное не начинай кукарекать в духе
>типизация данных нужна для начинающих программистов.
> с си понятно, не для того он.
Говори честно, я не осилил СИ и строгую типизацию, поэтому использую питон, и мне норм.
Нахер тебе низкоуровневые вычисления для моделирования и отладки принципов? Я это еще в самом начале срача писал >>196118
>Естественно, питоновские скрипты не для чистовой реализации
А Си как язык сейчас действительно не оче. Я его еще использую на работе для мелких проектов и контроллеров. Но в остальном он все-таки устарел.
>Альтернативы предложи. На чем мне можно по-быстрому набросать различные вычисления и подвести по ним статистику? Есть аноны, которые предложили питон, есть аноны, которые ебошат в матлабе и почему-то агрятся на питонщиков. Читаю вас и не понимаю. Вы хоть когда бочку катите, альтернативу предлагайте.
Альтернатива - ЛЮБОЙ язык программирования.
Что за глупые вопросы. Питон это дно, ВСЕ ЧТО УГОДНО лучше питона.
О чем блин тебе и толкуют.
Загугли - "языки программирования", википедию почитай.
>аноны, которые ебошат в матлабе и почему-то агрятся на питонщиков
Лол. У тебя странное восприятие действительности.
>Есть аноны, которые предложили питон
Вроде никто ничего не предлагал. Или я что-то пропустил?
>На чем мне можно по-быстрому набросать различные вычисления и подвести по ним статистику?
Какие это различные?
Если вычисления матричные, и тебе неважна лицензионность софта, или у тебя есть много денег - пользуй матлаб.
В противном случае ищи спецсофт.
Если спец софта нет, смотри в сторону ЯП общего назначения.
Заморачиваться с памятью и низкоуровневостью тебе точно ненужно, так что всякие Си С++ отпадают. Хотя если у тебя сложные вычисления то можешь наоборот заморочиться.
Классический фортран бывает хорошим выбором.
Мне приглянулся C# например в виду богатейшей встроенной библиотеки и документации, которая снимает кучу проблем. При этом можно и числодробилки писать. И есть широкие возможности процедурного программирования, что оценят разного рода мат саентисты.
Тебе явно ненужен perl lua javascrip или питон, они не для того существуют.
Лисп Пролог Хаскель - тебе то-же скорее всего ненужны.
У тебя чё, нестрогая типизация девушку увела?
>perl lua javascrip или питон
Тебе про numpy уже несколько раз написали, но до тебя так и не доходит.
450x360
>В этом вся макотка, можно делать и низкоуровневые и высокоуровневые решения, и комбинировать их.
Да.
Но для мат моделирования на коленке он совсем мимо.
>>196432
>Каким инструментом владеешь, тот и используй. Главное не начинай кукарекать в духе
>>типизация данных нужна для начинающих программистов.
>> с си понятно, не для того он.
>Говори честно, я не осилил СИ и строгую типизацию, поэтому использую питон, и мне норм.
Люто удваиваю.
>>196435
>А Си как язык сейчас действительно не оче. Я его еще использую на работе для мелких проектов и контроллеров. Но в остальном он все-таки устарел.
Воу воу парень полегче.
И на чем же сейчас пишут ведра ОС и прочее системное погромирование? А сотни миллионов программ для микроконтроллеров?
Я не в курсе если честно, может появилась более современная альтернатива?
>Аргументы уровня /b/.
Это не аргументы.
Я никому ничего не доказываю и спора не веду.
Это мое мнение.
>>196439
>Тебе про numpy уже несколько раз написали, но до тебя так и не доходит.
Что не доходит?
Что мне про нумпи написали?
От того, что есть нумпи для питона, или что-то аналогичное для луа или жаваскрипта - не делает их подходящими яп для мат вычислений, и вообще, не делает из них универсальных ЯП, и не делает их оче хорошими много лучше всего остального.
Скриптовый язык это скриптовый язык. Хоть что ты с ним делай.
То есть ты на питон гонишь только потому что он скриптовый? Пролистай тред вверх и прочитай >>195959 >>195978
Я тот анон, который первым упомянул про питон. Потом прибежали неучи с раскаленными сраками, которые про этот язык только от веб-макак и игродебилов слышали. Так еще и у них фиксация по поводу уровней абстракции: все что выше си - тормозящее говно.
Я, блядь, просто написал, что numpy удобен для быстрой прикидки принципов работы алгоритмов ЦОС и оценки их эффективности А вы, блядь, своими сраками половину ЦОС-треда подожгли. Так еще и аргументы у вас, как у даунов. Идите нахуй!
>Нахер тебе низкоуровневые вычисления для моделирования и отладки принципов? Я это еще в самом начале срача писал
А ты только модельки и отладки принципов делаешь? На этом все завершается, реализация не нужна?
А я про реализацию ничего и не говорил, жопочтец. Я реализую все на VHDL (System Verilog срач объявляю открытым).
>То есть ты на питон гонишь только потому что он скриптовый?
Я не гоню ни на что.
>Пролистай тред вверх и прочитай
>Я тот анон
I don't care.
>этот язык только от веб-макак и игродебилов слышали
Целевое использование питона.
>Я, блядь, просто написал, что numpy удобен для быстрой прикидки принципов работы алгоритмов ЦОС и оценки их эффективности
Наверное удобен. Но учить ради этого питон не стоит. Если ты его уже знаешь - другое дело.
>Так еще и аргументы у вас, как у даунов. Идите нахуй!
А кто про типизацию и вот это все вот писал?
>А вы, блядь, своими сраками половину ЦОС-треда подожгли.
У тебя какие-то комлексы. Ты искаженно оцениваешь ситуацию.
>Я не гоню ни на что.
>Питон это дно, ВСЕ ЧТО УГОДНО лучше питона.
Ясненько))))))
>Целевое использование питона.
В твоих фантазиях.
>А кто про типизацию и вот это все вот писал?
То есть основной аргумент это отсутствующая типизация и менеджмент памяти? И это плохо по-твоему? Нужно все ручками делать, я не пойму?
Да я хуй знаю, что ты писал, а что нет.
>VHDL (System Verilog срач объявляю открытым).
По мне так вообще не принципиально, но мне ближе Verilog, так как он чуть более близок к СИ.
>То есть основной аргумент это отсутствующая типизация и менеджмент памяти? И это плохо по-твоему?
Один из множества аргументов. Да и вообще, я уже говорил выше, пиши на питоне если он решает твои задачи, но не обманывай себя и других, просто честно признайся "не могу в типизацию и самостоятельный менеджмент памяти, поэтому пишу на питоне".
>просто честно признайся "не могу в типизацию и самостоятельный менеджмент памяти, поэтому пишу на питоне"
Не пытайся больше ванговать. Я как минимум 2 года прогал на си в международной компании. Да и сейчас у меня работа над проектом на Си идет.
>То есть основной аргумент это отсутствующая типизация и менеджмент памяти? И это плохо по-твоему? Нужно все ручками делать, я не пойму?
Менеджер памяти - хорошо.
Отсутствие типазации - плохо.
Питон - это просто вырвигалзное говно. Взяли все худшие практики и получился синтаксис питона.
Ничего хуже придумать было нельзя. Си с его дефайнами и прочим <-~%>>-(\{-%+}) отдыхает.
>Нжно писать как бох и тогда нинужна типизация 111
Я тебя понял уже очень давно.
Это очень непрофессиональная точка зрения.
Которая похоже у тебя же самого существует только для того, чтобы тешить ЧСВ.
Ты блох, и тебе нинужен нормальный синтаксис и типизация. Я понял. Он понял, и вот он понял, все поняли.
Дело в том, что другие вокруг тебя, обычные люди, которые иногда даже ошибаются, им типизация нужна.
И твой опыт к человеческой реальности неприменим.
Пшел нахуй, щенок! Кукарекать о скриптоговне и лишних уровнях абстракции ты сможешь, когда на асме писать начнешь, а пока становись в один ряд со скриптоблядьми и принимай лучи мочи в лицо, ограниченная сиблядь-фортранодаун.
>>196417
> Поэтому его во всяких цернах используют.
И? Пистон еще чаще используют. А еще церны используют матлаб из-за йоба-лицензий, по которым им все эти средства достаются за нихуя и упоминание в цитируемых статьях, такой-то пиар зажравшимся матвоксам. На деле же, кластер, у которого, хотя бы на некоторых нодах, стоит, хотя бы, ядро матлаба - та еще задачка, не только в россии, а пистон с нампаями/скайпаями почти везде есть - та-дам!
> Алсо, ты сейчас просто "обосрал" технологию, без какого либо конструктива.
Лишь максимально показательно сделал ровно то же, что и ты, со своим "не знаю, но осуждаю".
Скажи честно, ты случаем не в матвоксах работаешь, каким-нибудь менеджером-продвиженцем? Уж больно фанатично выглядишь.
Завезите в тред еще йобнутых пеарщиков каки-нибудь NI, для пущей абсурдности происходящего!
Эй, бомбанейло, почему ты так бомбанейло? Себя узнал? А ассемблер я учил еще по книженции с пика, в те теплые ламповые времена отсутствия этих ваших интернетов, да и вообще отсутствия практически всего, мне она досталась совершенно случайно, чему я был несказанно рад, не смотря на большое количество опечаток.
>А ассемблер я учил еще по книженции с пика, в те теплые ламповые времена отсутствия этих ваших интернетов
Усатый Кузьмич в треде, все в кинескоп!
>теплые ламповые времена отсутствия этих ваших интернетов,
Вот ты и спалился, школяр. Уёбывай.
Это у тебя на луркосленг детектор настроен? Если да, то выбрасывай его.
>Дети интернета
Ну, детство я провел без интернета.
>все у вас бомбит
Только ты.
>А еще попробуйте читать больше первого предложения/абзаца
Читал все, не знаю зачем. И не понимаю к чему ты это.
>опять же, скучно
Я прекрасно понял, что тебе не бомбит.
Тебе
н е б о м б и т
е
б
о
и
б
и
т
Лучше посоветуйте легкий инструмент где можно производить расчеты и строить нескучные графики.
Сейчас я использую эксель с его вба и возможностью быстро построить графики, но это пиздец как медленно и мучительно больно. Матлаб на хуй у меня комплюктер слабый.
>Лучше посоветуйте легкий инструмент где можно производить расчеты и строить нескучные графики.
Матлаб.
>Матлаб на хуй у меня комплюктер слабый.
Не понимаю как это связанно.
Матлаб не требует кластера-суперсервера для своей работы.
8мой должен нормально работать на всем на чем WinXP заводится.
Если вдруг у тебя железо слабее, то ставь 7мую версию, или 6тую.
>легкий инструмент где можно производить расчеты и строить нескучные графики
>Матлаб на хуй у меня комплюктер слабый
Python + Numpy + Scipy + Matplotlib
)))))))) Двачую
> Python + Numpy + Scipy + Matplotlib
Это типа траллинг и эта связка жрет ресурсов не меньше чем матлаб?
Траллинг только в том, что сейчас набегут продаваны из Mathworks. В остальном все нормально, если к питону нет аллергии. Я бы выложил нескучные движущиеся 3D графики на матплотлибе, но я так в гифки их и не перевел.
> Лучше посоветуйте легкий инструмент где можно производить расчеты и строить нескучные графики.
Фортран (производит расчёты) и гнуплот (строит графики).
тут следует добавить, только при правильном использовании эта связка работает заябись, т.к. numpy охунный конструктор написаный на С
тупой похапе стайл может убить всю эффективность
Ты какой-то упоротый.
> Ну, детство я провел без интернета.
Не отменяет того, что ты безголовое дитя интернета.
>Переход на личности.
>Безосновательные оскорбления.
>Хамство.
Воу воу парень, полегче. Не будь ты таким мудаком.
Ну чсвешный мудак парень, что поделать.
Я за беседой особо не слежу. Где там он, а где не он, не разбераю. На то форум и анонимный.
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
Охуенно, пердолинг начинается еще на моменте установки.
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
Охуенно, пердолинг начинается еще на моменте установки.
Тебе же синем по серому написано поставить компилятор, коли ты под виндами все это собираешь, то бери его сам на сайте мелкомягких.
тебе же пояснили мудак, что этот инструмент норм работает только при условии прямых рук, криворукий уёбок неполучит никакого профита от мегаинструметнов
Психологическая защита говнокодера как она есть.
НИЗНАЮ У МИНЯ НА МАЕЙ МАШИНЕ ВСЁ РАБОТАЕТ ВЫКИНЬ СВОЮ И КУПИ НОРМАЛЬНОЕ ЖИЛЕЗО КАК У МЕНЯ
> Психологическая защита говнокодера как она есть.
Прямо себя описал.
Это не машина виновата, а отсутствие необходимых для работы компонентов в системе. Ты бы еще пытался компилировать код про какой-нибудь МК, выпилив из системы компилятор, а потом вопя о том, что среда разработки говно и в ней ничего не работает. Просто привык к тому, что все тебя обхаживают и сами тянут зависимости, те же игори, не особо спрашивая пользователя, а еще совсем недавно говорили что-то вроде: "Не найден d3dx9.dll. Идите нахуй."
А какой-нибудь pyzo, где все готово, поставить не судьба?
> коли ты под виндами все это собираешь
Вот ни секунды не сомневался что синьер питонис - пердолик.
Я НЕ ХОЧУ ПИСАТЬ КОД Я ХОЧУ ОКОШЕЧКИ!
При чем тут пердолинг? Тебе совет по делу дали - пиздовать на сайт мелкомягких за компилятором, т.к. в твоем посте виндовые пути. Рака всего тебе, галлюцинирующий пердолефоб.
Попробуй MathCad, можешь взять версии постарше, если боишься, что не взлетит на твоем ПК.
Напоминает.
но ведь речь о местном сеньере питонисте который использует линукс.
Причем тут винда?
Наркоман?
Я - тот хуй, что да совет по установке скайпая. Какой питонист-линуксоид? Какой пердолик? Прими уже колеса, пока не скатился до шизофазии без заглавных букв и знаков препинания.
Нахрена вообще пистон под винду собирать?
Есть же все собранное. А есть еще и с модулями все вместе сложенное. Я вот выше порекомендовал Pyzo.
Ну заебись же. А тому, кто пердолиться начал, советую ставить матлаб. Это как раз для его уровня развития. Будет в симулинке квадратики передвигать.
854x480
>>195981
>Толк от матлаба будет только если ты хреново знаешь теорию и не можешь взять какие-нибудь интегралы.
Это пока твои numerics ограничены взятием интегралов. Уже на первой convex optimization ты люто насосёшься несвежих хуйцов. Матлаб силён не средой и не синтаксисом, а тем, что под него есть реализации огромного количества численных методов, причём оптимизированных и обложенных костылями для улучшенной сходимости в разных специальных случаях. Какая-нибудь численная хрень может писаться целыми компаниями или кафедрами годы (причём только лишь под матлаб), а ты предлагаешь их по-быстрому на питоне накидать. Я сейчас прохожу божественный курс Underactuated Robotics, и мужик, который его ведёт и который сотрудничает с Boston Dynamics, рассказывает, что внутри робота Atlas стоит пека, на которой крутится Matlab, и она обсчитывает все его действия. А причина одна — нужно много очень сложных оптимизированных вычислений, в детали которых ты даже не станешь вникать, потому что те, кто спецом в них вникал, вникли намного лучше, но потратили по полжизни.
Ты бесконечно прав, только вот на том, этапе, когда человек задает вопрос, что ему использовать для обучения какой-то теории, матлаб точно не пригодится. Естественно, когда дело дойдет до серьезных вещей аля "у нас огромная система и в ней есть жрущий сложный алгоритм, о работе которого мы практически ничего не представляем", то тогда и надо искать среды, в которых этот алгоритм реализован. Но на таких этапах, грубо говоря, покупается не сам матлаб (хотя не без этого), а именно алгоритм.
>Ты бесконечно прав
Принятие, наконец то.
>только вот
Сеньер питонис. Хватит уже извиваться как подстреленный червяк.
Вы пишите уже откровенную чушь.
>тот этап
>когда человек задает вопрос
>ну точно уже не пригодится
>а именно алгоритм
Пригодится.
Вы же кстати выше писали что
>матлаб никто серьезно не использует 11 это всиё маркетинг нету комунити а вот в питоне либы и решение всего и вся11.
А теперь, после многократного мокания вас мордой в собственное дерьмо начали реверсировать:
>матлаб это очень серьезно а вот несерьезно его никто не использует и оно нинужно
Спешу макнуть вас в собственное дерьмо еще раз.
Если в матлабе есть реализация
>жрущего сложного алгоритма
То кто-то, матлаб использует, не для использования уже написанного сложного жрущего алгоритма, а для написания/разработки/отладки оного.
Жизнь это боль если ты питонист, смирись с этим.
Это ты о "да совет"? Так очевидно же, что там "л" потерялась. В остальном все очень даже по делу написано.
У тебя прямо фиксация на фекалиях. Тебя матвоксы насиловали в извращенной форме?
> матлаб никто серьезно не использует 11
> нету комунити
Это твои фантазии, говнолюб.
> это всиё маркетинг
Да, это так.
Проиграл.
нит
хотя давай
Ты что-то сказать хотел? Нахуй мне что-то считать? Ты нормально отвечать разучился, мудило пафосное?
> нафига сигнал портить
Ну почему портить. Преобразование Фурье вычислял от блока данных помноженный на оконную функцию, вроде так и делают. Со спектром необходимо произвести манипуляции и вычислить обратное преобразование Фурье. Может домножить на функцию обратную оконной?
У тебя часть отсчётов обнуляется, часть почти обнуляется, ты из них только мусор получишь. Нафиг тебе окно, оно для анализа используется, а не для манипуляций с сигналом. Без него попробуй.
Ну в умных книжках пишут, что оконная функция нужна без неё херня получится.
Как считать Фурье с перекрытием блоков? К примеру беру 1024 отсчета, множу на окно вычисляю Фурье. Шаманю с спектром, вычисляю обратное Фурье, результат кладу в выходной файлик. Дальше беру 512 из первого блока и 512 следующих отсчета, повторяю шаманство. В результате в выходном файлике сигнал сжат по времени.
Где я обосрался?
Херня получится, если тебе надо на спектральную картинку смотреть. А если обрабатывать, то всё нормально. Почитай ещё раз назначение оконных функций.
Анон, не гони ссаными тряпками. Суть преобразований понимаю прекрасно, но вот с математикой проблемы.
Где я обосрался?
Код:
sampling_frequency = 32;
period = 2 pi;
x = 0 : 1 / sampling_frequency : 1;
f = cos(period x);
F = fft(f);
c = -sampling_frequency / 2 : 1 : sampling_frequency / 2;
subplot(5,1,1), plot(x, f), title('Signal');
subplot(5,1,2), stem(c, fftshift(abs(F))), title('Magnitude');
subplot(5,1,3), stem(c, angle(F)), title('Phase');
>period = 2 умножить_на pi;
>f = cos(period умножить_на x);
Макаба съела знаки умножения удивительно, но уже столько времени сижу здесь, но не знаю как правильно вставлять в сообщение знак умножения
Украл - на заводе в РМЦ работаю.
согласен
Может где-то есть, не знаю, прям подробно описанный, понятный образец для дебилов?
В тырнете только вычурные формулы и мешанина.
Или есть способ ещё проще?
Посмотрел на ДПФ - ещё больше в ахуе, чем от Герцеля. Без пояснений нихуя не понятно.
Читать надо Шэнона. А вообще тема благодатная.
>В тырнете только вычурные формулы и мешанина.
Оче хуево искал http://www.embedded.com/design/configurable-systems/4024443/The-Goertzel-Algorithm
>Посмотрел на ДПФ - ещё больше в ахуе, чем от Герцеля. Без пояснений нихуя не понятно.
Преобразование фурье интуитивно намного легче понять, так что признайся - ты даже не пытался разобраться.
>>216459
А из онлайн-курсов обязательно смотреть лекции Оппенгейма на opencourseware.
Нашел годную статью, где чувак хуячит цифровые фильтры в Микрокапе, пользуясь фичей ZVofV - z-преобразование напряжения. Тут он показывает как можно анализировать эффекты квантования, частотные характеристики, сигналы в различных точках фильтра. Вообще мощная штука же, можно составлять схему из блоков фильтров, использовать цифровые фильтры в цепях обратной связи, оптимизировать перебором параметров и т. д.
Блять, естественно, не пойду. Вангую, что там сборище старых пердунов будут пояснять, как они в прошлом веке Буран запускали с толкача.
И хули в этой программе? От того что там написаны всякие йоба темы, это не делает ее менее унылой.
Ну да. Про мемасики там не рассказывают.
Аналоговый сигнал тоже дескретен, ведь есть всякие длины и времена Планка?
Я тоже зашел. Даже программу посмотрел. Бляя.... Это пиздец конечно. Стыдно
> д.т.н., профессор Дворкович В.П. д.т.н., профессор Дворкович А.В.
> член-корр. РАН Зубарев Ю.Б., д.т.н., проф. Золотарёв В.В., д.т.н., проф. Овечкин Г.В., к.т.н., доц. Овечкин П.В.
Сука, целыми семьями на бюджетном бабле сидят
>>222452
> написаны всякие йоба темы
На самом деле это просто йоба названия, а внутри обычно какая-нибудь хрень уровня 2-го курса MIT или лекций на курсере. Вообще, мне довелось наблюдать, как пишутся такие доклады. Там выбирается какая-нибудь заурядная тема и раздувается так, чтобы внешне это выглядело как будто ниибаца какая передовая тема. И часто, не имеющая полезного воплощения в жизни.
Пробегусь по рандом темам
>Дискретно-частотное преобразование Фурье и его приложения Проф. Пономарев В.А., доц. Пономарева О.В., к.э.н. Пономарев А.В.
Охуеть вообще
Пробегусь по рандом темам
>Дискретно-частотное преобразование Фурье и его приложения Проф. Пономарев В.А., доц. Пономарева О.В., к.э.н. Пономарев А.В.
И да, кстати, приглядимся к фамилиям. Писался целым выводком грантососов
>Размерное по времени и частоте преобразование Фурье
>Алгоритм спектрального анализа сигналов на основе дискретного вейвлет-преобразования
Основы основ
>Оценка полосы пропускания каналов связи IP-сети в задаче построения системы видеоконференцсвязи
Нихуя, наука
>Цифровая сверхширокополосная радиолиния для связи между роботами, работающими в самоорганизующейся группе
Как звучит-то! А что уже роботы есть?
>Вычисление цифровой оценки спектральной плотности мощности на основе фурье-преобразования взвешенной временной последовательности результата знакового аналого-стохастического квантования случайного
процесса
Смотрю, Фурье-преобразование - жаркая тема. Как будто недавно только открыли
>Метод измерения частоты сигналов на базе параметрического дискретного преобразования Фурьеасп. Пономарева Н.В., асп. Пономарева В.Ю.
Опять семейное дело...
>Учись искать положительное из тонн говен.
То есть ты согласен, что конференция, которую тут вбросили, суть - тонна говна?
Как и любая конференция. Так что ничего особенного.
Запилю-ка я отчетик по dspa. Пошел на последний день. На секцию по аппаратным средствам. Пришли не все докладчики. Сразу скажу, что крайне годным оказался доклад, от которого я этого не ожидал: "Бортовые регенеративные системы летательных аппаратов". Вышел суровый мужик и по-хардкору рассказал про архитектуры отказоустойчивых систем. Потом в конце на этого докладчика взъелся какой-то полоумный дед, который начал затирать, что это все фигня, потому что докладчик цифр не привел. Но все согласились, что у деда кукушечка еще с зимовки не вернулась.
Еще интересным был доклад про dds синусоид с помощью функций Уолша. Даже Солонина отметила(да, она там была среди слушателей), что автор харашо зделол. Остальные доклады были проходными. Некоторые норм, но очень узкоспециализированные (про резервирование памяти в процессорах парень уж очень нудно рассказывал про то, как у него там полуслова располагаются).
Разочаровался в докладе про применение плис в качестве сопроцессора. Думал, сейчас расскажут про гигабиты данных, про то, как уделывают CUDA, ибо у самого такой проект был в списке. Но вышел парень и сказал, что он не знает верилога и вообще лошара. Но скорость отклика надо было сокращать, поэтому он взял zynq залил зачем-то туда еще софт ядро и написал алгоритм на си, который перевел в железо с помощью модного вивалдо. И у него все получилось. Потом его научрук нахваливал неистово, что заебись все вышло, что прямо уровень кандидатской. Как-то грустно стало. В их шараге(балтийский государственный), видно, уровень кандидатских в разы ниже.
По поводу здешних борющихся с распилами и прочей ересью. Немного расскажу про науку в РФ и про преподов. Суть токова. Хочешь выжить, борись за гранты. 80 процентов твоего времени будет составлять составление отчетов. Остальное будет наукой. Но нахуй так жить. Но на этой секции таких практически не было. Людям для получения степени, даже бакалаврской, нужно выступить на определенном количестве конференций. Что они и делают. В целом их полезно послушать, чтобы осознавать свой уровень. Про однофамильцев или родственников собсвенно похуй. В вузе зарплата зависит от количества публикаций хоть где, вот все друг друга и вписывают. Это же работает и в больших компаниях. Когда я в самсунге работал, я провел большой рисерч, а в докладе со мной было человек 10, включая всех начальников и тех, кто мне пару раз помогал со смежными вопросами. А вы как дети какие-то. Так искренне всему этому удивляетесь, что мне как-то даже смешно стало от вас.
Запилю-ка я отчетик по dspa. Пошел на последний день. На секцию по аппаратным средствам. Пришли не все докладчики. Сразу скажу, что крайне годным оказался доклад, от которого я этого не ожидал: "Бортовые регенеративные системы летательных аппаратов". Вышел суровый мужик и по-хардкору рассказал про архитектуры отказоустойчивых систем. Потом в конце на этого докладчика взъелся какой-то полоумный дед, который начал затирать, что это все фигня, потому что докладчик цифр не привел. Но все согласились, что у деда кукушечка еще с зимовки не вернулась.
Еще интересным был доклад про dds синусоид с помощью функций Уолша. Даже Солонина отметила(да, она там была среди слушателей), что автор харашо зделол. Остальные доклады были проходными. Некоторые норм, но очень узкоспециализированные (про резервирование памяти в процессорах парень уж очень нудно рассказывал про то, как у него там полуслова располагаются).
Разочаровался в докладе про применение плис в качестве сопроцессора. Думал, сейчас расскажут про гигабиты данных, про то, как уделывают CUDA, ибо у самого такой проект был в списке. Но вышел парень и сказал, что он не знает верилога и вообще лошара. Но скорость отклика надо было сокращать, поэтому он взял zynq залил зачем-то туда еще софт ядро и написал алгоритм на си, который перевел в железо с помощью модного вивалдо. И у него все получилось. Потом его научрук нахваливал неистово, что заебись все вышло, что прямо уровень кандидатской. Как-то грустно стало. В их шараге(балтийский государственный), видно, уровень кандидатских в разы ниже.
По поводу здешних борющихся с распилами и прочей ересью. Немного расскажу про науку в РФ и про преподов. Суть токова. Хочешь выжить, борись за гранты. 80 процентов твоего времени будет составлять составление отчетов. Остальное будет наукой. Но нахуй так жить. Но на этой секции таких практически не было. Людям для получения степени, даже бакалаврской, нужно выступить на определенном количестве конференций. Что они и делают. В целом их полезно послушать, чтобы осознавать свой уровень. Про однофамильцев или родственников собсвенно похуй. В вузе зарплата зависит от количества публикаций хоть где, вот все друг друга и вписывают. Это же работает и в больших компаниях. Когда я в самсунге работал, я провел большой рисерч, а в докладе со мной было человек 10, включая всех начальников и тех, кто мне пару раз помогал со смежными вопросами. А вы как дети какие-то. Так искренне всему этому удивляетесь, что мне как-то даже смешно стало от вас.
> Еще интересным был доклад про dds синусоид с помощью функций Уолша. Даже Солонина отметила(да, она там была среди слушателей), что автор харашо зделол.
Первая ссылка в гугле
https://www.researchgate.net/publication/224337492_Sine-wave_synthesis_using_walsh_functions
> Date of Publication :February 1987
> 1987
Блять, это почти 30 ебаных лет назад! Что, неужели ничего нового не появилось?
> Немного расскажу про науку в РФ и про преподов. Суть токова. Хочешь выжить, борись за гранты. 10 процентов твоего времени будет составлять составление отчетов. Остальное будет прогулки по университету, пересказ анекдотов, непрерывеые чаепития и т. д.
Поправил тебя
> Людям для получения степени, даже бакалаврской, нужно выступить на определенном количестве конференций
> В вузе зарплата зависит от количества публикаций хоть где, вот все друг друга и вписывают
Охуенно эффективная организация. И ты хоть приукрашивай, пожалуйста, когда пересказываешь всю эту безысходность, пожалей анона, не жги ему пердак сильно
Блядь. Отвлекись от своего борцунства. Наука не может быть эффективной. Ни у кого и нигде. Можешь вспомнить процент успешных инновационных проектов в кремниевой долине для примера.
Дальше. Про Уолша. Сложи написанные мною ранее А и Б. Я сказал, что там и бакалавры участвуют. У тебя якобы что-то прорывное было на дипломе.
И про твои маняпоправки. Не путай НИИ с динозаврами, сидящими на окладе и которые забыли, как статьи писать, с нормальными лабами. Я знаю как минимум трех людей из разных лаб, которые активно осваивают гранты и въебывают они огого как. Ну и статьи у них в рецензируемых и международных журналах. Но тебе-то лучше знать. Тебе в /b/ и /po/ много рассказали про нашу науку, я вижу.
А ты сам в каком институте учился, если не секрет? В самсунге работал, который в Калужской области или где?
Физтех. В Калужской области только производство, если я правильно помню. У Самсунга RnD центр на савеловской. Этажа 4 занимает. В основном софтварщики. Вот там я и работал.
Во многих отделах там довольно обезьянья работа. Задачи тебе будут скидывать либо те, которые корейцам влом решать, либо которые они в принципе не представляют, как решать. Сами корейцы тоже довольно ебанутые и у них абсолютно другое мировоззрение и отношение к нженерам. От этого можно обезопаситься только хорошим начальником. Перспективы там никакие. Заслуги особо не учитывают. Есть квартальная оценка работы. По оценкам есть квота. В основном всем ставят среднюю оценку. Так и будешь продвигаться "по выслуге". Зарплата средняя по индустрии. Если не ниже среднего. В отделы, занимающиеся умными вещами(цос, машинное обучение, алгоритмы), обычно хрен попадешь. Туда в основном кандидатов наук берут. Однако, что парадоксально, бывает туда набор фрешменов без опыта. Я ебал их логику. Ну и переход между отделами воспринимается с истеричным визгом обоих начальников.
Из плюсов: штабильность, оплаченные обеды, хороший офис, всякие страховки(я когда решил увольняться пошел и вылечил все зубы), адекватные коллеги.
В одну из организаций минобороны. Занимаюсь там ЦОСом, но пока без железа. В принципе там неплохо.
Чего плохого в вопросе о зарплате? Надо же людям как-то сравнивать себя с другими, и понимать в какой ситуации они находятся — все хорошо или сидим в говне.
Ну так ты сравни себя с Биллом Гейтсом и сразу поймёшь, что у тебя "всё хорошо".
Ебать дебил.
а вот вообще если спрашивать у умудренных жизнью олфагов, советов на будущее. Я в этом году заканчиваю универ в Мухосранске на электронщика. Куда податься что бы нормально развиться в специалиста?
В твоем Мухосранске есть работа по твоей специальности? А в ближайшем миллионнике? А в ближайшей столице? Нет? Тогда остается только ДС/ДС-2.
Если relative magnitude выше, чем порог - то искомый сигнал есть.
Вопрос в том: какими вычислительными возможностями ты располагаешь и как определить порог.
>какими вычислительными возможностями ты располагаешь
CPU: 32 MHz ARM Cortex-M3
Flash: 32 kB
RAM: 4 kB
>как определить порог
И как его определить?
И тут до меня снизошло: ардуиноподобная ESP8266, при своей копеечной цене, по всем параметрам превосходит такие АРМы в разы.
Ну. Ты и мразь. Жидовская.
>>222645
А чего ты хотел? Для получения обоссаного бакалавра/специалиста/магистра/etc в любом говновузе нужно обязательно поучаствовать в нескольких конференциях, поэтому хорошие доклады, которые делались реальными специалистами, разбавляются говном, которое делается для галочки.
Олсо, подобная практика применяется и во всяких передовых банановых республиках типа Индии, Китая. Всегда проигрывал со статеек индусов, когда натыкался на оные.
мимобугуртящий магистр, отправивший пол часа назад унылое говно на очередную МЕЖДУНАРОДНУЮ КОНФЕРЕНЦИЮ
Порог подбирается экспериментально.
Для начала запрогай герцеля на ПК и погоняй с разными входными сигналами: с реальными и с синтезированными.
Кстати, выложи сюда образец сигнала.
Надо знать насколько часто тебе нужно анализировать массив оцифровки и какого он размера, от этого зависиткакогогерцеля делать: с фиксированной точкойили с плавающей.
>Надо знать насколько часто тебе нужно анализировать массив оцифровки и какого он размера
Если нижняя частота 5Гц, которую хотим контролировать, то надо 1/5 секунды, потому что 5Гц - это событие, повторяющееся 5 раз в секунду; частота сэмплирования всего 125Гц; семплов надо забрать 1 в 1/125 секунды.
Итого, надо прогнать 25 семплов на наличие трёх частот.
С записью сигнала не пойму как сделать лучше: чтобы записать сигнал через вход звуковой карты нудо слишком длинный провод до системника -> куча помех будет, да и звуковуху, если что случится, жалко.
Промежуточный вариант кода: http://pastebin.com/5TEuZZVg
А, да, я забыл очень важную вещь:
Сначала домножь весь оцифрованный сигнал на оконную функцию Хэмминга: вот здесь есть формула
https://ru.m.wikipedia.org/wiki/Оконное_преобразование_Фурье
Из-за того, что интервал на котором мы сигнал анализируем - конечный,то будет мусор в спектре и на выходе герцеля полная ерунда.
В плане кода, вот к чему нужно придти:
apply_hamm_window(signal, length);
Далее для всех частот, которые тебя интересуют вызываешь функцию и получаешь сразу же решение о том - есть или нет.
int detect(int thresh, int freq, float * signal, int length){
init_goertzel(sampling_frequency, freq);
float magnitude = goertzel(signal, length);
if(magnitude > thresh)
return 1;
return 0;
}
Естественно, пока это на ПК в консольной программе не начнет работать - смысла переносить на МК нет.
25 семплов это 1 период для 5Гц, 1.8 периодов для 8 и 2.3 периода для 14 Гц.
Не получится стабильно детектить 5 Гц, особенно на фоне шумов, надо больше периодов, а значит нужно больше отсчетов. Насколько больше можешь себе позволить?
Алсо, на вход АЦП поставь подтяжку к опоре АЦП и минусу резисторами. Сопротивление их выбери исходя из: выходное сопротивление источника * 10.
Постоянную составляющую на входе надо будет отсечь кондером на 10...100 мкф.
В плане низкоуровневого кода:
Для начала сделай так: любым способом набирай необходимое кол-во отсчетов, далее прекращай оцифровку и анализируй.
В начале анализа меняй состояние любой линии порта на противоположенное: далее измерив частоту поймешь, сколько по времени выполняется код.
Далее можно уже оптимизировать.
Помимо герцеля можноеще домножением на опорные сигналы детектить, только в этом случае надо будет один раз опорные сигналы домножить на окно хэмминга:
http://electronics-and-mechanics.azm.su/page57.html
У тебя оперативки мало - если хватит, то это самый очевидный и простой способ.
И да, на одном периоде хреново будет работать, бери 5-10 периодов искомого сигнала.
А вот герцель, вполне работающий.
Без окна, будет шум на его выходе.
http://we.easyelectronics.ru/samnetmon/testovaya-zapis-algoritm-gercelya.html
Хех, я как раз оттуда код содрал.
Это комбинация оптимизированного алгоритма Герцеля и окна Хэмминга?
>Не получится стабильно детектить 5 Гц, особенно на фоне шумов, надо больше периодов, а значит нужно больше отсчетов. Насколько больше можешь себе позволить?
Я пока не проверял, но можно попробовать прогнать все 125 семплов до начала следующей оцифровки сигнала.
бамп
Да ну не, ты что?! Не прибедняйся, для твоих запросов много знать и понимать не нужно. Скачай с торрентика, или возьми пробную лицуху, посмотри это https://www.youtube.com/watch?v=fcrhXFxCbD8&list=PLmu_y3-DV2_nKd7epECPEbTVamsmEmMMI, почитай это http://www.twirpx.com/file/7694/, и будет тебе счастье.
Хорош тебе, я обычный быдловыпускник из мухосранской шараги, работаю и пишу диплом в местном НИИ радиотехники, и чуток познакомился с этой кувалдой. Тут делов-то: вытянуть данные из записи и прогнать через fft().
Система проста. Быдловыпускники из мухосранских шараг подсаживаются на матлаб и потом только на нем и могут работать. Потом идут на работу и заявляют, что только на матлабе и могут думать. И тут уже работодателю приходится покупать матлабец. А хули делать?
Ну да. Почему? У нас куча преобразований. Мы домножаем на синусы и косинусы: ищем значения амплитуд и фаз. Схуяли у нас будет ГШ, а не хи-квадрат, например?
>домножаем на синусы и косинусы
Если рандомные числа умножать на синусы и косинусы, то что получится?
Я, пожалуй, подожду еще кого-нибудь. С тобой мы все равно не решим этот вопрос.
And we have a winner!
>Каким образом в цифре осуществляется сдвиг фазы?
А каким образом у тебя вообще генератор в цифре реализован?
>Задержкой тоже не вариант.
Это почему? Или цифровые фильтры перестали строиться на линиях задержки?
>В симулинке готовый блок умеет двигать фазу только у комплексного сигнала.
А тут в чем проблема?
Ты в матлабе делаешь или уже в железе?
Ну я просто в симулинке собрал vco по формуле почти - косинус от интеграла суммы управляющего сигнала и круговой частоты по умолчанию, а так слышал звон, но не знаю, где он - cordic. Этим я займусь, обязательно займусь, но потом.
В целом он работает, но при одинаковых параметрах петлевого фильтра библиотечный блок vco симулинка имеет время подстройки в пару раз меньше. Почему-то если собирать именно по формуле выходного сигнала vco, которая в справке по блоку приведена, у него на выходе постоянно 1.
>>240064
>Это почему?
Я не уверен, но ведь получится, что в какой-то начальный момент времени петля будет пытаться синхронизировать синус с нулем.
>А тут в чем проблема?
В том, что и мой, и встроенный vco умеют генерировать действительный синус.
Вообще, я сейчас поправил это дело, оказалось, что при возведении в степень комплексного сигнала мнимая часть как раз сдвинута на pi/2, только схема все равно не работает, лол, но это уже другая история.
Делаю пока в матлабе, а точнее, в симулинке, но пытаюсь как можно меньше использовать встроенных блоков, потому что не всегда понятно, как они работают, да и как по этим схемам потом реализовывать все в железе я точно не соображу.
>с опорного генератора синус тоже надо возвести в степень, отфильтровать и сдвинуть фазу на pi/2
Так тебе надо выделенную чистую синусоиду сдвинуть на pi/2? Элементарная задача же. Проинтегрируй, интегратор даёт чоткую фазовую задержку на pi/2.
>Каким образом в цифре осуществляется сдвиг фазы? В симулинке готовый блок умеет двигать фазу только у комплексного сигнала.
>Краем уха слышал про фильтр Гильберта
Это всё не для чистой синусоиды (т.е. несущей), а для квадратурного сигнала (т.е. комплексной огибающей). Имеют смысл только когда несущая у тебя уже есть, и ты уже с самим сигналом работаешь.
Я пробовал. Если просто суммировать, то в 13 раз больше амплитуда и по модулю минимальное значение меньше максимального. То есть, область значений не [-13; 13], а [-12; 13], что для меня странно. Если встроенный интегратор взять, то та же херня, только амплитуда наоборот меньше, причём раз в 300. Если производную взять, получается в 300 с лишним раз амплитуда больше, но зато по модулю максимальное и минимальное значение одинаковое. Правда, сдвиг фазы не pi/2, а 3pi/2 с небольшим.
Вообще, я не уверен, что всё делаю правильно, потому что в книге ппф стоит перед возведением в степень, больше фильтров нет. Но тогда при возведении в степень получается прыгающая туда-сюда хуита, которая по форме даже не синус. Я же вместо ппф с центром на несущей поставил ппф с центром на 4*Fc уже после возведения в степень. Так получается синус, но у него амплитуда дрожит немного.
>Если просто суммировать, то в 13 раз больше амплитуда
Потому что интеграл это не просто суммирование значений функции, а суммирование значений функции, умноженных на дельта тэ. Можешь руками подобрать коэффициент, чтобы на выходе была нужная амплитуда, и всё будет норм (по сути ты введёшь в формулу дельта тэ).
> по модулю минимальное значение меньше максимального. То есть, область значений не [-13; 13], а [-12; 13]
Если постоянная составляющая в момент старта пролезла в интегратор, она остаётся там навсегда. И тебе ещё повезло, что она там просто есть, а не постоянно растёт как было бы в случае, если бы на входе был бы синус с постоянной составляющей. Можешь выделять постоянную составляющую на выходе (скользящим средним) и подмешивать её с минусом на вход, только не жадничай, подмешивай по чуть-чуть, чтобы автоколебаний не возникло, и постоянка плавненько ушла до нуля. Длину скользящего среднего бери кратной периоду синуса.
>Но тогда при возведении в степень получается прыгающая туда-сюда хуита, которая по форме даже не синус.
По идее да, там сумма гармоник и постоянки.
http://100formul.ru/54
>Так получается синус, но у него амплитуда дрожит немного.
Она не дрожит, просто вряд ли максимумы функции постоянно с временными дискретами совпадают. Думаю, так и должно быть.
Да видел я эти модели. Некоторые блоки там вообще составлены по хуй знает какому принципу, некоторые отличаются лишь некоторыми деталями от того, что я видел в книгах. Может, автор и дохуя соображает, но я не автор, и мне хотелось бы разобраться, что как работает и откуда это взялось. Почему его модель собрана так, а не как в книге, я не понял, поэтому решил, что лучше с другой стороны зайти. К тому же как такового там переноса на несущую нет.
>>240130
>Потому что интеграл это не просто суммирование значений функции, а суммирование значений функции, умноженных на дельта тэ.
Это я вот под конец рабочего дня как раз и понял - встроенный интегратор по сути так и работает, но почему тогда у него амплитуда в 300 раз меньше? Да и область значений меня очень удивляет.
>Если постоянная составляющая в момент старта пролезла в интегратор, она остаётся там навсегда.
Но если на входе интегратора синус без постоянки, откуда она там возьмется?
А можешь про постоянку пояснить? Вот у меня петлевой фильтр в цепи ФАПЧа на выходе такую хуйню и показывает - какие-то колебания с небольшой амплитудой вокруг постоянки. Это даже при идеальной синхронизации. По идее, это должно быть на нуле. Если ввести фазовый сдвиг, то все эти шумы поднимаются резко и потом плавно опять спадают до нуля - система синхронизируется. А у меня получается так, что даже если ГУН другой системой подстраивается, выход петлевого фильтра так и остается на какой-то постоянке. С чем такое может быть связано? Петлевой фильтр по сути интегратор, выходит, что в какой-то момент времени (возможно, в тот, когда на входе фильтра появляется сигнал), в него пролазит постоянка?
>Можешь выделять постоянную составляющую на выходе (скользящим средним) и подмешивать её с минусом на вход
Надо попробовать, но в уравнении выходного сигнала VCO или в схема фапч я такого не видел еще ни разу.
>По идее да, там сумма гармоник и постоянки.
Да, расписал все на бумаге - там 1/8 от суммы удвоенной несущей и учетверенной. Причем, что интересно, из-за учетверения фазы на 4Fc получается вообще чистый синус, информационная составляющая только на 2Fc есть. Согласись, было бы очень логично с помощью ППФ этот синус выделить как из возведенного в степень модулированного сигнала, так и из возведенного сигнала с ГУНа, и у этих синусов уже искать разность фаз, перемножив, но почему-то в книге в схеме такого сделать не предлагают, предлагают именно эту сумму гармоник сравнивать, причем с ГУНа их надо сдвинуть на 90 градусов - тут-то у меня вопрос и возник, как это реализовать.
Алсо, можешь пояснить один момент с ФАПЧ? Вот есть два генератора, сигналы с них перемножаются, пропускаются через петлевой фильтр (ФНЧ по сути), и далее поступают на вход одного генератора. Почему-то всегда система сама делает так, что между этими генераторами разность фаз 90 градусов. Я не могу никак понять, почему, ведь при умножении любой комбинации синусов/косинусов один хер будет функция суммы аргументов и функция разности. То есть, получается, что никакой нахрен разницы нет, что будет на входах умножителя: два синуса, два косинуса или синус с косинусом. Почему тогда петля всегда дает разность фаз в 90 градусов?
>Она не дрожит, просто вряд ли максимумы функции постоянно с временными дискретами совпадают. Думаю, так и должно быть.
Я думал об этом, но потом решил, что такая же петрушка была бы с сигналом с ГУНа, но он-то ровненький и на осциллограмме лежит как влитой.
Да видел я эти модели. Некоторые блоки там вообще составлены по хуй знает какому принципу, некоторые отличаются лишь некоторыми деталями от того, что я видел в книгах. Может, автор и дохуя соображает, но я не автор, и мне хотелось бы разобраться, что как работает и откуда это взялось. Почему его модель собрана так, а не как в книге, я не понял, поэтому решил, что лучше с другой стороны зайти. К тому же как такового там переноса на несущую нет.
>>240130
>Потому что интеграл это не просто суммирование значений функции, а суммирование значений функции, умноженных на дельта тэ.
Это я вот под конец рабочего дня как раз и понял - встроенный интегратор по сути так и работает, но почему тогда у него амплитуда в 300 раз меньше? Да и область значений меня очень удивляет.
>Если постоянная составляющая в момент старта пролезла в интегратор, она остаётся там навсегда.
Но если на входе интегратора синус без постоянки, откуда она там возьмется?
А можешь про постоянку пояснить? Вот у меня петлевой фильтр в цепи ФАПЧа на выходе такую хуйню и показывает - какие-то колебания с небольшой амплитудой вокруг постоянки. Это даже при идеальной синхронизации. По идее, это должно быть на нуле. Если ввести фазовый сдвиг, то все эти шумы поднимаются резко и потом плавно опять спадают до нуля - система синхронизируется. А у меня получается так, что даже если ГУН другой системой подстраивается, выход петлевого фильтра так и остается на какой-то постоянке. С чем такое может быть связано? Петлевой фильтр по сути интегратор, выходит, что в какой-то момент времени (возможно, в тот, когда на входе фильтра появляется сигнал), в него пролазит постоянка?
>Можешь выделять постоянную составляющую на выходе (скользящим средним) и подмешивать её с минусом на вход
Надо попробовать, но в уравнении выходного сигнала VCO или в схема фапч я такого не видел еще ни разу.
>По идее да, там сумма гармоник и постоянки.
Да, расписал все на бумаге - там 1/8 от суммы удвоенной несущей и учетверенной. Причем, что интересно, из-за учетверения фазы на 4Fc получается вообще чистый синус, информационная составляющая только на 2Fc есть. Согласись, было бы очень логично с помощью ППФ этот синус выделить как из возведенного в степень модулированного сигнала, так и из возведенного сигнала с ГУНа, и у этих синусов уже искать разность фаз, перемножив, но почему-то в книге в схеме такого сделать не предлагают, предлагают именно эту сумму гармоник сравнивать, причем с ГУНа их надо сдвинуть на 90 градусов - тут-то у меня вопрос и возник, как это реализовать.
Алсо, можешь пояснить один момент с ФАПЧ? Вот есть два генератора, сигналы с них перемножаются, пропускаются через петлевой фильтр (ФНЧ по сути), и далее поступают на вход одного генератора. Почему-то всегда система сама делает так, что между этими генераторами разность фаз 90 градусов. Я не могу никак понять, почему, ведь при умножении любой комбинации синусов/косинусов один хер будет функция суммы аргументов и функция разности. То есть, получается, что никакой нахрен разницы нет, что будет на входах умножителя: два синуса, два косинуса или синус с косинусом. Почему тогда петля всегда дает разность фаз в 90 градусов?
>Она не дрожит, просто вряд ли максимумы функции постоянно с временными дискретами совпадают. Думаю, так и должно быть.
Я думал об этом, но потом решил, что такая же петрушка была бы с сигналом с ГУНа, но он-то ровненький и на осциллограмме лежит как влитой.
Бамп книгой Discrete-Time Signal Processing 3rd edition в хорошем качестве. Несколько месяцев искал ее, даже лазил по файлопомойкам в китайском интернете через vpn никогда бы не подумал, что у них столько всего интересного там.
inb4 нищеброд, книга не дешевая, хоть и стоит своих денег.
Лолд, только сейчас заметил, что позавчера её на рутрекер залили. Охуенно.
>ничего вразумительного ответить не могли
Потому что писён не нужен, а писать на писёне их просто кто-то уговорил.
сейчас использую самый простой алгоритм
1. замеряю 1000 раз
2. нахожу среднее арифметическое
в исходе помогает, но при увеличении значения помехи результат начинает болтаться, чего я хочу избежать
Или меряй чаще
Или реализуй фильтр посложнее
Скользящее среднее, паереодическое звено ну и на закуску IIR и FIR. В армоском СДК есть готовые функции
>Или меряй чаще
Скорей всего больше высокочастотных помех только вылезет. Фильтр обязательно нужен если известен спектр полезного сигнала.
Как восстановить обратно?
>Скорей всего больше высокочастотных помех только вылезет.
А они никуда и не деваются. Если мерять реже, то ВЧ-помехи просто алиасятся в область рабочих частот, что имхо хуже.
>>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 АЦП вроде едут, если китаец не наебал.
Я бы линию задержки загнал в SYNC_RAM, и использовал циклический счетчик - фактически кольцевой буффер. И коэффициенты тоже в SYNC_RAM. Как-то так.
Я когда с синтезатором маялся, компилятор сам запихал таблицу синуса в M9K, а тут с коэффициентами такого не происходит. Хз почему. В остальном устраивает.
Ну и по-хорошему, стоит использовать мегафункции квартуса, потому что они хорошо оптимизированы. Но FIR Compiler у меня не работает.
>>254901
>хули как не родной?
Да чёт сложна, сделал что первое в голову пришло.
Алсо, вот демонстрация:
https://www.youtube.com/watch?v=h6DIC5BfoPI
При зажатой кнопке сигнал пускается напрямую с АЦП на ЦАП, при отпущенной - через фильтр.
Пробую реализовать фильтр Гильберта, посчитав и подставив коэффициенты сюда: >>254800
Получаю такой результат:
https://www.youtube.com/watch?v=QtAiyMdjpM4
Частота идёт вниз от 20 кГц до 500 Гц, на входы X и Y даны сигналы до и после фильтра. Почему фаза так крутится? Вроде должна же быть окружность во всём диапазоне.
И да, таки сделал сигма-дельта ЦАП, хорошо работает.
Чому 7200 а не 6000? Частота дискретизации может же в два раза превышать максимальную частоту сигнала.
Я ебанат. Так и есть.
Вставил задержку в половину длины фильтра - работает:
https://www.youtube.com/watch?v=z45pXUd07pQ
Я додумался только увеличить частоту ШИМа и отфильтровать его фильтром первого порядка
По-моему, не совсем это правильно - повышать частоту ШИМ в силовой схеме, чтобы удобнее измерять было. Один силовой ключ, тянущий более высокие частоты, может обойтись по цене как десяток микроконтроллеров, в зависимости от мощности.
Измеряй скользящим средним, у него в характеристике есть нули (пикрел), и если взять длину скользящего среднего, кратную периоду ШИМ, то нули как раз будут давить частоту ШИМ.
Скользящее среднее делай не тупым суммированием всего, что в апертуру попадает на каждом шаге, а рекурсивно прибавляй то, что в апертуру въезжает, и вычитай то, что выезжает. Первое бери с АЦП, второе - с буфера задержки. Задержка должна быть равна длине скользящего среднего.
Спасибо, буду пробовать
Пошла жара:
https://www.youtube.com/watch?v=KLfSw4DxwZc
Для сравнения, нормальный голос:
https://www.youtube.com/watch?v=uhyInhWWvk4
У фильтра Гильберта хуёвый скат АЧХ, поэтому для устранения завала на НЧ и повышения подавления второй боковой полосы его частоту дискретизации пришлось опустить до 12 кГц, у остального же тракта она 48.8 кГц. В текущем виде подавление нижней боковой около 40 дБ получается.
Собираюсь делать КВ трансивер, и для норм характеристик надо будет накинуть порядок (который сейчас 50) и подобрать более пиздатое окно, а по всему тракту увеличить разрядность бит до 12.
Ну а так, работает!
Понимаю, но у нас лабы в матлабе по модулациям, тогда что по dsp и модуляции для цифровых?
Так я это находил почти в начале. Ну это же не заменит лабу по двойной АМ-ЧМ модуляции или по амплитудной манипуляции из коробки?
>А как потом обратно интерполируешь до 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 бит, то получаю то же самое.
Хуй знает, что делать. Приёмник цифровой хочу, аж трясёт, опять простыню накатал.
Сука, и все равно неправильно delay_line проиндексировано. Рано мне ещё на всеобщее обозрение из головы код хуячить. (((((((
Кароч
reg signed [width-1:0] delay_line [delay:0];
(...)
wire [width:0] nextC = delay_line[0] - delay_line[delay]; // обрати внимание на индексы
(...)
for (i=1; i <=delay; i=i+1) begin
>>255779
>>255783
Не разобрался с параметрами, внимания видимо не хватает, продолжил пердолить своё говно.
И таки допердолил. Дело было в присваиваниях. Увидел, что вместо нормальной импульсной характеристики на выходе хуйня.
Пикрелейтед 1 - рабочий вариант. 2, 3, 4 - импульсные характеристики для 1, 2 и 3 порядков соответственно, полученные последовательным соединением.
>>255858
Спасибо за советы, но тут мне видится проблема в окне для АКФ. Что если волна окажется разделена им? Да и само окно минимум 3 периода должно быть, надо будет как-то вставлять волны, которые не входят целиком в него. Попробую запилить, посмотрю на результат, но, думаю, будет не оче.
Синтезатор у меня простой, видит период - вставляет заданную волну с этим периодом. Плюс играть буду всегда одной струной, без аккордов. Пока прикрутил алгоритм, который после смены знака смотрит, если сигнал превысил половину максимальной амплитуды(само собой, задано через переменную), то засчитывает это как полупериод, вроде лучше звучит.
Очень, очень плохо. Просто чудовищно хуёво. Пиздец говно и блевотина. "=" внутри синхронного always это ад и зашквар. Зачем ты меня расстраиваешь?
Ты можешь писать как хочешь, но одно ты должен понимать пиздец как чётко: где у тебя комбинационная и где у тебя синхронная логика. Сейчас этого понять невозможно. По случайности твои проблемы ушли "по случайности" потому что ты и сам теперь не понимаешь, как устроена твоя схема, да и проблему вряд ли решил, просто у тебя сейчас чётное число ошибок, но если появятся другие проблемы, то проще будет застрелиться, чем найти причину. Сразу могу сказать, что на высоких частотах это работать не будет.
ЗАПОМНИ: внутри always @ (posedge clk) ТОЛЬКО "<=" aka синхронная логика, а комбинационная логика - ТОЛЬКО "=" внутри always @ (*) или assign.
Могу сказать, какая проблема у тебя была, и какую ты скомпенсировал чётной ошибкой. delay[0]-delay[63] это задержка на 63 такта, а не на 64. Сейчас ты делаешь блокирующее присваивание, потом сдвигаешь линию задержки, поэтому задержка получается 64, как положено. Но правильно было бы делать
delay[0] <= delay[1] + in; // здесь может быть переполнение
buffer <= delay[0] - delay[64]; // я тебе писал тут "обрати внимание на индексы"
И не обязательно делать out <= buffer[...], ты так вставляешь бессмысленную задержку на один такт. Можно
assign out = buffer[...];
Ну надо же, с первого раза сделал так, что работает. На выходных басист запишет пару примеров, вброшу сюда. Только вот окно нужно большое, на 48 килогерцах 3 периода по 50 герц занимают 2880 сэмплов.
>>255942
Само собой, но все равно придется много данных обрабатывать.
Дешевых DSP-плат для разработки нет, как я понимаю? Смотрю, цены от 150 баксов начинаются. Может, свою разведу да куда-нибудь выложу.
Мне кажется, тебе нужно что-то вроде http://www.aliexpress.com/item/Orange-Pi-PC-linux-and-android-mini-PC-Beyond-Raspberry-Pi-2/32448079125.html
Используешь mic in и line out, а мощи его для твоих задач (и для любых почти что аудио-задач) с избытком.
Что тебе нужно от платы получить?
Измерение частоты основной гармоники и отображение?
Какая максимальная частота входного сигнала?
Что ты такой добрый? Посмотрел начало треда - что-то никто не обоссал анона с микрофоном, хотя он ИХ фильтра нормально снять сначала не мог.
>>255931
Так и сделал. Но не понял, почему при задержке 63 на выходе какой-то шумоподобный пиздец, а при 64 - нормальный сигнал.
Сейчас задача децимировать с 50 МГц до 12 кГц. Это как лучше: разом, или же в несколько ступеней?
Алсо, позвонили с почты и сказали, что посылка пришла. Забрал. Китаец-пидор плохо упаковал, но выправить получилось.
TDA8763M/5 - 10 бит @ 50 мспс.
Потому что ты без уринирования имеешь тенденцию игнорировать хоршие советы. Вот я тебе посоветовал поменять местами Int и Comb, намекнул не прибивать разрядность и задержку гвоздями, а использовать parameter - ты внял? Ну вот. Наверняка и блевотную мешанину из "<=" и "=" так же бы оставил, а хуле, работает же. А я тебе только добра желаю и дружбомагии.
>Но не понял, почему при задержке 63 на выходе какой-то шумоподобный пиздец, а при 64 - нормальный сигнал.
Неустойчивость, обычное дело, особенно когда приходится иметь дело с интеграторами. Они находятся на границе устойчивости, и чуть что не так, любая мельчайшая мелочь чаще всего округление, например, которое вносит мелкую, но ненулевую постоянную составляющую, и всё, пизда, полюса выезжают в область неустойчивости, кровь, кишки, распидорасило. Можешь попробовать разобраться, из-за чего она появляется, можешь забить. Я такие места обычно просто жопой чую и стараюсь заранее проектировать, чтобы свести неустойчивость к минимуму. Отсюда был совет поменять Comb и Int местами. Можешь, если интересно, проверить: сначала в версии 64 поменять местами I и C, убедиться, что характеристика не изменилась, потом сделать задержку 63, и фильтр, скорее всего, будет нормально работать.
> Это как лучше: разом, или же в несколько ступеней?
А смысл там что-то мудрить-то?
>Вот я тебе посоветовал поменять местами Int и Comb
Попробовал, но у меня видимо мозги из жопы, не заработало, точнее скомпилилось всего в 160 бит памяти. Но не покажу, потому что проебал, а писать заново лень.
>Можешь попробовать разобраться, из-за чего она появляется, можешь забить.
Представляю в общих чертах, на ТАУ рассказывали.
>Можешь, если интересно, проверить: сначала в версии 64 поменять местами I и C, <...> потом сделать задержку 63
Не менял, как уже сказал, но увидел, что фильтр нормально работает при задержке, кратной двум. Т.к. задержка - это коэффициент децимации, помноженный на два, то есть смысл не ебаться и задавать коэффициент децимации, а не задержку, которая в таком случае всегда получается чётной.
Что я и сделал, смотри пик. В таком виде работает. Прикрутил возможность сдвигать выход в младшую сторону, чтобы реализовать усиление, которое понадобилось, например, когда выделял разностную частоту на выходе перемножителя. Ну и параметры. Менял factor от 15 до 100 - работает, смотрел ИХ осциллографом.
>А смысл там что-то мудрить-то?
Надо децимировать с 50 МГц до 12 кГц, т.е. в 4170 раз. Если для этого модуля задаю factor равным 4200, то Квартус при компиляции говорит, что в цикле (которым линия задержки описана) должно быть не более 5000 итераций. Если задаю 2000, то начинает компиляцию и не заканчивает.
Три каскада с коэффициентом 1000 таки скомпилились за 20(!) минут и даже работают при клоке 50 МГц.
Но на это ушла половина памяти (120 из 270 кбит). И это только при третьем порядке. Не подходит.
Попробую пикрелейтед.
Попробовал.
http://www.dsplib.ru/content/cicid/cicid.html
Подавляет постоянку (и НЧ, соответственно). Второй пик - на входе дельта-импульс, третий - меандр с полным размахом.
Может в коде наебался?
Но ведь так неинтересно. Использую, если будет ясно, что отдельная плата не взлетит.
>>256155
>Измерение частоты основной гармоники и отображение?
Ага.
>Какая максимальная частота входного сигнала?
500 Гц, или сколько там на басу сыграть можно. Меня минимальная беспокоит, чем она меньше, тем задержки больше.
Смотрите, на что наткнулся. Вот такая форма дает странную функцию. Последний пик больше первого. Это норма? Пока добавил костыль в виде поиска максимума на интервале до 30мс.
>>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-битные и эти самые ОУ, которые уже в дело пустил.
отморозок блять. уважуха
Насмотревшись на тебя тоже решил попробовать сделать подобное. Для начала попробую подать на вход синусоиду и построить спектр для оценки SFDR.
Кстати, ты уверен в качестве тактового сигнала? Фазовые шумы тактового сигнала будут оказывать приличное влияние на отношение сигнал/шум.
>тоже решил попробовать сделать подобное
Каковы характеристики АЦП? Платку самодельную опиши вообще.
>ты уверен в качестве тактового сигнала?
Да не особо. Платы у нас одинаковые, сам видел, какой там простой генератор. Но нужного отношения с/ш добился. Если совсем припрёт - прикручу свой Гиацинт-М и блоком ФАПЧ получу нужную частоту.
АЦП ADC12L066 (12 разрядов, 66 МГц), входная часть по схеме из даташита на LMH6550MA.
Генератор на NB3N502 и разветвитель CDCV304. Но учитывая 15 пс джиттер NB3N502, все 12 разрядов имеет смысл использовать только на средних волнах.
Перебежал в свой тред, но для законченности вброшу и сюда:
https://www.youtube.com/watch?v=Y0p-iDQqqAA
https://www.youtube.com/watch?v=dOOwxxjjmQY
При малом сигнале работает, причём на удивление (для меня) хорошо. При большом же из-за малого порядка CIC пролезают соседние вещалки. Просто так порядок накидывать не буду, потому что АЧХ совсем завалится и надо корректирующие КИХ фильтры делать, что пока отложу ненадолго.
Верх речевого спектра 3 кГц, частота дискретизации 15 кГц, т.е. выше в 5 раз. Правильно ли я помню, что из-за избыточной дискретизации при малом сигнале АИМ можно воспринимать как PDM с разрядностью, соответсвующей этим 5 разам? Если так, то получается добавление двух эффективных бит. Шум квантования хорошо отличим (т.е. слышно, что это именно он), и за ним вроде бы сигнал должен пропадать, но нет, разборчивость сохраняется ещё долго.
Пикрелейтед - выходной звуковой сигнал при сигнале 5 мкВ на входе усилителя.
Построил спектр путем записи в память отсчетов и последующей выдачи через UART. Результат на первой картинке. Как оказалось гармоники появляются из-за LMH6550MA.
Также измерил спектры генератора на NB3N502 (вторая картинка) и имеющегося на плате генератора, пропущенного на 103-ю ножку ПЛИС (третья картинка).
>>263507
Ты бы сделал как я выдачу записанных отсчетов через UART. Мой код: http://pastebin.com/XqutFbqM и http://pastebin.com/Y3ri6U1d
На компе скрипт на матлабе: http://pastebin.com/mXE8mmzp
Не могу понять - то ли я туплю на элементарной хуйне и пора отдохнуть, то ли и правда здесь что-то хитрое происходит
О, да, забыл, что там еще было условие, что x[0] > 0.
В общем спасибо, на пальцах всё понятно, однако все-равно не доходит, как математически для себя обосновать этот сдвиг x[0] на x[-N]. Ну да хуй с ним.
Да нет, я чето не смог понять, схуяли
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]).
Отличная хуйня, спасибо
О, а кто смотрел эти Signals and Systems? Чем оно отличается от похожего, но более старого курса оппенгейма Discrete Time Signals and Systems и стоит ли смотреть оба?
>построить трёхмерное томографическое изображение мозга по набору рентгеновских
Хуйню сморозил, могу пояснить. Мимо врач рентгенолох.
Люблю радач.
Хей, мань, я за омс получаю 100 долларов в месяц, за общение с ~100 бабушек.
Живу за деньги платных пациентов.
Вот уж кто кто пидар, так это околокомпьютерные мудилы в нашей сфере. Которые не могут нихуя сделать с ПО того же томографа выиграв контракт вместо офицалов. Я уж не говорю про самописные crm которые к треду отношения не имеют.
Что же касается трехмерных изображений из серии слоев, о котором написано в шапке, то тут не особо цифровая обработка сигналов. Традиционный подход - пороговое, плотносное построение 3д поверхности из вокслей с серии 2д картинок. Особо нахуй не нужно в диагностике, веселит только пациентов и прочих нуфагов.
Есть подходы и поинтереснее, более похожие на векторные, но тоже без задач.
Другое дело, что придумал Кормак 50 лет назад - реконструкция 2д среза из сигнала от вращающегося вокруг пациента датчика. Но это совсем не то, что написано в оп посте про кт.
Спасибо за интересную инфу, братишка
это я тебя в шутливо-дружелюбной форме пригласил поделиться инфой по существу а то ты вкатился с каким-то высокомерием в тред, уёбок рад, что ты адекватен, добра
Праздный вопрос - если бы какому-нибудь школоло-Сифуну http://www.rosbalt.ru/moscow/2009/06/08/646378.html захотелось запилить в мамкином гараже аппарат для томографии похуй чего, чисто электронику и математические методы позадротить, что было бы проще всего сделать из палок и говна?
Про сифуна в курсе.
Мне трудно представить реализацию из говна и палок. Источник найти не очень трудно, как по мне. У меня вот 2 трубки лежит на шкафу. С приемником, который будет давать нормальный динамический диапазон, бит на 12, как имхо - сложнее. Надо городить что то осцилирующее и фотоприемник, видимо. Затем надо обеспечить вращалку пары приемник- датчик вокруг обьекта, с позиционированием. Но это не очень сложно. А вот в математической части я ваще нуб. По крайней мере абсолютно тупым медсестричкам, которые не отличают катод от электрона, я объясняю на примере японского кроссворда. При этом и сам то понимаю не более.
Вся тригонометрия мне понятна, но непонятно какие последствия получаются от замены деления на сдвиги. Ведь если сдвинуть -1 (оператором >>>), то все равно получится -1.
Результат моих усилий: http://pastebin.com/5fHvtJdx Результат моделирования на картинке - косинус из CORDIC, $cos и их разность. Конечно по нормальному нужно построить спектр, но мне лень.
И что еще делать с удлинением векторов в кордике? Я решил не подавать на вход кордика I/Q, а подать константный вектор такой длины, чтобы длина повернутого вектора была максимальной для выбранной разрядности, и только потом умножать на I/Q.
Рентгеновские трубки типа БС-1, БСВ применяются в аппаратах для рентгеноструктурного анализа материалов для получения мягкого рентгеновского излучения и обладают невысокими напряжением на трубке – 45 кВт и эффективной энергией генерируемого рентгеновского излучения – 15 кВт. Только в силу этих характеристик (мягкий спектр рентгеновского излучения) эксперимент не смог привести к более тяжким последствиям для здоровья подростка и не произошло облучения населения.
Малограмотные журнашлюшки не понимают, что чем мягче спектр, тем опаснее. И энергию измеряют в киловаттах.
А нахуя им что-то понимать? Им надо чтобы читатели поняли.
>Ведь если сдвинуть -1 (оператором >>>), то все равно получится -1.
Ну достигнут предел точности, ограниченный разрядностью. Что тебя смущает?
>И что еще делать с удлинением векторов в кордике? Я решил не подавать на вход кордика I/Q, а подать константный вектор такой длины, чтобы длина повернутого вектора была максимальной для выбранной разрядности, и только потом умножать на I/Q.
Можешь подавать IQ на вход, а выход умножать на константу, можешь IQ сигнал умножать на константу и передавать на вход. Как хочешь.
>Что тебя смущает?
То что по правилам арифметики целочисленное деление -1 на 2 даст 0. Но во всех кордиках которые я нашел на гитхабе, используются сдвиги.
Построил спектры обоих вариантов, надеюсь ничего не напутал: http://pastebin.com/w9J1RuGK
Когда частота дискретизации кратна генерируемой частоте, в варианте со сдвигами возникают палки с частотами кратными половине генерируемой частоты. В остальных случаях интегральная мощность шумов практически одинакова.
Запили костыль, который для случаев "0b1111>>1", "0b111x>>2", "0b11xx>>3" и т.д. будет давать ответ "0". Если костыль оформить в виде отдельной комбинаторной цепи, которая будет заводиться на reset регистра с результатом (в идеале синхронный, если у плисины такие регистры есть), то даже в скорости не потеряешь.
Хотя всё-таки потеряешь. Костыль будет сложнее остальной части сдвигателя. Тогда смотри, зайдёт ли это дело на используемой тактовой частоте.
Есть семпл с параметрами:
Signal: data (1.4765GHz)
Center Frequency: 1.4765GHz
Sample Rate: 20MHz
RF Gain: 50 dB
Размер файла около 870 Мег
Вопросы такие
как определить наличие сигнала?
на какой частоте сигнал?
тип модуляции?
деммодулированые данные?
Буду признателен братаны.
Они напряжение в кВт измеряют, зато сразу понятно, что кпд 33%.
>По энергетическому спектру семпла
Что делать если мощность шума в полосе сигнала больше мощности сигнала хотя бы на 10дБ?
>>266116
Так бы и спрашивал про гнурадио. Но лучше возьми матлаб или питон, octave и прочее.
Вот не понимаю чем так хорошо гнурадио? Чем оно может быть лучше симулинка или labview?
>по правилам арифметики целочисленное деление -1 на 2 даст 0
Евклидово деление даёт -1. А вообще пользуйся формулой a >> b = floor (a / 2^b)
Немного поподробнее.
Пусть регистр будет 4 битным. Тогда -1 будет хранится как 1111. При арифметическом сдвиге вправо знаковый бит сохраняется а слева выходит остаток, в нашем случае 1. То есть -1 = (-1)2 + 1. Для Евклидово деления остаток должен быть неотрицательным.
>>266539
Я уже разобрался. Оба варианта дают абсолютно одинаковые результаты при ненулевом угле поворота.
>>265812
>частотами кратными половине генерируемой частоты
Тут я ошибся, это происходит когда частота дискретизации в целое нечетное целое число раз больше генерируемой частоты. Интересно, что несмотря на то что оба варианта почти всегда дают одинаковый результат, вариант с сдвигами в этом случае дает более плохой спектр.
>можно ли
Можно. Разрешаю тебе, можешь делать.
>Стоит ли
Это решается исходя из требуемых параметров.
Существует множество однокристальных трансиверов - почему бы их не использовать? Или у тебя могут быть такие скорости что хватит атмеги.
https://www.youtube.com/watch?v=y4Hv7NDJJf4
Молодец! Пока я только демодулятор АМ сделал для >>262982 До преселектора и предусилителя пока руки не доходят.
Но у меня в Москве даже на деген во всем КВ слышно только пару АМ станций. Пока демодулировал только сигнал с генератора.
Наверное прием КВ придется отложить до начала начала дачного сезона.
Расскажи, какой у тебя преселектор, он одноконтурный? Какая у него добротность?
>какой у тебя преселектор, он одноконтурный?
Да. 9 витков на кольце 50ВЧ размером 16х8х6. Входная обмотка - 1 виток, подключен к антенне через резистор 270 Ом, выходная обмотка 2 витка, подключена напрямую к высокоомному входу усилителя. Конденсатор от китайской говномагнитолы, все четыре секции в параллель.
Диапазон получился от 4.6 до 18 МГц.
>добротность?
Внизу 150, в середине 100, сверху 70.
>даже на деген во всем КВ слышно только пару АМ станций
Послушай сороковку любительскую вечерком - охуеешь. Особенно в москваблядске, даже днём грохот на диапазоне. Также вещательные станции на СВ и КВ с Европы.
>демодулятор АМ сделал
Опиши, если не секрет. Тоже думаю сделать, но пока не пойму как. В голову лезет только тот же квадратурный преобразователь, но с ФАПЧ по несущей, что сложно, либо же перенос на низкую ПЧ, фильтрация на ней и детектирование простейшим амплитудным детектором, что затратно.
Пикрелейтед - выход ЦАПа при первой проверке платы. Клок 50 МГц, выходная частота 10 МГц.
>Послушай сороковку любительскую вечерком - охуеешь. Особенно в москваблядске, даже днём грохот на диапазоне.
Один шум. Понаставили все себе энергосберегающих лампочек и прочего импульсного. А за городом все отлично слышно.
>Опиши, если не секрет. Тоже думаю сделать, но пока не пойму как.
Амплитуда - это квадратный корень из суммы квадратов I и Q. Это несложно вычислить CORDIC-ом.
Я сделал так http://pastebin.com/gUZq0cVq
Схема весьма не оптимальна для такой частоты, могу сделать компактнее если потребуется.
>В голову лезет только тот же квадратурный преобразователь, но с ФАПЧ по несущей, что сложно
А что если использовать такую систему: взять какую-нибудь одну составляющую (I или Q), пропустить через ФНЧ и за счёт обратной связи (на ГУН через ПИД-регулятор) держать её поближе к нулю. Тогда сообщение будет целиком находиться в перпендикулярной составляющей, её и принимать.
мимо не радиолюбитель
Поясню
>пропустить через ФНЧ
Чтобы выделить постоянную составляющую, соответствующую несущей. А потом удерживать эту составляющую перпендиклуярно одному из векторов (I/Q).
>за счёт обратной связи (на ГУН через ПИД-регулятор) держать её поближе к нулю
В принципе, это и есть ФАПЧ, только не надо фазу считать "честно" через арктангенс. По сути, используется приближение, что около нуля угол примерно равен тангенсу.
>Один шум
Ебать вы там бедные. Даже выход на улицу не помогает?
>Это несложно вычислить CORDIC-ом
Поесни, как ета твоя штука работает. Понятно вроде, что вычисляет длину вектора комплексной огибающей, но не понятно, куда её пихать и на какой частоте она работает.
>>268310
ПОС-61, чистый глицерин, паяльник. Каплю размером со спичечную головку можно по квадратному метру размазать.
Где ты берешь чистый глицерин? В аптеке продают только разбавленный водой.
На улице не проверял. Несколько лет назад и в квартире более-менее принималось.
>Поесни, как ета твоя штука работает. Понятно вроде, что вычисляет длину вектора комплексной огибающей, но не понятно, куда её пихать и на какой частоте она работает.
Пихать после дециматора, естественно. Результат выдает задержанный на 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
MIPS - это million instructions per second, а также архитектура процессоров. При чем тут АЦП?
Представь себе, цена АЦП зависит не только от частоты выборок, но еще и от многих других параметров.
>Что-то в интернетах ебаных трудно цены узнать на ацп такие
http://www.analog.com/ru/products/analog-to-digital-converters/high-speed-ad-10msps.html
http://www.ti.com/lsds/ti/data-converters/adcs/adcs-products.page#
http://www.linear.com/products/analog-to-digital_converters_(adc)
https://para.maximintegrated.com/search.mvp?fam=fast_adc&718=125&717=1000
Это наиболее известные производители АЦП, оптовые цены у них же. Розничные цены - у поставщиков занимающихся розницей, например digikey.com С такими вопросами тебе скорее в тред про магазины.
Если я подам на него сигнал прямо с АЦП - получу переполнение.
Может дело в том, что реальный сигнал лежит в диапазоне -1...1?
https://www.youtube.com/watch?v=SKXXq5-nO90
Пикчи 2 и 3 - АЧХ говно, снятая путём подачи белого шума на вход. 4 - какая-то музыка.
После "микрофонного" АЦП запилил КИХ-ФНЧ 50 порядка, но окно Блэкмана чёт сильно валит, надо пересчитать на частоту повыше.
Но вроде разборчивость какая-то есть.
>>268863
лул бля я тоже не ибу
Переполняются, но гребенчатый фильтр переполняется в противоположную сторону и результат получается правильным. Нужно только разрядность правильную выбрать.
В качестве примера можно рассмотреть восьмиразрядный интегратор и гребенчатый фильтр с той же разрядностью и задержкой D = 1.
Если на вход подать 100, на выходе интегратора будет последовательность: 0 100 -56 44 -112 -12
На выходе гребенчатого фильтра будет 0 100 100 100 100
Примерно то же самое получается для фильтров с большим числом звеньев.
>>269306
Демодулятор АМ пока не приделал?
>Нужно только разрядность правильную выбрать
Мне пришлось всрать дополнительно 51 бит при задержке 6666 и порядке 4. Пиздец.
>Демодулятор АМ пока не приделал?
Не, кристалл весь занял, потому что распихивать линии задержки по блокам памяти пока не научился.
>Мне пришлось всрать дополнительно 51 бит при задержке 6666 и порядке 4. Пиздец.
Да, у меня приблизительно так же. Только я взял сгенерированный матлабом код фильтра.
>Не, кристалл весь занял
Прямо весь? У тебя EP4CE6? У меня на EP4CE10 он занимает 10%, у тебя займет всего лишь 16%.
Хорошо, в течение недели попробую переделать.
>какая разрядность мне нужна
Как и в других фильтрах, на каждые 6 дБ услиления по одному разряду.
Вообще-то CIC фильтр это и есть скользящее среднее.
Дециматор - это ФНЧ для подавления алиасинга и отбрасывание части отсчетов после него. Поэтому решение этого вопроса зависит от заданных параметров - частоты дискретизации, требуемого подавления, тактовой частоты устройства, нелинейности АЧХ, количества доступных ресурсов вычислителя и прочего.
Формула же на пикче. D - задержка, равная удвоенному коэффициенту децимации/интерполяции, N - порядок. Получив усиление, делишь нап 6.03 дБ - получаешь дополнительную разрядность. Её прибавляешь к разрядности входа. У меня вход 10 бит, дополнительно 51 бит, итого 61-битные интеграторы и гребенчатые фильтры.
>>269413
>У тебя EP4CE6?
Да.
Но я не про твой алгоритм, а про свой трансивер. Он все LE занял, из-за дублирования тракта. Прост хочу поскорее с этой махарайки в эфире попиликать.
>Если на вход подать 100, на выходе интегратора будет последовательность: 0 100 -56 44 -112 -12
>На выходе гребенчатого фильтра будет 0 100 100 100 100
Ебануться, нахуй. Это просто пиздец. Это самый ебанутый костыль, который я когда-либо в жизни видел. Но если это работает для произвольного сигнала - это ебануться вдвойне.
Почему же костыль? Ситуация похожа на представление фазы периодического сигнала, когда она начинается с нуля, переваливая за два пи. Такая же цикличность. Но никто не считает это ебанутым. Иначе уходящие в бесконечность величины физически невозможно представить.
А работает оно потому, что решает не абсолютное значение, а его изменение.
>>269413
Все-таки собрался и переделал, стало занимать чуть больше 300 LE.
Сигнал start запускает вычисление, результат появляется на выходе через OUTPUT_WIDTH + 1 тактов.
http://pastebin.com/S3GFhmvK тестовая последовательность: http://pastebin.com/pXfGFiXg
Q3.12?
int16_t value = (int16_t) (-0.0154723f * (1 << 12));
https://www.youtube.com/watch?v=6d0sty91fg8
Диванон похуй; вести связь без указания имени и QTH невежливо.
На пикчах всё видно, в принципе. Усилок пока взял готовый - драйвер выходного каскада трансивера IC-720, мощность по сервис-мануалу 6 Вт.
Последняя пикча - как сделана микрофонная НЧ часть. Простейший усилитель с завалом на НЧ и жёстким диодным ограничителем в цепи ОС, цифровой ФНЧ (не тот, который в АЦП, а далее) со срезом на 3 кГц дают очень хороший разборчивый сигнал с узким динамическим диапазоном:
http://rgho.st/7R4jKnxTz
Импровизированный АЦП заметно шумит, ну да похуй, всё равно ДД сжат.
>>270013
Прикручу чуть погодя (600 LE таки осталось), просто надо ещё править программу МК, в который я лезу очень неохотно.
Важно быстродействие.
Съездил со своей шарманкой на полигон института солнечно-земной физики, где товарищ, занимающийся приёмом ЛЧМ-сигнала с ионосферных зондов, наконец-то по существу обосрал мой трансивер.
Напомнил, что при сужении полосы происходит увеличение эффективной разрядности.
По возвращении я попробовал убавить усиление перед АЦП и сдвинуть выход на более младшие биты CIC, - и оно таки реально работает, сейчас получилась динамика 80 дБ (от 1.5 мкВ до 15 мВ) при разрядности на выходе 16 бит из которых работают пока только 10 младших.
Вопрос: каким отношением (формулка, лул) связано увеличение разрядности с сужением полосы?
Сорри за тупой вопрос, но как уменьшение усиления перед АЦП приводит к сужению полосы?
Никак. Полоса сужается в CIC-фильтре. На входе 25 МГц, на выходе - 3 кГц.
Ответ:
pG = 10lg(fs/(2BW))
SNR = 6.02N + 1.76
если у вас ацп 1-бит. fs=25MHz, BW=3 KHz, то
SNR = 6.02 1 + 1.76 = 7.78 dB
pG= 10lg(25e6/(3e3*2)) = 36.19 dB
резултирующий ДД = SNR + pG = 43.97 dB
насколько я понял используется сигма-дельта АЦП. А там шум во всем диапазоне. Сужая полосу он избавляется от шума.
Можно сказать подругому, усиляет сигнал вне шумовой полосы.
Вы правы, но это не виртуальные биты, мы децимируя избавляемся от шума >Fs/2.
тут про 1-bit adc
https://www.maximintegrated.com/en/app-notes/index.mvp/id/1870
как на третьем пике получается 1 бит если цвета 3? Типа изначально рисуется фон того цвета которого больше?
Спасибо, так и думал.
>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 ещё не пробовал, прохождение тухлое там и антенны не настроены туда да и не стоит у меня на ВЧ диапазоны.
Разработан интегрированный чип для широкополосной дуплексной радиосвязи
http://ko.com.ua/razrabotan_integrirovannyj_chip_dlya_shirokopolosnoj_dupleksnoj_radiosvyazi_119349
Инженеры Корнелльского университета нашли способ, как реализовать в одном чипе все функции трансивера, так, чтобы мощный передаваемый радиосигнал не мешал работе схем приёмника.
Осцик протри
А выходной сигнал в каком формате? Тот самый, в котором не должно остаться следов этой частоты? 8бит?
После каскадных фильтров еще процессинг в формате с плавающей точкой. Собственно убираю высокие частоты перед децимацией, дабы альясинг не лез.
Математически если, то сколь высокое подавление ты бы ни сделал, что-то всё равно останется, алиасинг от него всё равно произойдёт, и накапливаться оно тоже в любом случае будет. Идеального ничего не бывает. Тебе надо подумать не "как подавить до 0", а "какое увеличение уровня шума я годов допустить без ущерба для решаемой задачи".
>>277244
Нет, так не делай.
>какое увеличение уровня шума я годов допустить без ущерба для решаемой задачи
А как на практике этот уровень рассчитывают? Амплитуда альясинга исходя из битности -127:+127, подавление -100 дБ - в 100000 раз, допустим при обратной конвертациив 8 бит - получу 0, -80 дБ - 10000, также при обратной конвертации получу 0. То есть, очевидно, что между разрадностью и допустимым уровнем подавления есть зависимость, но вот какая точно - непонятно. Во многих статьях фигурирует уровень -80, но почему именно такое значение выбрано - тоже непонятно.
Лол, тебе в соседний тред, светодиодом мигать
Очень упрощенная постановка вопроса. Важно какой спектр у этого шума, как его можно перераспределить, какова линейность (а чаще - нелинейность, и не одна а набор из нескольких разных нелинейностей) этого шума.
Одни 47.99% другим 47.99% - рознь.
Нет. Написанная в учебниках инфа, что шум квантования представим в виде аддитивного идеального белого шума амплитудой 1LSB https://ru.wikipedia.org/wiki/Шум_квантования#.D0.92.D0.B5.D1.80.D0.BE.D1.8F.D1.82.D0.BD.D0.BE.D1.81.D1.82.D0.BD.D1.8B.D0.B5_.D0.BE.D1.86.D0.B5.D0.BD.D0.BA.D0.B8 безусловно, являются ложью. При некоторых формах квантуемого сигнала он им не является. А если исходный сигнал в точности проходит через уровни квантования, то шум квантования вообще равен 0 даже на 8 битах. Дальше что? Что ты будешь делать с этой охуенно полезной инфой?
Дальше ты будешь конструировать обвязку ЦАП исходя именно из этой полезной инфы. По сути, все искусство аудиосхемотехники - это о том как нужным образом перераспределить спектры помех и шумов, имманетно присущие ключевым элементам схемы, с целью минимизации их влияния на конечный результат - а именно восприятие музыкального сигнала слушателем.
>искусство аудиосхемотехники
>аудио-
Лол, ну и ограниченность.
https://www.youtube.com/watch?v=P1XHPVHNYxc
Памагите цифровую АРУ сделать
Несущей нет, на входе однополосный телефонный сигнал. Однозначно будет цифровой детектор амплитуды, а дальше я туплю.
Велосипед не изобретай. Берешь абсолютное значение, отправляешь на простейший БИХ ФНЧ фильтр и получаешь сигнал управления k, потом входной сигнал умножаешь на 1/k и всё
>Велосипед не изобретай.
Это называется "И-регулятор". Вам про него на ТАУ на втором курсе расскажут.
Тогда постарвйся доучиться до третьего, когда начнутся ЦОС и РЦиС, узнаешь много нового и удивительно
>простейший БИХ ФНЧ фильтр
>простейший
>1. Чем круче спады, тем длиннее переходной процесс. Кардиографы делают только с фильтрами Бесселя, длинные колебательные процессы после кадждого изменения уровня испортили бы всю диагностику. И цифровые фильтры с длительным переходным процессом делают пожалуй только любители чтобы их заметили. В большинстве случаев быстрота реагирования важнее.
>2. Чем круче спады, тем выше чувствительность к изменениям отдельных компонентов фильтра. В аналоговой технике приходится применять очень стабильные емкости и индуктивности, а в цифровой увеличивать разрядность вычислений.
Это вообще о чем? Если что, то фильтры Бесселя имеют бесконечную импульсную характеристику. Сложность передаточной характеристики зависит только от порядка фильтра.
> а в цифровой увеличивать разрядность вычислений.
Кек. Вангую, это написано в те времена, когда увеличение разрядности умножителя с 8 до 12 бит было охуеть каким дорогим. Вообще блядь, из какого музея ты эти книги берешь?
> 2011
> форум для придорашек из совковых говноНИИ, не осиливших английский, поэтому рассказывающих друг другу охуительные истории на этой помойке в рабочее время между чаепитиями, перекурами и рисованием фейковых отчетов для распила бабла
Ты перетолстил
Дело не в этом, а в том что фильтр Бесселя является БИХ фильтром. БИХ-фильтры друг от друга отличаются только коэффициентами и разрядностью. Чем тогда фильтр Бесселя сложнее других БИХ-фильтров того же порядка?
Ничем не сложнее, и вообще, давай ты в следующий раз будешь графики матлабом/октавом/питоном/чем угодно делать. А то порожняк какой-то гонишь, Бесселя приплёл, крутизна у него слишком крутая, вообще охуеть. Анону всего лиш agc нужно замутить, а тебя уже понесло
> Если бы ты когда-нибудь слышал про усталость металла эквивалентные преобразования, то ты бы понимал, что схема >>277629 эквивалентна схеме >>277806
Кукарек громкий, но не по делу. Я предложил анону готовую реализацию на стандартных элементах, которые есть в любой dsp библиотеке, которая занимает пару строчек кода и считается в онлайн калькуляторе в три клика
> Домашнее задание: определить вид БИХ-фильтра, который получается после приведения схемы >>277629 к виду >>277806.
Кек, ты сам-то сможешь, умник? Еще раз, приноси свои картини/скрипты в матлабе/октаве/питоне, тогда будем с тобой говорить. А пока твои посты являются не более, чем звонкими вскукареками не по делу
>готовую реализацию на стандартных элементах
Да-да, тут уже успели заметить, что И-регулятор как-то прошёл мимо тебя.
Ладно, я сдаюсь. Приделывайте свои костыли в виде и-регулятора, считайте его коэффициенты, ебитесь с переполнением интегратора, если вам так интересно. Но помните, что вы нихуя не радиотехники, и пытаетесь засунуть своё тау туда, где можно обойтись только помощью цос, просто, быстро и элегантно
>ко-ко-ко засовывать теорию автоматического управления в задачу автоматического управления усилением это костыль1111
Ясно.
Ты о чем? Бесселя приплел не я, а >>278148 Я лишь указал что фильтр Бесселя это БИХ-фильтр, который часто можно назвать простейшим.
>>278430
>>278408
Оно будет эквивалентно, если интегратор H(Z) = 1/Z, с бесконечным коэффициентом усиления на нулевой частоте, заменить на H(Z) = Z/(Z + a) или на другой фильтр с не бесконечным коэффициентом усиления на нулевой частоте.
>которые есть в любой dsp библиотеке
В квартусе этого нет. Как будешь делать на верилоге измеритель амплитуды?
Там не надо ничего заменять. Интегратор, охваченный отрицательной обратной связью, не имеет бесконечного усиления на нулевой частоте.
> мааам, ну эта задача афтаматичискава управления! я скозал! ну маам, p-контроллер, ардуина, свитадиоды, мааам скажи ему!!
Что-то мне увиделось проще всё: сделаю память, в которую насую заранее рассчитанные коэффициенты усиления, адресом для неё возьму амплитуду, а выход дам на перемножитель, в котором и будет регулироваться усиление. Один хуй память (270 кбит) почти вся свободна.
>>278436
>Как будешь делать на верилоге измеритель амплитуды?
if (пизда > говно) говно <= пизда;
else if(говно > 0) говно <= говно - 1'd1;
>if (пизда > говно) говно <= пизда;
>else if(говно > 0) говно <= говно - 1'd1;
Будет на импульсных помехах глушить громкость до минимума.
Лол, до некого подобия интегратора схема уже доэволюционировала. Когда надоест переписывать таблицу усилений и магические циферки в коде, переходи на следующий шаг, к И-регулятору.
Мне таблицу только одну написать, чтоб задать амплитудно-амплитудную характеристику, а дальше играться с инкрементом и декрементом говна для достижения желаемой реакции и спада, которые один хуй придётся на слух подбирать.
>задать амплитудно-амплитудную характеристику
Про частоты и фазу не забыл?
>играться с инкрементом и декрементом говна для достижения желаемой реакции
В пяти измерениях?
>придётся на слух подбирать
SAT-solver вживил себе?
Я всё равно не понимаю, зачем делать костыль, когда можно сделать нормально. В качестве бонуса получишь, например, что усиление будет меняться быстрее, когда уровень далёк от желаемого, и медленнее, когда он меняется несильно.
Ало ебать, у меня аналоговый телефонный сигнал (с полосой 3 кГц) в цифровом виде.
>SAT-solver вживил себе?
чебля
>Про частоты
Спектр ограничен фильтром, который стоит до; АРУ работает только по амплитуде.
>и фазу
Ваще похую.
>В пяти измерениях?
Лолшто
>>278455
Хуёвый бонус. Реакция на увеличение сигнала должна быть одинаковой и в идеале мгновенной.
>Реакция на увеличение сигнала должна быть одинаковой и в идеале мгновенной
Добро пожаловать в реальный мир. Ничего, обеспечивающего даже одно из этих двух качеств, не существует.
Ладно, переходи на следующий шаг, когда надоест, что твоя АРУ увлечённо реагирует на импульсные помехи, эксплозивные согласные и прочий мусор, а собственно то, что надо слушать, регулируется как-то хуёво и непредсказуемо.
>у STM есть серия STM32F4, там интегрированы DSP-инструкции и БПФ можно сделать весьма быстро
dsPIC появились еще до твоего рождения.
Не знал про них, STM видел в куче статей уже, вот решил сам попробовать. Потом посмотрю повнимательней, но сомневаюсь, что удастся найти голую плату с похожим чипом за 13 баксов.
С гитары всего 250 милливольт получить можно, придется усилитель делать. Операционник и 2 резистора, понижение думаю делителем напряжения сделать, он не меняет частотные характеристики сигнала. 4 часа пытался разобраться, что у меня не так с импортированными библиотеками, в итоге решил забить на это хуй и делать все c основ, через регистры. Таймер и прерывание для него уже готовы.
>С гитары всего 250 милливольт получить можно
От звучков зависит на самом деле, есть пассивные на ебейших магнитах которые и по вольту могут выдать, про активные звучки в которые усилитель уже встроен я и не говорю.
>делителем напряжения сделать, он не меняет частотные характеристики сигнала
Это в каком букваре написано что во Вселенной существуют элементы не меняющие частотные характеристики сигнала?
Это да, но я таких еще не видел.
>про активные звучки в которые усилитель уже встроен я и не говорю.
Так я ими все равно пользоваться не буду.
>>279692
Это я придумал, надо было написать, что почти не меняют. Само собой, у резисторов есть индуктивность и емкость, но они крайне малы.
Решил маленько CMSIS запользовать, от нее не сбоит компиляция.
>резисторов есть индуктивность и емкость, но они крайне малы.
Это от частот зависит, малы они или не очень.
И ты забыл о температуре, как минимум. А на переменном токе очень весело с ней - резистор то нагревается, то остывает, причем с запаздыванием и инерцией относительно греющего его тока. А кроме ТКС (temperature coefficient) есть еще и voltage coefficient, и это только для начала.
Как много факторов, оказывается. Максимальная частота 48 кГц, если теорема Найквиста-Котельникова работает в обратную сторону. Резисторы на выход от сотни килоом использовать буду, там максимальная мощность 10 микроватт. Может, и они смоут что-нибудь нагреть, но не думаю, что это будет сильно заметно.
Задумался тут, как выходной сигнал преобразовывать. У меня будет оффсет 1.65В и максимальная амплитуда 3.3, нужно его сдвинуть вниз и уменьшить. Сначала хотел запользовать схему с конденсатором и делителем, но она очень долго адаптируется к смене оффсета. Придумал сперва вычесть из сигнала оффсет, а потом делить. Не перестаю удивляться, сколько всего умеет ОУ.
>теорема Найквиста-Котельникова
Она применима только к стационарному периодическому бесконечному сигналу.
>от сотни килоом
Здравствуй, шум.
>10 микроватт
Сравнимый по уровню с сигналом.
>Может, и они смоут что-нибудь нагреть
Нет, в таких условиях главная проблема будет не в нагреве.
>Не перестаю удивляться, сколько всего умеет ОУ
И одно хуже другого.
>Она применима только к стационарному периодическому бесконечному сигналу.
А в моем случае нет, разве? Может, это не именно она будет, а какой-нибудь вывод Я же никак не смогу сделать сигнал частотой больше 48кГц, если только не брать несколько волн и складывать их.
>Нет, в таких условиях главная проблема будет не в нагреве.
А в чем? Сегодня опробовал, все работает, только на 100кОм у меандров фронты на полвольта выше задраны, чем уровень, выглядит как индуктивность. У делителя то же самое. Может, дело в том, что я не обрезал ноги у DIP-резисторов. Пикрелейтед — неинвертирующий усилитель с 2кОм и около 7 на потенциометре. У основной камеры сломался фокус, пришлось на переднюю снимать. А еще я взял неправильный щуп для генератора сигналов и полчаса думал, почему у меня на выходе уровни вместо прямых косые, лол. Прочитал описание АЦП, в следующий раз до регистров дойду.
Вот как это будет выглядеть. Резисторы пересмотреть придется, и усилитель на инвертирующий поменять, а то у этого очень низкое сопротивление между сигналом и землей, конденсатор будет разряжаться. http://tinyurl.com/k5xqdvg
Хоть до Википедии дойди
>рассматривает идеальный случай, когда сигнал начался бесконечно давно и никогда не закончится, а также не имеет во временной характеристике точек разрыва. Если сигнал имеет разрывы любого рода в функции зависимости его от времени, то его спектральная мощность нигде не обращается в ноль. Именно это подразумевает понятие «спектр, ограниченный сверху конечной частотой
>Разумеется, реальные сигналы (например, звук на цифровом носителе) не обладают такими свойствами, так как они конечны по времени и обычно имеют разрывы во временной характеристике. Соответственно, ширина их спектра бесконечна. В таком случае полное восстановление сигнала невозможно
Где тут про стационарность и периодичность, маня?
Или ты меня тралишь. C Википедией лучше не спорить.
Я думал, что можно взять из моего сигнала небольшой кусок и сделать его бесконечным. Пилообразная волна, например, из двух сэмплов, с одним наверху и одним внизу. Может, у сложных сигналов частота измеряется по-другому, я с ними до этого проекта вообще дел не имел.
Доделал АЦП, сейчас надо настроить DMA. Решил подождать, пока плата придет. У STM, оказывается, внутричиповая отладка есть, буду сразу смотреть, работает или нет.
>Я думал, что можно взять из моего сигнала небольшой кусок и сделать его бесконечным. Пилообразная волна, например, из двух сэмплов, с одним наверху и одним внизу.
Это пожалуйста, сколько угодно. Если твое устройство делается для работы с именно таким сигналом, конечно.
>Может, у сложных сигналов частота измеряется по-другому
У сложных сигналов она измеряется словами "предположим что мы можем представить любой сигнал бесконечной суммой синусоид разной длительности, разных частот и амплитуд". Для математиков это, конечно, полностью решило проблему, но только для математиков.
Странно что все остальные на этом основании продолжают наблюдать синусоиду на осцилографе и считать что это имеет какое-то отношение к звуку.
>Странно что все остальные на этом основании продолжают наблюдать синусоиду на осцилографе и считать что это имеет какое-то отношение к звуку.
Впаривать обскурантистское отношение к теории сигналов хорошо получается только аудиофилам, которым можно внушить любую мракобесную хуйню, которая им будет приятна. Например, что дорогая ламповая поебень с неконкурентоспособными характеристиками - она особенная, и её могут услышать только избранные с особенными ушами. А в отраслях, где такой маркетинг не работает и за обработку сигналов решает чистая инженерия, Фурье-анализ (как и теория дискретных систем, в т.ч. теорема Найквиста) является стандартным инструментом, оспаривать который никому даже в голову не приходит - системы управления, радиолокация, телекоммуникации и т.д.
>Пилообразная волна, например, из двух сэмплов, с одним наверху и одним внизу
Пила, вообще-то, не является сигналом с ограниченной полосой частот. После антиалиасингового фильтра никакого пилообразного сигнала у тебя не будет. Впрочем, аналоговых сигналов идеальной пилообразной формы не существует в принципе, поскольку они требуют бесконечной мгновенной мощности в точках излома.
Ну, еще один Википедий начитался и поднял на щит "наукам всё известно".
В какую область не посмотри (чуть поглубже чем учебник для 7 класса - в нём-то всё зашибись и электроны красиво по орбитам летают), везде своя эзотерика. От биохимии до радиотехники - чуть только посложней паяния усилителя на TDAшечках, и сразу оно.
>Ну для объемных моделей с неэкзотическими материалами без пластиков всяких совпадение в единицы процента получить можно, если грубо не ошибаться в составлении модели. Конечно добротность так посчитать не получится - только экспериментально. Да и доводку резонатора тоже приходится делать экспериментально - зажимается диск в шлифмашинке (или приклеивается на воск) так, чтобы сильно добротность держалки не садили (ближе к центру). Снимается небольшой слой, полируется начерно, смывается грязь от полировки, петлю связи подносим и смотрим частоту. Потом доводим толщину по максимальной добротности (надо отклеивать), потом снова радиус, и так итеративно. Точно в частоту попасть сложно - раза с 5 начинаешь попадать, а через пол-года руки забывают и снова надо нарабатывать мастерство
И это всего-навсего про генераторы всего-навсего в несколько ГГц. С некоторыми, впрочем, интересными требованиями по фазовому шуму, например.
Ничем принципиально не отличается от мотания выходных трансформаторов, то же только в профиль - и про экспериментально, и про набивание руки.
Только вот с аудио всё принципиально сложнее, если говорить о музыке как о средстве передачи эмоций, а не частотных составляющих. Классический инженерный подход - он ведь в правильном выборе компромиссов, понимании чем пожертвовать и ради чего - чтобы изделие отвечало четким измеримым параметрам, указанным в ТЗ, и было оптимизировано по параметрам остальным.
А тут же до сих пор непонятно не то что какие углы срезать можно, а какие ни-ни, но и даже что вообще измерять (не говоря уж про как измерять), потому что никто не знает что на эту самую передачу эмоций влияет. С четными и нечетными гармониками чуть-чуть продвинулись, и то сколько десятков лет на то ушло, всё в спорах с воинствующими ПТУшниками такими же. Но один хрен до сих пор все официяльно всякую бессмыслицу типа THD+N мерюють, где всё в кучу.
Ну, еще один Википедий начитался и поднял на щит "наукам всё известно".
В какую область не посмотри (чуть поглубже чем учебник для 7 класса - в нём-то всё зашибись и электроны красиво по орбитам летают), везде своя эзотерика. От биохимии до радиотехники - чуть только посложней паяния усилителя на TDAшечках, и сразу оно.
>Ну для объемных моделей с неэкзотическими материалами без пластиков всяких совпадение в единицы процента получить можно, если грубо не ошибаться в составлении модели. Конечно добротность так посчитать не получится - только экспериментально. Да и доводку резонатора тоже приходится делать экспериментально - зажимается диск в шлифмашинке (или приклеивается на воск) так, чтобы сильно добротность держалки не садили (ближе к центру). Снимается небольшой слой, полируется начерно, смывается грязь от полировки, петлю связи подносим и смотрим частоту. Потом доводим толщину по максимальной добротности (надо отклеивать), потом снова радиус, и так итеративно. Точно в частоту попасть сложно - раза с 5 начинаешь попадать, а через пол-года руки забывают и снова надо нарабатывать мастерство
И это всего-навсего про генераторы всего-навсего в несколько ГГц. С некоторыми, впрочем, интересными требованиями по фазовому шуму, например.
Ничем принципиально не отличается от мотания выходных трансформаторов, то же только в профиль - и про экспериментально, и про набивание руки.
Только вот с аудио всё принципиально сложнее, если говорить о музыке как о средстве передачи эмоций, а не частотных составляющих. Классический инженерный подход - он ведь в правильном выборе компромиссов, понимании чем пожертвовать и ради чего - чтобы изделие отвечало четким измеримым параметрам, указанным в ТЗ, и было оптимизировано по параметрам остальным.
А тут же до сих пор непонятно не то что какие углы срезать можно, а какие ни-ни, но и даже что вообще измерять (не говоря уж про как измерять), потому что никто не знает что на эту самую передачу эмоций влияет. С четными и нечетными гармониками чуть-чуть продвинулись, и то сколько десятков лет на то ушло, всё в спорах с воинствующими ПТУшниками такими же. Но один хрен до сих пор все официяльно всякую бессмыслицу типа THD+N мерюють, где всё в кучу.
С позиции ПТУшника с Википедией, наверное называется. Он же знает что надо было просто взять правильную TDAшечку и в симуляторе просимулировать, чего изобретать-то.
>По поводу шумов ДДС - я бы так однозначно не доверял фирменной документации от AD. Как пример - если у кого сохранились старые даташиты на 98хх серию - там на спектре шумов ДДС явно виден спектр шумов источника с ФАПЧ (пьедестал). Потом AD ткнули носом в это дело, и в новых даташитах они исправились.
>AD ошиблись в даташите
>вся эта ваша наука теперь ВСЁ
Неописуемый идиот. Сияющий монокристалл идиота без единого дефекта решётки.
>И это всего-навсего про генераторы всего-навсего в несколько ГГц
>Только вот с аудио всё принципиально сложнее, если говорить о музыке как о средстве передачи эмоций, а не частотных составляющих.
Я не нашел подходящей картинки.
>если говорить о музыке как о средстве передачи эмоций
Быстро, решительно и объективно квантифицировал мне эмоции и описал их матмодель. А то сдаётся мне ты какую-то субъективную метафизику пытаешься нам тут впарить с умным видом.
>"предположим что мы можем представить любой сигнал бесконечной суммой синусоид разной длительности, разных частот и амплитуд"
И какой-то определенной частоты у него нет? В принципе верно, я же смотрел на частоту основной гармоники. Попробую поискать, на каких факультетах у нас преподают теорию сигналов.
>>281516
Пила, вообще-то, не является сигналом с ограниченной полосой частот.
Я имел в виду на выходе АЦП, там она приобретет аналоговые свойства. Про сигналы с углами уже в курсе.
Получил плату вчера, неправильно выставил перемычки и полдня думал, почему у меня программа застряла в петле, потом прочитал про адресацию памяти и понял, что нахожусь в служебной области. С таймерами непонятно, завел внешний кварц копипастой с форумов, прерывания работают стабильно, но на частоте в 2 раза выше, чем максимальная частота шины. Завтра с АЦП разбираться буду.
посоны объясните что такое сигнальная функция и функция различия на примере синусоидальных сигналов
Заебали щелчки при перестройке частоты, которые возникают из-за разрывов фазы, потому что на выходе АЦП (5 на схеме) есть небольшая постоянка.
Как её подавить? Должно быть достаточно простейшего дифференцирующего звена, но я не допру, как его реализовать в цифровом виде.
Шина там 10 бит @ 50 Мспс, если что.
А какая АЧХ будет?
Надо типа пикрелейтед, чтоб завал был только в самом низу, а в остальном диапазоне ровная.
Хохо, черновая версия готова. Написал свою функцию на перемножение чисел с их сопряжениями, которая работает в одном массиве, штатными можно только сопрядить и перемножить отдельно, нужен еще один массив. 4096 значений обрабатываются с частотой 70Гц, в библиотеке есть преобразование для реальных чисел, которое знает, что мнимые части нулевые, с ним частота до 90 поднимается, но оно странно работает, надо разбираться. Охуительность внутричиповой отладки зашкаливает, написал функцию, которая выписывает данные в файл и черчу его гнуплотом, можно в 3 тыка мышкой смотреть, что пришло и что выходит.
Придумал сымитировать диодный мост, менять знак у "отрицательных" уровней. Частота увеличится в 2 раза и можно будет уменьшить окно выборки, но и точность автокорреляции уменьшится.
> проект по обработке аудио сигнала на мк
Начал проект. Не провёл предпроектные исследования.
Как ты себе это представляешь? Что за контроллер, какие требования к скорости обработки. Если на скорость пофиг, то берёшь любую реализацию на C и портируешь, не думаю что там много чего надо будет делать. Если же нужна скорость, то ни о каком C речи быть не может, нужна реализация оптимизированная под конкретный процессор. Вангую что у тебя ARM.
Няш, не злись, это студенческий проект по стеганографии. Пикрил- мой кит, ты был прав на счет ARM, просто возможно ты бы смог посоветовать библиотеки которые можно было бы переделать чтобы мой проц, ведь в ЦОС я новичок, и не знаю какие библиотеки нормальные, а какие-нет.
> библиотеки которые можно было бы переделать
Боюсь такого нет. Уточни какие алгоритмы тебе нужны, ищи реализацию на С, потом пробуй компилить, корректируй и будет тебе счастье. Но скорости не жди. И не думай, что найдёшь код, который заработает из коробки. Всё что я делал под ARM как правило из коробки не работает, т.к. часто пишут индусы, и ляпов там куча. Я так понял ты по сути скремблер хочешь.
Ну, способа два:
непрерывно брать семплы по 2^n елементов -> окно -> fft -> abs -> усреднение группы елементов
или просто делать эту ципочку десяток раз в секунду
Спасибо, бро, вроде разобрался.
>окно -> fft
А поясни еще за окно. Я правильно понимаю, что применение окна перед fft к сигналу так или иначе всегда вносит искажения в получаемый спектр. То есть даже синус на заданную частоту отображается более чем одной точкой спектра. Да и по всем частотам вносятся низкоуровневые искажения. То есть во всех этих SDR-софтиках отображается сигнал с подмешанными искажениями, которые стремяться минимизировать. Я вот так хочу сделать: взять Dolph–Chebyshev окно, для которого вроде как искажения по всему спектру имеют один уровень, и собственно все что ниже этого уровня - тупо не отображать. Насколько это норм подход?
Да, примерно правильно понимаешь.
Смотря для чего. Спектранализатор все же комфортнее наблюдать с ноиз-флор.
>Смотря для чего.
Лобаю свою SDR-софтинку, хочу отображать водопад в 256 точек на TFT дисплейчике. Сигнал - 8 бит приведенный к float, по идее ниже -48 Дб, только шумы будут, если я допустим Dolph–Chebyshev окно рассчитаю на уровень side-lobe (не знаю как этот термин переводится) в -60 Дб, то по идее полезный сигнал потерять не должен. Или другое окно взять, зная что ниже -48 Дб все искажения можно срезать?
>Сигнал - 8 бит приведенный к float
Нахуя?
> side-lobe (не знаю как этот термин переводится)
Боковой леписток
> -48 Дб все искажения можно срезать?
Я бы не называл это искажением. Окно на сигнал ты всегда накладываешь, из за того что количество точек ФФТ конечно. Это называют прямоугольное окно.
Посмотри какие окна можно выбрать в других СДР софтинах, и выбери то что лучше выглядит
>Нахуя?
Ну чтобы не пердолится с переполнением разрядности. И куча кода готового для плавающей запятой есть, который использую.
>Посмотри какие окна можно выбрать в других СДР софтинах, и выбери то что лучше выглядит
А что значит лучше выглядит? В моем понимании -синусоида заданной частоты и максимальной амплитуды должна отображаться одной точкой с уровнем в 0 Дб.
В идеале он должен попасть либо в одну точку либо в другую. Собственно количество точек и есть фактически разрешающая способность отображения спектра.
>Очень хуёвый сигнал.
Это еще нормальный. У меня есть более худшие.
>Откуда он?
Из обработки картинок.
1 возведи в квадрат
2 фнч с симметричной ИХ (чтобы фазу не пидорасить)
3 компаратор с нужным порогом
>Отпишешься потом?
Отпишусь через пару недель, когда освою книжку по dsp.
Если кто хочет потестить идеи для фильтра, то вот сигналы (верхний и нижний с пикчи):
https://pastebin.com/Qub5wKcL
Неблохо.
прохожу по изображению окном 3x3 пикселя, и записываю вектор из этих 3 пикселей?
Был для RGB изображения массив:
1) ширина-высота-3
Должен стать массив:
2) ширина-высота-9
Надо из оцифрованного сигнала обнаружить голос.
Выбор зависит от скорости передачи и требуемого метода синхронизации. Выбор метода синхронизации определяется отношением сигнал/шум и временем установления синхронизации.
И также:
>Или у тебя могут быть такие скорости что хватит атмеги.
>почему вы делитесь секретами и все тащите в интернет?
Потому что съеби на порашу, тупой мудак.
Автокорреляционная функция. Посчитай её, она покажет пик. Этот пик соответствует периоду присутствующего периодического сигнала.
Но считать её прямо на твоих гигагерцах, наверное, не требуется, и лучше сперва это дело гетеродинировать, оставив только ширину полосы, в которой сигнал изменяется.
Про автокорреляционную функцию очень дельный совет, спасибо, а без гетеродина тут наверное и не выйдет никак оцифровать сигнал, это же АЦП нужно с частотой дискретизации 5-6 ГГц, такие наверное не существуют даже
2.4 ГГц оцифровать?
Подожди малёхо, на настоящее время это чутка слишком быстро (без преобразований вниз).
>>304072
Тут дело в том что использовать стендовое оборудование не пойдёт, потому что в данный момент эта резонансная частота определяется на анализаторе визуально, но так как это вещь очень громоздкая стоит задача разработать электронное устройство, пока лучший вариант это с помощью гетеродина перейти на другую частоту, оцифровать, а вот каким образом дальше обрабатывать полученные данные идей нет(в схемотехническом плане),может кто-нибудь знает как в железе реализуются дпф или автокорреляционная функция? Или где почитать про это можно
Процессором. Или плис.
Что-то я сомневаюсь что автокорреляционная функция и ДПФ дадут разные результаты по отношению сигнал/шум на выходе. При этом, в быстром методе вычисления свертки используется БПФ.
>как в железе реализуются дпф или автокорреляционная функция?
Это от полосы сигнала зависит. Для относительно широкой полосы можно записывать отсчеты в статическое ОЗУ (через мультиплексор), а потом считать на любом микроконтроллере. Аналогично можно делать на FPGA с использованием nios или microblaze. Если частота дискретизации относительно небольшая, то хватит простого микроконтроллера.
Да, датчик представляет собой проходной резонатор, в котором присутствует резонансная частота, т.е. пик, эта частота равна 2.45 ГГц, в процессе работы эта резонансная частота не сильно меняется, максимум на +- 100 МГц, т.е. точность не очень большая. Ну и рабочие частоты лежат в диапазоне 2.35 ГГц - 2.55 ГГц.
вот требуется определить текущую резонансную частоту и выдать решение, соответствует ли она заданной изначально (2.45 ГГц) или отличается
Делаешь ГУН, например 600-800 mhz, дальше смешиваешь с опорным в 1800 mhz, пропускаешь через свой фильтр, детектируешь амплитуду после фильтра. Смотришь, при каком напряжении на ГУН-е появляется пик амплитуды.
Всё.
Приблизительно по этой схеме и работают анализаторы спектра
http://www.eas.uccs.edu/~mwickert/ece5615/
У этого же преподавателя есть другие потенциально интересные лекции:
http://www.eas.uccs.edu/~mwickert/index.shtml
русский язык не нужен
субтитры не нужны
Это копия, сохраненная 8 августа 2018 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.