Объектно-ориентированное программирование
2 000 руб. за проект
ВАЖНО! В первую очередь, это работа по построению объектно-ориентированной архитектуры, и только во вторую - работающий код. Начните с создания классов с пустыми методами-заглушками, посмотрите как они будут взаимодействовать, какие данные каждому для работы нужны, раскидайте внутри классов поля, сделайте конструкторы. И только после того, как у вас будет готовый скелет (еще раз, БЕЗ наполнения методов и БЕЗ фактической работы, достаточно написать в каждом print('Generator->signal'), т.е. писать что за метод и какого класса вызывается. И только после того, как вам окончательо станет понятно что за чем следует и как это выстроить, начинайте наполнять кодом.
- Проект по моделированию прохождения сигнала через цепь должен содержать каждый отдельный класс в своем файле.
- Класс генератора простых сигналов имеет функционал:
- создания сигнала каждой из заданных форм: гармонический, треугольный, ШИМ с заданной скважностью, пила;
- параметры: частота (период), частота дискретизации, длительность (как в сэмплах, так и в секундах), амплитуда;
- возвращать как весь сигнал (всю длительность в виде массива), так и отдельную его выборку по номеру сэмпла или по отметке времени (во втором случае - ближайшую);
- иметь функцию-генератор, возвращающий по запросу следующую выборку сигнала (yield).
- Класс-наследник генератора простых сигналов, содающий амлитудно-моделированный сигнал:
- огибающая задана в виде заранее заданного набора выборок (цифровой сигнал) с указанной частотой дискретизации этих выборок;
- частота модулирующего сигнала или задается, или автоматически подбирается (по умолчанию можно уменьшать частоту огибающей в 20 раз относительно заполнения);
- возвращать как весь сигнал (всю длительность в виде массива), так и отдельную его выборку по номеру сэмпла или по отметке времени (во втором случае - ближайшую);
- иметь функцию-генератор, возвращающий по запросу следующую выборку сигнала (yield).
- Класс анализатора сигнала должен:
- строить график по полученному временнОму представлению сигнала;
- строить его спектр Фурье;
- возвращать дисперсию, среднее, медианное, минимальное и максимальное значения, размах сигнала, отображать по запросу их в виде горизонтальных линий на графике;
- строить примерный (прогнозируемый) сигнал с помощью обратного преобразования Фурье, используя первые несколько максимальных гармоник (частот) спектра Фурье (по умолчанию - 5, но можно задать любое).
- Класс цепи должен уметь работать как с сигналом в виде массива, так и с последовательно приходящими выборками (из методов-генераторов yield):
- пропускать сигнал без изменений (bypass);
- преобразовывать его указанным в п.6 алгоритмом;
- хранить входной и выходной сигналы в буфере (заполнять массив), по умолчанию - без ограничения размера (весь), но с возможностью этот размер задать (хранить только последние пришедшие и ушедшие);
- возвращать как полным массивом, так и генератором yield.
- Задание: свертка (convolve) сигнала с гармоническим, заданной амплитуды и частоты;
- Файлы
В заказе есть исполнитель
При переводе заказа из архивного в актуальный, текущий исполнитель будет снят с задачи.
Выберите тип сделки
С безопасной сделкой вы всегда сможете вернуть средства, если что-то пойдет не так. С простой сделкой вы самостоятельно договариваетесь с исполнителем об оплате и берете на себя решение конфликтов.