• Как писать на ассемблере в 2021 году

      Несмотря на наличие множества языков различной степени высокоуровневости, сегодня ассемблер не потерял своей актуальности и в индексе TIOBE находится на почётном 10-ом месте (на февраль 2021), обогнав такие модные языки как Go и Rust. Одна из причин его привлекательности – в простоте и максимальной близости к железу; с другой стороны, программирование на ассемблере всё ещё может рассматриваться как искусство и даёт совершенно особые эмоции.


      Читать дальше →
    • Как нарисовать звезду (и не только) в полярных координатах

        Вопрос о формуле для многоугольника в полярных координатах регулярно возникает на тематических ресурсах — и так же регулярно остаётся без внятного ответа. В лучшем случае попадается решение через функцию остатка от деления — что не является «чистым» с математической точки зрения, поскольку не позволяет производить над функцией аналитические преобразования. Видимо, настоящие математики слишком заняты решением проблем тысячелетия и поисками простого доказательства теоремы Ферма, чтобы обращать внимание на подобные банальные задачи. К счастью, в этом вопросе воображение важнее знания, и для решения этой задачи не нужно быть профессором топологических наук — достаточно знания школьного уровня.
        Дальше больше картинок
      • Оконные функции своими руками

        • Tutorial
        В цифровой обработке сигналов оконные функции широко используются для ограничения сигнала во времени и их названия хорошо известны всем, кто так или иначе сталкивался с дискретным преобразованием Фурье: Ханна, Хэмминга, Блэкмана, Харриса и прочие. Но являются ли они достаточными, можно ли придумать что-то новое и есть ли в этом смысл?

        В этой статье мы рассмотрим вывод оконной функции с новыми свойствами, используя Wolfram Mathematica. Предполагается также, что читатель имеет общие представления о цифровой обработке сигналов в контексте обсуждаемого вопроса и как минимум знаком со статьёй из википедии.


        Читать дальше →
        • +23
        • 5.1k
        • 3
      • Нюансы современной медицины

          Современная медицина достигла значительных успехов – и сегодня умеет лечить такие болезни, о существовании которых 100 лет назад никто и не подозревал. Однако получить грамотную квалифицированную врачебную помощь по-прежнему непросто – а всё потому, что есть нюансы. О некоторых из этих нюансах и пойдёт речь в этой статье.
          Читать дальше →
        • Испытания Posit по-взрослому. Спектральный анализ

            Обсуждения достоинств и недостатков нового революционного формата с плавающей запятой Posit продолжаются. Следующим аргументом в дискуссии стало утверждение, что на самом деле задача Posit — это компактно хранить данные, а вовсе не использоваться в вычислениях; при этом сами вычисления делаются в арифметике Quire с бо́льшей точностью, которая также входит в стандарт Posit.

            Ну, хранить так хранить. Что вообще значит — «хранить» числа после вычислений, выполненных с бо́льшей точностью, чем допускает формат хранения? Это значит — округлять, а округлять значит вносить погрешности. Погрешности можно оценивать разными способами — и чтобы не повторяться, сегодня мы используем спектральный анализ с помощью преобразования Фурье.
            Читать дальше →
          • Испытания Posit по-взрослому

              На Хабре уже было несколько статей (раз, два, два с половиной), посвящённых новому формату чисел с плавающей запятой Posit, авторы которого преподносят его его как превосходящий стандартный IEEE 754 float по всем параметрам. У нового формата нашлись и критики (раз, два) утверждающих, что недостатки Posit перевешивают его достоинства. Но что, если у нас действительно появился новый революционный формат, а критика просто вызвана завистью и некомпетентностью критикующих? Что же, лучший способ выяснить это — взять и повычислять самостоятельно.
              Читать дальше →
            • Нужно больше разных Blur-ов

              • Tutorial
              Размытие изображения посредством фильтра Gaussian Blur широко используется в самых разных задачах. Но иногда хочется чуть большего разнообразия, чем просто один фильтр на все случаи жизни, в котором регулировке поддаётся только один параметр — его размер. В этой статье мы рассмотрим несколько других реализаций размытия.


              Читать дальше →
            • Проектирование оконных функций, суммирующихся в единицу с заданным уровнем перекрытия

              • Tutorial
              Существует ряд задач, в которых длительный по времени сигнал разбивается на сегменты, каждый из которых обрабатывается по отдельности. В частности, такой подход используется для анализа сигнала с помощью оконного преобразования Фурье, или наоборот, при синтезе; а также при спектральной обработке типа удаления шума, изменения темпа, нелинейной фильтрации, сжатии аудиоданных и других.

              Сам процесс разбиения математически представляется умножением на некоторую весовую (оконную) функцию со смещением. Для самого простого окна — прямоугольного — это может выглядеть так:

              Исходный сигнал:



              Разбиения:


              Читать дальше →
            • Вывод функции кривой для плавного ограничения параметров, сигналов и не только в Wolfram Mathematica

              • Tutorial
              Существует ряд задач, в которых диапазон выходных значений должен быть ограничен, в то время как входные данные этого гарантировать не могут. Помимо вынужденных ситуаций, ограничение сигнала может быть и целенаправленной задачей — например, при компрессии сигнала или реализации эффекта «overdrive».

              Самая простая реализация ограничения — это принудительная установка в некоторое значение при превышении определённого уровня. Например, для синусоиды с возрастающей амплитудой это будет выглядеть так:



              В роли ограничителя здесь выступает функция Clip, в качестве аргумента которой передаётся входной сигнал и параметры ограничения, а результатом функции является выходной сигнал.

              Посмотрим на график функции Clip отдельно:
              Читать дальше →
            • Амплитудная модуляция на пальцах

                В недавней статье «Амплитудная модуляция произвольного сигнала» её автор довольно сумбурно попытался представить своё понимание формирования спектра при амплитудной модуляции. Но отсутствие иллюстраций и избыток математики с привлечением интегральных преобразований помешало сообществу понять мысли автора и оценить статью по достоинству; в то время как тема это достаточно простая — и рассмотреть которую мы попробуем ещё раз, на этот раз с картинками и привлечением Wolfram Mathematica.

                Итак, идея амплитудной модуляции состоит в том, чтобы передавать низкочастотный сигнал — голос или музыку — модулируя высокочастотный (несущий) сигнал, многократно превышающий слышимый диапазон и занимающий узкую полосу частот в радиоэфире. Сама модуляция осуществляется простым умножением сигнала на несущий:



                Читать дальше →
                • +26
                • 26.9k
                • 4
              • Что не так с методом Бейтса

                Упражнения по методу Бейтса – хорошо известная методика улучшения зрения, альтернативная постоянному ношению очков. Некоторое время назад у меня был положительный опыт применения этой методики; и тем сильнее было удивление от того, что в википедии эта методика считается ненаучной, а упоминание позитивного опыта её применения в обсуждении одной из статей вызвало резкое отторжение и неприятие.

                При ближайшем рассмотрении аргументы в доказательство ненаучности метода оказались подменой понятий, искажением одних фактов и игнорированием других – им и будет посвящена эта статья.

                Читать дальше →
              • Анализ аудио-кодека ROAD

                Не так давно на Хабре в статье «Применение нелинейной динамики и теории Хаоса к задаче разработки нового алгоритма сжатия аудио данных» был анонсирован принципиально новый аудио-кодек с пятью невиданными ранее уникальными свойствами. Подобная формулировка вызвала интерес и желание немного разобраться, что к чему.

                Далее будут рассмотрены заявленные уникальные свойства и произведено несколько тестовых измерений.
                Читать дальше →