Utilice la función hilbert para crear la transformada de Hilbert de una señal real de modo que la transformada de Fourier discreta de la señal analítica tenga una magnitud cero a frecuencias negativas.
1. Utilice las funciones sin y cos para definir la señal de entrada. Utilice la función rnd para añadir ruido aleatorio.
2. Trace la señal de entrada.
3. Utilice la función hilbert para calcular la transformada de Hilbert de la señal de entrada.
4. Trace la señal de la transformada de Hilbert.
5. Cree y trace la señal compleja.
En los pasos siguientes se demuestra que la magnitud de la señal analítica es la envolvente compleja de la señal original.
6. Utilice la función dft para buscar el espectro de la señal z1.
7. Trace los valores absolutos del espectro.
Para los vectores, el factor de escala entre la función dft y la función CFFT desfasada es 1/N.
8. Trace las cuatro señales en el mismo gráfico.
La nueva señal creada por Hilbert está relacionada con la señal de entrada del dominio de la transformada de la siguiente manera:
donde H se conoce como el transformador de Hilbert, un filtro con la respuesta en frecuencia:
for
for
Es posible crear H mediante los procedimientos y funciones de diseño de filtro.
Transformador de Hilbert ideal
Rabiner y Gold (Theory and Application of Digital Signal Processing, Prentice-Hall, Inc.) proporcionan los coeficientes para un transformador de Hilbert ideal. Los ejemplos que siguen se basan en la información de la sección 14.4 del libro Signal Processing Algorithms, de Stearns y David (Prentice-Hall). Los coeficientes del filtro ideal se organizan en ventanas y se desplazan para obtener un filtro causal de longitud impar N.
1. Defina la longitud y el centro.
2. Defina los coeficientes sin ventanas h.
3. Utilice la función hamming para organizar en ventanas los coeficientes con una ventana de Hamming, usando el operador vectorize para multiplicar h y la ventana, elemento por elemento.
4. Utilice la función gain para calcular la ganancia del filtro en la frecuencia f con coeficientes h.
5. Trace la ganancia con respecto a la frecuencia.
La frecuencia se normaliza en la frecuencia de muestreo de 1.
6. Utilice las funciones exp y arg para calcular el cambio de fase del filtro.
El filtro presenta una demora de C, y el cambio de fase del filtro se calcula con relación a la señal retrasada. La demora tiene esta función de transferencia:
donde:
7. Trace el cambio de fase en grados.
El cambio es de -90 grados en casi todo el rango de frecuencias.
Prueba del filtro
1. Defina los parámetros de señal.
2. Utilice la función exp para crear una nueva señal. La función rnd añade ruido de baja frecuencia.
Se puede colocar el cursor en rnd y pulsar F5 para realizar un nuevo cálculo y obtener una señal aleatoria T diferente.
3. Coloque los conjugados de estos elementos en las 200 últimas posiciones de la señal para garantizar un resultado real cuando se invierta.
El vector nuevo tiene 1001 elementos, de los cuales los elementos del 1 al 200 contienen el vector original T y los elementos del 801 al 1000 contienen los conjugados de T. Los elementos intermedios se definen en 0.
4. Busque la transformada de Fourier de la señal T.
Utilice la función Re para quitar el pequeño error de redondeo imaginario. El ruido se genera al crear su transformada T con fases aleatorias y magnitudes de unidad para los 200 primeros elementos posteriores al primero.
5. Trace la señal transformada.
6. Utilice la función response para obtener la respuesta del vector ZT para filtrar HamL.
7. Cree una señal compleja z2 utilizando los 800 primeros elementos de ZT y los 800 últimos elementos de R.
Guarde los 800 primeros elementos del vector de la transformada de Fourier ZT en el vector a2.
Guarde los 800 últimos elementos del vector de respuesta R en el vector b2.
Defina la señal compleja z2.
8. Utilice la función dft para calcular la transformada de Fourier discreta de la señal z2.
Para los vectores, el factor de escala entre la función dft y la función CFFT desfasada es 1/P.
9. Trace los valores absolutos de la transformada de Fourier discreta de la señal z2.
Aquí se muestran los 200 puntos originales que se utilizaron para generar la señal en el dominio de transformada. La mitad superior del espectro es, esencialmente, cero, por lo que el filtro del transformador de Hilbert ha hecho su trabajo.