Skip to content

Commit

Permalink
SM: Add missing files
Browse files Browse the repository at this point in the history
  • Loading branch information
JCapucho committed Dec 10, 2024
1 parent e871e5b commit e2d5070
Show file tree
Hide file tree
Showing 40 changed files with 1,423 additions and 6 deletions.
14 changes: 14 additions & 0 deletions 2ano1/SM/aula03/calcCoef_complex.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
function [C_k] = calcCoef_complex(T_a, T_0, x, K)
t = 0:T_a:T_0 -T_a;

N = T_0/T_a;
f_0 = 1/T_0;
x1 = x(1:N);

C_k = zeros(1, K + 1);

for k = 1:K + 1
C_k(k) = (1/N) * sum(x1 .* exp(-1j * 2 * pi * (k - 1) * f_0 * t));
end
end

17 changes: 11 additions & 6 deletions 2ano1/SM/aula03/ex03.m
Original file line number Diff line number Diff line change
@@ -1,15 +1,20 @@
T_a = 1/256;
T_0 = 1;
t = 0:T_a:4-T_a;
x = square(2*pi*(1/T_0)*t);
x = square(2*pi*(1/T_0)*t) + 1;

plot(t, x);

[a_k, b_k] = calcCoef(T_a, T_0, x, 50);

figure;
subplot(1, 2, 1);
stem(0:length(a_k) - 1, a_k, "g");
%figure;
%subplot(1, 2, 1);
%stem(0:length(a_k) - 1, a_k, "g");

%subplot(1, 2, 2);
%stem(0:length(b_k) - 1, b_k, "r");

subplot(1, 2, 2);
stem(0:length(b_k) - 1, b_k, "r");
[C_k] = calcCoef_complex(T_a, T_0, x, 5);

figure;
stem(abs(C_k));
35 changes: 35 additions & 0 deletions 2ano1/SM/aula03/ex05.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
T_a = 1/1000;
f_0 = 1;
L = 5000;

C_k = zeros(1, L + 1);
%idx = 1:2:L;
%C_k(2:2:end) = -1j*2./(pi*idx);

a_k = zeros(1, L + 1);
b_k = zeros(1, L + 1);
idx = 1:2:L;
b_k(2:2:end) = 4./(pi*idx);

C_k(1) = a_k(1)/2;
C_k(2:end) = (a_k(2:end) - 1j*b_k(2:end))/2;

[sinal, t] = serie_exponencial2(T_a, f_0, 5, C_k);
subplot(2, 1, 1);
plot(t, real(sinal))
ylim([-1.5 1.5])
subplot(2, 1, 2);
plot(t, imag(sinal))

max(imag(sinal))

figure;
[sinal, t] = serie_exponencial(T_a, f_0, 5, C_k);
subplot(2, 1, 1);
plot(t, real(sinal))
title("Correct")
ylim([-1.5 1.5])
subplot(2, 1, 2);
plot(t, imag(sinal))

max(imag(sinal))
19 changes: 19 additions & 0 deletions 2ano1/SM/aula03/serie_exponencial.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
function [x, t] = serie_exponencial(T_a, f_0, N_p, C_k)
T_0 = 1/f_0;
t = 0:T_a:N_p*T_0 - T_a;

K = length(C_k);
x = 0;

C_conj_k = conj(C_k);

% Negative part
for k=1:(K - 1)
x = x + C_conj_k(k + 1) * exp(1j * 2 * pi * -k * f_0 * t);
end

% Positive part
for k=1:K
x = x + C_k(k) * exp(1j * 2 * pi * (k -1) * f_0 * t);
end
end
13 changes: 13 additions & 0 deletions 2ano1/SM/aula03/serie_exponencial2.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
function [x, t] = serie_exponencial2(T_a, f_0, N_p, C_k)
T_0 = 1/f_0;
t = 0:T_a:N_p*T_0 - T_a;

K = length(C_k);

C_minus_k = conj(C_k(2:end));
C_k_ext = [fliplr(C_minus_k) C_k];

k = -(K-1):K-1;

x = sum(C_k_ext.' .* exp(1j * 2 * pi * f_0 * t .* k'));
end
15 changes: 15 additions & 0 deletions 2ano1/SM/aula07/Espetro.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
function [X, f] = Espetro(x, T_a)
N = length(x);
f_a = 1/T_a;

x1 = fft(x);
X = fftshift(x1);


if rem(N, 2) == 0
f = (-N/2:N/2 - 1)*(f_a/N);
else
f = (-(N-1)/2:(N-1)/2)*(f_a/N);
end
end

9 changes: 9 additions & 0 deletions 2ano1/SM/aula07/ex01.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
load Guitar03.mat

[X, f] = Espetro(x, 1/fa);
stem(f, abs(X));
figure
spectrogram(x, 1024, 512, 1024, fa, "yaxis");
colorbar;

%soundsc(x, fa);
12 changes: 12 additions & 0 deletions 2ano1/SM/aula07/ex02.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
load Guitar03.mat

teta=2*pi*(5000/fa);
xr=x+ 0.6*cos(teta*(0:length(x)-1)'+0.1*pi);

[X, f] = Espetro(xr, 1/fa);
stem(f, abs(X));
figure
spectrogram(xr, 1024, 512, 1024, fa, "yaxis");
colorbar;

%soundsc(xr, fa);
22 changes: 22 additions & 0 deletions 2ano1/SM/aula07/ex03.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
load Guitar03.mat;

R=0.9;
theta=2*pi*(5000/fa);

xr=x+ 0.6*cos(theta * (0:length(x)-1)' + 0.1*pi);

num=[1 -2*cos(theta) 1];
den=[1 -2*R*cos(teta) R^2];

[H, f] = respfreq(num, den, fa);

y = filter(num, den, x);

subplot(2, 2, 1)
spectrogram(xr, 1024, 512, 1024, fa, "yaxis");
subplot(2, 2, 2)
plot(f, H);
subplot(2, 2, 3)
spectrogram(y, 1024, 512, 1024, fa, "yaxis");

%soundsc(xr, fa);
38 changes: 38 additions & 0 deletions 2ano1/SM/aula07/ex04.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
load Guitar03.mat;

a = 0.9;
D = 34/340 * fa;
D = fa/5;
num = [1 zeros(1,D-1) a];
den = 1;

% a)
% H(e^jw) = 1 + ae^(-j omega D)
% = 1 + a
[H, f] = respfreq(num, den, fa);

%plot(f, H);

% b)
y = filter(num, den, x);
spectrogram(y, 1024, 512, 1024, fa, "yaxis");
%soundsc(y, fa);

% c)
% Serie geometrica de termo az^-D

% d)
D = 8;
num = 1;
den = [1 zeros(1,D-1) -a];
[H, f] = respfreq(num, den, fa);
plot(f, H);

% e)
D = 0.010 * fa;
num = 1;
den = [1 zeros(1,D-1) -a];
y = filter(num, den, x);
figure
spectrogram(y, 1024, 512, 1024, fa, "yaxis");
soundsc(y, fa);
6 changes: 6 additions & 0 deletions 2ano1/SM/aula07/respfreq.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
function [H, f] = respfreq(num, den, fa)
[H1, f1] = freqz(num, den, 1024, fa, 'whole');
H = abs(fftshift(H1));
f = f1 - fa/2;
end

3 changes: 3 additions & 0 deletions 2ano1/SM/aula08/Alfabeto1.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
function [Simbolos] = Alfabeto1(Texto)
Simbolos = unique(Texto);
end
4 changes: 4 additions & 0 deletions 2ano1/SM/aula08/Alfabeto2.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
function [Simbolos, Frequencia] = Alfabeto2(Texto)
[Frequencia, Simbolos] = groupcounts(Texto');
Frequencia = Frequencia / sum(Frequencia);
end
6 changes: 6 additions & 0 deletions 2ano1/SM/aula08/Entropia.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
function [H] = Entropia(Texto)
[~, Frequencia] = Alfabeto2(Texto);

H = -sum(Frequencia .* log2(Frequencia));
end

20 changes: 20 additions & 0 deletions 2ano1/SM/aula08/NumeroBitsCodigo2.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
function [NumBits, mensagem] = NumeroBitsCodigo2(Texto)
[Simbolos, ~] = Alfabeto2(Texto);

N = length(Simbolos);

Codigos = cell(1, N);

for k=1:length(Simbolos)
Codigos{k} = [repmat('1', 1, k - 1) '0'];
end

[~, indexes] = ismember(Texto, Simbolos);

mensagem = [];
for idx=indexes
mensagem = [mensagem Codigos{idx}];
end

NumBits = length(mensagem);
end
3 changes: 3 additions & 0 deletions 2ano1/SM/aula08/ex01.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
load Mensagem.mat;

Simbolos = Alfabeto1(Mensagem);
3 changes: 3 additions & 0 deletions 2ano1/SM/aula08/ex02.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
load Mensagem.mat;

[Simbolos, Frequencia] = Alfabeto2(Mensagem);
6 changes: 6 additions & 0 deletions 2ano1/SM/aula08/ex03.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
load Mensagem.mat;

[Simbolos, Frequencia] = Alfabeto2(Mensagem);

num_bits = ceil(log2(length(Simbolos)));
repr = int2bit(0:length(Simbolos) - 1, num_bits)';
3 changes: 3 additions & 0 deletions 2ano1/SM/aula08/ex04.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
load Mensagem.mat;

[NumBits, mensagem] = NumeroBitsCodigo2(Mensagem);
Loading

0 comments on commit e2d5070

Please sign in to comment.