{"id":16099149,"url":"https://github.com/drapegnik/what-the-signal","last_synced_at":"2026-02-15T00:30:48.036Z","repository":{"id":37201063,"uuid":"215320849","full_name":"Drapegnik/what-the-signal","owner":"Drapegnik","description":"📡 Digital Signal Processing project, FCSN, BSUIR","archived":false,"fork":false,"pushed_at":"2022-12-10T06:43:02.000Z","size":2241,"stargazers_count":4,"open_issues_count":28,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-07-13T09:01:27.707Z","etag":null,"topics":["bsuir","bsuir-labworks","digital-signal-processing","dsp","labs","studies"],"latest_commit_sha":null,"homepage":"https://git.io/bsuir","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Drapegnik.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-10-15T14:33:32.000Z","updated_at":"2024-10-24T07:04:42.000Z","dependencies_parsed_at":"2023-01-26T04:16:27.594Z","dependency_job_id":null,"html_url":"https://github.com/Drapegnik/what-the-signal","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Drapegnik/what-the-signal","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Drapegnik%2Fwhat-the-signal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Drapegnik%2Fwhat-the-signal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Drapegnik%2Fwhat-the-signal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Drapegnik%2Fwhat-the-signal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Drapegnik","download_url":"https://codeload.github.com/Drapegnik/what-the-signal/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Drapegnik%2Fwhat-the-signal/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29461911,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-14T22:42:09.113Z","status":"ssl_error","status_checked_at":"2026-02-14T22:42:05.053Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bsuir","bsuir-labworks","digital-signal-processing","dsp","labs","studies"],"created_at":"2024-10-09T18:26:07.698Z","updated_at":"2026-02-15T00:30:48.020Z","avatar_url":"https://github.com/Drapegnik.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"## What The Signal\n\nBSUIR lab project on DSP.\n\n\u003e Forked from [@kabbi/what-the-signal](https://github.com/kabbi/what-the-signal)\n\n## Samples\n\n### no files\n\n![screen shot 2017-11-28 at 1 57 31 pm](https://user-images.githubusercontent.com/1160550/33340818-2e0775a4-d48e-11e7-9171-6c9a24ee9a96.png)\n\n### simple signal\n\n![screen shot 2017-11-28 at 12 38 07 am](https://user-images.githubusercontent.com/1160550/33340807-2c3666c2-d48e-11e7-827e-cec4962f7fbd.png)\n\n### two FFT harmonics\n\n![screen shot 2017-11-28 at 12 37 37 am](https://user-images.githubusercontent.com/1160550/33340808-2c8ed06e-d48e-11e7-854f-086f69549a07.png)\n\n### colored lines\n\n![screen shot 2017-11-28 at 12 39 08 am](https://user-images.githubusercontent.com/1160550/33340810-2d0c65a6-d48e-11e7-9f37-2dbd09fbf306.png)\n\n### simple FFT\n\n![screen shot 2017-11-28 at 12 38 28 am](https://user-images.githubusercontent.com/1160550/33340815-2d8b448e-d48e-11e7-91df-f53c06dfa1a6.png)\n\n### many charts\n\n![screen shot 2017-11-28 at 12 40 19 am](https://user-images.githubusercontent.com/1160550/33340820-2e565f5c-d48e-11e7-9473-f3e4bd4cc13d.png)\n\n### histogram chart\n\n![](https://res.cloudinary.com/dzsjwgjii/image/upload/v1571155755/Screen_Shot_2019-10-15_at_19.06.01_bghrfk.png)\n\n## Tasks\n\n\u003e Контрольная работа по цифровой обработке сигналов и экспериментальных данных для магистрантов.\n\n- Разработать проект и реализовать программное средство для обработки цифровых сигналов.\n- В качестве сигналов для обработки используются вибрационные сигналы, полученные при исследовании технического состояния механизмов с вращательным движением и представленные в единицах виброускорения.\n- При реализации проекта обеспечить выполнение следующих функций:\n\n1. **Работа с файловой системой для выбора группы файлов или файла для обработки.**\n\n   \u003e Файл, содержащий имена файлов, входящих в состав группы имеет расширение `txt`. Файлы, содержащие данные, имеют расширение `bin`. Если производится групповой выбор файлов, то для анализа считываются все файлы группы.\n\n2. **Отображение графиков временных реализаций.**\n\n   - Возможны два варианта отображения графиков:\n     - а) для каждого сигнала формируется свое поле отображения (одновременно может анализироваться до 16 сигналов);\n     - б) графики всех сигналов отображаются в одном поле отображения разным цветом.\n   - Отображение полей графиков масштабируется при масштабировании окна отображения.\n   - Необходимо предусмотреть:\n     - возможность автоматического выбора предела шкалы;\n     - возможность задания (изменения) верхнего и нижнего пределов шкал для всех графиков одновременно и для каждого графика в отдельности.\n     - На графиках отображаются шкалы.\n     - Для отображения длинных временных реализаций должен быть реализован скользящий просмотр с возможностью задания числа точек смещения графика за одну итерацию.\n     - Для просмотра текущих значений графика реализуется курсор, положение которого управляется оператором. Для каждого зафиксированного положения курсора отображаются значения времени и амплитуды.\n\n3. **Вычисление параметров сигналов.**\n\n   - Вычисление параметров сигнала производится на конечном числе дискретных точек `N`, выбираемых из ряда значений кратных степени двойки: `64`, `128`, `256`, `512`, `1024`, `2048`, `4096`, `8192`, `16384`, и т.д.\n   - Начальное значение N выбирается из параметров прочитанного файла.\n   - Вычисляются максимальное и минимальное значение сигнала, азмах колебаний, среднее квадратическое значение (**СКЗ**), **пик-фактор**.\n   - Вычисление параметров производится начиная с точки, соответствующей началу отображения сигнала в поле графика (условная нулевая точка).\n   - Вычисленные параметры отображаются на графике или в специальном поле.\n\n4. **Определение амплитудного спектра сигнала.**\n\n   - Осуществляется на том же числе точек `N`, что и вычисление параметров сигнала. Вычисление амплитудного спектра производится с использованием алгоритма дискретного или быстрого преобразования Фурье.\n   - Амплитудные спектры вычисляются для каждого из исследуемых сигналов и отображаются в виде графиков в отдельном окне. Для отображения спектров может быть реализован трех координатный график.\n   - Для просмотра и определения значений отдельных спектральных составляющих реализуется графический курсор. Для каждого зафиксированного положения курсора отображаются значения амплитуды и частоты.\n   - Амплитудные спектры вычисляются для исходных сигналов или предварительно обработанных сигналов.\n\n5. **Цифровая фильтрация исходных сигналов.**\n\n   - Может быть реализована низкочастотная, полосовая и высокочастотная фильтрация.\n   - Реализуется методом частотных выборок (исходный сигнал – **БПФ** – удаление ненужных частотных составляющих – **ОБПФ** – отфильтрованный сигнал).\n   - Задаются значения частот среза для фильтра **НЧ** и **ВЧ**, или нижняя и верхняя частота фильтрации для полосового фильтра.\n     \u003e В другом окне на графике отображается отфильтрованный сигнал и параметры сигнала.\n\n6. **Интегрирование и двойное интегрирование исходного сигнала.**\n\n   - Осуществляется переход от единиц виброускорения к единицам виброскорости и виброперемещения.\n   - Может производиться во временной или частотной области.\n     \u003e В другом окне на графике отображается отфильтрованный сигнал и параметры сигнала.\n\n7. **Построение гистограммы распределения амплитуд исследуемого сигнала.**\n\n   - Задаются: диапазон амплитуд для анализа и количество интервалов.\n   - Дополнительно вычисляются **эксцесс** и **асимптота**.\n   - В другом окне на графике отображается гистограмма распределения амплитуд исследуемого и параметры сигнала.\n\n8. **Удаление низкочастотного дрейфа из сигнала с применение полинома первой или второй степени.**\n\n   \u003e В другом окне на графике отображается обработанный сигнал и параметры сигнала.\n\n9. **Вейвлет преобразование исходного сигнала.**\n\n   - Задаются тип вейвлета и центральная частота частотной характеристики вейвлета.\n   - При реализации вейвлет преобразования учесть переходной процесс на начальном и конечном этапах вейвлет преобразования.\n     \u003e В другом окне на графике отображается обработанный вейвлетом сигнал и параметры сигнала.\n\n10. **Определение амплитудно-фазовых параметров сигнала.**\n\n    - Выполняется для группы сигналов (два и более), один из которых является сигналом от датчика фазовой метки.\n    - Вычисляются амплитуды и начальные фазы для первой, второй, третьей, ..., десятой (а также половинной и одна четвертой) оборотных составляющих. Количество определяемых оборотных составляющих задается пользователем.\n    - Также задается число оборотов (временной интервал), на которых производится вычисление параметров. Начальная точка обработки определяется пользователем на графике. На графике или в специальном поле выводятся полученные численные значения.\n    - Выполняется скользящий амплитудно-фазовый анализ. Для этого дополнительно задается временной интервал для его проведения и шаг по времени для осуществления следующего вычисления. Шаг по времени может задаваться в единицах количества оборотов.\n    - Полученные результаты строятся в виде графических трендов амплитуд оборотных составляющих и начальных фаз и отображаются в другом окне.\n\n11. **Построение полосового спектра.**\n\n    - Задаются частотный диапазон анализа и границы поддиапазонов. Например: `10`, `25`, `50`, `100`, `200`, `400`, `700`, `1000 Гц`. Максимальное число поддиапазонов – `30` (может быть меньше).\n    - Далее определяется **СКЗ** сигнала в каждом из поддиапазонов. Для этого вначале выполняется **ДПФ** или **БПФ**, а затем по полученным амплитудам спектральных составляющих вычисляется **СКЗ** в каждом из поддиапазонов.\n    - Полученный полосовой спектр отображается в виде графика в другом окне. Предусмотреть возможность движения курсора по графика для отображения **СКЗ** сигнала в каждой частотной полосе.\n\n12. **Разложение сигнала на периодическую и шумоподобную составляющие.**\n\n    - Задаются значения частотных составляющих, которые пользователь относит к периодической составляющей. Эти значения могут задаваться в единицах частоты или в относительных единицах относительной частотной составляющей, которая принимается за единичную.\n    - Вычисляются параметры (амплитуды и начальные фазы) выбранных составляющих и по ним синтезируется периодическая составляющая сигнала.\n    - Из исходного сигнала вычитается периодическая составляющая и получается шумоподобная составляющая.\n    - Вычисляются параметры и строятся графики отдельно для периодической и шумоподобной составляющих.\n\n13. **Аппроксимация затухающих сигналов.**\n\n    - Интервал затухания сигнала аппроксимируется суммой затухающих косинусоид плюс постоянная составляющая.\n    - В качестве критерия близости можно использовать среднее квадратическое отклонение модельного сигнала от исходного, определяемое выражением\n    - Интервал аппроксимируемого сигнала задается пользователем.\n\n14. Для графиков амплитудных спектров реализовать дополнительно возможность отображения гафиков с логарифмической осью ординат.\n    - Опорное значение для вычисления значений в `дБ`:\n      - `1*10^-6` - для виброускорения\n      - `1*10^-5` - для виброскорости и виброперемещения\n15. Предусмотреть возможность сохранения графического образа окна обработки в цветном и черно-белом форматах и его портирование в программы работы с графикой и текстовый редактор `WORD`.\n\n\u003e Выполняемые пункты контрольной работы для каждого обучающегося задаются преподавателем.\n\n### Формат фала данных\n\n\u003e Файл, содержащий последовательность цифровых кодов смоделированного сигнала, имеет расширеннее `bin`.\n\n\u003e Файл имеет формат типа бинарный.\n\nОписание формата файла для сигнала:\n\n1. сигнатура файла - `TMB1`: 4 байта, текст\n2. Количество каналов: 4 байта, целое (Количество каналов по которым принимался сигнал)\n3. Размер выборки на один канал: 4 байта, целое (число дискретных точек на один временной интервал приема данных (блок даных) `N`)\n4. Количество спектральных линий: 4 байта, целое (меньше или равно `N/2`)\n5. Частота среза: 4 байта, целое (заданная частота среза **ФНЧ** при приеме данных)\n6. Частотное разрешение: 4 байта, вещественное (шаг по частоте между спектральными линиями при анализе, `Гц`)\n7. Время приёма блока данных: 4 байта, вещественное (время за которое принимался блок данных, величина обратная частотному разрешению)\n8. Общее время приёма данных: 4 байта, целое (время приема всей реализации в секундах)\n9. Количество принятых блоков (задано пользователем): 4 байта, целое (то что было задано пользователем при приеме данных)\n10. размер данных: 4 байта, целое (количество дискретных отсчетов в файле даных)\n11. число принятых блоков(принято системой): 4 байта, целое (реально принятое число блоков)\n12. максимальное значение принятых данных: 4 байта, вещественное (максимальное значение сигнала)\n13. минимальное значение принятых данных: 4 байта, вещественное (минимальное значение сигнала)\n14. далее идут данные в формате 4 байта, вещественное число для одного дискретного значения сигнала.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdrapegnik%2Fwhat-the-signal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdrapegnik%2Fwhat-the-signal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdrapegnik%2Fwhat-the-signal/lists"}