Вход/Регистрация
Maple 9.5/10 в математике, физике и образовании
вернуться

Дьяконов Владимир Павлович

Шрифт:

Рис. 11.50. Моделирование колебаний струны по синусоидальному закону

Эту модель можно использовать и для моделирования колебания двух струн с более сложным характером начальной деформации. Такой случай представлен на рис. 11.51. Здесь представлен промежуточный кадр анимации.

Рис. 11.51. Пример моделирования колебаний двух струн

11.5. Моделирование в системе Maple + MATLAB

11.5.1. Выделение сигнала на фоне шумов

В главе 6 отмечались возможности пакета расширения системы Maple Matlab, дающего доступ к некоторым функциям мощной матричной системы MATLAB. Там мы рассмотрели применение функций линейной алгебры.

Среди небольшого числа доступных функций системы MATLAB в пакете Matlab нельзя не выделить особо функции быстрого прямого и обратного преобразований Фурье. В системе MATLAB эти функции реализуют наиболее эффективные алгоритмы быстрого преобразования Фурье (БПФ), обеспечивающие решение крупноразмерных задач (например, обработки сигналов, представленных векторами и матрицами больших размеров) в десятки раз быстрее, чем при обычных методах выполнения преобразований Фурье.

Покажем возможность применения БПФ на ставшем классическим примере — выделении спектра полезного сигнала на фоне сильных помех (файл dnmatlab). Зададим некоторый двухчастотный сигнал, имеющий 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);

График сигнала представлен на рис. 11.52.

Рис. 11.52. График исходного сигнала

Теперь с помощью генератора случайных чисел наложим на этот сигнал сильный «шум» (слово «шум» взято в кавычки, поскольку речь идет о математическом моделировании шума, а не о реальном шуме физической природы):

> 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);

Нетрудно заметить, что теперь форма сигнала настолько замаскирована шумом (рис. 11.53), что можно лишь с трудом догадываться, что сигнал имеет периодическую составляющую малой амплитуды. Эта высокочастотная составляющая сигнала скрыта шумом.

Рис. 11.53. Временная зависимость сигнала с шумом

Подвергнем полученный сигнал (в виде временной зависимости) прямому преобразованию Фурье, реализованному функцией fft:

> ft := fft(noisy_data):

> VectorOptions(ft, datatype);

complexg

Эта операция переводит задачу из временного представления сигнала в частотное, что позволяет использовать частотные методы анализа сигнала. Выделим, к примеру, действительную и мнимую части элементов вектора ft и проверим его размер:

> real_part := map(Re, ft): imag_part := map(Im, ft):

> dimensions(ft);

[1500]

Теперь выполним обычные операции вычисления спектра и зададим построение графика частотного спектра мощности сигнала:

> setvar("FT", ft);setvar("n", num);

> evalM("result = FT.*conj(FT)/n");

> pwr := getvar("result"):

> VectorOptions(pwr, datatype);

float8

> pwr_list := convert(pwr, list):

> pwr_points := [seq([(t-1)/Time[num], pwr_list[t]], t=1..num/2)]:

> plots[pointplot](pwr_points, style=line);

Спектрограмма сигнала представлена на рис. 11.54.

Рис. 11.54. Спектрограмма сигнала

Из нее отчетливо видно, что сигнал представлен двумя частотными составляющими с разной амплитудой. Таким образом, задача четкого выделения полезных компонент частотного спектра из зашумленного сигнала с применением средств системы MATLAB успешно решена.

11.5.2. Моделирование линейного осциллятора

Выше было не раз показано, что система Maple позволяет выполнять моделирование различных колебательных систем. Однако более эффективнее средства для такого моделирования содержатся в системе MATLAB. В частности, к ним относится решатель дифференциальных уравнений, вводимый функцией ode45. Ниже на простом примере мы рассмотрим организацию совместной работы систем Maple 9.5 и MATLAB 7 SP2 (это новейшая версия данной системы) на примере моделирования механического осциллятора (маятника).

  • Читать дальше
  • 1
  • ...
  • 242
  • 243
  • 244
  • 245
  • 246
  • 247
  • 248
  • 249
  • 250
  • 251

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: