¿Cómo implemento la modulación en anillo usando la Transformada de Fourier?

La forma más fácil de modular una señal es multiplicándola con la frecuencia portadora, esta es la idea básica detrás de la modulación en anillo. Sin embargo, si desea utilizar la transformación de Fourier, esto es relativamente fácil.

Lo primero a tener en cuenta es que la multiplicación por algo es una operación lineal, lo que significa que:

(a + b) * c = a * c + b * c

Esto significa que puede descomponer su señal inicial en diferentes componentes de frecuencia y luego ensamblar la salida sumando la contribución de cada componente de frecuencia.

Necesita saber cómo se transforma cada componente de frecuencia una vez que se modula. Esto es bastante fácil, ya que:

(A * cos (a)) * cos (c) = 0.5 * A * (cos (a + b) + cos (ab))
(B * sin (a)) * cos (c) = 0.5 * B * (sin (a + b) + sin (ab))

cos (a + b) tendrá una frecuencia igual a la frecuencia de su componente más la frecuencia de la portadora, cos ab tendrá una frecuencia igual a la frecuencia de su componente menos la frecuencia de la portadora. Dependiendo de cómo calcule la transformada de Fourier, puede descuidar las frecuencias negativas (se prescriben al forzar que su señal modulada sea real).

Por lo tanto, primero debe comenzar con un búfer a cero para sus datos de salida y asegurarse de que sea lo suficientemente grande (debe poder ir a 2 * Fmax, donde Fmax es la frecuencia máxima de su señal modulada, que es igual a su frecuencia de modulación más la frecuencia máxima de la señal portadora).

Luego, para cada componente de frecuencia a la frecuencia Fc en su transformada de Fourier, y suponiendo que su frecuencia de modulación es Fmod, debe:

Agregue 0.5 * A al componente coseno (real) a la frecuencia Fc + Fmod y Fc-Fmod. Donde A es la amplitud real (coseno) en Fc.

Agregue 0.5 * B al componente seno (complejo) a la frecuencia Fc + Fmod y Fc-Fmod.

Si su transformación de Fourier contiene solo frecuencias positivas (las que contienen frecuencias negativas se ven reflejadas en el centro), puede olvidarse de los componentes que contienen sustracciones. El código para lograr esto sería:

// struct complex {double re, im; };
modular vacío (complejo * in, complejo * out, int n, int fmod)
{
int i;
para (i = 0; i <(n-fmod); i ++)
{
out [i + fmod] .re = 0.5 * in [i] .re;
out [i + fmod] .im = 0.5 * en [i] .im;
}
}

Donde in es la transformada de Fourier de la señal de entrada, out es la transformada de fourier de la señal modulada, n es el número de muestras y fmod es la frecuencia de modulación.

Tenga en cuenta que este código supone que su vector de entrada y salida tiene el mismo tamaño, lo que significa que debe aumentar la muestra de la señal de entrada para que tenga la resolución suficiente para contener la señal modulada. Además, los componentes en la frecuencia de entrada que tienen una frecuencia demasiado alta se descartarán, ya que de lo contrario se produciría un alias. Al trabajar un poco en el código, puede sortear estas limitaciones.

En cualquier caso, este método agrega 2 * n * log (n) operaciones debido a las transformadas de Fourier directas e inversas requeridas en comparación con el método de multiplicación y, por lo tanto, no lo recomendaría.

More Interesting

¿Qué causó el crecimiento de la ingeniería en la India en la década de 1990?

Mi novia está estudiando ingeniería civil ... entonces, ¿qué cosas sobre ingeniería civil debo saber para impresionarla más?

¿Qué es mejor: informática o ingeniería?

¿Cuáles son algunos de los mejores libros de aptitudes para estudiantes de ingeniería?

¿Por qué la mayoría de los ingenieros no usan un título como 'Er'? a sus nombres?

¿Cuál es percibido como el tema más difícil en Ingeniería Mecánica?

¿Qué campo de ingenieros trabaja con físicos (por ejemplo, astrofísica, física experimental, física aplicada) más?

¿Cuáles son algunas ideas de proyectos de materiales compuestos para estudiantes de ingeniería mecánica?

El cuarto orden explícito Runge Kutta (así como otras órdenes) tiene un número infinito de versiones. Pero de estos, solo uno se usa comúnmente. ¿Por qué?

¿Qué universidades privadas son mejores para la ingeniería?

¿Qué es el Instituto de Ingenieros? ¿Cómo puedo obtener su membresía como estudiante de ingeniería mecánica? ¿Cómo me puede ayudar ingresar a la IAF?

¿Cuáles son algunas buenas ideas sobre proyectos de bricolaje en ingeniería eléctrica? ¿A qué sitios web debo referirme?

¿Cuál es el rango (2017) de IIT Roorkee entre todas las universidades de ingeniería en la India?

¿Cómo se decide si algo puede ser patentado o no?

¿Qué tecnología debo estudiar para convertirme en ingeniero de sistemas en la nube HPC?