- •Аннотация
- •Введение
- •1. Листинг программы
- •1.1. Ввод параметров исходного псевдослучайного сигнала и параметров для корректировки его дискретных значений
- •1.2. Генерация псевдослучайного исходного сигнала
- •1.3. Фильтрация значений относительно ско
- •1.4. Создание дискретного фильтра
- •1.5. Дискретная свертка скорректированного сигнала с фильтром
- •1.6. Вычисление характеристик отфильтрованного сигнала
- •1.7. Визуализация данных сигнала на экране пользователя
- •2. Итоговый график сигнала отдельным рисунком
- •Заключение
- •Список использованных источников
- •Приложение Код программы
1.3. Фильтрация значений относительно ско
Для корректировки значений сигнала нужно найти в сигнале выбросы — то есть значения, которые слишком сильно отклоняются от среднего. Они могут искажать статистические характеристики сигнала и влиять на результаты дальнейшей обработки. Выбросами считаются все элементы X(n), для которых выполняется условие: |X(n)−m| > threshold. Для замены используется правило, основанное на стандартном отклонении (СКО): все значения, выходящие за пределы K*σ от среднего, заменяются на m. Программа вычисляет порог выброса threshold как произведение коэффициента K на стандартное отклонение σ: threshold = K*σ, где значения K = 1, 2, 3 соответствуют интервалам, в которых лежит 68%, 95% и 99,7% данных соответственно (правило трёх сигм). Затем создаётся логический вектор outliers, где true, если значение отклоняется от m больше, чем на threshold. Эти значения заменяются на m, создавая сигнал X_corrected(n), которому ранее были присвоены значения Х(n).
Рисунок 3 – Поиск и замена выбросов
После замены выбросов среднее значение сигнала остаётся близким к m; уменьшается дисперсия, так как экстремальные значения заменяются на среднее, и гистограмма скорректированного сигнала становится более узкой и сосредоточенной вокруг m.
1.4. Создание дискретного фильтра
Для выполнения свёртки с сигналом был выбран фильтр в виде первого полупериода косинусоиды. Косинусоидальный импульс обеспечивает более мягкую частотную характеристику по сравнению с прямоугольным или треугольным импульсом, что уменьшает эффекты наложения спектров. Генерируется массив равномерно распределённых значений от 0 до π: cos_half = linspace(0, pi, N_cos_half), где N_cos_half – длина полупериода косинусоиды, которому присваивается значение, равное 35. Это значение выбрано экспериментально как компромисс между достаточной гладкостью фильтра (больше точек — точнее аппроксимация косинусоиды) и разумной вычислительной сложностью (слишком длинный фильтр увеличивает время свёртки).
Рисунок 4 – Создание дискретного фильтра
1.5. Дискретная свертка скорректированного сигнала с фильтром
Затем выполняется
дискретная линейная свертка
откорректированного сигнала X_corrected.
В данном коде она реализована с помощью
функции conv(a,
b,
shape),
где a
и b
– векторы, используемые в свертке, а
shape
– форма сигнала, которая будет отображаться
на графике; здесь используется “full”
для полного отображения на графике,
включая перемножение тех элементов
массивов, в котором полупериод косинусоиды
участвует частично. Полученные значения
свёртки присваиваются. Формула дискретной
линейной свертки:
,
где xm
– m-ный
элемент входного сигнала, hk-m
– импульсная характеристика дискретного
фильтра.
Рисунок 5 – Свертка скорректированного сигнала с импульсом
1.6. Вычисление характеристик отфильтрованного сигнала
Затем происходит вычисление основных статистических характеристик: mean — среднее значение; median — медиана; var — дисперсия; kurtosis — эксцесс (показатель остроты пика графика распределения).
Рисунок 6 – Статистические характеристики до и после взаимодействия
