Circuito analógico para multiplicar en el dominio de la frecuencia [duplicado]

Tengo una idea con la que quiero experimentar: hacer lógica booleana con señales analógicas (OFDM). Cada componente de frecuencia representa un 'bit' diferente. Un factor clave es realizar la operación AND. Me gustaría poder multiplicar el dominio de frecuencia de dos señales (también conocido como convolución), por ejemplo

A ( ω ) B ( ω ) = X ( ω ) a ( t ) b ( t ) = X ( t )

Esencialmente, la respuesta de frecuencia de una señal se usa para filtrar la otra señal. Si A es una superposición de senos de 100, 200 y 400 Hz, y B es 200, 300 y 400, la salida sería 200 y 400 Hz.

¿Hay algún circuito para realizar esta operación? Sé que puedo multiplicar las señales en el dominio del tiempo con algo como una celda de Gilbert. Digitalizar y usar DSP anularía por completo el propósito, me gustaría hacer esto únicamente con hardware (e idealmente con el circuito más simple posible).

Nota: leí Convolución realizada por un circuito analógico antes de publicar esto. Realmente no tiene respuestas satisfactorias (excepto líneas de retraso, que he estado investigando). Además, podría arreglármelas con solo poder ajustar muy rápidamente (~ 1 Ghz) la frecuencia central de un filtro de paso de banda.

Para dar un poco de claridad, lo que estoy buscando hacer es enviar múltiples (es decir, 64) bits por un solo rastro de cobre, multiplexado en frecuencia. Pasaría a través de una variedad de puertas para formar una ALU. Una puerta AND de 64 bits solo necesitaría 2 trazas de entrada y haría AND en cuanto a frecuencia. La frecuencia máxima es menos importante que el ancho de banda.

Cualquier cosa que me ayude a moverme en la dirección correcta sería genial. Las líneas de retardo basadas en CCD parecen prometedoras, pero las implementaciones/casos de uso específicos serían excelentes.

¡Gracias!

Respuestas (2)

Ciertamente, es posible realizar esta operación de 64 bits sin un DSP, una NAND booleana de valores OFDM A y B de 64 bits , donde cada posición de bit se codifica como una frecuencia diferente que viaja a lo largo del mismo cable.

En la parte superior de mi cabeza, tal vez A entra en un banco de filtros (transformada de ondas analógicas) que divide A en sus 64 componentes de frecuencia (usando unas pocas docenas de amplificadores operacionales) y filtros de paso bajo para cada componente (un filtro RC simple para cada componente). (Tengo entendido que la gente ha diseñado varios chips que incluyen bancos de filtros de un solo chip diseñados para hacer transformaciones wavelet de baja potencia a , b , c , d , etc.). B entra en un banco de filtros similar. Los bancos de filtros alimentan 64 puertas NAND de activación Schmitt (16 chips de 74HC132).

El resultado podría volver a codificarse en una señal de salida C conectando cada salida de puerta NAND para encender o apagar un transistor que conecta un extremo de una resistencia al oscilador apropiado. (Presumiblemente, para generar A y B, ya tiene 64 osciladores, cada uno sintonizado en una de las frecuencias de posición de bit deseadas). Las 64 resistencias están conectadas juntas en el nodo de suma de un solo amplificador operacional que transmite los 64 bits a través de una sola traza de cobre.

(Esta respuesta se publica principalmente para mostrar que es posible sin un DSP. Espero otras respuestas que sean mucho más inteligentes que esta. Tal vez usando multiplexación por división de ancho de banda y óptica no lineal; 64 bucles de bloqueo de fase sintonizados o frecuencia- bucles bloqueados ; o tal vez de alguna manera agregando algunos componentes no lineales a un sistema de desplazamiento de frecuencia superheterodino ).

Creo que esto o usar líneas de retardo CCD es lo más cerca que voy a estar. La óptica no lineal fue uno de mis primeros pensamientos, y esperaba poder encontrar algo sin entrar en eso, pero esa podría ser la mejor manera de hacerlo.

¡CADA circuito que implementa un sistema LTI está haciendo convolución en el dominio del tiempo! Si construye un filtro con la función de transferencia B (es decir, respuesta de impulso b(t)), todo lo que tendría que hacer es usar a(t) como entrada para producir a ( t ) b ( t )