Ejercicios para entrar en calor
Código auxiliar
# Cargo paquetitos
using DSP, FFTW
# Y armo un par de funciones auxiliares
stem(args...; kwargs...) = sticks(args...;
marker=:circle,
leg=false,
kwargs...)
# Delta
d(n) = n == 0 ? 1. : 0.
# Escalón
u(n) = n >= 0 ? 1. : 0.
using Plots
# Pad vector with zeros on the right until its length is `n`
padright(x, n) = copyto!(zeros(eltype(x), n), x)
"""
Función módulo pero con offset (opcional)
Manda a `t` al intervalo [from, from+length)
sumándole o restándole algún múltiplo de `len`
"""
cshift(t, len, from=0) = mod(t - from, len) + from
1) Conv de señales de soporte acotado generales
Suponé que representamos a uan señal discreta de soporte acotado arbitraria como una tupla `(x, n)` donde `n` es el inicio del soporte
x1 = (1:10, -6)
stem(range(x1[2]; length=length(x1[1])), x1[1])
function conv_ext((x, nx), (h, nh))
return y, ny
end
2) Función que calcula los coeficientes de la serie de Fourier
"""
serie(x)
Toma un vector con los valores de [x(0), x(1), ..., x(N-1)] del primer
período de la señal N-periódica y devuelve [a_0, a_1, ..., a_{N-1}]
"""
function serie(x)
end
3) Función que calcule la convolución circular usando la DFT
function conv_circ(x, y)
length(x) == length(y)
return
end
Bonus points para el que devuelva un vector de números reales cuando las entradas son ambas reales
4) Función que tome una función y grafique su espectro
Recibe por parámetro el ancho de banda `bw` de la señal continua, y el soporte `duracion` y su tiempo inicial `t0` (default 0)
Asume que la señal es real.
El gráfico es sólo del módulo y sólo de frecuencias positivas.
El eje horizontal, en Hz.
function plotspec(xc; bw, duracion, t0=0)
xc
end
5) Espectrograma
Robá código del notebook de espectrograma.
Para agarrar confianza, jugá un poco hasta estar cómodo con los parámetros del espectrograma. Podés armar señales y/o subir wavs tuyos, como se ve en el notebook de espectrograma.
Armá espectrogramas que muestren claramente el efecto del ancho de ventana (en la resolución en tiempo y frecuencia), y del tipo de ventana (en la resolución en frecuencia y los lóbulos secundarios).