Как стать автором
Обновить
27
5
Анатолий @sci_nov

Пользователь

Отправить сообщение

Алгоритм долговременной генерации розового шума во временной области

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров1K

Тема данной статьи была навеяна публикацией Автокорреляционная функция фликкер-шума / Хабр, в которой даны теоретические оценки авто-корреляционной функции фликкер-шума. Однако, практическое сравнение было дано лишь для броуновского шума, потому что он тривиально получается из белого шума интегрированием. Проверка розового шума осталась под вопросом, потому что для его генерации во временной области требуется "расщепить" интегратор на два одинаковых каскада, что, как будет показано далее, нетривиально, а практическая реализация может быть лишь приближенной. Аналоговые способы (фактически, в частотной области) генерации розового шума оставляем за скобкой, потому что это отдельная тема: там используется свойство, что мощность шума одинакова в каждой октаве, то есть диапазоны частот f ... 2f равномощны. Сфокусируемся на цифровом способе генерации розового шума, то есть на алгоритме, причем во временной области. Обзор показал, что такой алгоритм, как ни странно, отсутствует, что и побудило к созданию такового.

Читать далее

Автокорреляционная функция фликкер-шума

Уровень сложностиСложный
Время на прочтение10 мин
Количество просмотров1.5K

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

Смотреть далее

Тестирование алгоритма деления больших чисел на С++ с использованием Python C API

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров3.8K

Ранее был предложен некоторый Алгоритм деления 2W‑битовых чисел с использованием операций над W‑битовыми числами. Для тестирования использовались целые числа языка С++, что не позволяло проверять, например, 128-битные целые числа. Однако, в язык Python встроена поддержка целых чисел неограниченной ширины (Big Integer), а также имеется API для вызова методов Python из программ на языке С/С++. Это позволяет протестировать разные алгоритмы с числами, в том числе деление, используя в качестве результата строковое представление чисел.

В данной статье расписаны шаги для использования Python C API в программе на языке С++, а также показан пример вызова оператора деления двух целых чисел с возвратом результата в виде строки С. Использовалась следующая программная конфигурация:

Читать далее

Алгоритм деления 2W-разрядных чисел с использованием операций с числами разрядностью W

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров2.3K

На примере 32-битных целых чисел рассматривается масштабируемый алгоритм деления, использующий числа с двукратно меньшей (16 бит) разрядностью. Для иллюстрации работоспособности алгоритма приведен код тестового приложения на языке С++.

Читать далее

Недвоичные регистры сдвига с линейной обратной связью модулированные пилообразным кодом

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров1.9K

Ранее, Full-stack шифрование на обобщенных регистрах с линейной обратной связью / Хабр (habr.com), рассматривались недвоичные регистры сдвига с линейной обратной связью (LFSR), обеспечивающие периоды T_q = {p}^{m-q} - 1, где q=0,1,....

Для увеличения периода комбинировались два регистра с периодами T_0 и T_1, что в итоге давало период

Читать далее

Full-stack шифрование на обобщенных регистрах с линейной обратной связью

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров2.2K

В теории кодирования хорошо известны регистры сдвига с линейной обратной связью (РСЛОС или LFSR -- Linear Feedback Shift Register), которые применяются, например, для:

Читать далее

Сглаживание цифровых сигналов

Время на прочтение12 мин
Количество просмотров95K

Введение


Данную статью меня заставил написать пост habrahabr.ru/post/183986, где не совсем правильно используется некоторый алгоритм сглаживания изображения.

Сразу перейдём к сути дела.

Математические модели цифровых сигналов — вектора и матрицы, элементами которых являются числа. Числа могут быть двоичными (бинарный сигнал), десятичными («обычный» сигнал) и так далее. Любой звук, любое изображение и видео могут быть преобразованы в цифровой сигнал1: звук — в вектор, изображение — в матрицу, а видео — в последовательный набор матриц. Поэтому цифровой сигнал — это, можно сказать, универсальный объект для представления информации.

Задача сглаживания — это, по сути, задача фильтрации сигнала от скачкообразных (ступенчатых) изменений. Считается, что полезный сигнал их не содержит. Ступенчатый сигнал за счёт множества резких, но небольших по амплитуде, перепадов уровня содержит высокочастотные составляющие, которых нет в сглаженном сигнале. Поэтому для некоторого алгоритма сглаживания в первую очередь необходимо определить как сильно ослабляются разные частотные составляющие. Другими словами, необходимо построить амплитудно-частотную характеристику соответствующего фильтра, иначе велика вероятность «нарваться» на артефакты.

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

Приведём пример «плохого» сглаживания


Казалось бы, обычное усреднение и сигнал на выходе должен быть «гладким». Но как определить, насколько он стал «глаже»? Не переборщили ли мы? А может быть некоторые коэффициенты выбрать не по 1/3? А может быть усреднить по пяти точкам? Как определить насколько ослабляются частотные составляющие в сигнале? Как найти свой (то есть для конкретной задачи) оптимум?
На эти и некоторые другие вопросы я постараюсь ответить так, чтобы «обычный» программист смог обосновать свой алгоритм, — надеюсь, не только алгоритм на тему «Сглаживание», так как идеи будут излагаться весьма общие, заставляющие думать самому
Читать дальше →

Информация

В рейтинге
1 002-й
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Backend Developer
Senior
От 180 000 ₽
Python
Git
Linux
Qt
C++ STL