Отчет по лабораторной работе №1 "Работа в среде Matlab. Структура Signal Processing Toolbox. Генерация сигналов. Свертка "


Download 222.5 Kb.
bet3/4
Sana04.02.2023
Hajmi222.5 Kb.
#1162408
TuriОтчет
1   2   3   4
Bog'liq
lab1 matlab

2.3. Свертка
Свертка играет очень важную роль в теории ЦОС.
Дискретной сверткой двух сигналов g и h называют одномерный массив

Ниже приведена иллюстрация процесса вычисления свертки.









Рис.4

В среде MATLAB свертка реализуется следующей функцией


conv(А,B).
В результате получается вектор длиной LENGTH(A)+LENGTH(B)-1.


3. Математическая постановка задачи

1. Выполнить генерацию сигналов





Описание сигнала

Параметры

A

B

C

D

ШАГ

Гармонический сигнал с частотой A с нормально распределенным шумом (randn)

10 Гц










1/128

20 Гц










1/128

30 Гц










1/128

2. Написать программу, вычисляющую свертку двух сигналов, оформить ее в виде функции Z=myCONV(A,B). Сравнить результаты работы программы с функцией conv(A,B).


3. Для заданных сигналов найти свертки (используя совою программу) в соответствии с заданием. Объяснить полученные результаты аналитически.


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. Реализация

4.1. Генерация гармонического сигнала с частотой A с нормально распределенным шумом


4.1.1. Описание сигнала:


В данном задании используются типы сигналов:



  1. детерминированный. .

Например, гармонический сигнал с частотой A:

  1. случайный процесс.

  2. комбинированный сигнал.

Случайный процесс, в данном случае, это нормально распределённый шум.
В итоге, реализовываем комбинированный сигнал
- шум, описывается нормальным законом:

4.1.2. Тект программы:


function HarmonicSignal


f1 = 10; % частота сигнала 1
f2 = 20; % частота сигнала 2
f3 = 30; % частота сигнала 3
T = 128; % T – длина сигнала
t=0:1/T:1; % вектор времени t, изменяющийся с шагом 1/T
A = 3; % амплитуда
% зададим нормально распределённый шум v(t)
y1=A*sin(f1*t)+randn(1,length(t));
y2=A*sin(f2*t)+randn(1,length(t));
y3=A*sin(f3*t)+randn(1,length(t));
plot(t,y1,'-ro',t,y2,'-g>',t,y3,'-b')
grid on
xlabel('Time');
ylabel('Amplitude');
title('SIGNAL');

4.1.3. График сигнала:





Рис.1 Гармонический сигнал с частотой A с нормально распределенным шумом


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. Контрольные вопросы



Download 222.5 Kb.

Do'stlaringiz bilan baham:
1   2   3   4




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling