Скачиваний:
180
Добавлен:
01.05.2014
Размер:
227.84 Кб
Скачать

4.2. Программа, вычисляющая свертку двух сигналов

4.2.1.Теоретические данные:

Формула свертки: Z(k) =

Длина результирующего вектора: LZ = LA + LB – 1

4.2.2. Тект программы myCONV.m:

function Z = myCONV(A,B)

alen = length(A);

blen = length(B);

zlen = alen + blen -1;

for k=1:zlen

jmin = k+1-blen;

if jmin < 1

jmin = 1;

end;

jmax = k;

if jmax > alen

jmax = alen;

end;

Z(k) = 0;

for j=jmin:jmax

Z(k) = Z(k) + A(j)*B(k+1-j);

end;

end;

4.2.3. Примеры вызовов:

>> myCONV([0,1,2,3], [6, 7, 8, 9, 10, 11])

>> a=[0,1,2,3]; b=[3,2,1,0]; z=myCONV(a,b);

4.2.3. Результат вызова z=myCONV([0,1,2,3], [6, 7, 8, 9, 10, 11]):

z = 0 6 19 40 46 52 58 52 33

4.2.4. Вывод:

Результат работы разработанной функции myCONVсовпадает с результатом предопределенной вMatlabфункцииconv.

4.3 Нахождение свертки для заданных сигналов с помощью разработанной программы myConv

4.3.1 Задание:

Сигналы:

A={…0,1,1,1,1,1,0,…}

B={…,0,1,2,3,0,…}

C={…,0,2,1,0.5,0,…}

D={…,0,1,2,3,4,5,0,…}

E={…,0,5,4,5,3,1,0,…}

F=sin(2*pi*t)+0.1*randn(1,length(t)); t=0:1/125:10;

G={…,0,2,1,2,0,…}

Искомые свертки:

1. A*A

2. B*C;C*B

3. (D*E)*B; D*(E*B)

4. D*(E+B); D*E+D*B

5. F*A

6. F*G

4.3.2. Тект программы func.m:

function X = func3()

A = [0,1,1,1,1,1,0];

B = [0,1,2,3,0,0,0];

C = [0,2,1,0.5,0,0,0];

D = [0,1,2,3,4,5,0];

E = [0,5,4,5,3,1,0];

t = 0:1/125:10;

F = sin(2*pi*t) + 0.1*randn(1,length(t));

G = [0,2,1,2,0,0,0];

Z1 = myCONV(A,A);

Z2_1 = myCONV(B,C);

Z2_2 = myCONV(C,B);

Z3_1 = myCONV(myCONV(D,E),B);

Z3_2 = myCONV(D,myCONV(E,B));

Z4_1 = myCONV(D,E+B);

Z4_2 = myCONV(D,E)+myCONV(D,B);

Z5 = myCONV(F,A);

Z6 = myCONV(F,G);

figure; plot(Z1); title('A*A');

figure; plot(Z2_1); title('B*C');

figure; plot(Z2_2); title('C*B');

figure; plot(Z3_1); title('(D*E)*B');

figure; plot(Z3_2); title('D*(E*B)');

figure; plot(Z4_1); title('D*(E+B)');

figure; plot(Z4_2); title('D*E+D*B');

figure; plot(Z5); title('F*A');

figure; plot(Z6); title('F*G');

4.3.3. Примеры вызовов:

>> func3;

4.3.3. Результат вызова func3:

5. Контрольные вопросы

5.1. Какие свойства свертки использовались в лабораторной работе?

1) Дистрибутивность: h(t) * [a(t)+b(t)] = h(t) * a(t)+h(t) * b(t)

2) Коммутативность: a(t) * b(t) = a(t) * b(t)

3) Ассоциативность: [a(t) * b(t)] * h(t) =a(t) * [b(t)* h(t)]

5.2. Роль свертки в цос.

Свертка – это математический способ комбинирования двух сигналов для формирования третьего сигнала. Это один из самых важных методов ЦОС. Пользуясь стратегией импульсного разложения, системы описываются сигналом, называемым импульсной характеристикой. Свертка важна, так как она связывает три сигнала: входной сигнал, выходной сигнал и импульсную характеристику.

Преобразование свертки однозначно определяет выходной сигнал y(t) для установленного значения входного сигнала x(t) при известном значении функции импульсного отклика системы h(t).

Соседние файлы в папке Лабораторная работа 1(8)
  • #
    01.05.2014885 б84func3.m
  • #
    01.05.2014326 б70HarmonicSignal.asv
  • #
    01.05.2014506 б79HarmonicSignal.m
  • #
    01.05.2014227.84 Кб180lab1_matlab.doc
  • #
    01.05.2014411 б89myCONV.m