* Данный текст распознан в автоматическом режиме, поэтому может содержать ошибки
1174
Аналитическое и спектральное моделирование
15.5. Моделирование в системе Maple + MATLAB
15.5.1. Выделение сигнала на фоне шумов
Среди небольшого числа доступных функций системы MATLAB [98–118] в паке те Matlab нельзя не выделить особо функции быстрого прямого и обратного пре образований Фурье (БПФ). Покажем возможность применения БПФ на ставшем классическим примере – выделении спектра полезного сигнала на фоне сильных помех. Зададим некоторый двухчастотный сигнал, имеющий 1500 точек отсчета:
> num := 1500: Time := [seq(.03*t, t=1..num)]: data := [seq((3.6*cos(Time[t]) + cos(6*Time[t])), t=1..num)]: plots[pointplot](zip((x,y)->[x,y],Time,data), style=line);
График сигнала представлен на рис. 15.50.
Рис. 15.50. График исходного сигнала
Теперь с помощью генератора случайных чисел наложим на этот сигнал силь ный «шум» (слово «шум» взято в кавычки, поскольку речь идет о математическом моделировании шума, а не о реальном шуме физической природы):
> tol := 10000: r := rand(0..tol): noisy_data := [seq(r()/(tol)*data[t], t=1..num)]: plots[pointplot](zip((x,y)->[x,y],Time,noisy_data), style=line);
Нетрудно заметить, что теперь форма сигнала настолько замаскирована шу мом (рис. 15.51), что можно лишь с трудом догадываться, что сигнал имеет перио дическую составляющую малой амплитуды. Эта высокочастотная составляющая сигнала скрыта шумом. Подвергнем полученный сигнал (в виде временной зависимости) прямому преобразованию Фурье, реализованному функцией fft: