Пакет математических вычислений MAPLE.



 

Математическое моделирование.

Гармонический синтез. Гармонический анализ.

 

Цель работы:

Ознакомление с алгоритмами моделирования сигналов (гармонический синтез) тригонометрическими полиномами. Изучение алгоритмов аппроксимации дискретных и непрерывных периодических сигналов тригонометрическими полиномами (гармонический анализ). Применение этих алгоритмов для аппроксимации и спектрального анализа (Амплитудно-частотные характеристики сигналов). Выделение гармоник (фильтрация в частотной области) по построенному спектру.

 

Порядок выполнения задания

 

Ознакомиться с учебными программами гармонического синтеза и построения амплитудно-частотных характеристик периодических сигналов.

Освоить процедуры построения характеристик фильтров АЧХ и ФЧХ с помощью графических возможностей пакета MAPLE.

 

1. Вызвать учебную программу (файл «АЧХ_ФЧХ.mws»), изучить процедуру вычисления коэффициентов Фурье для дискретного периодического сигнала.

2. Построить графики АЧХ и ФЧХ для заданных десяти вариантов сигналов (файлы «Варианты_сигналов.doc» с формулами сигналов и «рисунки.doc» с их графиками).

3. Построить графики синтезированных сигналов по заданным формулам коэффициентов (файл «синтез.mws»).

Образец выполнения задания (файл «АЧХ_ФЧХ. mws » из папки lab 9):

 

Гармонический анализ и AЧХ сигналов

> restart;with(plots):pp:=(x,y)->[x,y];

Warning, the name changecoords has been redefined

 

Процедура построения суммы Фурье на отрезке периодичности [0: :]

> Fourier:=proc (n,X,Y,N,tau) local k,g,j,p,q; global a,b;

for k from 0 to n do

p:=0;q:=0;

for j from 1 to N do

p:=p+evalf(Y[j]*cos(k*X[j]*2*Pi/tau));

q:=q+evalf(Y[j]*sin(k*X[j]*2*Pi/tau));

end; a[k]:=2/N*p;b[k]:=2/N*q;

#print(k,a[k],b[k]);

end:;

end:;

Построение тригонометрического полинома по коэффициентам

> Trig:=proc(t,tau) local z,k;

z:=a[0]/2+sum(a[k]*cos(k*t*2*Pi/tau)+b[k]*sin(k*t*2*Pi/tau),k=1..n);

end;

 

Зададим различные варианты сигнала

> y1:=proc(x) local z;z:=piecewise(x<-Tau/4,0,x<0,-1,x<Tau/4,1,0);end;

> y2:=proc(x) local z;z:=piecewise(x<-Tau/8,0,x<0,-1,x<Tau/8,1,0);end:;

> y3:=proc(x) local z;z:=piecewise(x<-Tau/16,0,x<0,-1,x<Tau/16,1,0);end:;

> y4:=proc(x) local z;z:=piecewise(x<0,0,x<Tau/4,1,0);end:;

> y5:=proc(x) local z;z:=piecewise(x<0,0,x<Tau/8,1,0);end:;

> y6:=proc(x) local z;z:=piecewise(x<0,0,x<Tau/16,1,0);end:;

> y7:=proc(x) local z;z:=piecewise(x<0,0,x);end:;

> y8:=proc(x) local z;z:=x;end:;

> y9:=proc(x) local z;z:=piecewise(x<0,0,1);end:;

> y10:=proc(x) local z;z:=x^2;end:;

> y11:=proc(x) local z;z:=3*sin(x*2*Pi/Tau)+0.2*cos(15*x*2*Pi/Tau);end;

Выбираем вариант расчета, заменив вызов функции y11(x) в операторах ниже на название функции выбранного варианта

Вычисление коэффициентов тригонометрического полинома для заданной функции y(t)

на периоде Tau с числом узлов Nt и числом коэффициентов полинома n

> n:=20;Tau:=2;Nt:=50;

 

> a:=array(0..n):b:=array(0..n):

> h:=evalf(Tau/Nt);

 

> X:=array(0..Nt):;Y:=array(0..Nt):;

> #==для проверки вычислений можно включить печать, убрав знак # у print-a

> for j from 0 to Nt do

X[j]:= -Tau/2+evalf(j*h);

t:=X[j];Y[j]:= y11(t);# здесь название функции

#print(j,X[j],Y[j]);

end:

> RS:=zip(pp,X,Y):

> Rs:=plot(RS,-Tau/2..Tau/2,color=brown,style=point,symbol=cross):

Это график функции на сетке. Затем обращение к процедуре вычисления коэффициентов

> display(Rs);

 

> Fourier(n,X,Y,Nt,Tau):;

> t:='t';RT:=plot(Trig(t,Tau),t=-Tau/2-0.1..Tau+0.1,color=blue):

Построение совместного графика дискретного сигнала и приближающего полинома

> display(RT,Rs);

 

Графики спектральных параметров

> k:='k';c:=array(0..n);phi:=array(0..n);num:=array(0..n);

> for k from 0 to n do

c[k]:=evalf(abs(a[k]+I*b[k])):

phi[k]:=evalf(argument(a[k]+I*b[k]));

num[k]:=k;

#print(k,c[k],phi[k]);

end:;

Для печати коэффициентов триг. полинома нужно убрать решетку в операторе PRINT

> Risc:=zip(pp,num,c):

> Risphi:=zip(pp,num,phi):

> with(plottools):# присоединение пакета графики

 

> arr:=array(0..n);

> for i from 0 to n do

arr[i]:=arrow([i,0],[i,c[i]],0.2,0.2,0,color=black);

end:;

> Ar:=convert(arr,list):;

Rsym:=plot(Risc,style=point,symbol=circle,thickness=2,color=black):

> display(Ar,Rsym);

 

Это АЧХ, на графике которой виден вклад первой и пятнадцатой гармоник.

Эдесь надо посмотреть варианты аппроксимации, меняя выше строки с Nt=50 на Nt=20,

а n =15, 20, 25

Затем задать новую функцию y(x) (другой номер варианта)

Для нее повторить вычисления с построением АЧХ

Затем задать функцию y11 вида y=3*sin(t) (см. ниже формулу) и для нее построить АЧХ

Осознать, что получилось

Построить функцию y=3*sin(t) + 0.2 cos(15t) и проделать вычисления при разных n, меняя гармонику 15t и задавать значения n =15, 20, 25.

График ФЧХ

> plot(Risphi, numpoints=500);

 

Частотный фильтр для варианта № 11

Убираем 15-ю составляющую

> a[15]:=0:;b[15]:=0:;

> t:='t';RT0:=plot(Trig(t,Tau),t=-2.1..2+0.1,thickness=2,color=brown):

> display(RT,Rs,RT0);

>

>  

 

Литература

1. Фаронов В.В. DELPHI. Программирование на языке высокого уровня. Учебник для вузов.—СПб.:Питер, 2005, 640с.

2. Немнюгин С. Turbo Pascal. Программирование на языке высокого уровня. Учебник для вузов. 2-е изд.—СПб.:Питер, 2005, 544с.

3. Немнюгин С. Turbo Pascal. Практикум. Учебное пособие. 2-е изд.—СПб.:Питер, 2004, 272с.

4. Васюков Н.Д. Практикум по основам программирования.Язык Паскаль:учебное пособие/ Н.Д.Васюкова, В.В.Тюляева.-М.:Высш. Шк.,1991

5. Д. Мак-Кракен, У. Дорн. Численные методы и программирование на Фортране. – М.:Мир, 1977.

7. Хемминг Р.В. Численные методы. – М.: Наука, 1972.

8. Калиткин Н.Н. Численные методы. – М.: Наука, 1978

9. Абрамов В.Г., Трифонов Н.П., Трифонова Г.Н. Введение в язык ПАСКАЛЬ. – М.: Наука, 1988.

10. Дьяконов В.П. Справочник по алгоритмам и программам на языке бейсик для персональных ЭВМ. – М.:Наука, 1987.

11. Мудров А.Е. Численные методы для ПЭВМ на языках БЕЙСИК, ФОРТРАН, ПАСКАЛЬ. – Томск. 1991.

12. Дьяконов В.,П. Maple 7: учебный курс. – СПб.: Питер,2002.

13. Сдвижков О.А. Математика на компьютере: Maple 8. – М.: СОЛОН-Пресс, 2003.

14. Говорухин В.Н., Цибулин В.Г. Компьютер в математическом исследовании. Учебный курс. 2001


Дата добавления: 2018-10-27; просмотров: 236; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!