https://github.com/drapegnik/what-the-signal
📡 Digital Signal Processing project, FCSN, BSUIR
https://github.com/drapegnik/what-the-signal
bsuir bsuir-labworks digital-signal-processing dsp labs studies
Last synced: 5 months ago
JSON representation
📡 Digital Signal Processing project, FCSN, BSUIR
- Host: GitHub
- URL: https://github.com/drapegnik/what-the-signal
- Owner: Drapegnik
- License: mit
- Created: 2019-10-15T14:33:32.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2022-12-10T06:43:02.000Z (over 3 years ago)
- Last Synced: 2025-07-13T09:01:27.707Z (about 1 year ago)
- Topics: bsuir, bsuir-labworks, digital-signal-processing, dsp, labs, studies
- Language: JavaScript
- Homepage: https://git.io/bsuir
- Size: 2.14 MB
- Stars: 4
- Watchers: 0
- Forks: 0
- Open Issues: 28
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## What The Signal
BSUIR lab project on DSP.
> Forked from [@kabbi/what-the-signal](https://github.com/kabbi/what-the-signal)
## Samples
### no files

### simple signal

### two FFT harmonics

### colored lines

### simple FFT

### many charts

### histogram chart

## Tasks
> Контрольная работа по цифровой обработке сигналов и экспериментальных данных для магистрантов.
- Разработать проект и реализовать программное средство для обработки цифровых сигналов.
- В качестве сигналов для обработки используются вибрационные сигналы, полученные при исследовании технического состояния механизмов с вращательным движением и представленные в единицах виброускорения.
- При реализации проекта обеспечить выполнение следующих функций:
1. **Работа с файловой системой для выбора группы файлов или файла для обработки.**
> Файл, содержащий имена файлов, входящих в состав группы имеет расширение `txt`. Файлы, содержащие данные, имеют расширение `bin`. Если производится групповой выбор файлов, то для анализа считываются все файлы группы.
2. **Отображение графиков временных реализаций.**
- Возможны два варианта отображения графиков:
- а) для каждого сигнала формируется свое поле отображения (одновременно может анализироваться до 16 сигналов);
- б) графики всех сигналов отображаются в одном поле отображения разным цветом.
- Отображение полей графиков масштабируется при масштабировании окна отображения.
- Необходимо предусмотреть:
- возможность автоматического выбора предела шкалы;
- возможность задания (изменения) верхнего и нижнего пределов шкал для всех графиков одновременно и для каждого графика в отдельности.
- На графиках отображаются шкалы.
- Для отображения длинных временных реализаций должен быть реализован скользящий просмотр с возможностью задания числа точек смещения графика за одну итерацию.
- Для просмотра текущих значений графика реализуется курсор, положение которого управляется оператором. Для каждого зафиксированного положения курсора отображаются значения времени и амплитуды.
3. **Вычисление параметров сигналов.**
- Вычисление параметров сигнала производится на конечном числе дискретных точек `N`, выбираемых из ряда значений кратных степени двойки: `64`, `128`, `256`, `512`, `1024`, `2048`, `4096`, `8192`, `16384`, и т.д.
- Начальное значение N выбирается из параметров прочитанного файла.
- Вычисляются максимальное и минимальное значение сигнала, азмах колебаний, среднее квадратическое значение (**СКЗ**), **пик-фактор**.
- Вычисление параметров производится начиная с точки, соответствующей началу отображения сигнала в поле графика (условная нулевая точка).
- Вычисленные параметры отображаются на графике или в специальном поле.
4. **Определение амплитудного спектра сигнала.**
- Осуществляется на том же числе точек `N`, что и вычисление параметров сигнала. Вычисление амплитудного спектра производится с использованием алгоритма дискретного или быстрого преобразования Фурье.
- Амплитудные спектры вычисляются для каждого из исследуемых сигналов и отображаются в виде графиков в отдельном окне. Для отображения спектров может быть реализован трех координатный график.
- Для просмотра и определения значений отдельных спектральных составляющих реализуется графический курсор. Для каждого зафиксированного положения курсора отображаются значения амплитуды и частоты.
- Амплитудные спектры вычисляются для исходных сигналов или предварительно обработанных сигналов.
5. **Цифровая фильтрация исходных сигналов.**
- Может быть реализована низкочастотная, полосовая и высокочастотная фильтрация.
- Реализуется методом частотных выборок (исходный сигнал – **БПФ** – удаление ненужных частотных составляющих – **ОБПФ** – отфильтрованный сигнал).
- Задаются значения частот среза для фильтра **НЧ** и **ВЧ**, или нижняя и верхняя частота фильтрации для полосового фильтра.
> В другом окне на графике отображается отфильтрованный сигнал и параметры сигнала.
6. **Интегрирование и двойное интегрирование исходного сигнала.**
- Осуществляется переход от единиц виброускорения к единицам виброскорости и виброперемещения.
- Может производиться во временной или частотной области.
> В другом окне на графике отображается отфильтрованный сигнал и параметры сигнала.
7. **Построение гистограммы распределения амплитуд исследуемого сигнала.**
- Задаются: диапазон амплитуд для анализа и количество интервалов.
- Дополнительно вычисляются **эксцесс** и **асимптота**.
- В другом окне на графике отображается гистограмма распределения амплитуд исследуемого и параметры сигнала.
8. **Удаление низкочастотного дрейфа из сигнала с применение полинома первой или второй степени.**
> В другом окне на графике отображается обработанный сигнал и параметры сигнала.
9. **Вейвлет преобразование исходного сигнала.**
- Задаются тип вейвлета и центральная частота частотной характеристики вейвлета.
- При реализации вейвлет преобразования учесть переходной процесс на начальном и конечном этапах вейвлет преобразования.
> В другом окне на графике отображается обработанный вейвлетом сигнал и параметры сигнала.
10. **Определение амплитудно-фазовых параметров сигнала.**
- Выполняется для группы сигналов (два и более), один из которых является сигналом от датчика фазовой метки.
- Вычисляются амплитуды и начальные фазы для первой, второй, третьей, ..., десятой (а также половинной и одна четвертой) оборотных составляющих. Количество определяемых оборотных составляющих задается пользователем.
- Также задается число оборотов (временной интервал), на которых производится вычисление параметров. Начальная точка обработки определяется пользователем на графике. На графике или в специальном поле выводятся полученные численные значения.
- Выполняется скользящий амплитудно-фазовый анализ. Для этого дополнительно задается временной интервал для его проведения и шаг по времени для осуществления следующего вычисления. Шаг по времени может задаваться в единицах количества оборотов.
- Полученные результаты строятся в виде графических трендов амплитуд оборотных составляющих и начальных фаз и отображаются в другом окне.
11. **Построение полосового спектра.**
- Задаются частотный диапазон анализа и границы поддиапазонов. Например: `10`, `25`, `50`, `100`, `200`, `400`, `700`, `1000 Гц`. Максимальное число поддиапазонов – `30` (может быть меньше).
- Далее определяется **СКЗ** сигнала в каждом из поддиапазонов. Для этого вначале выполняется **ДПФ** или **БПФ**, а затем по полученным амплитудам спектральных составляющих вычисляется **СКЗ** в каждом из поддиапазонов.
- Полученный полосовой спектр отображается в виде графика в другом окне. Предусмотреть возможность движения курсора по графика для отображения **СКЗ** сигнала в каждой частотной полосе.
12. **Разложение сигнала на периодическую и шумоподобную составляющие.**
- Задаются значения частотных составляющих, которые пользователь относит к периодической составляющей. Эти значения могут задаваться в единицах частоты или в относительных единицах относительной частотной составляющей, которая принимается за единичную.
- Вычисляются параметры (амплитуды и начальные фазы) выбранных составляющих и по ним синтезируется периодическая составляющая сигнала.
- Из исходного сигнала вычитается периодическая составляющая и получается шумоподобная составляющая.
- Вычисляются параметры и строятся графики отдельно для периодической и шумоподобной составляющих.
13. **Аппроксимация затухающих сигналов.**
- Интервал затухания сигнала аппроксимируется суммой затухающих косинусоид плюс постоянная составляющая.
- В качестве критерия близости можно использовать среднее квадратическое отклонение модельного сигнала от исходного, определяемое выражением
- Интервал аппроксимируемого сигнала задается пользователем.
14. Для графиков амплитудных спектров реализовать дополнительно возможность отображения гафиков с логарифмической осью ординат.
- Опорное значение для вычисления значений в `дБ`:
- `1*10^-6` - для виброускорения
- `1*10^-5` - для виброскорости и виброперемещения
15. Предусмотреть возможность сохранения графического образа окна обработки в цветном и черно-белом форматах и его портирование в программы работы с графикой и текстовый редактор `WORD`.
> Выполняемые пункты контрольной работы для каждого обучающегося задаются преподавателем.
### Формат фала данных
> Файл, содержащий последовательность цифровых кодов смоделированного сигнала, имеет расширеннее `bin`.
> Файл имеет формат типа бинарный.
Описание формата файла для сигнала:
1. сигнатура файла - `TMB1`: 4 байта, текст
2. Количество каналов: 4 байта, целое (Количество каналов по которым принимался сигнал)
3. Размер выборки на один канал: 4 байта, целое (число дискретных точек на один временной интервал приема данных (блок даных) `N`)
4. Количество спектральных линий: 4 байта, целое (меньше или равно `N/2`)
5. Частота среза: 4 байта, целое (заданная частота среза **ФНЧ** при приеме данных)
6. Частотное разрешение: 4 байта, вещественное (шаг по частоте между спектральными линиями при анализе, `Гц`)
7. Время приёма блока данных: 4 байта, вещественное (время за которое принимался блок данных, величина обратная частотному разрешению)
8. Общее время приёма данных: 4 байта, целое (время приема всей реализации в секундах)
9. Количество принятых блоков (задано пользователем): 4 байта, целое (то что было задано пользователем при приеме данных)
10. размер данных: 4 байта, целое (количество дискретных отсчетов в файле даных)
11. число принятых блоков(принято системой): 4 байта, целое (реально принятое число блоков)
12. максимальное значение принятых данных: 4 байта, вещественное (максимальное значение сигнала)
13. минимальное значение принятых данных: 4 байта, вещественное (минимальное значение сигнала)
14. далее идут данные в формате 4 байта, вещественное число для одного дискретного значения сигнала.