Фурье анализ и синтез периодических функций

Автор работы: Пользователь скрыл имя, 11 Мая 2012 в 01:31, курсовая работа

Краткое описание

В данной курсовой работе будет рассмотрена теория разложения трех основных видов функций: конечный дискретный ряд, непрерывная периодическая функция, непрерывная апериодическая функция. Также будет показано, как для каждого из трех типов сигналов можно найти коэффициенты разложения Фурье и как по полученному разложению построить график функции.
В конце работы будет представлено приложение, в котором будут приведены примеры как прямых, так и обратных преобразований Фурье.

Содержание

1. Введе-ние……………………………………………………………………..3
2. Роль анализа Фурье в прикладной математике и технических нау-ках….4
3. Конечные ряды Фурье………………………………………………………6
4. Комплексные ряды Фу-рье…………………………………………………10
5. Ряды Фурье для непрерывного сигнала…………………………………..11
6. Ряды Фурье для сигналов на бесконечном интерва-ле…………………..12
7. Теорема Парсева-ля………………………………………………………...15
8. Быстрые преобразования Фурье…………………………………………..17
9. Заключе-ние...……………………………………………………………….19
10. Приложение №1………………………………………………………….20

Вложенные файлы: 1 файл

Фурье анализ и синтез периодических функций (курсач)мой.doc

— 1.58 Мб (Скачать файл)

 

   Задача: 1) найти коэффициенты Фурье; 2) построить линейчатый спектр Фурье; 3) произвести синтез функции.

  1. Найдем коэффициенты Фурье для 12 измерений по формулам:

,

                       

,
.

Например, коэффициент  , получается следующим образом:

Найдем  подобным образом остальные коэффициенты и запишем в табл. 3.

   Затем исходя из теоремы Парсеваля найдем вклад каждой гармоники в среднеквадратичное значение по формуле    , где и также запишем полученные результаты в табл. 3.

   Получим: 
 

   Таблица 3

 
Источник
Вклад в среднеквадратичное значение
Среднее значение 0 -3.667 0 3.667 13.44
Основная  гармоника 1 -0.475 5.584 5.604 62.81
2-я  гармоника 2 -2.250 -7.073 7.422 110.17
3-я  гармоника 3 -1.250 -0.250 1.275 3.25
4-я  гармоника 4 -0.667 0.577 0.882 1.56
5-я  гармоника 5 -1.775 -0.334 1.806 6.52
6-я  гармоника 6 -3.500 0 3.500 12.25
Полное  количество         210.00

 

2) Для  того, чтобы построить линейчатый спектр Фурье нужно нанести на график среднюю мощность гармоники против частоты этой гармоники. Построим график по данным таблицы 3, получим:

 

Рис. 2

3) Синтез  функции является операцией противоположной  преобразованию Фурье. Для того чтобы произвести синтез, воспользуемся формулой обратного преобразования Фурье для конечного дискретного ряда и запишем следующую функцию: С помощью математического пакета MathCAD построим график данной функции, получим:

или от времени:

Рис. 3

Для сравнения  можно построить график данной функции  по данным табл. 2 в Microsoft Excel, получим:

Рис. 4

   Таким образом, мы показали, что с помощью  разложения функции на сумму косинусов и синусов можно получить довольно точное ее представление.    

   Пример  №2. Найдем коэффициенты Фурье для данных представленных первом примере с помощью быстрых преобразований Фурье.  

Данные таковы:

1 2 3 4 5 6 7 8 9 10 11 12
-6 -20 -28 -8 -1 7 -20 -6 -7 14 19 12

 

Расщепление на два дает следующие ряды:

1 2 3 4 5 6
-6 -28 -1 -20 -7 19
-20 -8 7 -6 14 12

 

Расщепление и на два дает ряды: 

1 2 3
-6 -1 -7
-28 -20 19
-20 7 14
-8 -6 12

 

Преобразование Фурье рядов , , , вычислить уже гораздо проще. Каждое из них состоит из трех членов, как показано ниже.

Значение  преобразования Фурье Номер гармоники 
0 1 2
-4.6667 -1.1667+i1.4433 -1.1667-i1.4433
-9.6667 14.3333+i2.3093 14.3333-i2.3093
0.3333 6.8333+i7.7940 6.8333-i7.7940
-0.6667 6.3333+i0.5773 6.3333-i0.5773

 

С помощью формулы (7.5) вычислим преобразования Фурье  , ( ). Например:

Преобразования  получается аналогично, получим таблицу: 

Значение  преобразования Фурье Номер гармоники 
0 1 2 3 4 5
-7.1667 6.2500

+i1.0103

8.0833

-i1.2990

-2.5000 8.0883

+i1.2990

6.2500

-i1.0103

-0.1666 1.5000

+i5.1960

4.8333

+i4.6187

-0.5000 4.8333

-i4.6187

1.5000

-i5.1960


 

Совмещая эти  значения по формуле (7.5), получи окончательное  преобразование .  Например:

Полное преобразование имеет вид

 

Пример №3. Дана непрерывная периодическая функция ,

разложим ее в ряд Фурье и построим график исходя из этого разложения.

  1. Построим график данной функции:

Рис. 5

   2) Найдем коэффициенты Фурье:

   3) Запишем ряд Фурье:

   

   4) Построим график функции исходя из разложения в ряд Фурье, получим:

   

   Рис. 6

   Приложение  №2

   Программа №1. (Вычисление коэффициентов Фурье для конечного дискретного ряда).  

   //---------------------------------------------------------------------------

   #include <clx.h>

   #include <conio.h>

   #include <iostream.h>

   #include <math.h>

   #include <stdio.h>

   #pragma hdrstop

   //---------------------------------------------------------------------------

   #pragma argsused

   int main(int argc, char* argv[])

   {

      cout<<"Programma vichiseniay koefficientov Fyrie";

      int N=12;

      cout<<"\nVvedite kollichestvo dannix N: ";

      cin>>N;

      int n=N/2;

      int *r=new int[N];

      cout<<"\nr: ";

      for(int i=0; i<=N-1;i++)

      {

         r[i]=-n+i;

         cout<<r[i]<<" ";

      }

      cout<<"\nm: ";

      for(int i=0;i<=n;i++) cout<<i<<" ";

      int *znach=new int[N];

      for(int i=0; i<=N-1;i++)

      {

         cout<<"\nVvedite "<<i+1<<" znachenie ";

         cin>>znach[i];

      }

      double var=0;

      double *A=new double[n+1];

      cout<<"\nKoefficient A[m]:";

      for(int m=0;m<=n;m++)

      {

         for(int j=0;j<=N-1;j++)

         {

            var=var+znach[j]*cos(2*3.14159*m*r[j]/N);

         }

         A[m]=var/N;

         var=0;

         cout<<"\nA["<<m<<"]="<<A[m];

      }

      cout<<"\n";

      double *B=new double[n+1];

      cout<<"\nKoefficient B[m]:";

      B[n]=0;

      for(int m=0;m<=n-1;m++)

      {

         for(int j=0;j<=N-1;j++)

         {

            var=var+znach[j]*sin(2*3.14159*m*r[j]/N);

         }

         B[m]=var/N;

         var=0;

         cout<<"\nB["<<m<<"]="<<B[m];

      }

      cout<<"\nB["<<n<<"]="<<B[n]<<"\n";

      cout<<"\nSrednekvadratichnoe znachenie ";

      double *R=new double[n];

      for(int i=0;i<=n;i++)

      {

         if(i==0 | i==n)

         {

            R[i]=pow(A[i],2);

         }

         else

         {

            R[i]=2*(pow(A[i],2)+pow(B[i],2));

         }

      }

      for(int i=0;i<=n;i++)

      {

         cout<<"\nR["<<i<<"]="<<R[i];

      }

      getch();

      return 0;

   }

   //--------------------------------------------------------------------------- 
 
 
 

   Результат выполнения программы для данных представленных в примере №1 приложения №1:

Информация о работе Фурье анализ и синтез периодических функций