An open API service indexing awesome lists of open source software.

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

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

![screen shot 2017-11-28 at 1 57 31 pm](https://user-images.githubusercontent.com/1160550/33340818-2e0775a4-d48e-11e7-9171-6c9a24ee9a96.png)

### simple signal

![screen shot 2017-11-28 at 12 38 07 am](https://user-images.githubusercontent.com/1160550/33340807-2c3666c2-d48e-11e7-827e-cec4962f7fbd.png)

### two FFT harmonics

![screen shot 2017-11-28 at 12 37 37 am](https://user-images.githubusercontent.com/1160550/33340808-2c8ed06e-d48e-11e7-854f-086f69549a07.png)

### colored lines

![screen shot 2017-11-28 at 12 39 08 am](https://user-images.githubusercontent.com/1160550/33340810-2d0c65a6-d48e-11e7-9f37-2dbd09fbf306.png)

### simple FFT

![screen shot 2017-11-28 at 12 38 28 am](https://user-images.githubusercontent.com/1160550/33340815-2d8b448e-d48e-11e7-91df-f53c06dfa1a6.png)

### many charts

![screen shot 2017-11-28 at 12 40 19 am](https://user-images.githubusercontent.com/1160550/33340820-2e565f5c-d48e-11e7-9473-f3e4bd4cc13d.png)

### histogram chart

![](https://res.cloudinary.com/dzsjwgjii/image/upload/v1571155755/Screen_Shot_2019-10-15_at_19.06.01_bghrfk.png)

## 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 байта, вещественное число для одного дискретного значения сигнала.