{'fraction_non_alphanumeric': 0.01972555746140652, 'fraction_numerical': 0.002572898799313894, 'mean_word_length': 5.109947643979058, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
A programmable continuous-time analog Fourier processor based on floating-gate devices

We present a programmable continuous-time floating-gate Fourier processor that decomposes the frequency bands using analog bandpass filters, multiplies each channel by a non-volatile weight, and then recombines the frequency channels. A DSP would take a similar approach of computing a FFT, multiplying the frequency components by a weight, then computing an inverse FFT. We decompose the frequency bands of an incoming signal using the transistor only circuit model of the Autozeroing Floating-Gate Amplifier (AFGA) or also termed C4 (Capacitivly Coupled Current Conveyer). Each band decomposition is then fed through a floating gate multiplier to perform the band weighting. Finally, the multiplier outputs are summed using KCL to give a band weighted output of the original signal. We examine many options to reduce 2nd order harmonic problems inherent in the single sided C4. We present a method for programming arrays of floating gate devices that are used in the weighting of the bands. All of these pieces fit together to form an elegant and systematic Fourier processor.