Практическое занятие 1.6
Пространство и метрология сигналов. Корреляционный анализ
Дисциплина: Основы теории сигналов и систем
Раздел: 1 — Временное и частотное представление сигналов
Компетенция: ОПК-3.1-У1
Время: 3 часа
Цель работы
Освоить методы корреляционного анализа сигналов: вычисление автокорреляционной (АКФ) и взаимной корреляционной функции (ВКФ), анализ взаимной спектральной плотности, применение корреляции для практических задач АСУТП.
Краткие теоретические сведения
Автокорреляционная функция (АКФ)
АКФ определяет степень зависимости сигнала от своей же копии, сдвинутой на τ:
\[R_x(\tau) = \int_{-\infty}^{+\infty} x(t) \cdot x(t + \tau) \, dt\]Свойства АКФ:
R_x(0)= энергия сигналаR_x(τ) = R_x(-τ)— чётная функция|R_x(τ)| ≤ R_x(0)— максимум в нуле
Взаимная корреляционная функция (ВКФ)
ВКФ двух сигналов x(t) и y(t):
\[R_{xy}(\tau) = \int_{-\infty}^{+\infty} x(t) \cdot y(t + \tau) \, dt\]Применение в АСУТП:
- Обнаружение сигнала на фоне шума
- Измерение задержки распространения сигнала в канале
- Идентификация динамических систем
Взаимная спектральная плотность мощности (ВСП)
ВСП — преобразование Фурье от ВКФ:
\[S_{xy}(f) = \mathcal{F}\{R_{xy}(\tau)\}\]В MATLAB вычисляется через cpsd().
Задание
Часть 1. Автокорреляционный анализ (4 балла)
Дан сигнал:
x(t) = A·sin(2π·f₀·t) + n(t)
где A = 2, f₀ = 50 Гц, n(t) — белый гауссов шум с заданным SNR.
Требования:
- Сгенерировать сигнал
x(t)длительностьюT = 0.5 с, частота дискретизацииfs = 1000 Гц - Добавить белый гауссов шум: SNR = 10 дБ (используйте
awgn()) - Вычислить АКФ двумя способами:
- через
xcorr(x, 'normalized') - вручную через
ifft(|FFT(x)|²)
- через
- Построить графики: исходный зашумлённый сигнал + АКФ обоих методов
- Определить период сигнала по АКФ и сравнить с истинным
Выходные переменные для проверки:
period_acf— определённый период (Гц), точность ±0.01 сR_norm— вектор нормированной АКФ (xcorr)
Часть 2. Взаимная корреляция (4 балла)
Два сигнала с задержкой:
x(t) = прямоугольный импульс, длительность 0.1 с
y(t) = x(t - τ_d) + шум, τ_d = 0.05 с
Требования:
- Сгенерировать x(t) и y(t) с параметрами выше, SNR=15 дБ
- Вычислить ВКФ через
xcorr(x, y) - Найти задержку τ_d по положению максимума ВКФ
- Построить: x(t), y(t), ВКФ с отмеченным максимумом
- Оценить погрешность определения задержки
Выходные переменные для проверки:
delay_found— найденная задержка (сек), точность ±0.002 с
Часть 3. Взаимная спектральная плотность (2 балла)
- Для сигналов x(t) и y(t) из Части 2 вычислить ВСП через
cpsd() - Построить модуль и фазу ВСП
- Объяснить (комментарии в коде): что несёт информацию о задержке в ВСП?
Требования к оформлению
- Все вычисления — в файлах
pr1_6_student.m(заполнить шаблон) - Код должен запускаться без ошибок в MATLAB R2020b+
- Все графики: подписи осей, заголовков, легенды — на русском
- Комментарии к коду — обязательны
Система оценивания
| Критерий | Баллов |
|---|---|
| Часть 1: генерация сигнала + АКФ двумя методами | 3 |
| Часть 1: корректное определение периода | 1 |
| Часть 2: ВКФ и нахождение задержки | 3 |
| Часть 2: точность задержки ≤ ±0.002 с | 1 |
| Часть 3: ВСП + осмысленные комментарии | 2 |
| Итого | 10 |
Оценка по баллам: 9-10→отлично, 7-8→хорошо, 5-6→удовл., <5→неудовл.
Рекомендуемая литература
- Л1.1, Л1.2, Л1.3 (из РПД)
- MATLAB Documentation:
xcorr,cpsd,awgn - Разделы конспекта лекций: 1.5, 1.6