## 2 Frequency Domain Filtering of Overlapping Patches
### Frequency Domain Filtering of Overlapping Patches
(**d**) Magnitude of noisy image Fourier transform. (**e**) Magnitude of noisy image Fourier transform with low frequencies suppressed. (**f**) Magnitude of noisy image Fourier transform with high frequencies suppressed. (**g**) Inverse Fourier transform of noisy image with low frequencies suppressed. (**h**) Inverse Fourier transform of noisy image with high frequencies suppressed. a certain spatial domain filter. Here we suggest using a neural network for frequency domain filtering. We would like to use a neural network as a tool that is able to determine which frequencies are affected by noise and which are not or less affected. Simultaneously a neural network should be able to synthesize (design) convolutional kernels for noise filtering in the frequency domain resulting from the learning process. It is natural to use the MLMVN [47] for solving this problem, as a complex-valued network that is suitable to work with the complex-valued data in the frequency domain. Nowadays images typically may have a large size. Thus, on the one hand, processing a large digital image as a whole using a neural network can be a highly resource-consuming task. On the other hand, to design a robust filter through the learning process, we would need to use many patches from many various images rather than some large image(s) as a whole. Thus, our idea is to focus on filtering relatively small overlapping patches. Each patch in this case should be filtered as a whole, while a resulting image should be created by averaging over all the overlapping pixels. Hence, we focus on training MLMVN to design frequency domain convolutional kernels based on taking the Fourier transform of a noisy patch from an artificially corrupted image as an input and the Fourier transform of a respective clean patch from a noise-free image as a desired output. This approach also simplifies the adaptation of a neural network to specific data, as fragments contain significantly fewer details compared to the entire image. While processing local regions, the global context of an image is preserved through the overlapping areas of the fragments. Since fragments are much smaller than an entire image, their processing requires considerably fewer computational resources. Additionally, each fragment can be treated as an independent unit, enabling the parallel processing of multiple fragments. Thus, our idea is basically to reconstruct the Fourier transform of a noise-free patch from the Fourier transform of its noisy version using a neural network whose input is the Fourier transform of a noisy patch and desired output is the Fourier transform of a corresponding noise-free patch. To create a respective representative learning set, many clean images should be corrupted by noise, noisy patches should be randomly selected from each image, their Fourier transforms should be used as inputs, corresponding clean patches should be selected, starting with the same coordinates from the respective clean images, and their Fourier transforms should be used as desired outputs. We suggest employing MLMVN with a single hidden layer and an output layer with the same number of output neurons as the number of Fourier coefficients in a respective patch's Fourier transform. With this topology of MLMVN, its two layers of neurons perform the following tasks. Every neuron in a single hidden layer develops a frequency domain convolutional kernel through the learning process. Therefore, each neuron in a single hidden layer performs a frequency domain convolution, multiplying component-wise its weights by the respective Fourier transform coefficients of a patch to be processed. \[\mathcal{F}^{-1}(\mathcal{F}(w)\odot\mathcal{F}(p))=w\star p\]  
Each neuron in the output layer estimates a respective Fourier coefficient of a noise-free patch based on the outputs of all hidden layer neurons. The selection of patches for constructing the training set and the learning process is described below in Section 2.2. After a learning set is created, the learning process should start.