Чтение онлайн

на главную

Жанры

Maple 9.5/10 в математике, физике и образовании

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

Шрифт:

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

Рис. 11.55 показывает документ Maple в котором решается эта задача. Уравнение маятника записывается средствами Maple в виде файла oscil.m в формате М-файлов системы MATLAB. Записываются также системные переменные, задающие массу маятника М, его затухание С и упругость K. Затем с помощью функции ode45 (решение ОДУ методом Рунге-Кутта-Фельберга порядка 4–5) находится временная зависимость отклонения маятника. Она построена внизу рисунка и отражает типичные затухающие синусоидальные колебания с заданными граничными условиями.

Рис. 11.55. Пример моделирования механического осциллятора в системе Maple + MATLAB

Разумеется, для такой относительно простой задачи привлечение такой мощной и громоздкой системы как MATLAB имеет только познавательный смысл. Эта задача, что было показано выше, легко решается средствами системы Maple. Однако технология совместного использования новейших систем Maple 9.5/10 и MATLAB 7.0 SP2 на этом примере хорошо видна и может использоваться пользователями для решения существенно более сложных задач математического моделирования

11.6. Моделирование эффекта Доплера

11.6.1. Визуализация волн от источника звука

Рассмотрим хорошо известный физический эффект Доплера, возникающий при движении источника звука с частотой fu, относительно приемника звука. При этом меняется частота звука, воспринимаемая приемником

Будем считать приемник звука неподвижным, т.е. vn=0, а источник перемещающимся со скоростью vu. Скорость звука с на частоте 440 Гц составляет около 340 м/с. Движение в направлении распространения звуковой волны соответствует положительной скорости, а в противоположном — отрицательной. Описанный ниже документ находится в файле dopier (переработанный пример Sylvain Muise размещенный на Интернет-сайте корпорации MapleSoft).

Ниже представлена процедура позволяющая создавать анимационные эффекты перемещения источника звука (маленькая окружность) с разной скоростью и наблюдать картину создания и распространения звуковых волн:

> restart:with(plots):with(plottools):

> wave := proc(n, initSpeed, finalSpeed)

 local i, li, j, circles, se, source, slope:

 slope := (finalSpeed - initSpeed) / n:

 for i from 0 to n*4 do

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

Внешняя Зона

Жгулёв Пётр Николаевич
8. Real-Rpg
Фантастика:
фэнтези
попаданцы
рпг
5.00
рейтинг книги
Внешняя Зона

Матабар

Клеванский Кирилл Сергеевич
1. Матабар
Фантастика:
фэнтези
5.00
рейтинг книги
Матабар

Титан империи 7

Артемов Александр Александрович
7. Титан Империи
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Титан империи 7

Инферно

Кретов Владимир Владимирович
2. Легенда
Фантастика:
фэнтези
8.57
рейтинг книги
Инферно

Кодекс Охотника. Книга XII

Винокуров Юрий
12. Кодекс Охотника
Фантастика:
боевая фантастика
городское фэнтези
аниме
7.50
рейтинг книги
Кодекс Охотника. Книга XII

Фараон

Распопов Дмитрий Викторович
1. Фараон
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Фараон

Отмороженный 8.0

Гарцевич Евгений Александрович
8. Отмороженный
Фантастика:
постапокалипсис
рпг
аниме
5.00
рейтинг книги
Отмороженный 8.0

Кодекс Охотника. Книга ХХ

Винокуров Юрий
20. Кодекс Охотника
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга ХХ

Элита элит

Злотников Роман Валерьевич
1. Элита элит
Фантастика:
боевая фантастика
8.93
рейтинг книги
Элита элит

Новый Рал 8

Северный Лис
8. Рал!
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Новый Рал 8

Возвышение Меркурия. Книга 4

Кронос Александр
4. Меркурий
Фантастика:
героическая фантастика
боевая фантастика
попаданцы
5.00
рейтинг книги
Возвышение Меркурия. Книга 4

Смерть может танцевать 4

Вальтер Макс
4. Безликий
Фантастика:
боевая фантастика
5.85
рейтинг книги
Смерть может танцевать 4

Не ангел хранитель

Рам Янка
Любовные романы:
современные любовные романы
6.60
рейтинг книги
Не ангел хранитель

Релокант. Вестник

Ascold Flow
2. Релокант в другой мир
Фантастика:
фэнтези
попаданцы
рпг
5.00
рейтинг книги
Релокант. Вестник