Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
examples_1.doc
Скачиваний:
2
Добавлен:
08.12.2018
Размер:
209.41 Кб
Скачать

Примеры и упражнения на базе среды matlab к разделу 1.

Ниже приводятся примеры, которые иллюстрируют основные теоретические положения, относящиеся к сфере математического моделирования цифровых систем. Каждый из примеров сопровождается листингом программного кода на языке MATLAB, реализующим необходимее построения. В ряде случаев даются необходимые комментарии.

Кроме того, здесь приводятся упражнения для самостоятельной работы. К некоторым из них прилагаются определенные рекомендации.

Пример 5_01. а) Необходимо сгенерировать дискретный сигнал в среде MATLAB, где

на сегменте дискретного времени. Для построенной конечной последовательности нужно построить график решетчатой функции.

б) Необходимо сгенерировать сдвинутый ступенчатый единичный дискретный сигнал на сегменте , где , и построить его графическое представление.

Пример выполняется с помощью программы, представленной в листинге 5.1. Обратим внимание на элегантный способ задания ступенчатого единичного сигнала. Результат работы программы по первому пункту показан на рис. 1.5.

Листинг 5.1

% Пример 5_01: Цифровые сигналы

clear;

% Базовые моменты времени

n1=-10:10;

% Заданные отсчеты сигнала

u1=sin(0.5*n1).*exp(-0.4*abs(n1));

u=[0 0 0 u1 0 0 0]; n=[-13 -12 -11 n1 11 12 13];

% График

figure(1); clf reset; h2=stem(n,u,'bo','fill');

set(h2,'LineWidth',2); grid on;

Xlabel('n'); ylabel('u[n]');

% Отсчеты единичного импульса

n1=-10; n2=10; n0=0;

nn=[n1:n2]; xx=[(nn-n0)>=0]; % !!!

% График

figure(2); clf reset;

h2=stem(nn,xx,'ro','fill');

set(h2,'LineWidth',2); grid on;

axis([-10,10,0,1.2]);

Xlabel('n'); ylabel('u[n]');

Рис. 1.5. График функции для примера 5_01.

Пример 5_02. Необходимо построить конечную импульсную характеристику DLTI-системы в виде последовательности

,

заданной в моменты дискретного времени . Для применения формулы свертки нужно сгенерировать две вспомогательные последовательности: отраженную последовательность и сдвинутую последовательность ().

Все указанные последовательности должны быть представлены на отдельных графиках в едином окне функции plot среды MATLAB.

Данный пример можно выполнить с помощью программного кода на языке MATLAB, представленного в листинге 5.2.

Листинг 5.2

% Пример 5_02: Импульсная характеристика и свертка

clear;

% Моменты дискретного времени

n=-8:1:8;

% Импульсная характеристика

h=[0 0 0 0 0 0 0.1 0.2 0.4 0.5 0.6 0.8 0.7 0.5 0.2 0 0];

% Отражение от начала координат

h1=flipud(h'); h1=h1'; nn=length (h);

% Сдвиг вправо на 3 отсчета

h2=[0 0 0 h1(1:nn-3)];

% Графики последовательностей

figure(1); clf reset;

subplot(3,1,1); g1=stem(n,h,'bo','fill'); grid on;

set(g1,'LineWidth',2); axis([-8,8,0,0.9]);

title('1) impulse responce h(k)'); set(gca, 'XTickLabel',[]);

subplot(3,1,2); g2=stem(n,h1,'bo','fill'); grid on;

set(g2,'LineWidth',2); axis([-8,8,0,0.9]);

title('2) impulse responce h(-k)'); set(gca, 'XTickLabel',[]);

subplot(3,1,3); g3=stem(n,h2,'bo','fill'); grid on;

set(g3,'LineWidth',2); axis([-8,8,0,0.9]);

title('3) impulse responce h(-k+n), n=3');

Xlabel('k');

Результат работы приведенного фрагмента показан на рис. 1.3.

Пример 5_02. Необходимо построить реакцию системы на входной сигнал на отрезке времени с отсчетами

Построение следует осуществить с помощью функции conv среды MATLAB для нахождения свертки двух конечных последовательностей и . При этом импульсная характеристика задается конечной последовательностью для моментов дискретного времени.

Программный код для выполнения примера приведен в листинге 5.3.

Листинг 5.3

% Пример 5_03: Реакция на заданный входной сигнал

clear;

% Моменты дискретного времени

n=-5:22; nu=0:8; ni=0:9;

% Входной сигнал

u1=exp(-0.1*abs(nu));

u=[zeros(1,5) u1 zeros(1,14)];

% Импульсная характеристика

h1=[1 -1 2 3 -2 -1 -0.5 2 3 -1];

h=[zeros(1,5) h1 zeros(1,13)];

% Вычисление свертки

y1=conv(h1,u1);

y=[zeros(1,5) y1 zeros(1,5)];

% Графики последовательностей

figure(1); clf reset;

subplot(3,1,1); g1=stem(n,u,'bo','fill'); grid on;

set(g1,'LineWidth',2); axis([-5,22,0,1.2]);

title('1) input signal u[n]'); set(gca, 'XTickLabel',[]);

subplot(3,1,2); g2=stem(n,h,'bo','fill'); grid on;

set(g2,'LineWidth',2); axis([-5,22,-2.5,3.5]);;

title('2) impulse responce h[k]'); set(gca, 'XTickLabel',[]);

subplot(3,1,3); g3=stem(n,y(1:28),'bo','fill');

grid on;

set(g3,'LineWidth',2); axis([-5,22,-1,6]);

title('3) system responce y[n]');

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]