ИКТ-23 / ЛР3 ЦОС
.docxВарант 6
Задание 1
Создаём Dpf.m
function fun = Dpf(x,N)
k = 0:N-1;
fun = 0;
for n = 1:N
fun = fun + x(n)*exp(-1i*2*pi*(n -1)*k/N);
end
Основной код
clear all
clc
close all
a = 10;
f0 = 2;
N= 2100;
Nt=0:100:N
NN = length(Nt)
T = 2;
dt = T/(N-1);t = 0:dt:T;
x = exp(-t.^2/a.^2) * sin(2 * pi * f0);
t2 = [];
for k=1:NN,
tic;
y = Dpf(x,Nt(k));
t2 =[t2 toc];
end
plot(Nt,t2);
grid on
C1:
clear all
clc
a = 10;
f0 = 2;
N= 2100;
Nt=0:100:N
NN = length(Nt)
T = 2;
dt = T/(N-1);
t = 0:dt:T;
x = exp(-t.^2/a.^2) * sin(2 * pi * f0);
t2 = [];
for k=1:NN,
tic;
y = Dpf(x,Nt(k));
t2 =[t2 toc];
end
plot(Nt,t2);
grid on
c1 = 32e-9;
t3 = c1*Nt.^2;
hold on;
hPl=plot(Nt, t2, 'b', Nt, t3, 'r');
Второй шаг
tic
clear all
clc
a = 10;
f0 = 2;
T = 2;
N= 11;
n = 1:N;
Nt =2.^n;
NN = length(Nt)
dt = T/(2.^N-1);
t = 0:dt:T;
x = exp(-t.^2/a.^2) * sin(2 * pi * f0);
t2 = [];
for k=1:NN,
tic;
for m=1:1000,
y = fft(x,Nt(k));
end
t2 =[t2, toc];
end
t2 = t2/1000;
c1 = 32e-9;
c2= 135e-11;
t3 = c2*Nt.*log2(Nt)/2;
hPl=plot(Nt, t2, 'b', Nt, t3, 'r');
grid on
toc
N=500
T1=c1*N^2
T2=c2*N/2*log2(N)
T1/T2
N=1000
T1=c1*N^2
T2=c2*N/2*log2(N)
T1/T2
N=2000
T1=c1*N^2
T2=c2*N/2*log2(N)
T1/T2
Т |
T1, c |
T2, 10^-4 c |
T1/T2 |
500 |
0.0080 |
3.0260e-06 |
2.6438e+03 |
1000 |
0.0320 |
6.7269e-06 |
4.7570e+03 |
2000 |
0.1280 |
1.4804e-05 |
8.6464e+03 |
Задание 2
clear all
clc
close all;
%задаем фильтр через коэффициенты a, b
%находим нули, полюсы и коэффициент
%усиления z, p, k передаточной функции H(s)
%восстанавливаем комплексный коэффициент передачи K(w)
%рисуем АЧХ и ФЧХ
b = [3 2 1 1 ];
a = [2 -1 -1 0 -1];
[z, p, k] = tf2zp(b, a);
hPl=plot(p, 'r*');
set(hPl,'LineWidth',5);
hold on;
hPl=plot(z, 'bo');
set(hPl,'LineWidth',5);
axis([-2.5 2.5 -2.5 2.5]);
hy=line([0 0], [-2.5 2.5]); %ось Oy
set(hy,'LineWidth',2,'color','black');
hx=line( [-2.5 2.5], [0 0]); %ось Ox
set(hx,'LineWidth',2,'color','black');
text( 2., 0.1, 'Re(s)','FontSize',[20]);
text( 0.1, 2., 'Im(s)','FontSize',[20]);
title('Poles and Zeros of filter','FontSize',[20]);
grid on;
hAx=gca;
set(hAx,'FontSize',[18]);
w=0:0.01:10;
K =freqs(b, a, w);
figure;
plot(w, abs(K),'red');
%axis([0 10 0 1.1]);
xlabel('\omega');
title('A(\omega)');
grid on;
figure;
plot(w, angle(K),'m');
xlabel('\omega');
title('\phi(\omega)');
grid on
Второй пункт
clear all
clc
close all;
%задаем фильтр через коэффициенты a, b
%находим нули, полюсы и коэффициент
%усиления z, p, k передаточной функции H(s)
%восстанавливаем комплексный коэффициент передачи K(w)
%рисуем АЧХ и ФЧХ
b = [3 2 i -i ];
a = [2 1 3 2i -2i];
[z, p, k] = tf2zp(b, a);
hPl=plot(p, 'r*');
set(hPl,'LineWidth',5);
hold on;
hPl=plot(z, 'bo');
set(hPl,'LineWidth',5);
axis([-2.5 2.5 -2.5 2.5]);
hy=line([0 0], [-2.5 2.5]); %ось Oy
set(hy,'LineWidth',2,'color','black');
hx=line( [-2.5 2.5], [0 0]); %ось Ox
set(hx,'LineWidth',2,'color','black');
text( 2., 0.1, 'Re(s)','FontSize',[20]);
text( 0.1, 2., 'Im(s)','FontSize',[20]);
title('Poles and Zeros of filter','FontSize',[20]);
grid on;
hAx=gca;
set(hAx,'FontSize',[18]);
w=0:0.01:10;
K =freqs(b, a, w);
figure;
plot(w, abs(K),'red');
%axis([0 10 0 1.1]);
xlabel('\omega');
title('A(\omega)');
grid on;
figure;
plot(w, angle(K),'m');
xlabel('\omega');
title('\phi(\omega)');
grid on
Задание 3
clear all
clc
close all
n = 4;
Rp = 0.6;
Rs = 25;
[z, p, k] = ellipap(n, Rp, Rs);
[b, a] = zp2tf(z, p, k);
w = 0:0.01:4;
K = freqs(b, a, w);
plot(w, abs(K));
grid on
Ap = 1 * 10^(-Rp/20)
As = 1* 10^(-Rs/20)
Ap = 0.9333
As = 0.0562.