close

Вход

Забыли?

вход по аккаунту

?

Otchyot(3)

код для вставкиСкачать
САНКТ-ПЕТЕРБУРГСКИЙ НАЦИОНАЛЬНЫЙ
ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ
ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ, МЕХАНИКИ И ОПТИКИ Кафедра речевых информационных систем
ЦИФРОВАЯ ОБРАБОТКА СИГНАЛА
ЛАБОРАТОРНАЯ РАБОТА №1
"Работа в среде Matlab. Структура Signal Processing Toolbox. Генерация сигналов. Свертка"
Выполнил: Магистр группы № 5599 Корявцев В.П.
Проверил: к.т.н. доцент Симончик К. К.
_________________________
Санкт-Петербург
2012
Цель работы: Получить основные навыки работы в среде Matlab. Изучить возможности пакета Signal Processing Toolbox по генерации сигналов. Изучить свойства свертки
Задание№1
Выполнить генерацию следующих сигналов:
Пункт1: Гармонический сигнал с частотой A с нормально распределенным шумом (randn)
10 Гц1/12820 Гц1/12830 Гц1/128 Код программы:
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,t,y2,t,y3)
grid on
xlabel('Time');
ylabel('Amplitude');
title('SIGNAL');
Пункт2: Гармонический сигнал, частота которого меняется по закону At^3+Bt^2+Ct+D
105311/1024 Код программы:
function HarmonicSignalFormula
T = 1024; % T - длина сигнала
t=[0:1/T:1]; % вектор времени t, изменяющийся с шагом 1/T
A = 10 * (t.^3);
B = 5 * (t.^2);
C = 3 * t;
D = 1 * t;
f1 = [(A+B+C+D)]; % частота сигнала 1
Amp = 3; % амплитуда
y1=Amp*sin(f1.*t);
plot(t,y1, '.')
grid on
xlabel('Time');
ylabel('Amplitude');
title('SIGNAL');
Пункт 3: Синусоида с меняющейся частотой от A до B по законам С и D. 5100линейныйквадр.1/1024 Код программы:
function HarmonicSignalSqrFormula
A = 5;
B = 100;
t1 = 0:1/1024:1.5;
t2 = 1.5:1/1024:3;
f1 = A:(B-A)/(length(t1)-1):B;
y1 = sin(f1.*t1);
f2 = sqrt(B):(sqrt(A)-sqrt(B))/(length(t2)-1):sqrt(A);
y2 = sin(f2.^2.*(t2-1.5));
plot(t1,y1, t2,y2)
grid on
xlabel('Time');
ylabel('Amplitude');
title('SIGNAL');
Пункт 4: Синусоида с частотой меняющейся скачкообразно: первая частота А, далее B, C и D.
102030401/1024
Код программы:
function SinSignalJump
t = 0:1/1024:4;
A = [10 20 30 40];
y = sin(A(1)*t).*( (0<=t)&(t<1) ) +...
sin(A(2)*t).*( (1<=t)&(t<2) ) +...
sin(A(3)*t).*( (2<=t)&(t<3) ) +...
sin(A(4)*t).*( (3<=t)&(t<=4) );
plot(t,y)
grid on
xlabel('Time');
ylabel('Amplitude');
title('SIGNAL');
Задание№2
Написать программу, вычисляющую свертку двух сигналов, оформить ее в виде функции Z=myCONV(A,B). Сравнить результаты работы программы с функцией conv(A,B).
Код функции:
function Z = myCONV(a, b)
if ~(isvector(a)||isvector(b))
disp('Входные параметры должны быть векторами!') end n = length(a); % длинна полинома a
m = length(b); % длинна полинома b
M = zeros(m,m+n-1); % пустая матрица, куда будем собирать частичные произведения
for i = 1:m % получаем частичные произведения
M(i, i:i+n-1 ) = a*b(i); end
% находим суммы частичных произведений
% и получаем результат
Z = sum(M);
End
Пример сравнения:
function Y = conv_check()
A= [0,1,1,1,1,1,0];
Z_check = myCONV(A,A);
Z_check_1 = conv(A,A);
figure; plot(Z_check); title('A*A_myConv');
grid on
figure; plot(Z_check_1); title('A*A_MTALAB_conv');
grid on
Y = ('done');
Задание№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
Код функции:
function X = svertka_zna4eniya()
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');
grid on
figure; plot(Z2_1); title('B*C');
grid on
figure; plot(Z2_2); title('C*B');
grid on
figure; plot(Z3_1); title('(D*E)*B');
grid on
figure; plot(Z3_2); title('D*(E*B)');
grid on
figure; plot(Z4_1); title('D*(E+B)');
grid on
figure; plot(Z4_2); title('D*E+D*B');
grid on
figure; plot(Z5); title('F*A');
grid on
figure; plot(Z6); title('F*G');
grid on
X = ('done');
Контрольные вопросы
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)] 2. Роль свертки в ЦОС.
Свертка - это математический способ комбинирования двух сигналов для формирования третьего сигнала. Это один из самых важных методов ЦОС. Пользуясь стратегией импульсного разложения, системы описываются сигналом, называемым импульсной характеристикой. Свертка важна, так как она связывает три сигнала: входной сигнал, выходной сигнал и импульсную характеристику.
Преобразование свертки однозначно определяет выходной сигнал y(t) для установленного значения входного сигнала x(t) при известном значении функции импульсного отклика системы h(t).
3. В чем отличие дискретной свертки от непрерывной?
Формула для непрерывной свертки: y(t) = x() h(t-) d
Формула для дискретной свертки: y(kt) =h(nt) x(kt-nt)
Отличия:
- вид формулы
- нижние пределы суммирования и интегрирования
4. Как представить дискретный сигнал с использованием свертки и дельта-функции?
Представление дискретного сигнала с помощью дельта-функции (цифрового единичного импульса):
x(n) =
- цифровой единичный импульс
Представление дискретного сигнала с помощью свертки:
y(n) =x(m) h(n-m) h(n) - реакця на u0(n) - импульсная характериска.
Документ
Категория
Рефераты
Просмотров
544
Размер файла
122 Кб
Теги
otchyot
1/--страниц
Пожаловаться на содержимое документа