Добавил:
t.me мой будущий Dungeon Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лаба3 / LR3

.m
Скачиваний:
2
Добавлен:
01.12.2024
Размер:
2.71 Кб
Скачать
clear;
close all;
clc;

U1 = 9;
U2 = -3;
U3 = -8;
U4 = 5;
T1 = 3;
T2 = 6;
Fd = 5;
T = 1 / Fd;

% 1
t1 = 0:T:T1;
t2 = T1+T:T:T2;
t = 0:T:T2;
x1 = U1 + (U2-U1)/T1*t1;
x2 = U3 + (U4-U3)/(T2-T1)*(t2-T1);
xk = [x1 x2];
figure;
hold on;
stem(t, xk, 'k');
xlabel('t, ms');
ylabel('u(t), V');
grid on;

% 2
N = length(xk);
n = 0:(N-1);
xd = fft(xk, N);
figure;
subplot(2,1,1);
stem(n,abs(xd), 'k.', MarkerSize=15);
grid on;
title('Spectral sampling magnitude');
xlabel('n');
ylabel('|X(n)|');
subplot(2,1,2);
stem(n,angle(xd), 'k.', MarkerSize=15);
grid on;
title('Spectral sampling phase');
xlabel('n');
ylabel('arg(X(n))');

% 3
E0 = sum(abs(xk).^2);
Nmax = 0;
E_th = 0.9 * E0;
while true
xd1 = xd;
xd1(Nmax+2:length(xd1)-Nmax) = 0;
xr = ifft(xd1);
E_r = sum(abs(xr).^2);
if E_r >= E_th
break;
end
Nmax = Nmax + 1;
end
figure;
hold on;
stem(t, xk, 'k');
stem(t, xr, 'k.', MarkerSize=15);
title('Original and Restored Signal');
xlabel('t, s');
ylabel('u(t), V');
legend('Original Signal', 'Restored Signal');
grid on;
figure;
subplot(2, 1, 1);
stem(n, abs(xd1), 'k.', MarkerSize=15);
grid on;
title('Spectral sampling magnitude');
xlabel('n');
ylabel('|X(n)|');
subplot(2, 1, 2);
stem(n, angle(xd1), 'k.', MarkerSize=15);
grid on;
title('Spectral sampling phase');
xlabel('n');
ylabel('arg(X(n))');

% 4
xk1=xk;
x0 = [xk1 zeros(1,length(xk1))];
xd0 = fft(x0);
n = 0:length(xd0)-1;
figure;
subplot(2,1,1);
stem(n, abs(xd0), 'k.', MarkerSize=15);
grid on;
title('Spectral Sampling Magnitude of Zero-Padded Signal');
xlabel('n');
ylabel('|X(n)|');
xlim([0 length(n)]);
subplot(2,1,2);
stem(n, angle(xd0), 'k.', MarkerSize=15);
grid on;
xlim([0 length(n)]);
title('Spectral Sampling Phase of Zero-Padded Signal');
xlabel('n');
ylabel('arg(X(n))')

% 5
f = 6:13;
N = 2.^f;
for i = 1:8
gx = [xk zeros(1, N(i) - length(xk))];
D = dftmtx(N(i));
y = zeros(1,N(i));
tic
for k = 1:6500
y = gx*D;
end
tx(i) = toc;
end
tx1 = tx./6500;
tteor = 0.2*N.^2*10^(-9);
figure;
semilogy(log2(N),(tx1),'k-', 'Marker', '.', 'MarkerSize', 15);
hold on;
semilogy(log2(N),tteor,'b--');
xlabel('log2(N)');
ylabel('t, s');
legend('Experiment','Theory');
grid on;

% 6
for i = 1:8
y = zeros(1,N(i));
tic
for k = 1:350000
y = fft(xk,N(i));
end
tf(i)=toc;
end
tf1 = tf./350000;
tteorf = 0.3*N.*log2(N)*10^(-9);
figure;
semilogy(log2(N),tf1,'k-', 'Marker', '.', 'MarkerSize', 15);
hold on;
semilogy(log2(N),tteorf,'b--');
xlabel('log2(N)');
ylabel('t,s');
legend('Experiment','Theory');
grid on;

Соседние файлы в папке Лаба3