МОДЕЛИРОВАНИЕ ЛИНЕЙНЫХ СИСТЕМ
Методические указания к лабораторной работе №3 по дисциплине
"Моделирование информационных процессов и систем"

[Титульная страница | Оглавление | Предыдущая страница | Следующая страница ]


3. ДИСКРЕТНАЯ СВЕРТКА

Очевидно, что если мы заменим непрерывное входное воздействие и непрерывную импульсную характеристику ступенчатыми аппроксимирующими функциями (рис.7), то в итоге получим приближенное вычисление интеграла свертки (5):


Рис.7

Аналогично преобразуется формула (6):

Задание. Смоделировать прохождение белого шума через линейную систему с импульсной характеристикой, показанной на рис. 8

Рис.8 Первый вопрос заключается в выборе шага дискретизации. Вычисляя Фурье-преобразование, мы получаем функцию, достаточно быстро стремящуюся к нулю при увеличении частоты . Выбрав для определенности и , в соответствии с методикой выбора шага дискретизации получим . Поэтому длительность входного сигнала в шагах дискретизации приблизительно равна 35. В следующей программе моделируется данная ситуация.

Программа 1 ( исходный файл lect3_1.cpp , выполняемый файл lect3_1.exe)

      В программе реализован следующий порядок действий:

  1. Синтезируется реализация дискретного белого гауссовского шума. Длину реализации примем равной N=500 отсчетов. Для формирования такой реализации необходимо 500 раз обратиться к функции gauss с параметрами: математическое ожидание равно нулю, а дисперсия равна 1.
  2. Производится формирование отсчетов импульсной характеристики.
  3. Вычисляется дискретная свертка входного воздействия и импульсной характеристики.
#define   N 500  			// Длина входной реализации 
#define   L 35      			//  Длительность импульсной характеристики
#include <math.h>
#include <stdlib.h>
#include "model.h"
float x[N], k[L], y[N]; 		// Массивы для входной реализации, импульсной 
                                 	// характеристики и  выходной реализации
void main(void)
{ int i, p;
  for(i=0; i < N; i++) 			// Формирование реализации дискретного белого 
	                            	//  гауссовского шума 
	 x[i] = gauss (0.0, 1.0);

          for(i=0; i < L; i++) 		// Формирование импульсной характеристики
      	             k[i] = 0.5;

           for(i=0; i < N; i++) 	// Вычисление интеграла свертки
	         {  
 y[i] =0.0;   for(p=0; p < L; p++)
		        {if((i-p)>= 0)  y[i] = y[i] + x[i-p] *k[p]; }
	          }
       Init_graph(); 			// Вывод на график
 graf_2("input and output signals", x, y, 0, 499);
 Close_graph();    
}


[Титульная страница | Оглавление | Предыдущая страница | Следующая страница ]