Está en la página 1de 14

Taller Señales

Ejercicio 1
La señal que debemos descomponer es:

Las ecuaciones para encontrar las componentes par e impar de una señal son:

Creamos nuestra entrada, un vector linealmente espaciado con un total de 1000 datos, los cuales varían entre
-10 y 10 segundos. Esto para ver cómo se comporta la señal alrededor del orígen. Eso podría darnos algún
indicio de si es par o impar.

clear

t = linspace(-3,3,1000);

x = zeros(1,1000);
for k = 1:1000
x(k) = (exp(1)^(-3*abs(t(k))))*sin((2*pi*t(k))-(pi/3));
end
x

x = 1×1000
-0.0001 -0.0001 -0.0001 -0.0001 -0.0001 -0.0001 -0.0001 -0.0001

plot(t,x)
title('Señal Completa')

1
A simple vista, la señal parece ser impar, ya que los valores a la izquierda de cero no corresponden
directamente a los de la derecha de cero. De todas formas, ahora que ya tengo la señal, voy a separar
sus componentes par e impar:

xp = zeros(1,1000);
xi = zeros(1,1000);
for k = 501:1000
xp(k) = (1/2)*(x(k)+(x(k-500)));
xi(k) = (1/2)*(x(k)-(x(k-500)));
end
plot(t,xp)
title('Par')

2
plot(t,xi)
title('Impar')

3
Como el vector de la variable independiente arranca en -10 y va hasta 10, se comenzó el conteo en 501, o sea
el primer dato positivo del arreglo, para así, poder usar la fórmula con -k. Entonces, teniendo en cuenta que
tenemos un vector simétrico de 500 valores negativos y 500 valores positivos, -k = k - 500.

Como se puede ver, las componentes par e impar de esta función son diferentes. Ls curvas arrancan a variar
en 0, esto se debe a la forma en la que usamos el algoritmo, nosotros trabajamos solo con la mitad de los
datos, y por lo tanto obtuvimos media respuesta.

Ejercicio 2

clear

%%SecExpp(r,omega,Ts,n1,n2)

% SecExpp(3,2*pi,5,1,10)

Al parecer, esta es una señal exponencial cuyo "sigma" es positivo. La misma parece crecer a medida que "n"
crece, y crece cada vez más rápido. Parece ser que de "r" depende principalmente la forma de la señal, ya que
para r < 1, la señal decrece tendiendo a cero, para r > 1, la señal crece tendiendo a infinito, y para r = 1, la
señal se estabiliza. La forma de la señal parece depender de omega, para valores enteros de omega la señal
parece ser sinusoidal en sus partes real e imaginaria.

El periodo fundamental parece ser 2 , según lo observado y esta ecuación:

Ejercicio 3

se nos pide determinar el periodo fundamental de , para ello se sabe que el periodo fundamental
de una señal sinusoidal es el inverso de su frecuencia, adicional usaremos lo expuesto en las diapositivas
enviadas por el profesor, la cual nos deja que:

También se sabe que el periodo fundamental (T) se calcula como.

4
Literal a – código

f = 1336;
T = 1/f;
t = linspace(0, T, 1000);
x_a = cos(1336 * 2 * pi * t);

Para el literal b

Nos pide inicialmente crear un vector que contenga exactamente un periodo de la señal dada,
secundariamente nos pide que cree un vector x, repitiendo el vector x1 para obtener 8000 muestras en 1
segundo, y por último nos dice que reproduzcamos el sonido resultante usando la función “sound” de MATLAB.

literal b – código

% Parámetros de la señal
f1 = 1336; % Frecuencia de la señal en Hz
fs = 8000; % Frecuencia de muestreo en muestras por segundo
inter = 1/fs; %Intervalos de muestreo 125us
T1 = 1/f1; % Periodo fundamental de la señal en segundos
x_a = fs * T; % Número de muestras en un período

% Vector x1
t = linspace(0, T, x_a);
x1 = cos(2*pi*f1*t);

% vector x1 con 8000 muestras


num_periods = 8000 / x_a;
x = repmat(x1, 1, num_periods);

sound(x, fs);

Nos pide modificar el código para usar 10 veces menos muestras en x1

Literal c - códigos

%% Parte c:

T1 = ceil(T1/10); % Reemplazamos T1 por T1/10


t2 = 0:inter:(T1-1)/fs; % El mismo vector de tiempo
x2 = cos(2*pi*f1*t2); % Nuevo vector con menos muestras

5
Se necesitará solamente cambiar el valor de f1 en los códigos anteriores, logrando así comprar y concluir
las diferencias en los resultados obtenidos en los pasos c y d, quizá nos ayude a comprender la cantidad de
muestras como puede afectar la calidad de la señal generada.

Literal d- códigos

f1 = 852;
T = 1 / f1;
disp(['Periodo fundamental: ', num2str(t2), ' segundos']);

Periodo fundamental: 0 segundos

x_a = fs * T; % Número de muestras en un período


t = linspace(0, T, x_a);
x1 = cos(2*pi*f1*t);
num_periods = 8000 / x_a;
x = repmat(x1, 1, num_periods);
sound(x, fs);

T1 = ceil(T1/10); % Reemplazamos T1 por T1/10


t2 = 0:inter:(T1-1)/fs; % El mismo vector de tiempo
x2 = cos(2*pi*f1*t2); % Nuevo vector con menos muestras

El periodo fundamental de una señal coseno es: . En este caso, nuestra incógnita es k.

En el primer punto, se estableció un número de muestras por período que coincidía con el período fundamental
de la señal. Esto permitía una representación más detallada y precisa de la señal sinusoidal, ya que había
suficientes muestras para capturar los cambios en la forma de onda.

En el segundo punto, se redujo el número de muestras por período a 1/10 del valor original. Esto resultó en una
representación menos detallada y precisa de la señal, ya que había menos muestras para describir la misma
forma de onda. La señal se vuelve más áspera y pierde suavidad debido a la menor resolución temporal.

Al reproducir ambas versiones de la señal, notarás una diferencia audible en la calidad del sonido. La versión
con más muestras por período sonará más suave y cercana a un tono puro, mientras que la versión con menos
muestras sonará más áspera y menos definida.

La versión con más muestras preserva mejor los detalles sutiles de la señal, lo que resulta en un tono más
claro y agradable al oído. La versión con menos muestras pierde parte de esta riqueza armónica y puede
generar artefactos auditivos.

al comparar los resultados para ambas frecuencias, podemos observar cómo el cambio en la frecuencia
fundamental afecta la frecuencia aparente y, por lo tanto, el tono del sonido resultante. Un incremento en
la frecuencia fundamental aumentará el tono, mientras que una disminución en la frecuencia fundamental
reducirá el tono.

Ejercicio 4

6
Asignamos valores a la función:

clear
r = 1.5;
y_init = 0.1; %Valor inicial de la muestra
N = 30;

y = ss_lgrowth(y_init,r,N);

Reasignamos valores de y[0], según pide el ejercicio.

y_init = 0.3;
y = ss_lgrowth(y_init,r,N);

7
y_init = 0.5;
y = ss_lgrowth(y_init,r,N);

8
y_init = 0.7;
y = ss_lgrowth(y_init,r,N);

9
La población parece depender de el valor inicial de y[n]. Con los primeros valores mas bajos la población crece
y se estabiliza en un valor mayor al inicial. Sin embargo para los últimos dos valores, la población decrece a
menos que el valor inicial antes de estabilizarse, y parece no volver a aumentar.

A continuación, variamos los valores de r según pide el ejercicio.

r = [2 2.5 2.75 3];


for k = 1:4
y_init = 0.1;
y = ss_lgrowth(y_init,r(k),N);
if k == 1
hold
end
if k == 4
hold
end
end

Current plot held

10
Current plot released

for k = 1:4
y_init = 0.3;
y = ss_lgrowth(y_init,r(k),N);
if k == 1
hold
end
if k == 4
hold
end
end

Current plot held

11
Current plot released

for k = 1:4
y_init = 0.5;
y = ss_lgrowth(y_init,r(k),N);
if k == 1
hold
end
if k == 4
hold
end
end

Current plot held

12
Current plot released

for k = 1:4
y_init = 0.7;
y = ss_lgrowth(y_init,r(k),N);
if k == 1
hold
end
if k == 4
hold
end
end

Current plot held

13
Current plot released

Como podemos ver, al crecer r, la población tiende a oscilar en todos los casos. En todas las gráficas se
pueden observar oscilaciones mas grandes y violentas con los r mayores. Al parecer, el valor crítico de r está
entre 2,5 y 2,75, ya que en todos los casos las oscilaciones se vuelven contínuas y pronunciadas a partir de la
tercer iteración.

14

También podría gustarte