Работа вам нужна срочно. Не волнуйтесь, уложимся!
- 22423 авторов готовы помочь тебе.
- 2402 онлайн
Записать математическое выражение плотности распределения, огибающей узкополосного нормального случайного процесса. Изобразить графики возможных реализаций узкополосных нормальных случайных процессов с выбранной (заданной) дисперсией.
Предмет: Теория вероятностей и математическая статистика
Раздел: Случайные процессы, узкополосные нормальные случайные процессы
Узкополосный нормальный случайный процесс — это такой случайный процесс, который можно представить как модулированный гармонический сигнал с медленно меняющейся огибающей и фазой. Его можно записать в виде:
X(t) = A(t) \cos(2\pi f_c t + \phi(t))
где:
Если X(t) — нормальный стационарный процесс, то его огибающая A(t) и фаза \phi(t) также являются случайными величинами.
Пусть X(t) — узкополосный нормальный процесс. Его можно представить через ортогональные компоненты:
X(t) = X_c(t) \cos(2\pi f_c t) - X_s(t) \sin(2\pi f_c t)
где X_c(t) и X_s(t) — взаимно некоррелированные нормальные процессы с одинаковой дисперсией \sigma^2.
Огибающая определяется как:
A(t) = \sqrt{X_c^2(t) + X_s^2(t)}
Так как X_c(t) и X_s(t) — независимые нормальные случайные величины N(0, \sigma^2), то A(t) имеет распределение Рэлея:
p_A(a) = \frac{a}{\sigma^2} \exp\left(-\frac{a^2}{2\sigma^2}\right), \quad a \ge 0
Это и есть плотность распределения огибающей узкополосного нормального процесса.
Для моделирования реализаций узкополосного процесса с заданной дисперсией можно использовать следующую процедуру:
import numpy as np
import matplotlib.pyplot as plt
# Параметры
f_c = 10 # несущая частота, Гц
sigma = 1 # стандартное отклонение
T = 1 # длительность сигнала, сек
fs = 1000 # частота дискретизации
t = np.linspace(0, T, int(T*fs))
# Генерация ортогональных компонент
X_c = np.random.normal(0, sigma, size=t.shape)
X_s = np.random.normal(0, sigma, size=t.shape)
# Узкополосный процесс
X = X_c * np.cos(2 * np.pi * f_c * t) - X_s * np.sin(2 * np.pi * f_c * t)
# Огибающая
A = np.sqrt(X_c**2 + X_s**2)
# Построение графиков
plt.figure(figsize=(12, 6))
plt.subplot(2, 1, 1)
plt.plot(t, X)
plt.title("Реализация узкополосного нормального процесса")
plt.xlabel("Время (с)")
plt.ylabel("X(t)")
plt.subplot(2, 1, 2)
plt.plot(t, A, color='red')
plt.title("Огибающая узкополосного процесса")
plt.xlabel("Время (с)")
plt.ylabel("A(t)")
plt.tight_layout()
plt.show()
Если тебе нужно построить несколько реализаций или изменить параметры (например, дисперсию), просто повтори генерацию с другими значениями \sigma.
Готов помочь, если нужно объяснить подробнее!