Файл: Объектноориентированная парадигма имеет несколько принципов.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 03.02.2024

Просмотров: 16

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Объектно-ориентированная парадигма имеет несколько принципов:

Данные структурированы в виде объектов, каждый из которых имеет определенный тип, то есть принадлежит классу.

Занятия являются результатом формализации решаемой задачи и подчеркивают ее основные аспекты.

Логика работы с относящейся к ней информацией инкапсулирована внутри объекта.

Объекты в программе взаимодействуют друг с другом, обмениваясь запросами и ответами.

При этом объекты одного типа одинаково отвечают на одни и те же запросы.

Объекты могут быть организованы в более сложные структуры, например содержать другие объекты или наследоваться от одного или нескольких объектов.

Если вам интересно, что сам создатель Алан Кей думает об этой концепции, посмотрите здесь.

Python — типичный член семейства ООП с элегантной и мощной объектной моделью. От объектов в этом языке не спрячешься (ведь четные числа есть), так что давайте разберемся, как это все реализовано.

Дискретная математика и математическая логика лежат в основе любого изучения информационных систем. В настоящее время основы базовой математической подготовки специалистов в области информатики, программирования и информатики описаны достаточно четко: в курсах сосредоточены базовые разделы математики, имеющие прикладную направленность по информатике, программированию и ЭВМ. «Математическая логика», «Дискретная математика» и «Теория алгоритмов», являющиеся результатом алгоритмизации знаний, накопленных математикой [1, 3].

Бурное развитие дискретной математики обусловлено прогрессом вычислительной техники, необходимостью создания средств обработки и передачи информации, а также представления на ЭВМ различных моделей, которые по своей природе являются конечными структурами. Большинство задач исследования операций (распределение ресурсов, сетевое планирование и управление, диспетчеризация) описываются математическими моделями дискретного программирования [2, 9].

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

Пусть P — предикат, который выполняется для входных значений алгоритма A, а Q — предикат, содержащий условия, которым удовлетворяют выходные значения. Утверждение означает следующее: «если алгоритм A начинается с правильного значения P, он заканчивается с истинным значением Q». Предикат P называется предусловием, Q — постусловием.

В настоящее время обработкой звуковых сигналов занимается множество специалистов: инженеры, звукорежиссеры, звукорежиссеры, музыканты. Все они направлены на синтез аудиосигнала и (или) изменение параметров АП для выполнения инженерной (например, использование кодеков для сжатия аудиосигналов) и художественной (например, улучшения звучания композиции путем тщательной настройки отдельных частот) задачи. .

Существует множество аппаратных и программных средств для синтеза и обработки аудиосигналов. Есть как платный софт (Adobe Audition), так и бесплатный (Audacity, Sonic Visualizer) для работы со звуком. Ядром (математической основой) этих программных средств является дискретное преобразование Фурье, а также его частный случай — быстрое преобразование Фурье.

Кроме того, используются различные свойства и свойства преобразования Фурье, например, симметричность, заполнение нулями, смещение. Цель. Подробно описать дискретное преобразование Фурье, быстрое преобразование Фурье и свойства преобразования Фурье с помощью программной реализации. Напишите скрипт Python, который позволяет выполнять преобразование Фурье и получать графики, которые можно использовать для анализа аудиосигналов.

Результат работы. Реализована программная реализация свойств преобразования Фурье на языке Python. Мы будем использовать «ipython», оболочку, которая очень удобна для интерактивного вызова команд Python. Также используем «matplotpib» (для импорта в начале ipython пишем в терминале: «ipython-pylab»). Скрипт по-прежнему удобно писать в текстовом редакторе. В данном случае мы используем известный пакет numpy, а также несколько новых: функцию треугольника (triang из scipy.signal) и реализацию дискретного преобразования Фурье в python (fft из scipy.fftpack).



Если длина последовательности fft не равна 2n, то вместо быстрого преобразования Фурье (dft) выполняется дискретное преобразование Фурье (dft). Именно так работает эта команда. После выполнения преобразования Фурье с двумя последними строками кода мы получаем частотную и фазовую характеристики. Эта программа не выводит графики сразу, она учитывает все переменные. Вы можете построить графики, введя, например: plot(x) — отображает входную функцию (треугольник) plot(X) — отображает график преобразования Фурье (mX) — отображает график частотного спектра (pX) — отображает график фазового спектра Рассмотрим график частотного спектра треугольного сигнала (рис. 1). Он симметричен относительно нулевой точки отсчета. Первая часть — положительные значения (до 8 чисел), а вторая часть — отрицательные. Это означает, что четырнадцатое число на самом деле тоже число минус первое. На этом графике очень хорошо видно описанное выше свойство ДПФ — симметрия.
Построив частотный спектр, мы видим, что он не равен нулю, хотя должен быть. Дело в том, что треугольная функция не имеет центра вокруг нуля. Исправим это, внеся несколько модификаций в исполняемый скрипт, а именно добавив буфер быстрого преобразования Фурье (тот самый буфер, о котором я писал в свойствах преобразования Фурье): − fftbuffer=np.zeros(15) — создать буфер, заполненный нулями ; − fftbuffer[:8]=x[7:] — перемещает конец треугольного сигнала в первую часть буфера; − fftbuffer [8:]=x [:7] — перемещает начало треугольного сигнала в последнюю часть буфера; − X=fft(fftbuffer) — вычисляем преобразование Фурье стека, заполненного значениями функции треугольника.
Дискретная оптимизация — это раздел методологии оптимизации, который имеет дело с дискретными величинами, т.е. непрерывные функции. Он полностью повсеместен в различных приложениях, таких как финансовые инвестиции, планирование диеты, производственные процессы и отбор игроков или профессиональные спортивные расписания.

Линейное и (смешанное) целочисленное программирование. Это методы решения задач, которые можно сформулировать в терминах дискретной оптимизации.

Знание таких методов оптимизации чрезвычайно полезно для специалистов по данным и специалистов по машинному обучению (МО), поскольку дискретная и непрерывная оптимизация лежит в основе современных систем МО и ИИ, а также процессов бизнес-аналитики, управляемых данными.


Существует много доступных коммерческих инструментов оптимизации, но практический опыт программирования методов оптимизации бесценен.

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

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


Литература:


  1. Официальный сайт Соник Визуализатор для скачивания и получения документации.

  2. Режим доступа: http://www.sonicvisualiser.org/ Официальный сайт проекта Audacity для скачивания и получения документации.

  3. Режим доступа: http://www.audacityteam.org/ Официальный сайт пакета iPython.

  4. Режим доступа: http://www.ipython.org/ Электроакустика и звуковое вещание: Учебное пособие для вузов / Э. И. Вологдин, А. П. Ефимов,

  5. А. А. Фадеев, И. А. Алдошина, Г. П. Катунин, Л. Н. Кацнельсон, Ю. А. Ковалгин — 2007. – 872c. Цифровая обработка сигналов в трактах звукового вещания: Учебное пособие для вузов / О. Б. Попов,

  6. С. Г. Рихтер — 2007. – 341 с. Акустика: Справочник / А. П. Ефимов, А. В. Никонов, М. А. Сапожников,

  7. В. И. Шоров — 1989. – 336 с. Сайт Wikipedia. Discrete Fourier Transform.

  8. Режим доступа: https://en.wikipedia.org/wiki/Discrete_Fourier_transform Сайт Wikipedia. Fast Fourier Transform.

  9. Режим доступа: https://en.wikipedia.org/wiki/Fast_Fourier_transform Официальный сайт компании National Instruments предоставляющей платформы для проведения исследований, а также программный продукт LabVIEW.