Überarbeitung, Check Prof

This commit is contained in:
Patrick Hangl
2026-05-08 11:23:36 +02:00
parent 0a5244ec3f
commit e45285721c
28 changed files with 865 additions and 319 deletions
Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 80 KiB

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 74 KiB

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 854 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 935 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 26 KiB

+9 -9
View File
@@ -2,13 +2,13 @@
The main purpose of the high-level simulations is to verify and demonstrate the theoretical approach of the previous chapters and to evaluate the performance of the proposed algorithms under various conditions. The following simulations include different scenarios such as, different types of noise signals and different considerations of transfer functions. The goal is to verify different approaches before taking the step to the implementation of said algorithms on the low-power \ac{DSP}.\\ \\ The main purpose of the high-level simulations is to verify and demonstrate the theoretical approach of the previous chapters and to evaluate the performance of the proposed algorithms under various conditions. The following simulations include different scenarios such as, different types of noise signals and different considerations of transfer functions. The goal is to verify different approaches before taking the step to the implementation of said algorithms on the low-power \ac{DSP}.\\ \\
The implementation is conducted in Python, which provides a flexible environment for numerical computations and data visualization. The simulation is graphically represented using the Python library Matplotlib, allowing for clear visualization of the results. The implementation is conducted in Python, which provides a flexible environment for numerical computations and data visualization. The simulation is graphically represented using the Python library Matplotlib, allowing for clear visualization of the results.
\subsection{Adaptive Noise Reduction algorithm implementation} \subsection{Adaptive Noise Reduction algorithm implementation}
The high-level implementation of the \ac{ANR} algorithm follows the theoretical framework outlined in Subchapter 2.5, specifically Equation \ref{equation_lms}. The algorithm is designed to adaptively filter out noise from a desired signal using a reference noise input. The implementation of the \ac{ANR} function includes the following key steps: The high-level implementation of the \ac{ANR} algorithm follows the theoretical framework outlined in Subchapter 2.5, specifically Equation \ref{equation_lms}. The algorithm is designed to adaptively filter out noise from a desired signal using a reference noise signal. The implementation of the \ac{ANR} function includes the following key steps:
\begin{itemize} \begin{itemize}
\item Initialization: Define vectors to store the filter coefficients, the output samples, and the updated filter coefficients over time. \item Initialization: Define arrays to store the reference noise samples (Sample Line), the filter coefficients (Filter Line), the processed output samples (output), and the updated filter coefficients (coefficient\_matrix) over time. Then a sequence of input samples is processed iteratively.
\item Filtering Process: After initially enough input samples (= number of filter coefficients) passed the filter, for each sample in the input sample, the filter coefficients are multiplied with the corresponding reference noise samples before added to an accumulator. \item Filtering Process: The reference noise samples fill up the Sample Line, the filter coefficients in the Filter Line (initially set to zero) are then multiplied with the corresponding reference noise samples before being added up to an accumulator.
\item Error Calculation: The accumulator is then subtracted from the current input sample to produce the output sample, which represents the error signal. \item Error Calculation: The accumulator is then subtracted from the current input sample to produce the output sample, which represents the error signal.
\item Coefficient Update: The filter coefficients are updated by the corrector, which consists out of the error signal, scaled by the step size. The adaption step parameter allows controlling how often the coefficients are updated. \item Coefficient Update: Every filter coefficient is then updated, by adding a term, which consists out of the error signal multiplied by the corresponding reference noise sample, scaled by the step size. The adaption step parameter allows controlling how often the coefficients are updated.
\item Iteration: Repeat the process for all samples in the input signal. \item Iteration: Repeat the process for all samples of the input signal.
\end{itemize} \end{itemize}
The flow diagram in Figure \ref{fig:fig_anr_logic} illustrates the logical flow of the \ac{ANR} algorithm, while the code snippet in Listing \ref{lst:lst_anr_code} provides the concrete code implementation of the \ac{ANR}-function. The flow diagram in Figure \ref{fig:fig_anr_logic} illustrates the logical flow of the \ac{ANR} algorithm, while the code snippet in Listing \ref{lst:lst_anr_code} provides the concrete code implementation of the \ac{ANR}-function.
\begin{figure}[H] \begin{figure}[H]
@@ -46,11 +46,11 @@ def anr_function(input, ref_noise, coefficients, mu, adaption_step=1):
\noindent The algorithm implementation shall now be put under test by different use cases to demonstrate the functionality and performance under different scenarios, varying from simple to complex ones. Every use case includes graphical representations of the desired signal, the corrupted signal, the reference noise signal, the filter output, the error signal and the evolution of selected filter coefficients over time. In contrary to a realistic setup, the desired signal is available, allowing to evaluate the performance of the algorithm based on the \ac{SNR}-Gain in dB and also visually by the amplitude of the error signal (difference between the desired signal and the filter output). The error signal and the \ac{SNR}-Gain are calculated as follows: \noindent The algorithm implementation shall now be put under test by different use cases to demonstrate the functionality and performance under different scenarios, varying from simple to complex ones. Every use case includes graphical representations of the desired signal, the corrupted signal, the reference noise signal, the filter output, the error signal and the evolution of selected filter coefficients over time. In contrary to a realistic setup, the desired signal is available, allowing to evaluate the performance of the algorithm based on the \ac{SNR}-Gain in dB and also visually by the amplitude of the error signal (difference between the desired signal and the filter output). The error signal and the \ac{SNR}-Gain are calculated as follows:
\begin{gather} \begin{gather}
\label{equation_snr_gain_error} \label{equation_snr_gain_error}
P_{Error-signal} = P_{Desired-signal} - P_{Filter-output} \\ \text{P}_{\text{Error-signal}} = \text{P}_{\text{Desired-signal}} - \text{P}_{\text{Filter-output}} \\
\label{equation_snr_gain} \label{equation_snr_gain}
SNR\text{-}Gain = 10 \cdot \log_{10}\frac{P_{Desired-signal}}{P_{Noise-signal}} - 10 \cdot \log_{10}\frac{P_{Desired-signal}}{P_{Error-signal}} \text{SNR-Gain} = 10 \cdot \log_{10}\frac{\text{P}_{\text{Desired-signal}}}{\text{P}_{\text{Noise-signal}}} - 10 \cdot \log_{10}\frac{\text{P}_{\text{Desired-signal}}}{\text{P}_{\text{Error-signal}}}
\end{gather} \end{gather}
with $P_{Desired-signal}$ being the power of the desired signal, $P_{Noise-signal}$ being the power of the noise signal and $P_{Error-signal}$ being the power of the error signal, which is the difference between the desired signal and the filter output. A positive \ac{SNR}-Gain indicates an improvement in signal quality, while a negative \ac{SNR}-Gain indicates a degradation in signal quality after applying the \ac{ANR} algorithm. with $\text{P}_{\text{Desired-signal}}$ being the power of the desired signal, $\text{P}_{\text{Noise-signal}}$ being the power of the noise signal and $\text{P}_{\text{Error-signal}}$ being the power of the error signal, which is the difference between the desired signal and the filter output. A positive \ac{SNR}-Gain indicates an improvement in signal quality, while a negative \ac{SNR}-Gain indicates a degradation in signal quality after applying the \ac{ANR} algorithm.
\subsection{Simple ANR use cases} \subsection{Simple ANR use cases}
To evaluate the general functionality and performance of the \ac{ANR} algorithm from Listing \ref{lst:lst_anr_code} a set of three simple, artificial scenarios are introduced. These examples shall serve as a showcase to demonstrate the general functionality, the possibilities and the limitations of the \ac{ANR} algorithm.\\ \\ To evaluate the general functionality and performance of the \ac{ANR} algorithm from Listing \ref{lst:lst_anr_code} a set of three simple, artificial scenarios are introduced. These examples shall serve as a showcase to demonstrate the general functionality, the possibilities and the limitations of the \ac{ANR} algorithm.\\ \\
In all three scenarios, a chirp signal with a frequency range from 100-1000 Hz is used as the desired signal, which is then corrupted with a sine wave (Use case 1 and 2) or a Gaussian white noise (Use case 3) as noise signal respectively. In this simple setup, the corruption noise signal is also available as the reference noise signal. Every approach is conducted with 16 filter coefficients and a step size of 0.01. The four graphs in the respective first plot show the desired signal, the corrupted signal, the reference noise signal and the filter output. The two graphs in the respective second plot show the performance of the filter in form of the resulting error signal and the evolution of three filter coefficients over time.\\ \\ In all three scenarios, a chirp signal with a frequency range from 100-1000 Hz is used as the desired signal, which is then corrupted with a sine wave (Use case 1 and 2) or a Gaussian white noise (Use case 3) as noise signal respectively. In this simple setup, the corruption noise signal is also available as the reference noise signal. Every approach is conducted with 16 filter coefficients and a step size of 0.01. The four graphs in the respective first plot show the desired signal, the corrupted signal, the reference noise signal and the filter output. The two graphs in the respective second plot show the performance of the filter in form of the resulting error signal and the evolution of three filter coefficients over time.\\ \\
+67 -67
View File
@@ -1,28 +1,28 @@
\relax \relax
\@writefile{toc}{\contentsline {section}{\numberline {4}Hardware implementation and performance quantization of the ANR Algorithm on a low-power system}{42}{}\protected@file@percent } \@writefile{toc}{\contentsline {section}{\numberline {4}Hardware implementation and performance quantization of the ANR Algorithm on a low-power system}{41}{}\protected@file@percent }
\acronymused{ANR} \acronymused{ANR}
\acronymused{CI} \acronymused{CI}
\acronymused{ANR} \acronymused{ANR}
\acronymused{ANR} \acronymused{ANR}
\acronymused{ANR} \acronymused{ANR}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.1}Low-power system architecture and integration}{42}{}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {4.1}Low-power system architecture and integration}{41}{}\protected@file@percent }
\AC@undonewlabel{acro:SOC} \AC@undonewlabel{acro:SOC}
\newlabel{acro:SOC}{{4.1}{42}{}{}{}} \newlabel{acro:SOC}{{4.1}{41}{}{}{}}
\acronymused{SOC} \acronymused{SOC}
\AC@undonewlabel{acro:ARM} \AC@undonewlabel{acro:ARM}
\newlabel{acro:ARM}{{4.1}{42}{}{}{}} \newlabel{acro:ARM}{{4.1}{41}{}{}{}}
\acronymused{ARM} \acronymused{ARM}
\acronymused{DSP} \acronymused{DSP}
\acronymused{ARM} \acronymused{ARM}
\acronymused{DSP} \acronymused{DSP}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.1.1}ARM and DSP hardware architecture overview}{42}{}\protected@file@percent } \@writefile{toc}{\contentsline {subsubsection}{\numberline {4.1.1}ARM and DSP hardware architecture overview}{41}{}\protected@file@percent }
\acronymused{ARM} \acronymused{ARM}
\acronymused{ARM} \acronymused{ARM}
\acronymused{CI} \acronymused{CI}
\acronymused{DSP} \acronymused{DSP}
\acronymused{DSP} \acronymused{DSP}
\AC@undonewlabel{acro:MAC} \AC@undonewlabel{acro:MAC}
\newlabel{acro:MAC}{{4.1.1}{42}{}{}{}} \newlabel{acro:MAC}{{4.1.1}{41}{}{}{}}
\acronymused{MAC} \acronymused{MAC}
\acronymused{ARM} \acronymused{ARM}
\acronymused{ANR} \acronymused{ANR}
@@ -37,10 +37,10 @@
\acronymused{ARM} \acronymused{ARM}
\acronymused{DSP} \acronymused{DSP}
\AC@undonewlabel{acro:DMA} \AC@undonewlabel{acro:DMA}
\newlabel{acro:DMA}{{4.1.1}{43}{}{}{}} \newlabel{acro:DMA}{{4.1.1}{42}{}{}{}}
\acronymused{DMA} \acronymused{DMA}
\AC@undonewlabel{acro:PCM} \AC@undonewlabel{acro:PCM}
\newlabel{acro:PCM}{{4.1.1}{43}{}{}{}} \newlabel{acro:PCM}{{4.1.1}{42}{}{}{}}
\acronymused{PCM} \acronymused{PCM}
\acronymused{DSP} \acronymused{DSP}
\acronymused{PCM} \acronymused{PCM}
@@ -51,13 +51,13 @@
\acronymused{DSP} \acronymused{DSP}
\acronymused{DSP} \acronymused{DSP}
\AC@undonewlabel{acro:ALU} \AC@undonewlabel{acro:ALU}
\newlabel{acro:ALU}{{4.1.1}{43}{}{}{}} \newlabel{acro:ALU}{{4.1.1}{42}{}{}{}}
\acronymused{ALU} \acronymused{ALU}
\acronymused{DSP} \acronymused{DSP}
\acronymused{MAC} \acronymused{MAC}
\acronymused{ALU} \acronymused{ALU}
\acronymused{MAC} \acronymused{MAC}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.1.2}Intercore communication mechanisms}{43}{}\protected@file@percent } \@writefile{toc}{\contentsline {subsubsection}{\numberline {4.1.2}Intercore communication mechanisms}{42}{}\protected@file@percent }
\acronymused{CI} \acronymused{CI}
\acronymused{ARM} \acronymused{ARM}
\acronymused{DSP} \acronymused{DSP}
@@ -65,12 +65,12 @@
\acronymused{DSP} \acronymused{DSP}
\acronymused{DSP} \acronymused{DSP}
\acronymused{ARM} \acronymused{ARM}
\@writefile{lof}{\contentsline {figure}{\numberline {31}{\ignorespaces Simplified visualization of the interaction between the \ac {CI}-System, the \ac {ARM} core and the \ac {DSP} core, making use of the \ac {PCM} interface and shared memory for audio data exchange.}}{44}{}\protected@file@percent } \@writefile{lof}{\contentsline {figure}{\numberline {31}{\ignorespaces Simplified visualization of the interaction between the \ac {CI}-System, the \ac {ARM} core and the \ac {DSP} core, making use of the \ac {PCM} interface and shared memory for audio data exchange.}}{43}{}\protected@file@percent }
\acronymused{CI} \acronymused{CI}
\acronymused{ARM} \acronymused{ARM}
\acronymused{DSP} \acronymused{DSP}
\acronymused{PCM} \acronymused{PCM}
\newlabel{fig:fig_dsp_setup.jpg}{{31}{44}{}{}{}} \newlabel{fig:fig_dsp_setup.jpg}{{31}{43}{}{}{}}
\acronymused{ARM} \acronymused{ARM}
\acronymused{PCM} \acronymused{PCM}
\acronymused{DMA} \acronymused{DMA}
@@ -82,12 +82,12 @@
\acronymused{DSP} \acronymused{DSP}
\acronymused{DMA} \acronymused{DMA}
\acronymused{PCM} \acronymused{PCM}
\@writefile{lof}{\contentsline {figure}{\numberline {32}{\ignorespaces Simplified flowchart of the sample processing between the \ac {ARM} core and the \ac {DSP} core via interrupts and shared memory.}}{45}{}\protected@file@percent } \@writefile{lof}{\contentsline {figure}{\numberline {32}{\ignorespaces Simplified flowchart of the sample processing between the \ac {ARM} core and the \ac {DSP} core via interrupts and shared memory.}}{44}{}\protected@file@percent }
\acronymused{ARM} \acronymused{ARM}
\acronymused{DSP} \acronymused{DSP}
\newlabel{fig:fig_dsp_comm.jpg}{{32}{45}{}{}{}} \newlabel{fig:fig_dsp_comm.jpg}{{32}{44}{}{}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.2}Software architecture and execution flow}{45}{}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {4.2}Software architecture and execution flow}{44}{}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.1}ARMDSP communication and data exchange details}{45}{}\protected@file@percent } \@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.1}ARMDSP communication and data exchange details}{44}{}\protected@file@percent }
\acronymused{ANR} \acronymused{ANR}
\acronymused{DSP} \acronymused{DSP}
\acronymused{DSP} \acronymused{DSP}
@@ -117,11 +117,11 @@
\acronymused{PCM} \acronymused{PCM}
\acronymused{ARM} \acronymused{ARM}
\acronymused{DSP} \acronymused{DSP}
\@writefile{lof}{\contentsline {figure}{\numberline {33}{\ignorespaces Detailed visualization of the \ac {DMA} operations between the PCM interface to the shared memory section. When the memory buffer occupied, an interrupt is triggered, either to the \ac {DSP} core or to the \ac {ARM} core, depending on, if triggered during a Read- or Write-operation.}}{47}{}\protected@file@percent } \@writefile{lof}{\contentsline {figure}{\numberline {33}{\ignorespaces Detailed visualization of the \ac {DMA} operations between the PCM interface to the shared memory section. When the memory buffer occupied, an interrupt is triggered, either to the \ac {DSP} core or to the \ac {ARM} core, depending on, if triggered during a Read- or Write-operation.}}{46}{}\protected@file@percent }
\acronymused{DMA} \acronymused{DMA}
\acronymused{DSP} \acronymused{DSP}
\acronymused{ARM} \acronymused{ARM}
\newlabel{fig:fig_dsp_dma.jpg}{{33}{47}{}{}{}} \newlabel{fig:fig_dsp_dma.jpg}{{33}{46}{}{}{}}
\acronymused{DMA} \acronymused{DMA}
\acronymused{DMA} \acronymused{DMA}
\acronymused{PCM} \acronymused{PCM}
@@ -131,18 +131,18 @@
\acronymused{ARM} \acronymused{ARM}
\acronymused{ANR} \acronymused{ANR}
\acronymused{DSP} \acronymused{DSP}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.2}System control flow and main processing loop}{47}{}\protected@file@percent } \@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.2}System control flow and main processing loop}{46}{}\protected@file@percent }
\acronymused{ANR} \acronymused{ANR}
\acronymused{DSP} \acronymused{DSP}
\@writefile{toc}{\contentsline {paragraph}{Memory initialization and mapping}{47}{}\protected@file@percent } \@writefile{toc}{\contentsline {paragraph}{Memory initialization and mapping}{46}{}\protected@file@percent }
\acronymused{DSP} \acronymused{DSP}
\acronymused{PCM} \acronymused{PCM}
\acronymused{DSP} \acronymused{DSP}
\@writefile{lol}{\contentsline {listing}{\numberline {2}{\ignorespaces Low-level implementation: Memory initialization and mapping}}{48}{}\protected@file@percent } \@writefile{lol}{\contentsline {listing}{\numberline {2}{\ignorespaces Low-level implementation: Memory initialization and mapping}}{47}{}\protected@file@percent }
\newlabel{lst:lst_dsp_code_memory}{{2}{48}{}{}{}} \newlabel{lst:lst_dsp_code_memory}{{2}{47}{}{}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {34}{\ignorespaces Exemplary memory map of the 4-element input buffer array. As it is initialized as a 16-bit integer array, each element occupies 2 bytes of memory, resulting in a total size of 8 bytes for the entire array. As the DSP architecture works in 32-bit double-words, the bytewise addressing is a result of the compiler abstraction.}}{48}{}\protected@file@percent } \@writefile{lof}{\contentsline {figure}{\numberline {34}{\ignorespaces Exemplary memory map of the 4-element input buffer array. As it is initialized as a 16-bit integer array, each element occupies 2 bytes of memory, resulting in a total size of 8 bytes for the entire array. As the DSP architecture works in 32-bit double-words, the bytewise addressing is a result of the compiler abstraction.}}{47}{}\protected@file@percent }
\newlabel{fig:fig_compiler.jpg}{{34}{48}{}{}{}} \newlabel{fig:fig_compiler.jpg}{{34}{47}{}{}{}}
\@writefile{toc}{\contentsline {paragraph}{Main loop and interrupt handling}{48}{}\protected@file@percent } \@writefile{toc}{\contentsline {paragraph}{Main loop and interrupt handling}{47}{}\protected@file@percent }
\acronymused{DSP} \acronymused{DSP}
\acronymused{ANR} \acronymused{ANR}
\acronymused{ARM} \acronymused{ARM}
@@ -150,78 +150,78 @@
\acronymused{DSP} \acronymused{DSP}
\acronymused{ARM} \acronymused{ARM}
\acronymused{DSP} \acronymused{DSP}
\@writefile{lol}{\contentsline {listing}{\numberline {3}{\ignorespaces Low-level implementation: Main loop and interrupt handling}}{49}{}\protected@file@percent } \@writefile{lol}{\contentsline {listing}{\numberline {3}{\ignorespaces Low-level implementation: Main loop and interrupt handling}}{48}{}\protected@file@percent }
\newlabel{lst:lst_dsp_code_mainloop}{{3}{49}{}{}{}} \newlabel{lst:lst_dsp_code_mainloop}{{3}{48}{}{}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {35}{\ignorespaces Flow diagram of the code implementation of the main loop and interrupt handling on the \ac {DSP} core.}}{50}{}\protected@file@percent } \@writefile{lof}{\contentsline {figure}{\numberline {35}{\ignorespaces Flow diagram of the code implementation of the main loop and interrupt handling on the \ac {DSP} core.}}{49}{}\protected@file@percent }
\acronymused{DSP} \acronymused{DSP}
\newlabel{fig:fig_dsp_logic.jpg}{{35}{50}{}{}{}} \newlabel{fig:fig_dsp_logic.jpg}{{35}{49}{}{}{}}
\@writefile{toc}{\contentsline {paragraph}{calculate\_output()-function}{50}{}\protected@file@percent } \@writefile{toc}{\contentsline {paragraph}{calculate\_output()-function}{49}{}\protected@file@percent }
\acronymused{DSP} \acronymused{DSP}
\acronymused{ANR} \acronymused{ANR}
\acronymused{DSP} \acronymused{DSP}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.3}DSP-level implementation of the ANR algorithm}{51}{}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {4.3}DSP-level implementation of the ANR algorithm}{50}{}\protected@file@percent }
\acronymused{DSP} \acronymused{DSP}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.3.1}DSP-specific optimizations for real-time processing}{51}{}\protected@file@percent } \@writefile{toc}{\contentsline {subsubsection}{\numberline {4.3.1}DSP-specific optimizations for real-time processing}{50}{}\protected@file@percent }
\acronymused{ANR} \acronymused{ANR}
\acronymused{DSP} \acronymused{DSP}
\@writefile{toc}{\contentsline {paragraph}{Logic operations}{51}{}\protected@file@percent } \@writefile{toc}{\contentsline {paragraph}{Logic operations}{50}{}\protected@file@percent }
\acronymused{DSP} \acronymused{DSP}
\acronymused{DSP} \acronymused{DSP}
\@writefile{lol}{\contentsline {listing}{\numberline {4}{\ignorespaces Manual implementation of a max-function, returning the maximum of two integer values, taking 12 cycles to execute. The intrinsic functions of the DSP compiler allow a 4-cycle implementation of such an operation.}}{51}{}\protected@file@percent } \@writefile{lol}{\contentsline {listing}{\numberline {4}{\ignorespaces Manual implementation of a max-function, returning the maximum of two integer values, taking 12 cycles to execute. The intrinsic functions of the DSP compiler allow a 4-cycle implementation of such an operation.}}{50}{}\protected@file@percent }
\newlabel{lst:lst_dsp_code_find_max}{{4}{51}{}{}{}} \newlabel{lst:lst_dsp_code_find_max}{{4}{50}{}{}{}}
\@writefile{toc}{\contentsline {paragraph}{Cyclic array iteration}{51}{}\protected@file@percent } \@writefile{toc}{\contentsline {paragraph}{Cyclic array iteration}{50}{}\protected@file@percent }
\acronymused{ANR} \acronymused{ANR}
\@writefile{lol}{\contentsline {listing}{\numberline {5}{\ignorespaces Manual implementation of a cyclic array iteration function in C, taking the core 20 cycles to execute a pointer inremen of 1. The intrinsic functions of the DSP compiler allows a single-cycle implementation of such cyclic additions.}}{52}{}\protected@file@percent } \@writefile{lol}{\contentsline {listing}{\numberline {5}{\ignorespaces Manual implementation of a cyclic array iteration function in C, taking the core 20 cycles to execute a pointer inremen of 1. The intrinsic functions of the DSP compiler allows a single-cycle implementation of such cyclic additions.}}{51}{}\protected@file@percent }
\newlabel{lst:lst_dsp_code_cyclic_add}{{5}{52}{}{}{}} \newlabel{lst:lst_dsp_code_cyclic_add}{{5}{51}{}{}{}}
\acronymused{DSP} \acronymused{DSP}
\acronymused{DSP} \acronymused{DSP}
\@writefile{toc}{\contentsline {paragraph}{Fractional fixed-point arithmetic}{52}{}\protected@file@percent } \@writefile{toc}{\contentsline {paragraph}{Fractional fixed-point arithmetic}{51}{}\protected@file@percent }
\acronymused{DSP} \acronymused{DSP}
\acronymused{MAC} \acronymused{MAC}
\acronymused{ALU} \acronymused{ALU}
\acronymused{DSP} \acronymused{DSP}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.3.2}Performance quantization of the ANR calculation}{52}{}\protected@file@percent } \@writefile{toc}{\contentsline {subsubsection}{\numberline {4.3.2}Performance quantization of the ANR calculation}{51}{}\protected@file@percent }
\acronymused{ANR} \acronymused{ANR}
\acronymused{DSP} \acronymused{DSP}
\acronymused{FIR} \acronymused{FIR}
\acronymused{FIR} \acronymused{FIR}
\acronymused{DSP} \acronymused{DSP}
\@writefile{toc}{\contentsline {paragraph}{write\_buffer()}{53}{}\protected@file@percent } \@writefile{toc}{\contentsline {paragraph}{write\_buffer()}{52}{}\protected@file@percent }
\acronymused{DSP} \acronymused{DSP}
\@writefile{toc}{\contentsline {paragraph}{apply\_fir\_filter()}{53}{}\protected@file@percent } \@writefile{toc}{\contentsline {paragraph}{apply\_fir\_filter()}{52}{}\protected@file@percent }
\acronymused{FIR} \acronymused{FIR}
\acronymused{MAC} \acronymused{MAC}
\acronymused{DSP} \acronymused{DSP}
\acronymused{DSP} \acronymused{DSP}
\@writefile{lol}{\contentsline {listing}{\numberline {6}{\ignorespaces Code snippet of the $apply\_fir\_filter()$-function, showing the use of the dual \ac {MAC} architecture of the \ac {DSP} and the fractional multiplication function. The loop iterates through the filter coefficients and reference noise signal samples, performing two multiplications and two additions in each cycle.}}{54}{}\protected@file@percent } \@writefile{lol}{\contentsline {listing}{\numberline {6}{\ignorespaces Code snippet of the $apply\_fir\_filter()$-function, showing the use of the dual \ac {MAC} architecture of the \ac {DSP} and the fractional multiplication function. The loop iterates through the filter coefficients and reference noise signal samples, performing two multiplications and two additions in each cycle.}}{53}{}\protected@file@percent }
\newlabel{lst:lst_dsp_code_apply_fir_filter}{{6}{54}{}{}{}} \newlabel{lst:lst_dsp_code_apply_fir_filter}{{6}{53}{}{}{}}
\acronymused{MAC} \acronymused{MAC}
\acronymused{DSP} \acronymused{DSP}
\@writefile{lof}{\contentsline {figure}{\numberline {36}{\ignorespaces Visualization of the FIR filter calculation in the $apply\_fir\_filter()$-function during the 2nd cyclce of a calculation loop. The reference noise signal samples are stored in the sample line, while the filter coefficients are stored in a separate memory section (filter line).}}{54}{}\protected@file@percent } \@writefile{lof}{\contentsline {figure}{\numberline {36}{\ignorespaces Visualization of the FIR filter calculation in the $apply\_fir\_filter()$-function during the 2nd cyclce of a calculation loop. The reference noise signal samples are stored in the sample line, while the filter coefficients are stored in a separate memory section (filter line).}}{53}{}\protected@file@percent }
\newlabel{fig:fig_dsp_fir_cycle.jpg}{{36}{54}{}{}{}} \newlabel{fig:fig_dsp_fir_cycle.jpg}{{36}{53}{}{}{}}
\@writefile{toc}{\contentsline {paragraph}{update\_output()}{54}{}\protected@file@percent }
\@writefile{toc}{\contentsline {paragraph}{update\_filter\_coefficient()}{54}{}\protected@file@percent }
\acronymused{DSP}
\acronymused{MAC}
\@writefile{lol}{\contentsline {listing}{\numberline {7}{\ignorespaces Code snippet of the $update\_filter\_coefficient()$-function, again making use of the dual \ac {MAC} architecture of the \ac {DSP} and the fractional multiplication function. Additionaly, 32-bit values are loaded and stored as 64-bit values, using two also intrinisc functions, allowing to update two filter coefficients in a single cycle.}}{54}{}\protected@file@percent }
\newlabel{lst:lst_dsp_code_update_filter_coefficients}{{7}{54}{}{}{}}
\acronymused{MAC}
\acronymused{DSP}
\@writefile{lof}{\contentsline {figure}{\numberline {37}{\ignorespaces Visualization of the coefficient calculation in the $update\_filter\_coefficient()$-function during the 2nd cyclce of a calculation loop. The output is multiplied with the step size and the corresponding sample from the sample line, before being added to the current filter coefficient.}}{55}{}\protected@file@percent }
\newlabel{fig:fig_dsp_coefficient_cycle.jpg}{{37}{55}{}{}{}}
\@writefile{toc}{\contentsline {paragraph}{update\_output()}{55}{}\protected@file@percent } \@writefile{toc}{\contentsline {paragraph}{update\_output()}{55}{}\protected@file@percent }
\@writefile{toc}{\contentsline {paragraph}{update\_filter\_coefficient()}{55}{}\protected@file@percent } \newlabel{equation_computing}{{24}{55}{}{}{}}
\newlabel{equation_c_1}{{25}{55}{}{}{}}
\newlabel{equation_c_2}{{26}{55}{}{}{}}
\newlabel{equation_c_3}{{27}{55}{}{}{}}
\newlabel{equation_c_4}{{28}{55}{}{}{}}
\newlabel{equation_c_5}{{29}{55}{}{}{}}
\newlabel{equation_computing_final}{{31}{56}{}{}{}}
\acronymused{DSP} \acronymused{DSP}
\acronymused{MAC} \@writefile{lof}{\contentsline {figure}{\numberline {38}{\ignorespaces Dependence of the total computing effort on the filter length $\text {N}$ and update rate $\text {1/U}$.}}{56}{}\protected@file@percent }
\@writefile{lol}{\contentsline {listing}{\numberline {7}{\ignorespaces Code snippet of the $update\_filter\_coefficient()$-function, again making use of the dual \ac {MAC} architecture of the \ac {DSP} and the fractional multiplication function. Additionaly, 32-bit values are loaded and stored as 64-bit values, using two also intrinisc functions, allowing to update two filter coefficients in a single cycle.}}{55}{}\protected@file@percent } \newlabel{fig:fig_c_total.png}{{38}{56}{}{}{}}
\newlabel{lst:lst_dsp_code_update_filter_coefficients}{{7}{55}{}{}{}}
\acronymused{MAC}
\acronymused{DSP}
\@writefile{lof}{\contentsline {figure}{\numberline {37}{\ignorespaces Visualization of the coefficient calculation in the $update\_filter\_coefficient()$-function during the 2nd cyclce of a calculation loop. The output is multiplied with the step size and the corresponding sample from the sample line, before being added to the current filter coefficient.}}{56}{}\protected@file@percent }
\newlabel{fig:fig_dsp_coefficient_cycle.jpg}{{37}{56}{}{}{}}
\@writefile{toc}{\contentsline {paragraph}{update\_output()}{56}{}\protected@file@percent }
\newlabel{equation_computing}{{24}{56}{}{}{}}
\newlabel{equation_c_1}{{25}{56}{}{}{}}
\newlabel{equation_c_2}{{26}{56}{}{}{}}
\newlabel{equation_c_3}{{27}{56}{}{}{}}
\newlabel{equation_c_4}{{28}{56}{}{}{}}
\newlabel{equation_c_5}{{29}{56}{}{}{}}
\newlabel{equation_computing_final}{{31}{57}{}{}{}}
\acronymused{DSP}
\@writefile{lof}{\contentsline {figure}{\numberline {38}{\ignorespaces Dependence of the total computing effort on the filter length $\text {N}$ and update rate $\text {1/U}$.}}{57}{}\protected@file@percent }
\newlabel{fig:fig_c_total.png}{{38}{57}{}{}{}}
\@setckpt{chapter_04}{ \@setckpt{chapter_04}{
\setcounter{page}{58} \setcounter{page}{57}
\setcounter{equation}{31} \setcounter{equation}{31}
\setcounter{enumi}{0} \setcounter{enumi}{0}
\setcounter{enumii}{0} \setcounter{enumii}{0}
@@ -356,7 +356,7 @@
\setcounter{lstnumber}{15} \setcounter{lstnumber}{15}
\setcounter{FancyVerbLine}{0} \setcounter{FancyVerbLine}{0}
\setcounter{linenumber}{1} \setcounter{linenumber}{1}
\setcounter{LN@truepage}{57} \setcounter{LN@truepage}{56}
\setcounter{FancyVerbWriteLine}{0} \setcounter{FancyVerbWriteLine}{0}
\setcounter{FancyVerbBufferLine}{0} \setcounter{FancyVerbBufferLine}{0}
\setcounter{FV@TrueTabGroupLevel}{0} \setcounter{FV@TrueTabGroupLevel}{0}
+66 -57
View File
@@ -1,24 +1,24 @@
\relax \relax
\@writefile{toc}{\contentsline {section}{\numberline {5}Performance evaluation of different implementation variants}{58}{}\protected@file@percent } \@writefile{toc}{\contentsline {section}{\numberline {5}Performance evaluation of different implementation variants}{57}{}\protected@file@percent }
\acronymused{DSP} \acronymused{DSP}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.1}Verification of the \ac {DSP} implementation}{58}{}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {5.1}Verification of the \ac {DSP} implementation}{57}{}\protected@file@percent }
\acronymused{DSP} \acronymused{DSP}
\acronymused{ANR} \acronymused{ANR}
\acronymused{FIR} \acronymused{FIR}
\acronymused{ANR} \acronymused{ANR}
\acronymused{SNR} \acronymused{SNR}
\@writefile{lof}{\contentsline {figure}{\numberline {39}{\ignorespaces Desired signal, corrupted signal, reference noise signal and filter output of the complex \ac {ANR} use case, simulated on the \ac {DSP}}}{58}{}\protected@file@percent } \@writefile{lof}{\contentsline {figure}{\numberline {39}{\ignorespaces Desired signal, corrupted signal, reference noise signal and filter output of the complex \ac {ANR} use case, simulated on the \ac {DSP}}}{57}{}\protected@file@percent }
\acronymused{ANR} \acronymused{ANR}
\acronymused{DSP} \acronymused{DSP}
\newlabel{fig:fig_plot_1_dsp_complex.png}{{39}{58}{}{}{}} \newlabel{fig:fig_plot_1_dsp_complex.png}{{39}{57}{}{}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {40}{\ignorespaces Error signal of the complex \ac {ANR} use case, simulated on the \ac {DSP}}}{59}{}\protected@file@percent } \@writefile{lof}{\contentsline {figure}{\numberline {40}{\ignorespaces Error signal of the complex \ac {ANR} use case, simulated on the \ac {DSP}}}{58}{}\protected@file@percent }
\acronymused{ANR} \acronymused{ANR}
\acronymused{DSP} \acronymused{DSP}
\newlabel{fig:fig_plot_2_dsp_complex.png}{{40}{59}{}{}{}} \newlabel{fig:fig_plot_2_dsp_complex.png}{{40}{58}{}{}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {41}{\ignorespaces Comparison of the high- and low-level simulation output.}}{59}{}\protected@file@percent } \@writefile{lof}{\contentsline {figure}{\numberline {41}{\ignorespaces Comparison of the high- and low-level simulation output.}}{58}{}\protected@file@percent }
\newlabel{fig:fig_high_low_comparison.png}{{41}{59}{}{}{}} \newlabel{fig:fig_high_low_comparison.png}{{41}{58}{}{}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {42}{\ignorespaces Histogram of the error amplitude between the high- and low-level simulation output.}}{60}{}\protected@file@percent } \@writefile{lof}{\contentsline {figure}{\numberline {42}{\ignorespaces Histogram of the error amplitude between the high- and low-level simulation output.}}{59}{}\protected@file@percent }
\newlabel{fig:fig_high_low_comparison_hist.png}{{42}{60}{}{}{}} \newlabel{fig:fig_high_low_comparison_hist.png}{{42}{59}{}{}{}}
\acronymused{ANR} \acronymused{ANR}
\acronymused{DSP} \acronymused{DSP}
\acronymused{SNR} \acronymused{SNR}
@@ -27,17 +27,17 @@
\acronymused{DSP} \acronymused{DSP}
\acronymused{ANR} \acronymused{ANR}
\acronymused{DSP} \acronymused{DSP}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.2}Determination of the optimal filter length}{60}{}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {5.2}Determination of the optimal filter length}{59}{}\protected@file@percent }
\acronymused{CI} \acronymused{CI}
\acronymused{ANR} \acronymused{ANR}
\acronymused{CI} \acronymused{CI}
\@writefile{lof}{\contentsline {figure}{\numberline {43}{\ignorespaces Noise signals used to corrupt the desired signal in the computational efficiency evaluation}}{61}{}\protected@file@percent } \@writefile{lof}{\contentsline {figure}{\numberline {43}{\ignorespaces Noise signals used to corrupt the desired signal in the computational efficiency evaluation}}{60}{}\protected@file@percent }
\newlabel{fig:fig_noise_signals.png}{{43}{61}{}{}{}} \newlabel{fig:fig_noise_signals.png}{{43}{60}{}{}{}}
\acronymused{ANR} \acronymused{ANR}
\acronymused{SNR} \acronymused{SNR}
\@writefile{lof}{\contentsline {figure}{\numberline {44}{\ignorespaces Simulation of the to be expected \ac {SNR}-Gain for different noise signals and filter lengths applied to the desired signal of a male speaker. The applied delay between the signals amounts 2ms. The graphs are smoothed by a third order savigol filter.}}{62}{}\protected@file@percent } \@writefile{lof}{\contentsline {figure}{\numberline {44}{\ignorespaces Simulation of the to be expected \ac {SNR}-Gain for different noise signals and filter lengths applied to the desired signal of a male speaker. The applied delay between the signals amounts 2ms. The graphs are smoothed by a third order savigol filter.}}{61}{}\protected@file@percent }
\acronymused{SNR} \acronymused{SNR}
\newlabel{fig:fig_snr_comparison.png}{{44}{62}{}{}{}} \newlabel{fig:fig_snr_comparison.png}{{44}{61}{}{}{}}
\acronymused{SNR} \acronymused{SNR}
\acronymused{SNR} \acronymused{SNR}
\acronymused{SNR} \acronymused{SNR}
@@ -47,83 +47,83 @@
\acronymused{ANR} \acronymused{ANR}
\acronymused{SNR} \acronymused{SNR}
\acronymused{ANR} \acronymused{ANR}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.3}Evaluation of a a fixed update implementation}{62}{}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {5.3}Evaluation of a a fixed update implementation}{61}{}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.3.1}Full-Update implementation}{62}{}\protected@file@percent } \@writefile{toc}{\contentsline {subsubsection}{\numberline {5.3.1}Full-Update implementation}{61}{}\protected@file@percent }
\newlabel{equation_computing_calculation_full_update}{{32}{62}{}{}{}} \newlabel{equation_computing_calculation_full_update}{{32}{61}{}{}{}}
\acronymused{PCM} \acronymused{PCM}
\acronymused{DSP} \acronymused{DSP}
\acronymused{DSP} \acronymused{DSP}
\newlabel{equation_cycle_budget}{{33}{63}{}{}{}} \newlabel{equation_cycle_budget}{{33}{62}{}{}{}}
\acronymused{DSP} \acronymused{DSP}
\newlabel{equation_load_calculation_full_update}{{34}{63}{}{}{}} \newlabel{equation_load_calculation_full_update}{{34}{62}{}{}{}}
\acronymused{ANR} \acronymused{ANR}
\acronymused{SNR} \acronymused{SNR}
\acronymused{DSP} \acronymused{DSP}
\acronymused{DSP} \acronymused{DSP}
\acronymused{SNR} \acronymused{SNR}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.3.2}Reduced-update implementation for the benchmark case}{63}{}\protected@file@percent } \@writefile{toc}{\contentsline {subsubsection}{\numberline {5.3.2}Reduced-update implementation for the benchmark case}{62}{}\protected@file@percent }
\acronymused{DSP} \acronymused{DSP}
\acronymused{SNR} \acronymused{SNR}
\@writefile{lof}{\contentsline {figure}{\numberline {45}{\ignorespaces Relative performance of the SNR-Gain, the cycles per samples and the DSP load in regard of the update rate for the benchmark case. The baseline of 100\% is the full update implementation. The marked dots represent the results of the simulation for an explicit setup.}}{64}{}\protected@file@percent } \@writefile{lof}{\contentsline {figure}{\numberline {45}{\ignorespaces Relative performance of the SNR-Gain, the cycles per samples and the DSP load in regard of the update rate for the benchmark case. The baseline of 100\% is the full update implementation. The marked dots represent the results of the simulation for an explicit setup.}}{63}{}\protected@file@percent }
\newlabel{fig:fig_snr_update_rate.png}{{45}{64}{}{}{}} \newlabel{fig:fig_snr_update_rate.png}{{45}{63}{}{}{}}
\acronymused{SNR} \acronymused{SNR}
\acronymused{DSP} \acronymused{DSP}
\acronymused{SNR} \acronymused{SNR}
\acronymused{SNR} \acronymused{SNR}
\acronymused{DSP} \acronymused{DSP}
\newlabel{equation_computing_calculation_reduced_update_1}{{35}{64}{}{}{}} \newlabel{equation_computing_calculation_reduced_update_1}{{35}{63}{}{}{}}
\newlabel{equation_load_calculation_reduced_update_1}{{36}{64}{}{}{}} \newlabel{equation_load_calculation_reduced_update_1}{{36}{63}{}{}{}}
\acronymused{DSP} \acronymused{DSP}
\acronymused{SNR} \acronymused{SNR}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.3.3}Reduced-update implementation for multiple noise signals}{64}{}\protected@file@percent } \@writefile{toc}{\contentsline {subsubsection}{\numberline {5.3.3}Reduced-update implementation for multiple noise signals}{63}{}\protected@file@percent }
\acronymused{SNR} \acronymused{SNR}
\@writefile{lof}{\contentsline {figure}{\numberline {46}{\ignorespaces Performance gain (distance between relative SNR-Gain and needed relative cycles/sample) in relation to the update rate of the ANR algorithm for different noise signals.}}{65}{}\protected@file@percent } \@writefile{lof}{\contentsline {figure}{\numberline {46}{\ignorespaces Performance gain (distance between relative SNR-Gain and needed relative cycles/sample) in relation to the update rate of the ANR algorithm for different noise signals.}}{64}{}\protected@file@percent }
\newlabel{fig:fig_gain_update_rate.png}{{46}{65}{}{}{}} \newlabel{fig:fig_gain_update_rate.png}{{46}{64}{}{}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {47}{\ignorespaces Absolute \ac {DSP} load in relation to the update rate of the ANR algorithm for different noise signals.}}{65}{}\protected@file@percent } \@writefile{lof}{\contentsline {figure}{\numberline {47}{\ignorespaces Absolute \ac {DSP} load in relation to the update rate of the ANR algorithm for different noise signals.}}{64}{}\protected@file@percent }
\acronymused{DSP} \acronymused{DSP}
\newlabel{fig:fig_load_update_rate.png}{{47}{65}{}{}{}} \newlabel{fig:fig_load_update_rate.png}{{47}{64}{}{}{}}
\acronymused{DSP} \acronymused{DSP}
\newlabel{equation_computing_calculation_reduced_update_2}{{37}{65}{}{}{}} \newlabel{equation_computing_calculation_reduced_update_2}{{37}{64}{}{}{}}
\newlabel{equation_load_calculation_reduced_update_2}{{38}{66}{}{}{}} \newlabel{equation_load_calculation_reduced_update_2}{{38}{65}{}{}{}}
\acronymused{DSP} \acronymused{DSP}
\acronymused{SNR} \acronymused{SNR}
\acronymused{DSP} \acronymused{DSP}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.3.4}Computational load for reduced-update implementation}{66}{}\protected@file@percent } \@writefile{toc}{\contentsline {subsubsection}{\numberline {5.3.4}Computational load of the reduced-update implementation}{65}{}\protected@file@percent }
\newlabel{equation_update_1}{{39}{66}{}{}{}} \newlabel{equation_update_1}{{39}{65}{}{}{}}
\newlabel{equation_update_2}{{40}{66}{}{}{}} \newlabel{equation_update_2}{{40}{65}{}{}{}}
\acronymused{DSP} \acronymused{DSP}
\newlabel{equation_computing_calculation_reduced_update_3}{{41}{66}{}{}{}} \newlabel{equation_computing_calculation_reduced_update_3}{{41}{65}{}{}{}}
\newlabel{equation_load_calculation_reduced_update_3}{{42}{66}{}{}{}} \newlabel{equation_load_calculation_reduced_update_3}{{42}{65}{}{}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.4}Evaluation of an error driven implementation}{66}{}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {5.4}Evaluation of an error driven implementation}{65}{}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.4.1}Error threshold implementation for the benchmark case}{67}{}\protected@file@percent } \@writefile{toc}{\contentsline {subsubsection}{\numberline {5.4.1}Error threshold implementation for the benchmark case}{66}{}\protected@file@percent }
\@writefile{lof}{\contentsline {figure}{\numberline {48}{\ignorespaces Relative performance of the SNR-Gain, the cycles per samples and the DSP load in regard of the error threshold for the benchmark case. The baseline of 100\% is the full update implementation. The marked dots represent the results of the simulation for an explicit setup.}}{67}{}\protected@file@percent } \@writefile{lof}{\contentsline {figure}{\numberline {48}{\ignorespaces Relative performance of the SNR-Gain, the cycles per samples and the DSP load in regard of the error threshold for the benchmark case. The baseline of 100\% is the full update implementation. The marked dots represent the results of the simulation for an explicit setup.}}{66}{}\protected@file@percent }
\newlabel{fig:fig_snr_error_threshold.png}{{48}{67}{}{}{}} \newlabel{fig:fig_snr_error_threshold.png}{{48}{66}{}{}{}}
\acronymused{SNR} \acronymused{SNR}
\acronymused{DSP} \acronymused{DSP}
\newlabel{equation_computing_calculation_error threshold_1}{{43}{68}{}{}{}} \newlabel{equation_computing_calculation_error threshold_1}{{43}{67}{}{}{}}
\newlabel{equation_load_calculation_error threshold_1}{{44}{68}{}{}{}} \newlabel{equation_load_calculation_error threshold_1}{{44}{67}{}{}{}}
\acronymused{DSP} \acronymused{DSP}
\acronymused{SNR} \acronymused{SNR}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.4.2}Error threshold implementaion for multiple noise signals}{68}{}\protected@file@percent } \@writefile{toc}{\contentsline {subsubsection}{\numberline {5.4.2}Error threshold implementaion for multiple noise signals}{67}{}\protected@file@percent }
\acronymused{SNR} \acronymused{SNR}
\@writefile{lof}{\contentsline {figure}{\numberline {49}{\ignorespaces Performance gain (distance between relative SNR-Gain and needed relative cycles/sample) in relation to the error threshold for different noise signals.}}{68}{}\protected@file@percent } \@writefile{lof}{\contentsline {figure}{\numberline {49}{\ignorespaces Performance gain (distance between relative SNR-Gain and needed relative cycles/sample) in relation to the error threshold for different noise signals.}}{67}{}\protected@file@percent }
\newlabel{fig:fig_gain_error_threshold.png}{{49}{68}{}{}{}} \newlabel{fig:fig_gain_error_threshold.png}{{49}{67}{}{}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {50}{\ignorespaces Absolute \ac {DSP} load in relation to the error threshold for different noise signals.}}{69}{}\protected@file@percent } \@writefile{lof}{\contentsline {figure}{\numberline {50}{\ignorespaces Absolute \ac {DSP} load in relation to the error threshold for different noise signals.}}{68}{}\protected@file@percent }
\acronymused{DSP} \acronymused{DSP}
\newlabel{fig:fig_load_error_threshold.png}{{50}{69}{}{}{}} \newlabel{fig:fig_load_error_threshold.png}{{50}{68}{}{}{}}
\acronymused{DSP} \acronymused{DSP}
\acronymused{DSP} \acronymused{DSP}
\newlabel{equation_computing_calculation_error_threshold_2}{{45}{69}{}{}{}} \newlabel{equation_computing_calculation_error_threshold_2}{{45}{68}{}{}{}}
\newlabel{equation_load_calculation_error_threshold_2}{{46}{69}{}{}{}} \newlabel{equation_load_calculation_error_threshold_2}{{46}{68}{}{}{}}
\acronymused{DSP} \acronymused{DSP}
\acronymused{SNR} \acronymused{SNR}
\acronymused{DSP} \acronymused{DSP}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.4.3}Computational load for error threshold implementation}{69}{}\protected@file@percent } \@writefile{toc}{\contentsline {subsubsection}{\numberline {5.4.3}Computational load of the error threshold implementation}{68}{}\protected@file@percent }
\newlabel{equation_update_3}{{47}{70}{}{}{}} \newlabel{equation_update_3}{{47}{69}{}{}{}}
\acronymused{DSP} \acronymused{DSP}
\newlabel{equation_computing_calculation_error_threshold_3}{{48}{70}{}{}{}} \newlabel{equation_computing_calculation_error_threshold_3}{{48}{69}{}{}{}}
\newlabel{equation_load_calculation_error_threshold_3}{{49}{70}{}{}{}} \newlabel{equation_load_calculation_error_threshold_3}{{49}{69}{}{}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.5}Summary of the performance evaluation}{70}{}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {5.5}Summary of the performance evaluation}{69}{}\protected@file@percent }
\acronymused{ANR} \acronymused{ANR}
\acronymused{SNR} \acronymused{SNR}
\acronymused{DSP} \acronymused{DSP}
@@ -131,6 +131,8 @@
\acronymused{SNR} \acronymused{SNR}
\acronymused{SNR} \acronymused{SNR}
\acronymused{DSP} \acronymused{DSP}
\@writefile{lof}{\contentsline {figure}{\numberline {51}{\ignorespaces Updated plot of the relative performance of the SNR-Gain, the cycles per samples and the DSP load in regard of the update rate for the benchmark case. The higher load is indicated by the newly added continuous lines.}}{70}{}\protected@file@percent }
\newlabel{fig:fig_snr_update_rate_new.png}{{51}{70}{}{}{}}
\acronymused{DSP} \acronymused{DSP}
\acronymused{DSP} \acronymused{DSP}
\acronymused{SNR} \acronymused{SNR}
@@ -138,6 +140,13 @@
\acronymused{DSP} \acronymused{DSP}
\acronymused{ANR} \acronymused{ANR}
\acronymused{CI} \acronymused{CI}
\@writefile{lof}{\contentsline {figure}{\numberline {52}{\ignorespaces Updated plot of the relative performance of the SNR-Gain, the cycles per samples and the DSP load in regard of the error threshold for the benchmark case. The higher load is indicated by the newly added continuous lines.}}{71}{}\protected@file@percent }
\newlabel{fig:fig_snr_error_threshold_new.png}{{52}{71}{}{}{}}
\acronymused{ANR}
\acronymused{SNR}
\acronymused{DSP}
\@writefile{lot}{\contentsline {table}{\numberline {1}{\ignorespaces Summary of the performance evaluation for the different implementations of the ANR algorithm. The load of the DSP core is calculated with the additional computational effort of the optimization.}}{71}{}\protected@file@percent }
\newlabel{tab:summary_performance_evaluation}{{1}{71}{}{}{}}
\@setckpt{chapter_05}{ \@setckpt{chapter_05}{
\setcounter{page}{72} \setcounter{page}{72}
\setcounter{equation}{49} \setcounter{equation}{49}
@@ -153,8 +162,8 @@
\setcounter{subsubsection}{0} \setcounter{subsubsection}{0}
\setcounter{paragraph}{0} \setcounter{paragraph}{0}
\setcounter{subparagraph}{0} \setcounter{subparagraph}{0}
\setcounter{figure}{50} \setcounter{figure}{52}
\setcounter{table}{0} \setcounter{table}{1}
\setcounter{float@type}{16} \setcounter{float@type}{16}
\setcounter{tabx@nest}{0} \setcounter{tabx@nest}{0}
\setcounter{listtotal}{0} \setcounter{listtotal}{0}
+42 -17
View File
@@ -91,9 +91,9 @@ The maximum offset bewteen the two graphs can be found at an updat rate of 0.39,
\label{equation_load_calculation_reduced_update_1} \label{equation_load_calculation_reduced_update_1}
\text{Load}_{\text{DSP}} = \frac{\text{C}_{\text{total}}}{\text{C}_{\text{budget}}} = \frac{188 \text{ cycles}}{800 \text{ cycles}} = 23.5 \% \text{Load}_{\text{DSP}} = \frac{\text{C}_{\text{total}}}{\text{C}_{\text{budget}}} = \frac{188 \text{ cycles}}{800 \text{ cycles}} = 23.5 \%
\end{equation} \end{equation}
The interpretation of this results leads to the conclusion, that the most cost-effective way to reduce the load of the \ac{DSP} would be to reduce the update rate of the filter coefficients to 0.39. In the case of the benchmark signal/noise combination, this action nearly halfs the processor load from 44.6\% to 23.5\%, while only reducing the \ac{SNR}-Gain by rougly 31 \% from 9.47 dB to 6.40 dB. In the next step, the same analysis will be applied on all introduced noise signal, to get an idea of the general validity of the mad eobservation. The interpretation of this results leads to the conclusion, that the most cost-effective way to reduce the load of the \ac{DSP} would be to reduce the update rate of the filter coefficients to 0.39. In the case of the benchmark signal/noise combination, this action nearly halfs the processor load from 44.6\% to 23.5\%, while only reducing the \ac{SNR}-Gain by rougly 31 \% from 9.47 dB to 6.40 dB. In the next step, the same analysis will be applied on all introduced noise signal combinations, to get an idea of the general validity of the made observation.
\subsubsection{Reduced-update implementation for multiple noise signals} \subsubsection{Reduced-update implementation for multiple noise signals}
Now the same evaluation as in the previous subchapter is conducted for the five introduced noise signals, with the difference, that now on the y-axis the performance gain (the distance between relative SNR-Gain and needed relative cycles/sample) instead of the \ac{SNR}-Gain is plotted. Now the same evaluation as in the previous subchapter is conducted for the five introduced noise signals in combination with the male speaker. The metric for the evaluation is now the performance gain (the distance between relative SNR-Gain and the needed relative cycles/sample) instead of the \ac{SNR}-Gain, as it allows a better picture of the cost-value ratio for the different update rates.
\begin{figure}[H] \begin{figure}[H]
\centering \centering
\includegraphics[width=1.0\linewidth]{Bilder/fig_gain_update_rate.png} \includegraphics[width=1.0\linewidth]{Bilder/fig_gain_update_rate.png}
@@ -116,7 +116,7 @@ Now the same evaluation as in the previous subchapter is conducted for the five
\text{Load}_{\text{DSP}} = \frac{\text{C}_{\text{total}}}{\text{C}_{\text{budget}}} = \frac{168 \text{ cycles}}{800 \text{ cycles}} = 20.8 \% \text{Load}_{\text{DSP}} = \frac{\text{C}_{\text{total}}}{\text{C}_{\text{budget}}} = \frac{168 \text{ cycles}}{800 \text{ cycles}} = 20.8 \%
\end{equation} \end{equation}
Equation \ref{equation_computing_calculation_reduced_update_2} and \ref{equation_load_calculation_reduced_update_2} confirm, that for an update rate of 0.32, a reduction of the \ac{DSP} load to 20.8\% can be achieved, correlating with a performance gain of 24.9\%. This means, that for all viewed scenarios, an update rate of 0.32 represents the best cost-value ratio, for reducing the load while geting the best possible noise reduction. The relative performance for all scenarios result in a mean \ac{SNR}-Gain reduction of 24.5\% from 11.54 dB to 8.72 dB, while the load of the \ac{DSP} core is reduced by about 53.4\% from 44.6\% to 20.8\%. Equation \ref{equation_computing_calculation_reduced_update_2} and \ref{equation_load_calculation_reduced_update_2} confirm, that for an update rate of 0.32, a reduction of the \ac{DSP} load to 20.8\% can be achieved, correlating with a performance gain of 24.9\%. This means, that for all viewed scenarios, an update rate of 0.32 represents the best cost-value ratio, for reducing the load while geting the best possible noise reduction. The relative performance for all scenarios result in a mean \ac{SNR}-Gain reduction of 24.5\% from 11.54 dB to 8.72 dB, while the load of the \ac{DSP} core is reduced by about 53.4\% from 44.6\% to 20.8\%.
\subsubsection{Computational load for reduced-update implementation} \subsubsection{Computational load of the reduced-update implementation}
The most straight forward implmementation of a reduced update rate is through the use of a counter and a modulo operation, which checks, if for the current sample the filter coefficients has to be updated or not. The code must therefore be extended by two blocks which are responsible for additional computational load: The most straight forward implmementation of a reduced update rate is through the use of a counter and a modulo operation, which checks, if for the current sample the filter coefficients has to be updated or not. The code must therefore be extended by two blocks which are responsible for additional computational load:
\begin{gather} \begin{gather}
\label{equation_update_1} \label{equation_update_1}
@@ -133,19 +133,18 @@ Incrementing the counter and checking if the counter has reached the update rate
\label{equation_load_calculation_reduced_update_3} \label{equation_load_calculation_reduced_update_3}
\text{Load}_{\text{DSP}} = \frac{\text{C}_{\text{total}}}{\text{C}_{\text{budget}}} = \frac{197 \text{ cycles}}{800 \text{ cycles}} = 24.6 \% \text{Load}_{\text{DSP}} = \frac{\text{C}_{\text{total}}}{\text{C}_{\text{budget}}} = \frac{197 \text{ cycles}}{800 \text{ cycles}} = 24.6 \%
\end{equation} \end{equation}
The results from the updated equations show, that the computational load for an update rate of 0.32 increase substantially from 20.8\% to 24.6\% through the use of a counter and a modulo operation, as the latter is quite computational expensive. A better alternative would be the use of a bitwise check, but this would reduce the possible update rates to powers of 2. The results from the updated equations show, that the computational load for an update rate of 0.32 increase substantially from 20.8\% to 24.6\% through the use of a counter and a modulo operation, as the latter iscomputational quite expensive. A better alternative would be the use of a bitwise check, but this would reduce the possible update rates to powers of 2. In the case of the benchmark track, the load rises from 23.5\% to 27.1\%.
\subsection{Evaluation of an error driven implementation} \subsection{Evaluation of an error driven implementation}
In contrary to the fixed update implementation of the previous chapter, the error-driven implementation is a more sophisticated approach, which focuses on an error metric, over which the decision for an coefficient update is made. In contrary to the fixed update implementation of the previous chapter, the error-driven implementation is a more sophisticated approach, which focuses on an error metric, over which the decision for an coefficient update is made.
The idea is, as the size update of the filter coefficients gets smaller, the benefit of updating them decreases. In practice, a closer look at the update of the filter coefficients is taken: As shown in Figure \ref{fig:fig_dsp_coefficient_cycle.jpg}, the size of the update of the filter coefficients is directly related to the error signal - if the error signal decreases, the update-size of the filter coefficients also decreases. \\ \\ The idea is, as the update size of the filter coefficients gets smaller, the benefit of updating them decreases. In practice, a closer look at the update of the filter coefficients is taken: As shown in Figure \ref{fig:fig_dsp_coefficient_cycle.jpg}, the size of the update of the filter coefficients is directly related to the error signal - if the error signal decreases, the update-size of the filter coefficients also decreases. \\ \\
As the fixed update implementation is not able to detect such changes, the reduction in update frequency is applied in a static way, which means, that there are situations were it is beneficial and situations where it is not. The error-driven implementation, on the other hand, is able to detect such changing behaviorr and therefore can adapt the update frequency accordingly. Therefore, the error-driven implementation is expected to deliver a better cost-value ratio than the fixed update implementation. As the fixed update implementation is not able to detect such changes, the reduction in update frequency is applied in a static way, which means, that there are situations were it is beneficial and situations where it is not. The error-driven implementation, on the other hand, is able to detect such changing behavior and therefore can adapt the update frequency accordingly. Therefore, the error-driven implementation is expected to deliver a better cost-value ratio than the fixed update implementation.
\subsubsection{Error threshold implementation for the benchmark case} \subsubsection{Error threshold implementation for the benchmark case}
The chosen approach for this thessis the use a fixed error threshold. This means, that if the error signal remains below an, in advance set, certain threshold, the filter coefficients remain unchanged and are not updated. If the error signal exceeds the threshold, the filter coefficients are updated as in the full-update implementation. \\ \\ The crucial aspect of this approach, is the right choise of the error threshold, which is expected to be highly dependent on the acoustic situation. To get an idea of a beneficial error threshold, different values are initially evaluated for the already used benchmark case.\\ \\ The reduction in computational load must now be calculated for the whole audio track by the percentage of samples, where the error signal exceeds the threshold and therefore the coefficients are adapted. This means in detail, that if for a certain error threshold, 50000 of 200000 samples exceed said threshold, the filter coefficients are updated in 25\% of the samples - therefore the update rate of the filter coefficients amounts to 0.25. The result can therefore be expressed in the same way as for the fixed update implementation, where the update rate is directly calculated for one sample. The chosen approach for this thessis the use a fixed error threshold. This means, that if the error signal remains below an, in advance set, certain threshold, the filter coefficients remain unchanged and are not updated. If the error signal exceeds the threshold, the filter coefficients are updated as in the full-update implementation.\\ \\ The crucial aspect of this approach, is the right choise of the error threshold, which is expected to be highly dependent on the acoustic situation. To get an idea of a beneficial error threshold, different values are initially evaluated for the already used benchmark case.\\ \\ The reduction in computational load must now be calculated for the whole audio track by the percentage of samples, where the error signal exceeds the threshold and therefore the coefficients are adapted. This means in detail, that if for a certain error threshold, 50000 of 200000 samples exceed said threshold, the filter coefficients are updated in 25\% of the samples - therefore the update rate of the filter coefficients amounts to 0.25. The result can therefore be expressed in the same way as for the fixed update implementation, where the update rate is directly calculated for one sample.
\begin{figure}[H] \begin{figure}[H]
\centering \centering
\includegraphics[width=1.0\linewidth]{Bilder/fig_snr_error_threshold.png} \includegraphics[width=1.0\linewidth]{Bilder/fig_snr_error_threshold.png}
\caption{Relative performance of the SNR-Gain, the cycles per samples and the DSP load in regard of the error threshold for the benchmark case. The baseline of 100\% is the full update implementation. The marked dots represent the results of the simulation for an explicit setup.} \caption{Relative performance of the SNR-Gain, the cycles per samples and the DSP load in regard of the error threshold for the benchmark case. The baseline of 100\% is the full update implementation. The marked dots represent the results of the simulation for an explicit setup.}
\label{fig:fig_snr_error_threshold.png} \label{fig:fig_snr_error_threshold.png}
\end{figure} \end{figure}
\noindent Our benchmark track is evaluated for error tresholds ranging from 0 to 0.5. The results, represented in Figure \ref{fig:fig_snr_error_threshold.png}, show for small thresholds, especially smaller than 0.1, a highly beneficial behavior can be anticipated, where the \ac{SNR}-Gain is only slightly reduced, while the load of the \ac{DSP} core significantly drops. The maximum offset between the two graphs can be found at an error threshold of 0.02 - at this point, the coefficient adaption is only conducted in ~81400 of 200000 samples, which equivalents an update rate of about 41\%. Updating Equation \ref{equation_computing_calculation_full_update} and \ref{equation_load_calculation_full_update} therefore delivers: \noindent Our benchmark track is evaluated for error tresholds ranging from 0 to 0.5. The results, represented in Figure \ref{fig:fig_snr_error_threshold.png}, show for small thresholds, especially smaller than 0.1, a highly beneficial behavior can be anticipated, where the \ac{SNR}-Gain is only slightly reduced, while the load of the \ac{DSP} core significantly drops. The maximum offset between the two graphs can be found at an error threshold of 0.02 - at this point, the coefficient adaption is only conducted in ~81400 of 200000 samples, which equivalents an update rate of about 41\%. Updating Equation \ref{equation_computing_calculation_full_update} and \ref{equation_load_calculation_full_update} therefore delivers:
\begin{equation} \begin{equation}
@@ -156,9 +155,9 @@ The chosen approach for this thessis the use a fixed error threshold. This means
\label{equation_load_calculation_error threshold_1} \label{equation_load_calculation_error threshold_1}
\text{Load}_{\text{DSP}} = \frac{\text{C}_{\text{total}}}{\text{C}_{\text{budget}}} = \frac{193 \text{ cycles}}{800 \text{ cycles}} = 24.1 \% \text{Load}_{\text{DSP}} = \frac{\text{C}_{\text{total}}}{\text{C}_{\text{budget}}} = \frac{193 \text{ cycles}}{800 \text{ cycles}} = 24.1 \%
\end{equation} \end{equation}
The performance difference to reducing the update rate is already clearly for the benchmark case: With a similar \ac{DSP} load of 24.1\% (again, nearly half the load of the full update implementation), the \ac{SNR}-Gain is reduced by only 8.9\% from 9.47dB to 8.63 dB. The same analysis will be applied on all introduced noise signal, to get an idea of the general validity of the made observation. The performance difference to reducing the update rate is already clearly for the benchmark track: With a similar \ac{DSP} load of 24.1\% (again, nearly half the load of the full update implementation), the \ac{SNR}-Gain is reduced by only 8.9\% from 9.47dB to 8.63 dB. The same analysis will be applied on all introduced noise signal, to get an idea of the general validity of the made observation.
\subsubsection{Error threshold implementaion for multiple noise signals} \subsubsection{Error threshold implementaion for multiple noise signals}
Again, the same evaluation as for the benchmark case is conducted for the five introduced noise signals, featuring the the performance gain instead of the \ac{SNR}-Gain as a performance metric. Again, the same evaluation as for the benchmark track is conducted for the five introduced noise signals, featuring the the performance gain instead of the \ac{SNR}-Gain as a evaluation metric.
\begin{figure}[H] \begin{figure}[H]
\centering \centering
\includegraphics[width=1.0\linewidth]{Bilder/fig_gain_error_threshold.png} \includegraphics[width=1.0\linewidth]{Bilder/fig_gain_error_threshold.png}
@@ -171,7 +170,7 @@ Again, the same evaluation as for the benchmark case is conducted for the five i
\caption{Absolute \ac{DSP} load in relation to the error threshold for different noise signals.} \caption{Absolute \ac{DSP} load in relation to the error threshold for different noise signals.}
\label{fig:fig_load_error_threshold.png} \label{fig:fig_load_error_threshold.png}
\end{figure} \end{figure}
\noindent Similar to the reduced update rate implementation, the obersvation made for every signal/noise combination is comparable to the benchmark case, but not the same. Figure \ref{fig:fig_gain_error_threshold.png} shows the performance gain for the five different scenarios. The most beneficial error threshold shifted noticeable to a value of 0.07. It´s interesting to notice, that the benchmark case seems to be a bit of an exception compared to the behavior of the other scenarios.\\ \\ \noindent Similar to the reduced update rate implementation, the observation made for every signal/noise combination is comparable to the benchmark case, but not the same. Figure \ref{fig:fig_gain_error_threshold.png} shows the performance gain for the five different scenarios. The most beneficial error threshold shifted noticeable to a value of 0.07. It´s interesting to notice, that the benchmark case seems to be a bit of an exception compared to the behavior of the other scenarios.\\ \\
A mean error threshold of 0.07 results in a mean update of 38244 out of 200000 samples, which equivalents an update rate of 19.1\%. The \ac{DSP} load for all scenarios is now not the same anymore, but still quite similar - Figure \ref{fig:fig_load_error_threshold.png} shows the absolute load of the \ac{DSP} core for an error threshold of 0.07 results in only 16.6\%. A mean error threshold of 0.07 results in a mean update of 38244 out of 200000 samples, which equivalents an update rate of 19.1\%. The \ac{DSP} load for all scenarios is now not the same anymore, but still quite similar - Figure \ref{fig:fig_load_error_threshold.png} shows the absolute load of the \ac{DSP} core for an error threshold of 0.07 results in only 16.6\%.
\begin{equation} \begin{equation}
\label{equation_computing_calculation_error_threshold_2} \label{equation_computing_calculation_error_threshold_2}
@@ -182,7 +181,7 @@ A mean error threshold of 0.07 results in a mean update of 38244 out of 200000 s
\text{Load}_{\text{DSP}} = \frac{\text{C}_{\text{total}}}{\text{C}_{\text{budget}}} = \frac{132 \text{ cycles}}{800 \text{ cycles}} = 16.6 \% \text{Load}_{\text{DSP}} = \frac{\text{C}_{\text{total}}}{\text{C}_{\text{budget}}} = \frac{132 \text{ cycles}}{800 \text{ cycles}} = 16.6 \%
\end{equation} \end{equation}
Equation \ref{equation_computing_calculation_error_threshold_2} and \ref{equation_load_calculation_error_threshold_2} confirm, that for an error threshold of 0.07, a reduction of the \ac{DSP} load to 16.6\% can be achieved, correlating with a performance gain of 48.4\%. This means, that for all viewed scenarios, an error threshold of 0.07 represents the best cost-value ratio, for reducing the load while geting the best possible noise reduction. The relative performance for all scenarios result in a mean \ac{SNR}-Gain reduction of 11.7\% from 11.54 dB to 10.19 dB, while the load of the \ac{DSP} core is reduced by about 62.8\% from 44.6\% to 16.6\%. Equation \ref{equation_computing_calculation_error_threshold_2} and \ref{equation_load_calculation_error_threshold_2} confirm, that for an error threshold of 0.07, a reduction of the \ac{DSP} load to 16.6\% can be achieved, correlating with a performance gain of 48.4\%. This means, that for all viewed scenarios, an error threshold of 0.07 represents the best cost-value ratio, for reducing the load while geting the best possible noise reduction. The relative performance for all scenarios result in a mean \ac{SNR}-Gain reduction of 11.7\% from 11.54 dB to 10.19 dB, while the load of the \ac{DSP} core is reduced by about 62.8\% from 44.6\% to 16.6\%.
\subsubsection{Computational load for error threshold implementation} \subsubsection{Computational load of the error threshold implementation}
In contrary to the fixed update implementation, the error threshold implementation for a fixed error threshold does not require computational expensive operations: The threshold is implemented as a 32-bit integer which is simply checked for every sample by a single if-clause. In contrary to the fixed update implementation, the error threshold implementation for a fixed error threshold does not require computational expensive operations: The threshold is implemented as a 32-bit integer which is simply checked for every sample by a single if-clause.
\begin{gather} \begin{gather}
\label{equation_update_3} \label{equation_update_3}
@@ -198,9 +197,35 @@ Equation \ref{equation_computing_calculation_error_threshold_3} and \ref{equatio
\label{equation_load_calculation_error_threshold_3} \label{equation_load_calculation_error_threshold_3}
\text{Load}_{\text{DSP}} = \frac{\text{C}_{\text{total}}}{\text{C}_{\text{budget}}} = \frac{142 \text{ cycles}}{800 \text{ cycles}} = 17.8 \% \text{Load}_{\text{DSP}} = \frac{\text{C}_{\text{total}}}{\text{C}_{\text{budget}}} = \frac{142 \text{ cycles}}{800 \text{ cycles}} = 17.8 \%
\end{equation} \end{equation}
Contrary to the fixed update implementation, the computational load for an error threshold of 0.07 only shows only a minimal increase from 16.6\% to 17.8\% through the use of a computational cheap if-clause. This is a clear advantage compared to the fixed update implementation. Contrary to the fixed update implementation, the computational load for an error threshold of 0.07 only shows only a minimal increase from 16.6\% to 17.8\% through the use of a computational cheap if-clause. This is a clear advantage compared to the fixed update implementation. In the case of the benchmark track, the load rises from 24.1\% to 25.7\%.
\subsection{Summary of the performance evaluation} \subsection{Summary of the performance evaluation}
The results of two analysis can be summarized as follows: \\ \\ With the optimal filter length of 45 taps and an update rate of the filter coefficients every cycle, the \ac{ANR} algorithm is able to achieve a \ac{SNR}-Gain of about 11.54 dB, averaged over all different signal/noise combinations. Under this circumstances, the computational load of the \ac{DSP} core amounts about 45\%, which means that 55\% of the time, which a new sample takes to arrive, it can be halted, and therefore, the overall power consumption can be reduced.\\ \\ The results of two analysis can be summarized as follows: \\ \\ With the optimal filter length of 45 taps and an update rate of the filter coefficients every cycle, the \ac{ANR} algorithm is able to achieve a \ac{SNR}-Gain of about 11.54 dB, averaged over all different signal/noise combinations. Under this circumstances, the computational load of the \ac{DSP} core amounts about 45\%, which means that 55\% of the time, which a new sample takes to arrive, it can be halted, and therefore, the overall power consumption can be reduced.\\ \\
A simple method to further reduce the load of the \ac{DSP} core is to reduce the update frequency of the filter coeffcients. For the benchmark signal/noise combination, an update rate of 0.39 nearly halfs the processor load from 44.6\% to 23.5\%, while only reducing the \ac{SNR}-Gain by rougly 31 \% from 9.47 dB to 6.40 dB. For all viewed scenarios, an update rate of 0.32 represents the best cost-value ratio, for reducing the load while geting the best possible noise reduction - with a mean \ac{SNR}-Gain reduction of 24.5\% from 11.54 dB to 8.72 dB, while the load of the \ac{DSP} core is reduced by about 53.4\% from 44.6\% to 20.8\%. While the perfromance benefit of this approach is reasonable, the computanional effort of the implementation is significant - the 20.8\% total load rise to 24.6\%\\ \\ A simple method to further reduce the load of the \ac{DSP} core is to reduce the update frequency of the filter coeffcients. For the benchmark signal/noise combination, an update rate of 0.39 nearly halfs the processor load from 44.6\% to 23.5\%, while only reducing the \ac{SNR}-Gain by rougly 31 \% from 9.47 dB to 6.40 dB. For all viewed scenarios, an update rate of 0.32 represents the best cost-value ratio, for reducing the load while geting the best possible noise reduction - with a mean \ac{SNR}-Gain reduction of 24.5\% from 11.54 dB to 8.72 dB, while the load of the \ac{DSP} core is reduced by about 53.4\% from 44.6\% to 20.8\%. While the perfromance benefit of this approach is reasonable, the computanional effort of the implementation is significant - the 20.8\% total load rise to 24.6\%. Figure \ref{fig:fig_snr_update_rate_new.png} shows the updated plot of the relative performance of the SNR-Gain, the cycles per samples and the DSP load in regard of the update rate for the benchmark case, where the higher load is indicated by the newly added continuous grahps. The initial graphs are still slightly visible allowing a better comparison of the two implementations.
A more sophisticated method to reduce the load of the \ac{DSP} core is to use an error-driven implementation, where the update of the filter coefficients is only conducted, if the error signal exceeds a certain threshold. For the benchmark case, with a similar \ac{DSP} load of 24.1\% the \ac{SNR}-Gain is reduced by only 8.9\% from 9.47dB to 8.63 dB. For all viewed scenarios, an error threshold of 0.07 represents the best cost-value ratio, for reducing the load while geting the best possible noise reduction - with a mean \ac{SNR}-Gain reduction of 11.7\% from 11.54 dB to 10.19 dB, while the load of the \ac{DSP} core is reduced by about 62.8\% from 44.6\% to 16.6\%. This substentional performance gain is bought by only a slight increase in computing effort - the 16.6\% total load rise only to 17.8\%\\ \\ \begin{figure}[H]
This result proofes, that an error-driven implementation of the \ac{ANR} algorithm is highly suitable to reduce the load needed for adaptive noise reduction in a \ac{CI} application, while still providing nearly 90\% of the maximum achievable performance under the viewed circumstances. \centering
\includegraphics[width=1.0\linewidth]{Bilder/fig_snr_update_rate_new.png}
\caption{Updated plot of the relative performance of the SNR-Gain, the cycles per samples and the DSP load in regard of the update rate for the benchmark case. The higher load is indicated by the newly added continuous lines.}
\label{fig:fig_snr_update_rate_new.png}
\end{figure}
\noindent A more sophisticated method to reduce the load of the \ac{DSP} core is to use an error-driven implementation, where the update of the filter coefficients is only conducted, if the error signal exceeds a certain threshold. For the benchmark case, with a similar \ac{DSP} load of 24.1\% (compared to the reduce update implementation), the \ac{SNR}-Gain is reduced by only 8.9\% from 9.47dB to 8.63 dB. For all viewed scenarios, an error threshold of 0.07 represents the best cost-value ratio - with a mean \ac{SNR}-Gain reduction of 11.7\% from 11.54 dB to 10.19 dB, while the load of the \ac{DSP} core is reduced by about 62.8\% from 44.6\% to 16.6\%. This substentional performance gain is bought by only a slight increase in computing effort - the 16.6\% total load rise only to 17.8\%\\ \\
This result proofes, that an error-driven implementation of the \ac{ANR} algorithm is highly suitable to reduce the load needed for adaptive noise reduction in a \ac{CI} application, while still providing nearly 90\% of the maximum achievable performance under the viewed circumstances. Again, Figure \ref{fig:fig_snr_error_threshold_new.png} shows the updated plot of the relative performance of the SNR-Gain, the cycles per samples and the DSP load in regard of the error threshold for the benchmark case.
\begin{figure}[H]
\centering
\includegraphics[width=1.0\linewidth]{Bilder/fig_snr_error_threshold_new.png}
\caption{Updated plot of the relative performance of the SNR-Gain, the cycles per samples and the DSP load in regard of the error threshold for the benchmark case. The higher load is indicated by the newly added continuous lines.}
\label{fig:fig_snr_error_threshold_new.png}
\end{figure}
\noindent The results of the performance evaluation for the different implementations of the \ac{ANR} algorithm are summarized in Table \ref{tab:summary_performance_evaluation}. The \ac{SNR} Gain is individually calculated for the most beneficial update rate or error threshold for the specific implementation, while the load of the \ac{DSP} core is calculated with the additional computational effort caused by the optimization.
\begin{table}[h]
\centering
\begin{tabular}{|c|c|c|c|}
\hline
& \textbf{Full Update} & \textbf{Reduced Update} & \textbf{Error-Driven} \\ \hline
\textbf{SNR-Gain Benchmark} &9.47 dB &6.40 dB &8.63 dB \\ \hline
\textbf{DSP Load Benchmark} &44.6\% &27.1\% &25.7\% \\ \hline
\textbf{SNR-Gain All Scenarios} &11.54 dB &8.72 dB &10.19 dB \\ \hline
\textbf{DSP Load All Scenarios} &44.6\% &24.6\% &17.8\% \\ \hline
\end{tabular}
\caption{Summary of the performance evaluation for the different implementations of the ANR algorithm. The load of the DSP core is calculated with the additional computational effort of the optimization.}
\label{tab:summary_performance_evaluation}
\end{table}
+2 -3
View File
@@ -4,7 +4,6 @@
\acronymused{CI} \acronymused{CI}
\acronymused{LMS} \acronymused{LMS}
\acronymused{SNR} \acronymused{SNR}
\acronymused{ANR}
\acronymused{SNR} \acronymused{SNR}
\acronymused{DSP} \acronymused{DSP}
\acronymused{DSP} \acronymused{DSP}
@@ -31,8 +30,8 @@
\setcounter{subsubsection}{0} \setcounter{subsubsection}{0}
\setcounter{paragraph}{0} \setcounter{paragraph}{0}
\setcounter{subparagraph}{0} \setcounter{subparagraph}{0}
\setcounter{figure}{50} \setcounter{figure}{52}
\setcounter{table}{0} \setcounter{table}{1}
\setcounter{float@type}{16} \setcounter{float@type}{16}
\setcounter{tabx@nest}{0} \setcounter{tabx@nest}{0}
\setcounter{listtotal}{0} \setcounter{listtotal}{0}
+6 -6
View File
@@ -1,11 +1,11 @@
\section{Conclusion and outlook} \section{Conclusion and outlook}
The focus of this thesis was to investigate the possibilities for the efficient implementation of a real-time capable \ac{ANR} algorithm in \ac{CI} systems.\\ \\ The initial high-level implementation in Python proofed the general feasibility of the proposed \ac{LMS}method, where the \ac{SNR}-Gain was introduced as a metric for the quality of the \ac{ANR} algorithm. Said metric was used to evaluate the performance of the algorithm in various settings and noise conditions. First a fictional desired signal (sine wave) and noise signal (sine wave or white noise) were used to check the algrotihm for it´s general functionality. Then the step to real, recorded signals was made. The final and most complex combinations (which then served as a benchmark for the remaining implementations) was the use of the same real world signals, but now different transfer functions and delays were introduced, to mimic a complex, practical situation. In every case, the algorithm was able to achieve significant performance improvement in the \ac{SNR} for the processed signals. \\ \\ The focus of this thesis was to investigate the possibilities and improvement options for the implementation of a real-time capable \ac{ANR} algorithm in \ac{CI} systems.\\ \\ The initial high-level implementation in Python proofed the general feasibility of the proposed \ac{LMS} method, where the \ac{SNR}-Gain was introduced as a metric for the quality of the noise reduction. Said metric was used to evaluate the performance of the algorithm in various settings and noise conditions. First a fictional desired signal (sine wave) and noise signal (sine wave or white noise) were used to check the algrotihm for it´s general functionality. Then the step to real, recorded signals was made. The final and most complex combination (which then served as a benchmark for the remaining thesis) was the use of the same real world signals, but now different transfer functions and delays were introduced, to mimic a complex, practical and realistic situation. In every case, the algorithm was able to achieve significant performance improvement in the \ac{SNR} for the processed signals. \\ \\
\noindent The next challenge was to implement the algorithm in a efficient way in the C programming language, to achieve real-time capability. This was achieved by the use of \ac{DSP} compiler instrinsic functions, which allow to perform logic operations with a minimum of needed instructions. After the C-implementation was functional, the performacne in the case of the benchmark track was compared to the initial Python implementation. A histrogram of the differences between the two ouptuts showed only minor deviations, which can be attributed to the fixed-point calculations of the \ac{DSP} compiler.\\ \\ \noindent The next challenge was to implement the algorithm in a efficient way in the C programming language, to achieve real-time capability. This was achieved by the use of \ac{DSP} compiler instrinsic functions, which allow to perform logic operations with a minimum of needed instructions. After the C-implementation was functional, the performacne for the benchmark track was compared to the initial Python implementation. A histrogram of the differences between the two ouptuts showed only minor deviations, which can be attributed to the fixed-point calculations of the \ac{DSP} compiler.\\ \\
\noindent With the working C-implementation in place, a closer look on the performance, especially the needed cycles to compute on sample, was taken - the result was a formula, which calculates the needed samples as a function of the filter length and the update rate. With this information in mind, several noise sources were put under test, to evaluatue the optimal filter length, which is a trade-off between the performance improvement and the computational cost - the result was 45 coefficients.\\ \\ \noindent With the working C-implementation in place, a closer look on the performance, especially the needed cycles to compute one sample, was taken - the result was a formula, which calculates the needed samples as a function of the filter length and the update rate. With this information in mind, several noise sources were put under test, to evaluatue the optimal filter length, which is a trade-off between the performance improvement and the computational cost - the result was 45 coefficients for an assumption of a signal delay of 2 milliseconds.\\ \\
With a set filter length of 45 coefficients, the final improvement of the algorithm regarding performance and computational cost could be evaluated. The base was the computational most costly full-update implementation, needing 357 cycles to process one sample - this correspondends with about 45\% \ac{DSP} load.\\ \\ With a set filter length of 45 coefficients, the final improvement of the algorithm regarding performance and computational cost could be evaluated. The base was the computational most costly full-update implementation, needing 357 cycles to process one sample - this correspondends with about 45\% \ac{DSP} load.\\ \\
\noindent The first approach was a rather simple reduction in the update rate, evaluated for the benchmark case and different signal/noise combinations. The result was a significant reduction in the needed cycles, but with a also quite significant drop in the \ac{SNR}-Gain. Additionaly, the implementation of such an universal reduction, required computational expensive processor operations, further reducing the cost-benefit-ratio.\\ \\ \noindent The first approach was a rather simple reduction in the update rate, evaluated for the benchmark case and different signal/noise combinations. The result was a significant reduction in the needed cycles, but with quite strong decrease in the \ac{SNR}-Gain. Additionaly, the implementation of such an universal reduction, required computational expensive processor operations, further reducing the cost-benefit-ratio.\\ \\
\noindent The second approach was the proposed method of an error driven optimization, utilizing the idea of a fixed threshold for the error signal. Again, evaluated for the benchmark case and different signal/noise combinations, this approach can be considered a success, as it was able to achieve a significant reduction in the needed cycles, while only reducing the \ac{SNR}-Gain by a small amount. The implementation of this method is also computationally efficient, as it only requires a simple comparison operation to check if an update is necessary.\\ \\ \noindent The second approach was the proposed method of an error driven optimization, utilizing the idea of a fixed threshold for the error signal. Again, evaluated for the benchmark case and different signal/noise combinations, this approach can be considered a success, as it was able to achieve a significant reduction in the needed cycles, while only reducing the \ac{SNR}-Gain by a small amount. The implementation of this method is also computationally efficient, as it only requires a simple comparison operation to check if an update is necessary.\\ \\
\noindent The error driven optimization approach can therefore be seen as a the clear winner, as it was able to further improve an already real-time capable \ac{ANR} algorithm, by significantly reducing the computational load of the \ac{DSP} core, while only slightly reducing the performance improvement in terms of \ac{SNR}-Gain.\\ \\ \noindent The error driven optimization approach can therefore be seen as a the clear winner, as it was able to further improve an already real-time capable \ac{ANR} algorithm, by significantly reducing the computational load of the \ac{DSP} core, while only slightly reducing the performance improvement in terms of \ac{SNR}-Gain.\\ \\
\noindent For future work, a more advanced method to further optimize the system could be the use of a dynamic threshold, which could be adapted according to the current noise conditions. The background for this proposal is the fact, that beside the error-signal, also the noise signal itself influences the size of the filter-coeffcient update. In the current implementation, the threshold is only dependend on the error signal - if a sitatuion arises, where the noise signal is very small, but the error/output signal is high due to a high input signal, an update of the filter coefficients would be triggered, even if not necessary. A dynamic threshold, which also takes the noise signal into account, could further reduce the number of updates, but with a potentially higher computational effort. \noindent For future work, a more advanced method to further optimize the system could be the use of a dynamic threshold, which could be adapted according to the current noise conditions. The background for this proposal is the fact, that beside the error-signal, also the noise signal itself influences the size of the filter-coeffcient update. In the current implementation, the threshold is only dependend on the error signal - if a sitatuion arises, where the noise signal is very small, but the error/output signal is high due to a high input signal, an update of the filter coefficients would be triggered, even if not necessary. A dynamic threshold, which also takes the noise signal into account, could further reduce the number of updates, but with a potentially higher computational effort.\\ \\
\noindent Also, the already in Chapter 2 mentioned hybrid filter approach, which splits the filter into a static and adaptive part, could be further investigated. The idea behind this approach is, that the static part of the filter covers certain signal paths, which are to be expected time invariant, while the adaptive part of the filter only needs to cover changing signals. \noindent Also, the already in Chapter 2 mentioned hybrid filter approach, which splits the filter into a static and adaptive part, could be further investigated. The idea behind this approach is, that the static part of the filter covers certain signal paths, which are to be expected time invariant, while the adaptive part of the filter only needs to cover changing signals.\\ \\
\noindent Therefore, the final result of this thesis shows, that the approach of an error driven optimization, utilizing the idea of a fixed threshold for the error signal, is a viable method to achieve significant performance improvement, reducing the computational load of the \ac{DSP} core by over 62\% while only redcuing the \ac{SNR}-Gain by roughly 12\%.\\ \\ \noindent Therefore, the final result of this thesis shows, that the approach of an error driven optimization, utilizing the idea of a fixed threshold for the error signal, is a viable method to achieve significant performance improvement, reducing the computational load of the \ac{DSP} core by over 62\% while only redcuing the \ac{SNR}-Gain by roughly 12\%.\\ \\
+6 -6
View File
@@ -1,6 +1,6 @@
<mxfile host="app.diagrams.net" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" version="29.3.4"> <mxfile host="app.diagrams.net" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36">
<diagram name="Seite-1" id="BWOSVWQKrhK0Pcg9Olm2"> <diagram name="Seite-1" id="BWOSVWQKrhK0Pcg9Olm2">
<mxGraphModel dx="2253" dy="743" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0"> <mxGraphModel dx="2241" dy="743" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root> <root>
<mxCell id="0" /> <mxCell id="0" />
<mxCell id="1" parent="0" /> <mxCell id="1" parent="0" />
@@ -73,19 +73,19 @@
<mxCell id="uwalZ4GZDBHuo1GNIbxM-2" parent="1" style="text;whiteSpace=wrap;html=1;align=center;" value="&lt;span style=&quot;font-size: 20px;&quot;&gt;Desired signal&lt;/span&gt;&lt;div&gt;&lt;span style=&quot;font-size: 20px;&quot;&gt;+&lt;br&gt;Noise signal&lt;/span&gt;&lt;/div&gt;" vertex="1"> <mxCell id="uwalZ4GZDBHuo1GNIbxM-2" parent="1" style="text;whiteSpace=wrap;html=1;align=center;" value="&lt;span style=&quot;font-size: 20px;&quot;&gt;Desired signal&lt;/span&gt;&lt;div&gt;&lt;span style=&quot;font-size: 20px;&quot;&gt;+&lt;br&gt;Noise signal&lt;/span&gt;&lt;/div&gt;" vertex="1">
<mxGeometry height="85" width="140" x="-40" y="227.5" as="geometry" /> <mxGeometry height="85" width="140" x="-40" y="227.5" as="geometry" />
</mxCell> </mxCell>
<mxCell id="ngw2JN3qWJ9t0b-mEEB_-1" parent="1" style="text;whiteSpace=wrap;html=1;" value="&lt;span style=&quot;font-size: 20px;&quot;&gt;d&lt;sub&gt;[n]&lt;/sub&gt; = s&lt;sub&gt;[n]&lt;/sub&gt;+n&lt;sub&gt;[n]&lt;/sub&gt;&lt;/span&gt;" vertex="1"> <mxCell id="ngw2JN3qWJ9t0b-mEEB_-1" parent="1" style="text;whiteSpace=wrap;html=1;" value="&lt;span style=&quot;font-size: 20px;&quot;&gt;d&lt;sub&gt;[&lt;i&gt;n&lt;/i&gt;]&lt;/sub&gt; = s&lt;sub&gt;[&lt;i&gt;n&lt;/i&gt;]&lt;/sub&gt;+n&lt;sub&gt;[&lt;i&gt;n&lt;/i&gt;]&lt;/sub&gt;&lt;/span&gt;" vertex="1">
<mxGeometry height="50" width="180" x="270" y="227.5" as="geometry" /> <mxGeometry height="50" width="180" x="270" y="227.5" as="geometry" />
</mxCell> </mxCell>
<mxCell id="ngw2JN3qWJ9t0b-mEEB_-3" parent="1" style="text;whiteSpace=wrap;html=1;align=center;" value="&lt;span style=&quot;font-size: 20px;&quot;&gt;Noise&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 20px; background-color: transparent; color: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));&quot;&gt;signal&lt;/span&gt;" vertex="1"> <mxCell id="ngw2JN3qWJ9t0b-mEEB_-3" parent="1" style="text;whiteSpace=wrap;html=1;align=center;" value="&lt;span style=&quot;font-size: 20px;&quot;&gt;Noise&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 20px; background-color: transparent; color: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));&quot;&gt;signal&lt;/span&gt;" vertex="1">
<mxGeometry height="50" width="130" x="-35" y="435" as="geometry" /> <mxGeometry height="50" width="130" x="-35" y="435" as="geometry" />
</mxCell> </mxCell>
<mxCell id="ngw2JN3qWJ9t0b-mEEB_-4" parent="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" value="&lt;span style=&quot;font-size: 20px;&quot;&gt;x&lt;sub&gt;[n]&lt;/sub&gt;&lt;/span&gt;" vertex="1"> <mxCell id="ngw2JN3qWJ9t0b-mEEB_-4" parent="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" value="&lt;span style=&quot;font-size: 20px;&quot;&gt;x&lt;sub&gt;[&lt;i&gt;n&lt;/i&gt;]&lt;/sub&gt;&lt;/span&gt;" vertex="1">
<mxGeometry height="40" width="50" x="305" y="420" as="geometry" /> <mxGeometry height="40" width="50" x="305" y="420" as="geometry" />
</mxCell> </mxCell>
<mxCell id="ngw2JN3qWJ9t0b-mEEB_-5" parent="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" value="&lt;span style=&quot;font-size: 20px;&quot;&gt;y&lt;/span&gt;&lt;span style=&quot;font-size: 20px; background-color: transparent; color: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));&quot;&gt;&lt;sub&gt;[n]&lt;/sub&gt;&lt;/span&gt;" vertex="1"> <mxCell id="ngw2JN3qWJ9t0b-mEEB_-5" parent="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" value="&lt;span style=&quot;font-size: 20px;&quot;&gt;y&lt;/span&gt;&lt;span style=&quot;font-size: 20px; background-color: transparent; color: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));&quot;&gt;&lt;sub&gt;[&lt;i&gt;n&lt;/i&gt;]&lt;/sub&gt;&lt;/span&gt;" vertex="1">
<mxGeometry height="40" width="50" x="415" y="340" as="geometry" /> <mxGeometry height="40" width="50" x="415" y="340" as="geometry" />
</mxCell> </mxCell>
<mxCell id="ngw2JN3qWJ9t0b-mEEB_-6" parent="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" value="&lt;span style=&quot;font-size: 20px;&quot;&gt;e&lt;sub&gt;[n]&lt;/sub&gt; = d&lt;sub&gt;[n]&lt;/sub&gt;-y&lt;sub&gt;[n]&lt;/sub&gt; =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(32, 33, 34); font-family: sans-serif; font-size: 16px; text-align: start; text-wrap-mode: wrap; background-color: rgb(255, 255, 255);&quot;&gt;Š&lt;/span&gt;&lt;span style=&quot;font-size: 20px;&quot;&gt;&lt;sub&gt;[n]&lt;/sub&gt;&lt;/span&gt;" vertex="1"> <mxCell id="ngw2JN3qWJ9t0b-mEEB_-6" parent="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" value="&lt;span style=&quot;font-size: 20px;&quot;&gt;e&lt;sub&gt;[&lt;i&gt;n&lt;/i&gt;]&lt;/sub&gt; = d&lt;sub&gt;[&lt;i&gt;n&lt;/i&gt;]&lt;/sub&gt;-y&lt;sub&gt;[&lt;i&gt;n&lt;/i&gt;]&lt;/sub&gt; =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(32, 33, 34); font-family: sans-serif; font-size: 16px; text-align: start; text-wrap-mode: wrap; background-color: rgb(255, 255, 255);&quot;&gt;Š&lt;/span&gt;&lt;span style=&quot;font-size: 20px;&quot;&gt;&lt;sub&gt;[&lt;i&gt;n&lt;/i&gt;]&lt;/sub&gt;&lt;/span&gt;" vertex="1">
<mxGeometry height="40" width="190" x="520" y="227.5" as="geometry" /> <mxGeometry height="40" width="190" x="520" y="227.5" as="geometry" />
</mxCell> </mxCell>
<mxCell id="ngw2JN3qWJ9t0b-mEEB_-8" edge="1" parent="1" source="ngw2JN3qWJ9t0b-mEEB_-4" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1.025;exitDx=0;exitDy=0;exitPerimeter=0;strokeWidth=2;" value=""> <mxCell id="ngw2JN3qWJ9t0b-mEEB_-8" edge="1" parent="1" source="ngw2JN3qWJ9t0b-mEEB_-4" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1.025;exitDx=0;exitDy=0;exitPerimeter=0;strokeWidth=2;" value="">
+6 -6
View File
@@ -1,6 +1,6 @@
<mxfile host="app.diagrams.net" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" version="29.3.4"> <mxfile host="app.diagrams.net" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36">
<diagram name="Seite-1" id="BWOSVWQKrhK0Pcg9Olm2"> <diagram name="Seite-1" id="BWOSVWQKrhK0Pcg9Olm2">
<mxGraphModel dx="2253" dy="743" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0"> <mxGraphModel dx="2241" dy="743" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root> <root>
<mxCell id="0" /> <mxCell id="0" />
<mxCell id="1" parent="0" /> <mxCell id="1" parent="0" />
@@ -80,19 +80,19 @@
<mxCell id="uwalZ4GZDBHuo1GNIbxM-2" parent="1" style="text;whiteSpace=wrap;html=1;align=center;" value="&lt;span style=&quot;font-size: 20px;&quot;&gt;Desired signal&lt;/span&gt;&lt;div&gt;&lt;span style=&quot;font-size: 20px;&quot;&gt;+&lt;br&gt;Noise signal&lt;/span&gt;&lt;/div&gt;" vertex="1"> <mxCell id="uwalZ4GZDBHuo1GNIbxM-2" parent="1" style="text;whiteSpace=wrap;html=1;align=center;" value="&lt;span style=&quot;font-size: 20px;&quot;&gt;Desired signal&lt;/span&gt;&lt;div&gt;&lt;span style=&quot;font-size: 20px;&quot;&gt;+&lt;br&gt;Noise signal&lt;/span&gt;&lt;/div&gt;" vertex="1">
<mxGeometry height="85" width="130" x="-30" y="227.5" as="geometry" /> <mxGeometry height="85" width="130" x="-30" y="227.5" as="geometry" />
</mxCell> </mxCell>
<mxCell id="ngw2JN3qWJ9t0b-mEEB_-1" parent="1" style="text;whiteSpace=wrap;html=1;" value="&lt;span style=&quot;font-size: 20px;&quot;&gt;d&lt;sub&gt;[n]&lt;/sub&gt; = s&lt;sub&gt;[n]&lt;/sub&gt;+n&lt;sub&gt;[n]&lt;/sub&gt;&lt;/span&gt;" vertex="1"> <mxCell id="ngw2JN3qWJ9t0b-mEEB_-1" parent="1" style="text;whiteSpace=wrap;html=1;" value="&lt;span style=&quot;font-size: 20px;&quot;&gt;d&lt;sub&gt;[&lt;i&gt;n&lt;/i&gt;]&lt;/sub&gt; = s&lt;sub&gt;[&lt;i&gt;n&lt;/i&gt;]&lt;/sub&gt;+n&lt;sub&gt;[&lt;i&gt;n&lt;/i&gt;]&lt;/sub&gt;&lt;/span&gt;" vertex="1">
<mxGeometry height="50" width="180" x="270" y="227.5" as="geometry" /> <mxGeometry height="50" width="180" x="270" y="227.5" as="geometry" />
</mxCell> </mxCell>
<mxCell id="ngw2JN3qWJ9t0b-mEEB_-3" parent="1" style="text;whiteSpace=wrap;html=1;" value="&lt;span style=&quot;font-size: 20px;&quot;&gt;Noise signal&lt;/span&gt;" vertex="1"> <mxCell id="ngw2JN3qWJ9t0b-mEEB_-3" parent="1" style="text;whiteSpace=wrap;html=1;" value="&lt;span style=&quot;font-size: 20px;&quot;&gt;Noise signal&lt;/span&gt;" vertex="1">
<mxGeometry height="50" width="140" x="-30" y="440" as="geometry" /> <mxGeometry height="50" width="140" x="-30" y="440" as="geometry" />
</mxCell> </mxCell>
<mxCell id="ngw2JN3qWJ9t0b-mEEB_-4" parent="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" value="&lt;span style=&quot;font-size: 20px;&quot;&gt;x&lt;sub&gt;[n]&lt;/sub&gt;&lt;/span&gt;" vertex="1"> <mxCell id="ngw2JN3qWJ9t0b-mEEB_-4" parent="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" value="&lt;span style=&quot;font-size: 20px;&quot;&gt;x&lt;sub&gt;[&lt;i&gt;n&lt;/i&gt;]&lt;/sub&gt;&lt;/span&gt;" vertex="1">
<mxGeometry height="40" width="50" x="285" y="420" as="geometry" /> <mxGeometry height="40" width="50" x="285" y="420" as="geometry" />
</mxCell> </mxCell>
<mxCell id="ngw2JN3qWJ9t0b-mEEB_-5" parent="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" value="&lt;span style=&quot;font-size: 20px;&quot;&gt;y&lt;/span&gt;&lt;span style=&quot;font-size: 20px; background-color: transparent; color: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));&quot;&gt;&lt;sub&gt;[n]&lt;/sub&gt;&lt;/span&gt;" vertex="1"> <mxCell id="ngw2JN3qWJ9t0b-mEEB_-5" parent="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" value="&lt;span style=&quot;font-size: 20px;&quot;&gt;y&lt;/span&gt;&lt;span style=&quot;font-size: 20px; background-color: transparent; color: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));&quot;&gt;&lt;sub&gt;[&lt;i&gt;n&lt;/i&gt;]&lt;/sub&gt;&lt;/span&gt;" vertex="1">
<mxGeometry height="40" width="50" x="585" y="420" as="geometry" /> <mxGeometry height="40" width="50" x="585" y="420" as="geometry" />
</mxCell> </mxCell>
<mxCell id="ngw2JN3qWJ9t0b-mEEB_-6" parent="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" value="&lt;span style=&quot;font-size: 20px;&quot;&gt;e&lt;sub&gt;[n]&lt;/sub&gt; = d&lt;sub&gt;[n]&lt;/sub&gt;-y&lt;sub&gt;[n]&lt;/sub&gt; =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(32, 33, 34); font-family: sans-serif; font-size: 16px; text-align: start; text-wrap-mode: wrap; background-color: rgb(255, 255, 255);&quot;&gt;Š&lt;/span&gt;&lt;span style=&quot;font-size: 20px;&quot;&gt;&lt;sub&gt;[n]&lt;/sub&gt;&lt;/span&gt;" vertex="1"> <mxCell id="ngw2JN3qWJ9t0b-mEEB_-6" parent="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" value="&lt;span style=&quot;font-size: 20px;&quot;&gt;e&lt;sub&gt;[&lt;i&gt;n&lt;/i&gt;]&lt;/sub&gt; = d&lt;sub&gt;[&lt;i&gt;n&lt;/i&gt;]&lt;/sub&gt;-y&lt;sub&gt;[&lt;i&gt;n&lt;/i&gt;]&lt;/sub&gt; =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(32, 33, 34); font-family: sans-serif; font-size: 16px; text-align: start; text-wrap-mode: wrap; background-color: rgb(255, 255, 255);&quot;&gt;Š&lt;/span&gt;&lt;span style=&quot;font-size: 20px;&quot;&gt;&lt;sub&gt;[&lt;i&gt;n&lt;/i&gt;]&lt;/sub&gt;&lt;/span&gt;" vertex="1">
<mxGeometry height="40" width="190" x="520" y="227.5" as="geometry" /> <mxGeometry height="40" width="190" x="520" y="227.5" as="geometry" />
</mxCell> </mxCell>
<mxCell id="ngw2JN3qWJ9t0b-mEEB_-8" edge="1" parent="1" style="endArrow=classic;html=1;rounded=0;strokeWidth=2;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" target="ngw2JN3qWJ9t0b-mEEB_-9" value=""> <mxCell id="ngw2JN3qWJ9t0b-mEEB_-8" edge="1" parent="1" style="endArrow=classic;html=1;rounded=0;strokeWidth=2;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" target="ngw2JN3qWJ9t0b-mEEB_-9" value="">
+11 -11
View File
@@ -1,6 +1,6 @@
<mxfile host="app.diagrams.net" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" version="29.3.8"> <mxfile host="app.diagrams.net" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36">
<diagram name="Seite-1" id="BWOSVWQKrhK0Pcg9Olm2"> <diagram name="Seite-1" id="BWOSVWQKrhK0Pcg9Olm2">
<mxGraphModel dx="1426" dy="743" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0"> <mxGraphModel dx="1414" dy="743" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root> <root>
<mxCell id="0" /> <mxCell id="0" />
<mxCell id="1" parent="0" /> <mxCell id="1" parent="0" />
@@ -73,22 +73,22 @@
<mxCell id="8LSkbo7Ni411-_OUStLd-16" parent="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" value="&lt;font style=&quot;font-size: 20px;&quot;&gt;Σ&lt;/font&gt;" vertex="1"> <mxCell id="8LSkbo7Ni411-_OUStLd-16" parent="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" value="&lt;font style=&quot;font-size: 20px;&quot;&gt;Σ&lt;/font&gt;" vertex="1">
<mxGeometry height="40" width="40" x="710" y="250" as="geometry" /> <mxGeometry height="40" width="40" x="710" y="250" as="geometry" />
</mxCell> </mxCell>
<mxCell id="uwalZ4GZDBHuo1GNIbxM-2" parent="1" style="text;whiteSpace=wrap;html=1;" value="&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size: 20px; background-color: transparent; color: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));&quot;&gt;Desired&lt;/span&gt;&lt;/div&gt;&lt;span style=&quot;font-size: 20px;&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));&quot;&gt;signal&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size: 20px;&quot;&gt;t&lt;sub&gt;[n]&lt;/sub&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 20px;&quot;&gt;&lt;/span&gt;&lt;/div&gt;" vertex="1"> <mxCell id="uwalZ4GZDBHuo1GNIbxM-2" parent="1" style="text;whiteSpace=wrap;html=1;" value="&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size: 20px; background-color: transparent; color: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));&quot;&gt;Desired&lt;/span&gt;&lt;/div&gt;&lt;span style=&quot;font-size: 20px;&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));&quot;&gt;signal&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size: 20px;&quot;&gt;t&lt;sub&gt;[&lt;i&gt;n&lt;/i&gt;]&lt;/sub&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 20px;&quot;&gt;&lt;/span&gt;&lt;/div&gt;" vertex="1">
<mxGeometry height="85" width="75" x="10" y="210" as="geometry" /> <mxGeometry height="85" width="75" x="10" y="210" as="geometry" />
</mxCell> </mxCell>
<mxCell id="ngw2JN3qWJ9t0b-mEEB_-1" parent="1" style="text;whiteSpace=wrap;html=1;" value="&lt;span style=&quot;font-size: 20px;&quot;&gt;d&lt;sub&gt;[n]&lt;/sub&gt; = s&lt;sub&gt;[n]&lt;/sub&gt;+n&lt;sub&gt;[n]&lt;/sub&gt;&lt;/span&gt;" vertex="1"> <mxCell id="ngw2JN3qWJ9t0b-mEEB_-1" parent="1" style="text;whiteSpace=wrap;html=1;" value="&lt;span style=&quot;font-size: 20px;&quot;&gt;d&lt;sub&gt;[&lt;i&gt;n&lt;/i&gt;]&lt;/sub&gt; = s&lt;sub&gt;[&lt;i&gt;n&lt;/i&gt;]&lt;/sub&gt;+n&lt;sub&gt;[&lt;i&gt;n&lt;/i&gt;]&lt;/sub&gt;&lt;/span&gt;" vertex="1">
<mxGeometry height="50" width="180" x="530" y="227.5" as="geometry" /> <mxGeometry height="50" width="180" x="530" y="227.5" as="geometry" />
</mxCell> </mxCell>
<mxCell id="ngw2JN3qWJ9t0b-mEEB_-3" parent="1" style="text;whiteSpace=wrap;html=1;align=center;" value="&lt;span style=&quot;font-size: 20px;&quot;&gt;Noise&lt;/span&gt;&lt;div&gt;&lt;span style=&quot;font-size: 20px;&quot;&gt;signal&lt;br&gt;&lt;/span&gt;&lt;div&gt;&lt;span style=&quot;font-size: 20px;&quot;&gt;v&lt;sub&gt;[n]&lt;/sub&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;" vertex="1"> <mxCell id="ngw2JN3qWJ9t0b-mEEB_-3" parent="1" style="text;whiteSpace=wrap;html=1;align=center;" value="&lt;span style=&quot;font-size: 20px;&quot;&gt;Noise&lt;/span&gt;&lt;div&gt;&lt;span style=&quot;font-size: 20px;&quot;&gt;signal&lt;br&gt;&lt;/span&gt;&lt;div&gt;&lt;span style=&quot;font-size: 20px;&quot;&gt;v&lt;sub&gt;[&lt;i&gt;n&lt;/i&gt;]&lt;/sub&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;" vertex="1">
<mxGeometry height="50" width="90" y="430" as="geometry" /> <mxGeometry height="50" width="90" y="430" as="geometry" />
</mxCell> </mxCell>
<mxCell id="ngw2JN3qWJ9t0b-mEEB_-4" parent="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" value="&lt;span style=&quot;font-size: 20px;&quot;&gt;x&lt;sub&gt;[n]&lt;/sub&gt;&lt;/span&gt;" vertex="1"> <mxCell id="ngw2JN3qWJ9t0b-mEEB_-4" parent="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" value="&lt;span style=&quot;font-size: 20px;&quot;&gt;x&lt;sub&gt;[&lt;i&gt;n&lt;/i&gt;]&lt;/sub&gt;&lt;/span&gt;" vertex="1">
<mxGeometry height="40" width="50" x="525" y="420" as="geometry" /> <mxGeometry height="40" width="50" x="525" y="420" as="geometry" />
</mxCell> </mxCell>
<mxCell id="ngw2JN3qWJ9t0b-mEEB_-5" parent="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" value="&lt;span style=&quot;font-size: 20px;&quot;&gt;y&lt;/span&gt;&lt;span style=&quot;font-size: 20px; background-color: transparent; color: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));&quot;&gt;&lt;sub&gt;[n]&lt;/sub&gt;&lt;/span&gt;" vertex="1"> <mxCell id="ngw2JN3qWJ9t0b-mEEB_-5" parent="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" value="&lt;span style=&quot;font-size: 20px;&quot;&gt;y&lt;/span&gt;&lt;span style=&quot;font-size: 20px; background-color: transparent; color: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));&quot;&gt;&lt;sub&gt;[&lt;i&gt;n&lt;/i&gt;]&lt;/sub&gt;&lt;/span&gt;" vertex="1">
<mxGeometry height="40" width="50" x="845" y="420" as="geometry" /> <mxGeometry height="40" width="50" x="827" y="420" as="geometry" />
</mxCell> </mxCell>
<mxCell id="ngw2JN3qWJ9t0b-mEEB_-6" parent="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" value="&lt;span style=&quot;font-size: 20px;&quot;&gt;e&lt;sub&gt;[n]&lt;/sub&gt; = d&lt;sub&gt;[n]&lt;/sub&gt;-y&lt;sub&gt;[n]&lt;/sub&gt; =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(32, 33, 34); font-family: sans-serif; font-size: 16px; text-align: start; text-wrap-mode: wrap; background-color: rgb(255, 255, 255);&quot;&gt;Š&lt;/span&gt;&lt;span style=&quot;font-size: 20px;&quot;&gt;&lt;sub&gt;[n]&lt;/sub&gt;&lt;/span&gt;" vertex="1"> <mxCell id="ngw2JN3qWJ9t0b-mEEB_-6" parent="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" value="&lt;span style=&quot;font-size: 20px;&quot;&gt;e&lt;sub&gt;[&lt;i&gt;n&lt;/i&gt;]&lt;/sub&gt; = d&lt;sub&gt;[&lt;i&gt;n&lt;/i&gt;]&lt;/sub&gt;-y&lt;sub&gt;[&lt;i&gt;n&lt;/i&gt;]&lt;/sub&gt; =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(32, 33, 34); font-family: sans-serif; font-size: 16px; text-align: start; text-wrap-mode: wrap; background-color: rgb(255, 255, 255);&quot;&gt;Š&lt;/span&gt;&lt;span style=&quot;font-size: 20px;&quot;&gt;&lt;sub&gt;[&lt;i&gt;n&lt;/i&gt;]&lt;/sub&gt;&lt;/span&gt;" vertex="1">
<mxGeometry height="40" width="190" x="780" y="227.5" as="geometry" /> <mxGeometry height="40" width="190" x="780" y="227.5" as="geometry" />
</mxCell> </mxCell>
<mxCell id="ngw2JN3qWJ9t0b-mEEB_-9" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;strokeWidth=2;" value="&lt;span style=&quot;font-size: 15px;&quot;&gt;LMS&lt;/span&gt;" vertex="1"> <mxCell id="ngw2JN3qWJ9t0b-mEEB_-9" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;strokeWidth=2;" value="&lt;span style=&quot;font-size: 15px;&quot;&gt;LMS&lt;/span&gt;" vertex="1">
@@ -121,10 +121,10 @@
<mxPoint x="890" y="410" as="targetPoint" /> <mxPoint x="890" y="410" as="targetPoint" />
</mxGeometry> </mxGeometry>
</mxCell> </mxCell>
<mxCell id="qO-CM7M714h87kHfMT8G-9" parent="1" style="text;whiteSpace=wrap;html=1;" value="&lt;span style=&quot;color: rgb(0, 0, 0); font-family: Helvetica; font-size: 20px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: nowrap; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;&quot;&gt;e&lt;sub style=&quot;&quot;&gt;[n]&lt;/sub&gt;&lt;/span&gt;" vertex="1"> <mxCell id="qO-CM7M714h87kHfMT8G-9" parent="1" style="text;whiteSpace=wrap;html=1;" value="&lt;span style=&quot;color: rgb(0, 0, 0); font-family: Helvetica; font-size: 20px; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: nowrap; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;&quot;&gt;e&lt;sub style=&quot;&quot;&gt;[&lt;i&gt;n&lt;/i&gt;]&lt;/sub&gt;&lt;/span&gt;" vertex="1">
<mxGeometry height="50" width="70" x="940" y="420" as="geometry" /> <mxGeometry height="50" width="70" x="940" y="420" as="geometry" />
</mxCell> </mxCell>
<mxCell id="qO-CM7M714h87kHfMT8G-10" parent="1" style="text;whiteSpace=wrap;html=1;" value="&lt;span&gt;&lt;span style=&quot;forced-color-adjust: none; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; color: rgb(32, 33, 34); font-family: sans-serif; font-size: 16px; text-align: start;&quot;&gt;Š&lt;/span&gt;&lt;span style=&quot;forced-color-adjust: none; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: nowrap; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; font-size: 20px;&quot;&gt;&lt;sub&gt;[n]&lt;/sub&gt;&lt;/span&gt;&lt;/span&gt;" vertex="1"> <mxCell id="qO-CM7M714h87kHfMT8G-10" parent="1" style="text;whiteSpace=wrap;html=1;" value="&lt;span&gt;&lt;span style=&quot;forced-color-adjust: none; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; color: rgb(32, 33, 34); font-family: sans-serif; font-size: 16px; text-align: start;&quot;&gt;Š&lt;/span&gt;&lt;span style=&quot;forced-color-adjust: none; color: rgb(0, 0, 0); font-family: Helvetica; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: nowrap; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; font-size: 20px;&quot;&gt;&lt;sub style=&quot;&quot;&gt;[&lt;i&gt;n&lt;/i&gt;]&lt;/sub&gt;&lt;/span&gt;&lt;/span&gt;" vertex="1">
<mxGeometry height="50" width="70" x="1050" y="227.5" as="geometry" /> <mxGeometry height="50" width="70" x="1050" y="227.5" as="geometry" />
</mxCell> </mxCell>
<mxCell id="qO-CM7M714h87kHfMT8G-11" parent="1" style="text;whiteSpace=wrap;html=1;" value="&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size: 20px;&quot;&gt;Cochlear Implant&lt;br&gt;System&lt;/span&gt;&lt;/div&gt;" vertex="1"> <mxCell id="qO-CM7M714h87kHfMT8G-11" parent="1" style="text;whiteSpace=wrap;html=1;" value="&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size: 20px;&quot;&gt;Cochlear Implant&lt;br&gt;System&lt;/span&gt;&lt;/div&gt;" vertex="1">
+103 -96
View File
@@ -1,163 +1,170 @@
<mxfile host="app.diagrams.net" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" version="29.3.4"> <mxfile host="app.diagrams.net" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36">
<diagram name="Page-1" id="biPyHR2u_nhwJtU07GTZ"> <diagram name="Page-1" id="biPyHR2u_nhwJtU07GTZ">
<mxGraphModel dx="576" dy="743" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0"> <mxGraphModel dx="-522" dy="619" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
<root> <root>
<mxCell id="0" /> <mxCell id="0" />
<mxCell id="1" parent="0" /> <mxCell id="1" parent="0" />
<mxCell id="H6R4VGwbr_i7cj5zOMue-17" edge="1" parent="1" style="endArrow=classic;html=1;rounded=0;exitX=0.462;exitY=1.333;exitDx=0;exitDy=0;exitPerimeter=0;" value=""> <mxCell id="cp_F2xbEhuy70gcA_QA4-2" edge="1" parent="1" source="cp_F2xbEhuy70gcA_QA4-15" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" target="cp_F2xbEhuy70gcA_QA4-17" value="">
<mxGeometry height="50" relative="1" width="50" as="geometry"> <mxGeometry height="50" relative="1" width="50" as="geometry">
<mxPoint x="1299.58" y="80" as="sourcePoint" /> <mxPoint x="2059.58" y="240" as="sourcePoint" />
<mxPoint x="1300" y="120" as="targetPoint" /> <mxPoint x="2060" y="280" as="targetPoint" />
</mxGeometry> </mxGeometry>
</mxCell> </mxCell>
<mxCell id="H6R4VGwbr_i7cj5zOMue-19" edge="1" parent="1" style="endArrow=classic;html=1;rounded=0;exitX=0.462;exitY=1.333;exitDx=0;exitDy=0;exitPerimeter=0;" value=""> <mxCell id="cp_F2xbEhuy70gcA_QA4-4" edge="1" parent="1" style="endArrow=classic;html=1;rounded=0;exitX=0.462;exitY=1.333;exitDx=0;exitDy=0;exitPerimeter=0;" value="">
<mxGeometry height="50" relative="1" width="50" as="geometry"> <mxGeometry height="50" relative="1" width="50" as="geometry">
<mxPoint x="1299.58" y="160" as="sourcePoint" /> <mxPoint x="2059.58" y="390" as="sourcePoint" />
<mxPoint x="1300" y="200" as="targetPoint" /> <mxPoint x="2060" y="430" as="targetPoint" />
</mxGeometry> </mxGeometry>
</mxCell> </mxCell>
<mxCell id="H6R4VGwbr_i7cj5zOMue-21" edge="1" parent="1" style="endArrow=classic;html=1;rounded=0;" value=""> <mxCell id="cp_F2xbEhuy70gcA_QA4-5" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" value="&lt;div&gt;&lt;font style=&quot;font-size: 14px;&quot;&gt;Accumulator +=&amp;nbsp;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font style=&quot;&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;Sample Line&lt;sub&gt;[&lt;i&gt;k&lt;/i&gt;&lt;/sub&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 14px; background-color: transparent; color: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));&quot;&gt;&lt;sub&gt;]&lt;/sub&gt; * Filter Line&lt;sub&gt;[&lt;i&gt;k&lt;/i&gt;]&lt;/sub&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;" vertex="1">
<mxGeometry height="50" relative="1" width="50" as="geometry"> <mxGeometry height="60" width="200" x="1960" y="430" as="geometry" />
<mxPoint x="1300" y="240" as="sourcePoint" />
<mxPoint x="1300" y="270" as="targetPoint" />
</mxGeometry>
</mxCell> </mxCell>
<mxCell id="H6R4VGwbr_i7cj5zOMue-23" edge="1" parent="1" style="endArrow=classic;html=1;rounded=0;exitX=0.462;exitY=1.333;exitDx=0;exitDy=0;exitPerimeter=0;" value=""> <mxCell id="cp_F2xbEhuy70gcA_QA4-6" edge="1" parent="1" source="cp_F2xbEhuy70gcA_QA4-5" style="endArrow=classic;html=1;rounded=0;exitX=0.86;exitY=-0.017;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitPerimeter=0;" target="cp_F2xbEhuy70gcA_QA4-17" value="">
<mxGeometry height="50" relative="1" width="50" as="geometry">
<mxPoint x="1299.58" y="310" as="sourcePoint" />
<mxPoint x="1300" y="350" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="H6R4VGwbr_i7cj5zOMue-25" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" value="&lt;div&gt;&lt;font style=&quot;font-size: 14px;&quot;&gt;Accumulator +=&amp;nbsp;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font style=&quot;font-size: 14px;&quot;&gt;Noise&lt;sub&gt;[&lt;/sub&gt;&lt;span style=&quot;background-color: transparent; color: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));&quot;&gt;&lt;sub&gt;j+i]&lt;/sub&gt; * Filter&lt;sub&gt;[i]&lt;/sub&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;" vertex="1">
<mxGeometry height="60" width="200" x="1200" y="350" as="geometry" />
</mxCell>
<mxCell id="H6R4VGwbr_i7cj5zOMue-27" edge="1" parent="1" source="H6R4VGwbr_i7cj5zOMue-25" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" value="">
<mxGeometry height="50" relative="1" width="50" as="geometry"> <mxGeometry height="50" relative="1" width="50" as="geometry">
<Array as="points"> <Array as="points">
<mxPoint x="1440" y="380" /> <mxPoint x="2132" y="380" />
<mxPoint x="1440" y="290" />
</Array> </Array>
<mxPoint x="1490" y="350" as="sourcePoint" /> <mxPoint x="2250" y="430" as="sourcePoint" />
<mxPoint x="1340" y="290" as="targetPoint" /> <mxPoint x="2100" y="370" as="targetPoint" />
</mxGeometry> </mxGeometry>
</mxCell> </mxCell>
<mxCell id="H6R4VGwbr_i7cj5zOMue-28" connectable="0" parent="H6R4VGwbr_i7cj5zOMue-27" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;" value="i++" vertex="1"> <mxCell id="cp_F2xbEhuy70gcA_QA4-7" connectable="0" parent="cp_F2xbEhuy70gcA_QA4-6" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;" value="&lt;i&gt;k&lt;/i&gt;++" vertex="1">
<mxGeometry relative="1" x="-0.2439" y="3" as="geometry"> <mxGeometry relative="1" x="-0.2439" y="3" as="geometry">
<mxPoint y="3" as="offset" /> <mxPoint y="3" as="offset" />
</mxGeometry> </mxGeometry>
</mxCell> </mxCell>
<mxCell id="H6R4VGwbr_i7cj5zOMue-30" edge="1" parent="1" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" target="H6R4VGwbr_i7cj5zOMue-25" value=""> <mxCell id="cp_F2xbEhuy70gcA_QA4-8" edge="1" parent="1" source="cp_F2xbEhuy70gcA_QA4-14" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" target="cp_F2xbEhuy70gcA_QA4-10" value="">
<mxGeometry height="50" relative="1" width="50" as="geometry"> <mxGeometry height="50" relative="1" width="50" as="geometry">
<mxPoint x="1160" y="379.9999999999999" as="sourcePoint" /> <mxPoint x="1920" y="459.9999999999999" as="sourcePoint" />
<mxPoint x="1130.42" y="500" as="targetPoint" /> <mxPoint x="1890.42" y="580" as="targetPoint" />
</mxGeometry> </mxGeometry>
</mxCell> </mxCell>
<mxCell id="H6R4VGwbr_i7cj5zOMue-31" edge="1" parent="1" source="H6R4VGwbr_i7cj5zOMue-25" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" target="H6R4VGwbr_i7cj5zOMue-32" value=""> <mxCell id="cp_F2xbEhuy70gcA_QA4-9" edge="1" parent="1" source="cp_F2xbEhuy70gcA_QA4-5" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" target="cp_F2xbEhuy70gcA_QA4-10" value="">
<mxGeometry height="50" relative="1" width="50" as="geometry"> <mxGeometry height="50" relative="1" width="50" as="geometry">
<mxPoint x="1410" y="420" as="sourcePoint" /> <mxPoint x="2170" y="500" as="sourcePoint" />
<mxPoint x="1410.42" y="460" as="targetPoint" /> <mxPoint x="2170.42" y="540" as="targetPoint" />
</mxGeometry> </mxGeometry>
</mxCell> </mxCell>
<mxCell id="H6R4VGwbr_i7cj5zOMue-32" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" value="&lt;div&gt;&lt;font style=&quot;font-size: 14px;&quot;&gt;Output&lt;sub&gt;[j]&lt;/sub&gt; = &lt;br&gt;Input&lt;sub&gt;[j]&lt;/sub&gt; - Accumulator&lt;/font&gt;&lt;/div&gt;" vertex="1"> <mxCell id="cp_F2xbEhuy70gcA_QA4-10" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" value="&lt;div&gt;&lt;font style=&quot;font-size: 14px;&quot;&gt;Output&lt;sub&gt;[&lt;i&gt;n&lt;/i&gt;]&lt;/sub&gt; = &lt;br&gt;Input&lt;sub&gt;[&lt;i&gt;n&lt;/i&gt;]&lt;/sub&gt; - Accumulator&lt;/font&gt;&lt;/div&gt;" vertex="1">
<mxGeometry height="60" width="200" x="1200" y="450" as="geometry" /> <mxGeometry height="60" width="200" x="1960" y="530" as="geometry" />
</mxCell> </mxCell>
<mxCell id="H6R4VGwbr_i7cj5zOMue-34" edge="1" parent="1" style="endArrow=classic;html=1;rounded=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" target="JXUbh7mfEI0vDSi9tXp8-2" value=""> <mxCell id="cp_F2xbEhuy70gcA_QA4-11" edge="1" parent="1" style="endArrow=classic;html=1;rounded=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" target="cp_F2xbEhuy70gcA_QA4-28" value="">
<mxGeometry height="50" relative="1" width="50" as="geometry"> <mxGeometry height="50" relative="1" width="50" as="geometry">
<mxPoint x="1299.8600000000001" y="510" as="sourcePoint" /> <mxPoint x="2059.86" y="590" as="sourcePoint" />
<mxPoint x="1299.8600000000001" y="560" as="targetPoint" /> <mxPoint x="2059.86" y="640" as="targetPoint" />
</mxGeometry> </mxGeometry>
</mxCell> </mxCell>
<mxCell id="H6R4VGwbr_i7cj5zOMue-35" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" value="&lt;div&gt;&lt;font style=&quot;font-size: 14px;&quot;&gt;Correction =&amp;nbsp;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font style=&quot;font-size: 14px;&quot;&gt;&lt;span style=&quot;color: rgb(32, 33, 34); font-family: sans-serif; text-align: start;&quot;&gt;&lt;i style=&quot;&quot;&gt;&lt;font&gt;µ&lt;/font&gt;&lt;/i&gt;&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));&quot;&gt;&amp;nbsp;*&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));&quot;&gt;Output&lt;sub&gt;[j]&lt;/sub&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;" vertex="1"> <mxCell id="cp_F2xbEhuy70gcA_QA4-12" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" value="&lt;div&gt;&lt;font style=&quot;font-size: 14px;&quot;&gt;Correction =&amp;nbsp;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font style=&quot;font-size: 14px;&quot;&gt;&lt;span style=&quot;color: rgb(32, 33, 34); font-family: sans-serif; text-align: start;&quot;&gt;&lt;i style=&quot;&quot;&gt;&lt;font&gt;µ&lt;/font&gt;&lt;/i&gt;&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));&quot;&gt;&amp;nbsp;*&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));&quot;&gt;Output&lt;sub&gt;[&lt;i&gt;n&lt;/i&gt;]&lt;/sub&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;" vertex="1">
<mxGeometry height="60" width="210" x="1200" y="630" as="geometry" /> <mxGeometry height="60" width="200" x="1960" y="710" as="geometry" />
</mxCell> </mxCell>
<mxCell id="H6R4VGwbr_i7cj5zOMue-38" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" value="&lt;div&gt;&lt;font style=&quot;font-size: 14px;&quot;&gt;Filter&lt;sub&gt;[k]&lt;/sub&gt;&amp;nbsp;+=&amp;nbsp;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font style=&quot;font-size: 14px;&quot;&gt;Correction * Noise&lt;sub&gt;[j+k]&lt;/sub&gt;&lt;/font&gt;&lt;/div&gt;" vertex="1"> <mxCell id="cp_F2xbEhuy70gcA_QA4-13" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" value="&lt;div&gt;&lt;font style=&quot;font-size: 14px;&quot;&gt;Filter Line&lt;sub&gt;[&lt;i&gt;k&lt;/i&gt;]&lt;/sub&gt;&amp;nbsp;+=&amp;nbsp;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font style=&quot;font-size: 14px;&quot;&gt;Correction * Sample Line&lt;sub&gt;[&lt;i&gt;k&lt;/i&gt;]&lt;/sub&gt;&lt;/font&gt;&lt;/div&gt;" vertex="1">
<mxGeometry height="60" width="170" x="1490" y="350" as="geometry" /> <mxGeometry height="60" width="200" x="2200" y="530" as="geometry" />
</mxCell> </mxCell>
<mxCell id="H6R4VGwbr_i7cj5zOMue-39" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" value="&lt;font&gt;&lt;font style=&quot;font-size: 14px;&quot;&gt;&lt;b style=&quot;&quot;&gt;Input&lt;/b&gt;&lt;/font&gt;&lt;/font&gt;&lt;div&gt;&lt;font style=&quot;font-size: 14px;&quot;&gt;&lt;font style=&quot;&quot;&gt;[d&lt;sub style=&quot;&quot;&gt;1&lt;/sub&gt;, d&lt;/font&gt;&lt;sub style=&quot;&quot;&gt;2&lt;/sub&gt;, ... ,&amp;nbsp;dM-N]&lt;/font&gt;&lt;/div&gt;" vertex="1"> <mxCell id="cp_F2xbEhuy70gcA_QA4-14" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" value="&lt;font&gt;&lt;font style=&quot;font-size: 14px;&quot;&gt;&lt;b style=&quot;&quot;&gt;Input&lt;/b&gt;&lt;/font&gt;&lt;/font&gt;&lt;div&gt;&lt;font style=&quot;font-size: 14px;&quot;&gt;&lt;font style=&quot;&quot;&gt;[d&lt;sub style=&quot;&quot;&gt;1&lt;/sub&gt;, d&lt;/font&gt;&lt;sub style=&quot;&quot;&gt;2&lt;/sub&gt;, ... ,&amp;nbsp;d&lt;/font&gt;&lt;font style=&quot;font-size: 9.72225px;&quot;&gt;&lt;sub style=&quot;&quot;&gt;N&lt;/sub&gt;&lt;/font&gt;&lt;font style=&quot;&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;]&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;" vertex="1">
<mxGeometry height="40" width="200" x="1200" y="40" as="geometry" /> <mxGeometry height="40" width="200" x="1720" y="540" as="geometry" />
</mxCell> </mxCell>
<mxCell id="H6R4VGwbr_i7cj5zOMue-41" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" value="&lt;font style=&quot;font-size: 14px;&quot;&gt;j = 0&lt;/font&gt;" vertex="1"> <mxCell id="cp_F2xbEhuy70gcA_QA4-15" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" value="&lt;font style=&quot;font-size: 14px;&quot;&gt;&lt;i&gt;n&lt;/i&gt; = 1&lt;/font&gt;" vertex="1">
<mxGeometry height="40" width="80" x="1260" y="120" as="geometry" /> <mxGeometry height="40" width="80" x="2020" y="280" as="geometry" />
</mxCell> </mxCell>
<mxCell id="H6R4VGwbr_i7cj5zOMue-42" edge="1" parent="1" source="H6R4VGwbr_i7cj5zOMue-41" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" target="H6R4VGwbr_i7cj5zOMue-41"> <mxCell id="cp_F2xbEhuy70gcA_QA4-16" edge="1" parent="1" source="cp_F2xbEhuy70gcA_QA4-15" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" target="cp_F2xbEhuy70gcA_QA4-15">
<mxGeometry relative="1" as="geometry" /> <mxGeometry relative="1" as="geometry" />
</mxCell> </mxCell>
<mxCell id="H6R4VGwbr_i7cj5zOMue-43" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" value="&lt;font style=&quot;font-size: 14px;&quot;&gt;i = 0&lt;/font&gt;" vertex="1"> <mxCell id="cp_F2xbEhuy70gcA_QA4-17" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" value="&lt;font style=&quot;font-size: 14px;&quot;&gt;&lt;i&gt;k&lt;/i&gt; = 1&lt;/font&gt;" vertex="1">
<mxGeometry height="40" width="80" x="1265" y="270" as="geometry" /> <mxGeometry height="40" width="80" x="2020" y="360" as="geometry" />
</mxCell> </mxCell>
<mxCell id="H6R4VGwbr_i7cj5zOMue-44" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" value="&lt;font&gt;&lt;font style=&quot;font-size: 14px;&quot;&gt;&lt;b style=&quot;&quot;&gt;Filter&lt;/b&gt;&amp;nbsp;&lt;/font&gt;&lt;/font&gt;&lt;div&gt;&lt;font style=&quot;font-size: 14px;&quot;&gt;&lt;font style=&quot;&quot;&gt;[w&lt;sub style=&quot;&quot;&gt;1&lt;/sub&gt;, w&lt;/font&gt;&lt;sub style=&quot;&quot;&gt;2&lt;/sub&gt;, ... , w&lt;sub&gt;M-N&lt;/sub&gt;]&lt;/font&gt;&lt;/div&gt;" vertex="1"> <mxCell id="cp_F2xbEhuy70gcA_QA4-18" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" value="&lt;font&gt;&lt;font style=&quot;font-size: 14px;&quot;&gt;&lt;b style=&quot;&quot;&gt;Filter&lt;/b&gt;&amp;nbsp;&lt;b&gt;Line&lt;/b&gt;&lt;/font&gt;&lt;/font&gt;&lt;div&gt;&lt;font style=&quot;font-size: 14px;&quot;&gt;&lt;font style=&quot;&quot;&gt;[w&lt;sub style=&quot;&quot;&gt;1&lt;/sub&gt;, w&lt;/font&gt;&lt;sub style=&quot;&quot;&gt;2&lt;/sub&gt;, ... , w&lt;/font&gt;&lt;sub&gt;&lt;font style=&quot;font-size: 9.72225px;&quot;&gt;K&lt;/font&gt;&lt;/sub&gt;&lt;font style=&quot;&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;]&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;" vertex="1">
<mxGeometry height="40" width="200" x="1200" y="200" as="geometry" /> <mxGeometry height="40" width="200" x="2200" y="440" as="geometry" />
</mxCell> </mxCell>
<mxCell id="H6R4VGwbr_i7cj5zOMue-45" edge="1" parent="1" source="H6R4VGwbr_i7cj5zOMue-35" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" target="H6R4VGwbr_i7cj5zOMue-41" value=""> <mxCell id="cp_F2xbEhuy70gcA_QA4-19" edge="1" parent="1" source="cp_F2xbEhuy70gcA_QA4-13" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" value="">
<mxGeometry height="50" relative="1" width="50" as="geometry"> <mxGeometry height="50" relative="1" width="50" as="geometry">
<Array as="points"> <Array as="points">
<mxPoint x="1305" y="720" /> <mxPoint x="2420" y="560" />
<mxPoint x="950" y="720" /> <mxPoint x="2420" y="300" />
<mxPoint x="950" y="140" />
</Array> </Array>
<mxPoint x="1440" y="610" as="sourcePoint" /> <mxPoint x="2200" y="690" as="sourcePoint" />
<mxPoint x="1475" y="340" as="targetPoint" /> <mxPoint x="2100" y="300" as="targetPoint" />
</mxGeometry> </mxGeometry>
</mxCell> </mxCell>
<mxCell id="H6R4VGwbr_i7cj5zOMue-46" connectable="0" parent="H6R4VGwbr_i7cj5zOMue-45" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;" value="j++" vertex="1"> <mxCell id="cp_F2xbEhuy70gcA_QA4-20" connectable="0" parent="cp_F2xbEhuy70gcA_QA4-19" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;" value="&lt;i&gt;n&lt;/i&gt;++" vertex="1">
<mxGeometry relative="1" x="0.2417" y="1" as="geometry"> <mxGeometry relative="1" x="0.2417" y="1" as="geometry">
<mxPoint y="67" as="offset" /> <mxPoint x="93" y="119" as="offset" />
</mxGeometry> </mxGeometry>
</mxCell> </mxCell>
<mxCell id="H6R4VGwbr_i7cj5zOMue-48" edge="1" parent="1" source="H6R4VGwbr_i7cj5zOMue-38" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" target="H6R4VGwbr_i7cj5zOMue-44" value=""> <mxCell id="cp_F2xbEhuy70gcA_QA4-22" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" value="&lt;font style=&quot;font-size: 14px;&quot;&gt;&lt;i&gt;k&lt;/i&gt; = 1&lt;/font&gt;" vertex="1">
<mxGeometry height="40" width="80" x="2260" y="640" as="geometry" />
</mxCell>
<mxCell id="cp_F2xbEhuy70gcA_QA4-23" edge="1" parent="1" source="cp_F2xbEhuy70gcA_QA4-12" style="endArrow=classic;html=1;rounded=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" target="cp_F2xbEhuy70gcA_QA4-22" value="">
<mxGeometry height="50" relative="1" width="50" as="geometry"> <mxGeometry height="50" relative="1" width="50" as="geometry">
<Array as="points"> <Array as="points">
<mxPoint x="1575" y="220" /> <mxPoint x="2300" y="740" />
</Array> </Array>
<mxPoint x="1290" y="390" as="sourcePoint" /> <mxPoint x="2210" y="660" as="sourcePoint" />
<mxPoint x="1340" y="340" as="targetPoint" /> <mxPoint x="2220" y="610" as="targetPoint" />
</mxGeometry> </mxGeometry>
</mxCell> </mxCell>
<mxCell id="n1TZPSIdfv_mN465yjPh-1" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" value="&lt;font style=&quot;font-size: 14px;&quot;&gt;k = 0&lt;/font&gt;" vertex="1"> <mxCell id="cp_F2xbEhuy70gcA_QA4-24" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" value="&lt;span style=&quot;font-size: 14px;&quot;&gt;&lt;b&gt;Sample Line&lt;/b&gt;&lt;/span&gt;&lt;br&gt;&lt;div&gt;&lt;font style=&quot;&quot;&gt;&lt;font style=&quot;&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;[x&lt;/span&gt;&lt;font style=&quot;font-size: 10px;&quot;&gt;&lt;sub&gt;1&lt;/sub&gt;&lt;/font&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;, x&lt;/span&gt;&lt;sub style=&quot;&quot;&gt;&lt;font style=&quot;font-size: 11.6667px;&quot;&gt;2&lt;/font&gt;&lt;/sub&gt;&lt;/font&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;, ... , x&lt;/span&gt;&lt;span style=&quot;font-size: 11.6667px;&quot;&gt;&lt;sub&gt;K&lt;/sub&gt;&lt;/span&gt;&lt;/font&gt;&lt;font style=&quot;&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;]&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;" vertex="1">
<mxGeometry height="40" width="80" x="1535" y="460" as="geometry" /> <mxGeometry height="40" width="200" x="1720" y="440" as="geometry" />
</mxCell> </mxCell>
<mxCell id="n1TZPSIdfv_mN465yjPh-2" edge="1" parent="1" source="H6R4VGwbr_i7cj5zOMue-35" style="endArrow=classic;html=1;rounded=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" target="n1TZPSIdfv_mN465yjPh-1" value=""> <mxCell id="cp_F2xbEhuy70gcA_QA4-25" edge="1" parent="1" source="cp_F2xbEhuy70gcA_QA4-22" style="endArrow=classic;html=1;rounded=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" target="cp_F2xbEhuy70gcA_QA4-13" value="">
<mxGeometry height="50" relative="1" width="50" as="geometry">
<mxPoint x="2300" y="650" as="sourcePoint" />
<mxPoint x="2350" y="600" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="cp_F2xbEhuy70gcA_QA4-26" edge="1" parent="1" source="cp_F2xbEhuy70gcA_QA4-13" style="endArrow=classic;html=1;rounded=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" target="cp_F2xbEhuy70gcA_QA4-22" value="">
<mxGeometry height="50" relative="1" width="50" as="geometry"> <mxGeometry height="50" relative="1" width="50" as="geometry">
<Array as="points"> <Array as="points">
<mxPoint x="1575" y="660" /> <mxPoint x="2180" y="560" />
<mxPoint x="2180" y="660" />
</Array> </Array>
<mxPoint x="1450" y="580" as="sourcePoint" /> <mxPoint x="2180" y="560" as="sourcePoint" />
<mxPoint x="1460" y="530" as="targetPoint" /> <mxPoint x="2230" y="510" as="targetPoint" />
</mxGeometry> </mxGeometry>
</mxCell> </mxCell>
<mxCell id="n1TZPSIdfv_mN465yjPh-3" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" value="&lt;font&gt;&lt;font style=&quot;font-size: 14px;&quot;&gt;&lt;b style=&quot;&quot;&gt;Noise&lt;/b&gt;&amp;nbsp;&lt;/font&gt;&lt;/font&gt;&lt;div&gt;&lt;font style=&quot;font-size: 14px;&quot;&gt;&lt;font style=&quot;&quot;&gt;[x&lt;sub style=&quot;&quot;&gt;1&lt;/sub&gt;, x&lt;/font&gt;&lt;sub style=&quot;&quot;&gt;2&lt;/sub&gt;, ... , x&lt;sub&gt;M-N&lt;/sub&gt;]&lt;/font&gt;&lt;/div&gt;" vertex="1"> <mxCell id="cp_F2xbEhuy70gcA_QA4-27" connectable="0" parent="cp_F2xbEhuy70gcA_QA4-26" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;" value="&lt;i&gt;k&lt;/i&gt;++" vertex="1">
<mxGeometry height="40" width="190" x="970" y="360" as="geometry" />
</mxCell>
<mxCell id="n1TZPSIdfv_mN465yjPh-4" edge="1" parent="1" source="n1TZPSIdfv_mN465yjPh-1" style="endArrow=classic;html=1;rounded=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" target="H6R4VGwbr_i7cj5zOMue-38" value="">
<mxGeometry height="50" relative="1" width="50" as="geometry">
<mxPoint x="1580" y="470" as="sourcePoint" />
<mxPoint x="1630" y="420" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="n1TZPSIdfv_mN465yjPh-5" edge="1" parent="1" source="H6R4VGwbr_i7cj5zOMue-38" style="endArrow=classic;html=1;rounded=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" target="n1TZPSIdfv_mN465yjPh-1" value="">
<mxGeometry height="50" relative="1" width="50" as="geometry">
<Array as="points">
<mxPoint x="1460" y="380" />
<mxPoint x="1460" y="480" />
</Array>
<mxPoint x="1460" y="380" as="sourcePoint" />
<mxPoint x="1510" y="330" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="n1TZPSIdfv_mN465yjPh-6" connectable="0" parent="n1TZPSIdfv_mN465yjPh-5" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;" value="k++" vertex="1">
<mxGeometry relative="1" x="-0.2231" y="1" as="geometry"> <mxGeometry relative="1" x="-0.2231" y="1" as="geometry">
<mxPoint as="offset" /> <mxPoint y="-7" as="offset" />
</mxGeometry> </mxGeometry>
</mxCell> </mxCell>
<mxCell id="JXUbh7mfEI0vDSi9tXp8-2" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" value="&lt;font&gt;&lt;font style=&quot;font-size: 14px;&quot;&gt;&lt;b style=&quot;&quot;&gt;Output&lt;/b&gt;&amp;nbsp;&lt;/font&gt;&lt;/font&gt;&lt;div&gt;&lt;font style=&quot;font-size: 14px;&quot;&gt;&lt;font style=&quot;&quot;&gt;[o&lt;sub style=&quot;&quot;&gt;1&lt;/sub&gt;, o&lt;/font&gt;&lt;sub style=&quot;&quot;&gt;2&lt;/sub&gt;, ... , o&lt;sub&gt;M-N&lt;/sub&gt;]&lt;/font&gt;&lt;/div&gt;" vertex="1"> <mxCell id="cp_F2xbEhuy70gcA_QA4-28" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" value="&lt;font&gt;&lt;font style=&quot;font-size: 14px;&quot;&gt;&lt;b style=&quot;&quot;&gt;Output&lt;/b&gt;&amp;nbsp;&lt;/font&gt;&lt;/font&gt;&lt;div&gt;&lt;font style=&quot;font-size: 14px;&quot;&gt;&lt;font style=&quot;&quot;&gt;[o&lt;sub style=&quot;&quot;&gt;1&lt;/sub&gt;, o&lt;/font&gt;&lt;sub style=&quot;&quot;&gt;2&lt;/sub&gt;, ... , o&lt;/font&gt;&lt;sub&gt;&lt;font style=&quot;font-size: 11.6667px;&quot;&gt;N&lt;/font&gt;&lt;/sub&gt;&lt;font style=&quot;&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;]&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;" vertex="1">
<mxGeometry height="40" width="200" x="1200" y="550" as="geometry" /> <mxGeometry height="40" width="200" x="1960" y="630" as="geometry" />
</mxCell> </mxCell>
<mxCell id="JXUbh7mfEI0vDSi9tXp8-4" edge="1" parent="1" style="endArrow=classic;html=1;rounded=0;exitX=0.462;exitY=1.333;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" value=""> <mxCell id="cp_F2xbEhuy70gcA_QA4-29" edge="1" parent="1" style="endArrow=classic;html=1;rounded=0;exitX=0.462;exitY=1.333;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" value="">
<mxGeometry height="50" relative="1" width="50" as="geometry"> <mxGeometry height="50" relative="1" width="50" as="geometry">
<mxPoint x="1304.58" y="590" as="sourcePoint" /> <mxPoint x="2064.58" y="670" as="sourcePoint" />
<mxPoint x="1305" y="630" as="targetPoint" /> <mxPoint x="2065" y="710" as="targetPoint" />
</mxGeometry> </mxGeometry>
</mxCell> </mxCell>
<mxCell id="cp_F2xbEhuy70gcA_QA4-30" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" value="&lt;font&gt;&lt;font style=&quot;font-size: 14px;&quot;&gt;&lt;b style=&quot;&quot;&gt;Reference Noise&lt;/b&gt;&amp;nbsp;&lt;/font&gt;&lt;/font&gt;&lt;div&gt;&lt;font style=&quot;font-size: 14px;&quot;&gt;&lt;font style=&quot;&quot;&gt;[x&lt;sub style=&quot;&quot;&gt;1&lt;/sub&gt;, x&lt;/font&gt;&lt;sub style=&quot;&quot;&gt;2&lt;/sub&gt;, ... , x&lt;/font&gt;&lt;font style=&quot;font-size: 11.6667px;&quot;&gt;&lt;sub&gt;N&lt;/sub&gt;&lt;/font&gt;&lt;font style=&quot;&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;]&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;" vertex="1">
<mxGeometry height="40" width="200" x="1720" y="360" as="geometry" />
</mxCell>
<mxCell id="cp_F2xbEhuy70gcA_QA4-32" edge="1" parent="1" source="cp_F2xbEhuy70gcA_QA4-30" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" target="cp_F2xbEhuy70gcA_QA4-24" value="">
<mxGeometry relative="1" as="geometry">
<mxPoint x="1870" y="250" as="sourcePoint" />
<mxPoint x="1870" y="290" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="cp_F2xbEhuy70gcA_QA4-34" edge="1" parent="1" source="cp_F2xbEhuy70gcA_QA4-24" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" target="cp_F2xbEhuy70gcA_QA4-5" value="">
<mxGeometry height="50" relative="1" width="50" as="geometry">
<mxPoint x="1950" y="350" as="sourcePoint" />
<mxPoint x="1980" y="350" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="cp_F2xbEhuy70gcA_QA4-35" edge="1" parent="1" source="cp_F2xbEhuy70gcA_QA4-13" style="endArrow=classic;html=1;rounded=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" target="cp_F2xbEhuy70gcA_QA4-18" value="">
<mxGeometry height="50" relative="1" width="50" as="geometry">
<mxPoint x="2280" y="390" as="sourcePoint" />
<mxPoint x="2280" y="340" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="cp_F2xbEhuy70gcA_QA4-36" edge="1" parent="1" source="cp_F2xbEhuy70gcA_QA4-18" style="endArrow=classic;html=1;rounded=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" target="cp_F2xbEhuy70gcA_QA4-5" value="">
<mxGeometry height="50" relative="1" width="50" as="geometry">
<mxPoint x="2230" y="340" as="sourcePoint" />
<mxPoint x="2270" y="340" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="cp_F2xbEhuy70gcA_QA4-37" parent="1" style="text;whiteSpace=wrap;html=1;" value="&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));&quot;&gt;&lt;font&gt;for n=1:&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;" vertex="1">
<mxGeometry height="30" width="50" x="1726" y="446" as="geometry" />
</mxCell>
</root> </root>
</mxGraphModel> </mxGraphModel>
</diagram> </diagram>
+253
View File
@@ -0,0 +1,253 @@
<mxfile host="app.diagrams.net">
<diagram name="Page-1" id="-Pig8kzuJ9adoD4fOZ07">
<mxGraphModel dx="808" dy="425" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="ekXOrES1dnCwNR7bxEvI-60" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" value="x&lt;sub&gt;3&lt;/sub&gt;" vertex="1">
<mxGeometry height="30" width="90" x="180" y="255" as="geometry" />
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-61" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" value="d&lt;sub&gt;3&lt;/sub&gt;" vertex="1">
<mxGeometry height="30" width="90" x="180" y="285" as="geometry" />
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-62" edge="1" parent="1" source="ekXOrES1dnCwNR7bxEvI-61" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" target="ekXOrES1dnCwNR7bxEvI-61">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-63" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" value="x&lt;sub&gt;1&lt;/sub&gt;" vertex="1">
<mxGeometry height="30" width="80" x="310" y="255" as="geometry" />
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-64" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" value="x&lt;sub&gt;2&lt;/sub&gt;" vertex="1">
<mxGeometry height="30" width="80" x="310" y="285" as="geometry" />
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-65" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" value="0" vertex="1">
<mxGeometry height="30" width="80" x="310" y="315" as="geometry" />
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-66" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" value="0" vertex="1">
<mxGeometry height="30" width="80" x="310" y="345" as="geometry" />
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-67" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" value="w&lt;sub&gt;1&lt;/sub&gt;&lt;br&gt;&lt;font style=&quot;font-size: 10px;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));&quot;&gt;(= w&lt;sub&gt;1&lt;/sub&gt; +&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: rgb(32, 33, 34); font-family: sans-serif; font-style: italic; text-align: start;&quot;&gt;µ*&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: rgb(32, 33, 34); font-family: sans-serif; text-align: start;&quot;&gt;o&lt;sub style=&quot;&quot;&gt;2&lt;/sub&gt;&lt;i&gt;*&lt;/i&gt;x&lt;sub style=&quot;&quot;&gt;2&lt;/sub&gt;&lt;i&gt;)&lt;/i&gt;&lt;/span&gt;&lt;/font&gt;" vertex="1">
<mxGeometry height="30" width="80" x="470" y="255" as="geometry" />
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-68" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" value="w&lt;sub&gt;2&lt;/sub&gt;&lt;br&gt;&lt;font style=&quot;font-size: 10px;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));&quot;&gt;(=&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: rgb(32, 33, 34); font-family: sans-serif; font-style: italic; text-align: start;&quot;&gt;µ*&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: rgb(32, 33, 34); font-family: sans-serif; text-align: start;&quot;&gt;o&lt;sub style=&quot;&quot;&gt;2&lt;/sub&gt;&lt;i&gt;*&lt;/i&gt;x&lt;sub style=&quot;&quot;&gt;2&lt;/sub&gt;&lt;i&gt;)&lt;/i&gt;&lt;/span&gt;&lt;/font&gt;" vertex="1">
<mxGeometry height="30" width="80" x="470" y="285" as="geometry" />
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-69" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" value="0" vertex="1">
<mxGeometry height="30" width="80" x="470" y="315" as="geometry" />
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-70" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" value="0" vertex="1">
<mxGeometry height="30" width="80" x="470" y="345" as="geometry" />
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-71" parent="1" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" value="+" vertex="1">
<mxGeometry height="30" width="30" x="415" y="385" as="geometry" />
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-72" parent="1" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" value="x" vertex="1">
<mxGeometry height="25" width="25" x="417" y="257.5" as="geometry" />
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-73" parent="1" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" value="x" vertex="1">
<mxGeometry height="25" width="25" x="417.5" y="287.5" as="geometry" />
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-74" parent="1" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" value="x" vertex="1">
<mxGeometry height="25" width="25" x="417.5" y="317.5" as="geometry" />
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-75" parent="1" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" value="x" vertex="1">
<mxGeometry height="25" width="25" x="418" y="347.5" as="geometry" />
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-76" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" value="Sample Line&lt;br&gt;x&lt;sub&gt;[&lt;i&gt;n&lt;/i&gt;]&lt;/sub&gt;" vertex="1">
<mxGeometry height="30" width="76.25" x="311.75" y="215" as="geometry" />
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-77" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" value="Filter Line&lt;br&gt;w&lt;sub&gt;[&lt;i&gt;n&lt;/i&gt;]&lt;/sub&gt;" vertex="1">
<mxGeometry height="40" width="60" x="480" y="210" as="geometry" />
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-78" edge="1" parent="1" source="ekXOrES1dnCwNR7bxEvI-72" style="endArrow=none;html=1;rounded=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" target="ekXOrES1dnCwNR7bxEvI-63" value="">
<mxGeometry height="50" relative="1" width="50" as="geometry">
<mxPoint x="340" y="325" as="sourcePoint" />
<mxPoint x="390" y="275" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-79" edge="1" parent="1" source="ekXOrES1dnCwNR7bxEvI-73" style="endArrow=none;html=1;rounded=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" value="">
<mxGeometry height="50" relative="1" width="50" as="geometry">
<mxPoint x="417.5" y="300.5" as="sourcePoint" />
<mxPoint x="389.5" y="299.5" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-80" edge="1" parent="1" source="ekXOrES1dnCwNR7bxEvI-74" style="endArrow=none;html=1;rounded=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" value="">
<mxGeometry height="50" relative="1" width="50" as="geometry">
<mxPoint x="418.5" y="330.25" as="sourcePoint" />
<mxPoint x="390" y="329.75" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-81" edge="1" parent="1" source="ekXOrES1dnCwNR7bxEvI-75" style="endArrow=none;html=1;rounded=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" value="">
<mxGeometry height="50" relative="1" width="50" as="geometry">
<mxPoint x="418" y="360.25" as="sourcePoint" />
<mxPoint x="389.5" y="359.75" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-82" edge="1" parent="1" source="ekXOrES1dnCwNR7bxEvI-70" style="endArrow=none;html=1;rounded=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" target="ekXOrES1dnCwNR7bxEvI-75" value="">
<mxGeometry height="50" relative="1" width="50" as="geometry">
<mxPoint x="478.5" y="355.25" as="sourcePoint" />
<mxPoint x="450" y="355" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-83" edge="1" parent="1" source="ekXOrES1dnCwNR7bxEvI-69" style="endArrow=none;html=1;rounded=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" target="ekXOrES1dnCwNR7bxEvI-74" value="">
<mxGeometry height="50" relative="1" width="50" as="geometry">
<mxPoint x="477" y="325" as="sourcePoint" />
<mxPoint x="450" y="325" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-84" edge="1" parent="1" source="ekXOrES1dnCwNR7bxEvI-68" style="endArrow=none;html=1;rounded=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" target="ekXOrES1dnCwNR7bxEvI-73" value="">
<mxGeometry height="50" relative="1" width="50" as="geometry">
<mxPoint x="477" y="295" as="sourcePoint" />
<mxPoint x="450" y="295" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-85" edge="1" parent="1" source="ekXOrES1dnCwNR7bxEvI-67" style="endArrow=none;html=1;rounded=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" target="ekXOrES1dnCwNR7bxEvI-72" value="">
<mxGeometry height="50" relative="1" width="50" as="geometry">
<mxPoint x="477" y="265" as="sourcePoint" />
<mxPoint x="450" y="265" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-86" edge="1" parent="1" source="ekXOrES1dnCwNR7bxEvI-71" style="endArrow=none;html=1;rounded=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" target="ekXOrES1dnCwNR7bxEvI-75" value="">
<mxGeometry height="50" relative="1" width="50" as="geometry">
<mxPoint x="410" y="385" as="sourcePoint" />
<mxPoint x="460" y="335" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-87" edge="1" parent="1" source="ekXOrES1dnCwNR7bxEvI-60" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" target="ekXOrES1dnCwNR7bxEvI-63" value="">
<mxGeometry height="50" relative="1" width="50" as="geometry">
<mxPoint x="390" y="295" as="sourcePoint" />
<mxPoint x="440" y="245" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-88" edge="1" parent="1" source="ekXOrES1dnCwNR7bxEvI-61" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" value="">
<mxGeometry height="50" relative="1" width="50" as="geometry">
<Array as="points">
<mxPoint x="225" y="455" />
</Array>
<mxPoint x="230" y="325" as="sourcePoint" />
<mxPoint x="290" y="456" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-89" edge="1" parent="1" source="ekXOrES1dnCwNR7bxEvI-71" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" value="">
<mxGeometry height="50" relative="1" width="50" as="geometry">
<mxPoint x="390" y="395" as="sourcePoint" />
<mxPoint x="430" y="435" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-90" edge="1" parent="1" source="ekXOrES1dnCwNR7bxEvI-111" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" value="">
<mxGeometry height="50" relative="1" width="50" as="geometry">
<mxPoint x="580" y="455" as="sourcePoint" />
<mxPoint x="610" y="456" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-91" edge="1" parent="1" style="endArrow=classic;html=1;rounded=0;exitX=0.882;exitY=0;exitDx=0;exitDy=0;exitPerimeter=0;" value="">
<mxGeometry height="50" relative="1" width="50" as="geometry">
<Array as="points">
<mxPoint x="519" y="405" />
</Array>
<mxPoint x="519.642" y="441" as="sourcePoint" />
<mxPoint x="560" y="405" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-92" parent="1" style="text;whiteSpace=wrap;html=1;" value="&lt;span style=&quot;color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;&quot;&gt;&lt;span style=&quot;color: rgb(32, 33, 34); font-family: sans-serif; font-style: italic; text-align: start;&quot;&gt;&lt;font style=&quot;&quot;&gt;* µ&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/span&gt;" vertex="1">
<mxGeometry height="29" width="28.13" x="518.1300000000001" y="385" as="geometry" />
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-93" edge="1" parent="1" style="endArrow=classic;html=1;rounded=0;exitX=0.77;exitY=-0.038;exitDx=0;exitDy=0;exitPerimeter=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" target="ekXOrES1dnCwNR7bxEvI-67" value="">
<mxGeometry height="50" relative="1" width="50" as="geometry">
<Array as="points">
<mxPoint x="600" y="270" />
</Array>
<mxPoint x="600.1000000000001" y="392" as="sourcePoint" />
<mxPoint x="600" y="276.52" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-94" edge="1" parent="1" source="ekXOrES1dnCwNR7bxEvI-73" style="endArrow=none;html=1;rounded=0;entryX=0.518;entryY=1.001;entryDx=0;entryDy=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryPerimeter=0;" target="ekXOrES1dnCwNR7bxEvI-72" value="">
<mxGeometry height="50" relative="1" width="50" as="geometry">
<mxPoint x="430" y="285" as="sourcePoint" />
<mxPoint x="440" y="345" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-95" edge="1" parent="1" style="endArrow=none;html=1;rounded=0;entryX=0.518;entryY=1.001;entryDx=0;entryDy=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryPerimeter=0;" value="">
<mxGeometry height="50" relative="1" width="50" as="geometry">
<mxPoint x="429.98" y="317.5" as="sourcePoint" />
<mxPoint x="429.98" y="312.5" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-96" edge="1" parent="1" style="endArrow=none;html=1;rounded=0;entryX=0.518;entryY=1.001;entryDx=0;entryDy=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryPerimeter=0;" value="">
<mxGeometry height="50" relative="1" width="50" as="geometry">
<mxPoint x="429.98" y="347.5" as="sourcePoint" />
<mxPoint x="429.98" y="342.5" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-97" edge="1" parent="1" style="endArrow=classic;html=1;rounded=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" target="ekXOrES1dnCwNR7bxEvI-68" value="">
<mxGeometry height="50" relative="1" width="50" as="geometry">
<mxPoint x="600" y="300" as="sourcePoint" />
<mxPoint x="450" y="325" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-98" edge="1" parent="1" style="endArrow=classic;html=1;rounded=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" value="">
<mxGeometry height="50" relative="1" width="50" as="geometry">
<mxPoint x="600" y="329.79999999999995" as="sourcePoint" />
<mxPoint x="550" y="329.79999999999995" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-99" edge="1" parent="1" style="endArrow=classic;html=1;rounded=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" value="">
<mxGeometry height="50" relative="1" width="50" as="geometry">
<mxPoint x="600" y="359.79999999999995" as="sourcePoint" />
<mxPoint x="550" y="359.79999999999995" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-100" parent="1" style="text;whiteSpace=wrap;html=1;" value="&lt;span style=&quot;color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;&quot;&gt;* x&lt;sub&gt;1&lt;/sub&gt;&lt;/span&gt;" vertex="1">
<mxGeometry height="27" width="30" x="600" y="258" as="geometry" />
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-101" parent="1" style="text;whiteSpace=wrap;html=1;" value="&lt;span style=&quot;color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; font-size: 12px; display: inline !important;&quot;&gt;* x&lt;sub&gt;2&lt;/sub&gt;&lt;/span&gt;" vertex="1">
<mxGeometry height="27" width="30" x="600" y="287.5" as="geometry" />
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-102" parent="1" style="text;whiteSpace=wrap;html=1;" value="&lt;span style=&quot;color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; font-size: 12px; display: inline !important;&quot;&gt;&amp;nbsp;* x&lt;sub&gt;3&lt;/sub&gt;&lt;/span&gt;" vertex="1">
<mxGeometry height="27" width="30" x="600" y="316.5" as="geometry" />
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-103" parent="1" style="text;whiteSpace=wrap;html=1;" value="&lt;span style=&quot;color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; font-size: 12px; display: inline !important;&quot;&gt;* x&lt;sub&gt;4&lt;/sub&gt;&lt;/span&gt;" vertex="1">
<mxGeometry height="27" width="30" x="600" y="347.5" as="geometry" />
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-104" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" value="Shared Memory" vertex="1">
<mxGeometry height="30" width="60" x="195" y="220" as="geometry" />
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-105" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" value="Shared Memory" vertex="1">
<mxGeometry height="30" width="60" x="610" y="441" as="geometry" />
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-106" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontStyle=1;fontSize=14;" value="2nd Cycle - Coefficient adaption" vertex="1">
<mxGeometry height="30" width="236.25" x="180" y="170" as="geometry" />
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-107" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" value="Acc&lt;div&gt;&lt;font style=&quot;font-size: 10px;&quot;&gt;(=w&lt;sub style=&quot;&quot;&gt;1&lt;/sub&gt;*x&lt;sub style=&quot;&quot;&gt;1&lt;/sub&gt;)&lt;/font&gt;&lt;/div&gt;" vertex="1">
<mxGeometry height="30" width="50" x="404.5" y="441" as="geometry" />
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-108" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" value="d&lt;sub&gt;2&lt;/sub&gt;" vertex="1">
<mxGeometry height="30" width="90" x="291" y="441" as="geometry" />
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-109" parent="1" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" value="-" vertex="1">
<mxGeometry height="10" width="10" x="388" y="451" as="geometry" />
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-110" parent="1" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" value="=" vertex="1">
<mxGeometry height="10" width="10" x="460" y="451" as="geometry" />
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-111" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" value="o&lt;sub&gt;2&lt;/sub&gt;" vertex="1">
<mxGeometry height="30" width="80" x="480" y="441" as="geometry" />
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-112" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" value="Correction" vertex="1">
<mxGeometry height="30" width="80" x="560" y="390" as="geometry" />
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-113" parent="1" style="text;whiteSpace=wrap;html=1;" value="&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));&quot;&gt;add&lt;/span&gt;&lt;/div&gt;" vertex="1">
<mxGeometry height="27" width="30" x="560" y="249" as="geometry" />
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-114" parent="1" style="text;whiteSpace=wrap;html=1;" value="&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));&quot;&gt;add&lt;/span&gt;&lt;/div&gt;" vertex="1">
<mxGeometry height="27" width="30" x="560" y="279" as="geometry" />
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-115" parent="1" style="text;whiteSpace=wrap;html=1;" value="&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));&quot;&gt;add&lt;/span&gt;&lt;/div&gt;" vertex="1">
<mxGeometry height="27" width="30" x="560" y="308" as="geometry" />
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-116" parent="1" style="text;whiteSpace=wrap;html=1;" value="&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));&quot;&gt;add&lt;/span&gt;&lt;/div&gt;" vertex="1">
<mxGeometry height="27" width="30" x="560" y="338" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>
+253
View File
@@ -0,0 +1,253 @@
<mxfile host="app.diagrams.net">
<diagram name="Page-1" id="-Pig8kzuJ9adoD4fOZ07">
<mxGraphModel dx="808" dy="425" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="ekXOrES1dnCwNR7bxEvI-2" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" value="x&lt;sub&gt;3&lt;/sub&gt;" vertex="1">
<mxGeometry height="30" width="90" x="190" y="395" as="geometry" />
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-3" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" value="d&lt;sub&gt;3&lt;/sub&gt;" vertex="1">
<mxGeometry height="30" width="90" x="190" y="425" as="geometry" />
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-4" edge="1" parent="1" source="ekXOrES1dnCwNR7bxEvI-3" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" target="ekXOrES1dnCwNR7bxEvI-3">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-5" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" value="x&lt;sub&gt;1&lt;/sub&gt;" vertex="1">
<mxGeometry height="30" width="80" x="320" y="395" as="geometry" />
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-6" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" value="x&lt;sub&gt;2&lt;/sub&gt;" vertex="1">
<mxGeometry height="30" width="80" x="320" y="425" as="geometry" />
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-7" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" value="0" vertex="1">
<mxGeometry height="30" width="80" x="320" y="455" as="geometry" />
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-8" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" value="0" vertex="1">
<mxGeometry height="30" width="80" x="320" y="485" as="geometry" />
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-9" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" value="w&lt;sub&gt;1&lt;/sub&gt;" vertex="1">
<mxGeometry height="30" width="80" x="480" y="395" as="geometry" />
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-10" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" value="0" vertex="1">
<mxGeometry height="30" width="80" x="480" y="425" as="geometry" />
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-11" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" value="0" vertex="1">
<mxGeometry height="30" width="80" x="480" y="455" as="geometry" />
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-12" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" value="0" vertex="1">
<mxGeometry height="30" width="80" x="480" y="485" as="geometry" />
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-13" parent="1" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" value="+" vertex="1">
<mxGeometry height="30" width="30" x="425" y="525" as="geometry" />
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-14" parent="1" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" value="x" vertex="1">
<mxGeometry height="25" width="25" x="427" y="397.5" as="geometry" />
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-15" parent="1" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" value="x" vertex="1">
<mxGeometry height="25" width="25" x="427.5" y="427.5" as="geometry" />
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-16" parent="1" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" value="x" vertex="1">
<mxGeometry height="25" width="25" x="427.5" y="457.5" as="geometry" />
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-17" parent="1" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" value="x" vertex="1">
<mxGeometry height="25" width="25" x="428" y="487.5" as="geometry" />
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-18" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" value="Sample Line&lt;br&gt;x&lt;sub&gt;[&lt;i&gt;n&lt;/i&gt;]&lt;/sub&gt;" vertex="1">
<mxGeometry height="30" width="70" x="325" y="355" as="geometry" />
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-19" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" value="Filter Line&lt;br&gt;w&lt;sub&gt;[&lt;i&gt;n&lt;/i&gt;]&lt;/sub&gt;" vertex="1">
<mxGeometry height="40" width="60" x="490" y="350" as="geometry" />
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-20" edge="1" parent="1" source="ekXOrES1dnCwNR7bxEvI-14" style="endArrow=none;html=1;rounded=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" target="ekXOrES1dnCwNR7bxEvI-5" value="">
<mxGeometry height="50" relative="1" width="50" as="geometry">
<mxPoint x="350" y="465" as="sourcePoint" />
<mxPoint x="400" y="415" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-21" edge="1" parent="1" source="ekXOrES1dnCwNR7bxEvI-15" style="endArrow=none;html=1;rounded=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" value="">
<mxGeometry height="50" relative="1" width="50" as="geometry">
<mxPoint x="427.5" y="440.5" as="sourcePoint" />
<mxPoint x="399.5" y="439.5" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-22" edge="1" parent="1" source="ekXOrES1dnCwNR7bxEvI-16" style="endArrow=none;html=1;rounded=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" value="">
<mxGeometry height="50" relative="1" width="50" as="geometry">
<mxPoint x="428.5" y="470.25" as="sourcePoint" />
<mxPoint x="400" y="469.75" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-23" edge="1" parent="1" source="ekXOrES1dnCwNR7bxEvI-17" style="endArrow=none;html=1;rounded=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" value="">
<mxGeometry height="50" relative="1" width="50" as="geometry">
<mxPoint x="428" y="500.25" as="sourcePoint" />
<mxPoint x="399.5" y="499.75" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-24" edge="1" parent="1" source="ekXOrES1dnCwNR7bxEvI-12" style="endArrow=none;html=1;rounded=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" target="ekXOrES1dnCwNR7bxEvI-17" value="">
<mxGeometry height="50" relative="1" width="50" as="geometry">
<mxPoint x="488.5" y="495.25" as="sourcePoint" />
<mxPoint x="460" y="495" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-25" edge="1" parent="1" source="ekXOrES1dnCwNR7bxEvI-11" style="endArrow=none;html=1;rounded=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" target="ekXOrES1dnCwNR7bxEvI-16" value="">
<mxGeometry height="50" relative="1" width="50" as="geometry">
<mxPoint x="487" y="465" as="sourcePoint" />
<mxPoint x="460" y="465" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-26" edge="1" parent="1" source="ekXOrES1dnCwNR7bxEvI-10" style="endArrow=none;html=1;rounded=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" target="ekXOrES1dnCwNR7bxEvI-15" value="">
<mxGeometry height="50" relative="1" width="50" as="geometry">
<mxPoint x="487" y="435" as="sourcePoint" />
<mxPoint x="460" y="435" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-27" edge="1" parent="1" source="ekXOrES1dnCwNR7bxEvI-9" style="endArrow=none;html=1;rounded=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" target="ekXOrES1dnCwNR7bxEvI-14" value="">
<mxGeometry height="50" relative="1" width="50" as="geometry">
<mxPoint x="487" y="405" as="sourcePoint" />
<mxPoint x="460" y="405" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-28" edge="1" parent="1" source="ekXOrES1dnCwNR7bxEvI-13" style="endArrow=none;html=1;rounded=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" target="ekXOrES1dnCwNR7bxEvI-17" value="">
<mxGeometry height="50" relative="1" width="50" as="geometry">
<mxPoint x="420" y="525" as="sourcePoint" />
<mxPoint x="470" y="475" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-29" edge="1" parent="1" source="ekXOrES1dnCwNR7bxEvI-2" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" target="ekXOrES1dnCwNR7bxEvI-5" value="">
<mxGeometry height="50" relative="1" width="50" as="geometry">
<mxPoint x="400" y="435" as="sourcePoint" />
<mxPoint x="450" y="385" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-30" edge="1" parent="1" source="ekXOrES1dnCwNR7bxEvI-3" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" value="">
<mxGeometry height="50" relative="1" width="50" as="geometry">
<Array as="points">
<mxPoint x="235" y="595" />
</Array>
<mxPoint x="240" y="465" as="sourcePoint" />
<mxPoint x="300" y="596" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-31" edge="1" parent="1" source="ekXOrES1dnCwNR7bxEvI-13" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" value="">
<mxGeometry height="50" relative="1" width="50" as="geometry">
<mxPoint x="400" y="535" as="sourcePoint" />
<mxPoint x="440" y="575" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-32" edge="1" parent="1" source="ekXOrES1dnCwNR7bxEvI-53" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" value="">
<mxGeometry height="50" relative="1" width="50" as="geometry">
<mxPoint x="590" y="595" as="sourcePoint" />
<mxPoint x="620" y="596" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-33" edge="1" parent="1" style="endArrow=classic;html=1;rounded=0;exitX=0.882;exitY=0;exitDx=0;exitDy=0;exitPerimeter=0;" value="">
<mxGeometry height="50" relative="1" width="50" as="geometry">
<Array as="points">
<mxPoint x="529" y="545" />
</Array>
<mxPoint x="529.642" y="581" as="sourcePoint" />
<mxPoint x="570" y="545" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-34" parent="1" style="text;whiteSpace=wrap;html=1;" value="&lt;span style=&quot;color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;&quot;&gt;&lt;span style=&quot;color: rgb(32, 33, 34); font-family: sans-serif; font-style: italic; text-align: start;&quot;&gt;&lt;font style=&quot;&quot;&gt;* µ&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/span&gt;" vertex="1">
<mxGeometry height="29" width="28.13" x="528.13" y="525" as="geometry" />
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-35" edge="1" parent="1" style="endArrow=classic;html=1;rounded=0;exitX=0.77;exitY=-0.038;exitDx=0;exitDy=0;exitPerimeter=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" target="ekXOrES1dnCwNR7bxEvI-9" value="">
<mxGeometry height="50" relative="1" width="50" as="geometry">
<Array as="points">
<mxPoint x="610" y="410" />
</Array>
<mxPoint x="610.1000000000001" y="532" as="sourcePoint" />
<mxPoint x="610" y="416.52" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-36" edge="1" parent="1" source="ekXOrES1dnCwNR7bxEvI-15" style="endArrow=none;html=1;rounded=0;entryX=0.518;entryY=1.001;entryDx=0;entryDy=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryPerimeter=0;" target="ekXOrES1dnCwNR7bxEvI-14" value="">
<mxGeometry height="50" relative="1" width="50" as="geometry">
<mxPoint x="440" y="425" as="sourcePoint" />
<mxPoint x="450" y="485" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-37" edge="1" parent="1" style="endArrow=none;html=1;rounded=0;entryX=0.518;entryY=1.001;entryDx=0;entryDy=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryPerimeter=0;" value="">
<mxGeometry height="50" relative="1" width="50" as="geometry">
<mxPoint x="439.98" y="457.5" as="sourcePoint" />
<mxPoint x="439.98" y="452.5" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-38" edge="1" parent="1" style="endArrow=none;html=1;rounded=0;entryX=0.518;entryY=1.001;entryDx=0;entryDy=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryPerimeter=0;" value="">
<mxGeometry height="50" relative="1" width="50" as="geometry">
<mxPoint x="439.98" y="487.5" as="sourcePoint" />
<mxPoint x="439.98" y="482.5" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-39" edge="1" parent="1" style="endArrow=classic;html=1;rounded=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" target="ekXOrES1dnCwNR7bxEvI-10" value="">
<mxGeometry height="50" relative="1" width="50" as="geometry">
<mxPoint x="610" y="440" as="sourcePoint" />
<mxPoint x="460" y="465" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-40" edge="1" parent="1" style="endArrow=classic;html=1;rounded=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" value="">
<mxGeometry height="50" relative="1" width="50" as="geometry">
<mxPoint x="610" y="469.79999999999995" as="sourcePoint" />
<mxPoint x="560" y="469.79999999999995" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-41" edge="1" parent="1" style="endArrow=classic;html=1;rounded=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" value="">
<mxGeometry height="50" relative="1" width="50" as="geometry">
<mxPoint x="610" y="499.79999999999995" as="sourcePoint" />
<mxPoint x="560" y="499.79999999999995" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-42" parent="1" style="text;whiteSpace=wrap;html=1;" value="&lt;span style=&quot;color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;&quot;&gt;* x&lt;sub&gt;1&lt;/sub&gt;&lt;/span&gt;" vertex="1">
<mxGeometry height="27" width="30" x="610" y="398" as="geometry" />
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-43" parent="1" style="text;whiteSpace=wrap;html=1;" value="&lt;span style=&quot;color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; font-size: 12px; display: inline !important;&quot;&gt;* x&lt;sub&gt;2&lt;/sub&gt;&lt;/span&gt;" vertex="1">
<mxGeometry height="27" width="30" x="610" y="427.5" as="geometry" />
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-44" parent="1" style="text;whiteSpace=wrap;html=1;" value="&lt;span style=&quot;color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; font-size: 12px; display: inline !important;&quot;&gt;&amp;nbsp;* x&lt;sub&gt;3&lt;/sub&gt;&lt;/span&gt;" vertex="1">
<mxGeometry height="27" width="30" x="610" y="456.5" as="geometry" />
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-45" parent="1" style="text;whiteSpace=wrap;html=1;" value="&lt;span style=&quot;color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; font-size: 12px; display: inline !important;&quot;&gt;* x&lt;sub&gt;4&lt;/sub&gt;&lt;/span&gt;" vertex="1">
<mxGeometry height="27" width="30" x="610" y="487.5" as="geometry" />
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-46" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" value="Shared Memory" vertex="1">
<mxGeometry height="30" width="60" x="205" y="360" as="geometry" />
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-47" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" value="Shared Memory" vertex="1">
<mxGeometry height="30" width="60" x="620" y="581" as="geometry" />
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-48" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontStyle=1;fontSize=14;" value="2nd Cycle - FIR Caclulation" vertex="1">
<mxGeometry height="30" width="210" x="190" y="310" as="geometry" />
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-49" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" value="Acc&lt;div&gt;&lt;font style=&quot;font-size: 10px;&quot;&gt;(=w&lt;sub style=&quot;&quot;&gt;1&lt;/sub&gt;*x&lt;sub style=&quot;&quot;&gt;1&lt;/sub&gt;)&lt;/font&gt;&lt;/div&gt;" vertex="1">
<mxGeometry height="30" width="50" x="414.5" y="581" as="geometry" />
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-50" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" value="d&lt;sub&gt;2&lt;/sub&gt;" vertex="1">
<mxGeometry height="30" width="90" x="301" y="581" as="geometry" />
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-51" parent="1" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" value="-" vertex="1">
<mxGeometry height="10" width="10" x="398" y="591" as="geometry" />
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-52" parent="1" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" value="=" vertex="1">
<mxGeometry height="10" width="10" x="470" y="591" as="geometry" />
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-53" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" value="o&lt;sub&gt;2&lt;/sub&gt;" vertex="1">
<mxGeometry height="30" width="80" x="490" y="581" as="geometry" />
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-54" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" value="Correction" vertex="1">
<mxGeometry height="30" width="80" x="570" y="530" as="geometry" />
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-55" parent="1" style="text;whiteSpace=wrap;html=1;" value="&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));&quot;&gt;add&lt;/span&gt;&lt;/div&gt;" vertex="1">
<mxGeometry height="27" width="30" x="570" y="390" as="geometry" />
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-56" parent="1" style="text;whiteSpace=wrap;html=1;" value="&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));&quot;&gt;add&lt;/span&gt;&lt;/div&gt;" vertex="1">
<mxGeometry height="27" width="30" x="570" y="419" as="geometry" />
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-57" parent="1" style="text;whiteSpace=wrap;html=1;" value="&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));&quot;&gt;add&lt;/span&gt;&lt;/div&gt;" vertex="1">
<mxGeometry height="27" width="30" x="570" y="448" as="geometry" />
</mxCell>
<mxCell id="ekXOrES1dnCwNR7bxEvI-58" parent="1" style="text;whiteSpace=wrap;html=1;" value="&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));&quot;&gt;add&lt;/span&gt;&lt;/div&gt;" vertex="1">
<mxGeometry height="27" width="30" x="570" y="479" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>
+7 -7
View File
@@ -1,6 +1,6 @@
<mxfile host="app.diagrams.net" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" version="29.3.4"> <mxfile host="app.diagrams.net" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36">
<diagram name="Seite-1" id="BWOSVWQKrhK0Pcg9Olm2"> <diagram name="Seite-1" id="BWOSVWQKrhK0Pcg9Olm2">
<mxGraphModel dx="679" dy="354" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0"> <mxGraphModel dx="1414" dy="743" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root> <root>
<mxCell id="0" /> <mxCell id="0" />
<mxCell id="1" parent="0" /> <mxCell id="1" parent="0" />
@@ -25,7 +25,7 @@
<mxPoint x="440" y="360" as="targetPoint" /> <mxPoint x="440" y="360" as="targetPoint" />
</mxGeometry> </mxGeometry>
</mxCell> </mxCell>
<mxCell id="OiLAJHeFUBjgwUQ8hIGB-17" connectable="0" parent="OiLAJHeFUBjgwUQ8hIGB-5" style="edgeLabel;html=1;align=center;verticalAlign=bottom;resizable=0;points=[];labelPosition=center;verticalLabelPosition=top;fontSize=15;" value="&lt;font style=&quot;&quot;&gt;&lt;span style=&quot;font-size: 20px;&quot;&gt;x&lt;sub&gt;[n-1]*&lt;/sub&gt;b&lt;/span&gt;&lt;span style=&quot;vertical-align: sub; font-size: 16.6667px;&quot;&gt;1&lt;/span&gt;&lt;/font&gt;" vertex="1"> <mxCell id="OiLAJHeFUBjgwUQ8hIGB-17" connectable="0" parent="OiLAJHeFUBjgwUQ8hIGB-5" style="edgeLabel;html=1;align=center;verticalAlign=bottom;resizable=0;points=[];labelPosition=center;verticalLabelPosition=top;fontSize=15;" value="&lt;font style=&quot;&quot;&gt;&lt;span style=&quot;font-size: 20px;&quot;&gt;x&lt;sub&gt;[&lt;i&gt;n-1&lt;/i&gt;]*&lt;/sub&gt;b&lt;/span&gt;&lt;span style=&quot;vertical-align: sub; font-size: 16.6667px;&quot;&gt;1&lt;/span&gt;&lt;/font&gt;" vertex="1">
<mxGeometry relative="1" x="0.4421" y="-3" as="geometry"> <mxGeometry relative="1" x="0.4421" y="-3" as="geometry">
<mxPoint x="175" y="-3" as="offset" /> <mxPoint x="175" y="-3" as="offset" />
</mxGeometry> </mxGeometry>
@@ -45,7 +45,7 @@
<mxPoint x="400" y="280" as="targetPoint" /> <mxPoint x="400" y="280" as="targetPoint" />
</mxGeometry> </mxGeometry>
</mxCell> </mxCell>
<mxCell id="OiLAJHeFUBjgwUQ8hIGB-15" connectable="0" parent="OiLAJHeFUBjgwUQ8hIGB-10" style="edgeLabel;html=1;align=center;verticalAlign=bottom;resizable=0;points=[];labelPosition=center;verticalLabelPosition=top;" value="&lt;div&gt;&lt;font style=&quot;&quot;&gt;&lt;span style=&quot;font-size: 20px;&quot;&gt;x&lt;sub&gt;[n]*&lt;/sub&gt;b&lt;/span&gt;&lt;span style=&quot;font-size: 16.6667px;&quot;&gt;&lt;sub&gt;0&lt;/sub&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;" vertex="1"> <mxCell id="OiLAJHeFUBjgwUQ8hIGB-15" connectable="0" parent="OiLAJHeFUBjgwUQ8hIGB-10" style="edgeLabel;html=1;align=center;verticalAlign=bottom;resizable=0;points=[];labelPosition=center;verticalLabelPosition=top;" value="&lt;div&gt;&lt;font style=&quot;&quot;&gt;&lt;span style=&quot;font-size: 20px;&quot;&gt;x&lt;sub&gt;[&lt;i&gt;n&lt;/i&gt;]*&lt;/sub&gt;b&lt;sub&gt;0&lt;/sub&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;" vertex="1">
<mxGeometry relative="1" x="0.2105" y="4" as="geometry"> <mxGeometry relative="1" x="0.2105" y="4" as="geometry">
<mxPoint x="184" y="4" as="offset" /> <mxPoint x="184" y="4" as="offset" />
</mxGeometry> </mxGeometry>
@@ -68,10 +68,10 @@
<mxCell id="OiLAJHeFUBjgwUQ8hIGB-14" parent="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" value="&lt;font style=&quot;font-size: 20px;&quot;&gt;Z&lt;sup&gt;-1&lt;/sup&gt;&lt;/font&gt;" vertex="1"> <mxCell id="OiLAJHeFUBjgwUQ8hIGB-14" parent="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" value="&lt;font style=&quot;font-size: 20px;&quot;&gt;Z&lt;sup&gt;-1&lt;/sup&gt;&lt;/font&gt;" vertex="1">
<mxGeometry height="40" width="50" x="235" y="340" as="geometry" /> <mxGeometry height="40" width="50" x="235" y="340" as="geometry" />
</mxCell> </mxCell>
<mxCell id="QOcnq7HjOjD87WvfSlmi-2" parent="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" value="&lt;span style=&quot;font-size: 20px;&quot;&gt;x&lt;sub&gt;[n]&lt;/sub&gt;&lt;/span&gt;" vertex="1"> <mxCell id="QOcnq7HjOjD87WvfSlmi-2" parent="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" value="&lt;span style=&quot;font-size: 20px;&quot;&gt;x&lt;sub&gt;[&lt;i&gt;n&lt;/i&gt;]&lt;/sub&gt;&lt;/span&gt;" vertex="1">
<mxGeometry height="40" width="50" x="65" y="260" as="geometry" /> <mxGeometry height="40" width="50" x="65" y="260" as="geometry" />
</mxCell> </mxCell>
<mxCell id="QOcnq7HjOjD87WvfSlmi-3" parent="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" value="&lt;span style=&quot;font-size: 20px;&quot;&gt;y&lt;sub&gt;[n]&lt;/sub&gt;&lt;/span&gt;" vertex="1"> <mxCell id="QOcnq7HjOjD87WvfSlmi-3" parent="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" value="&lt;span style=&quot;font-size: 20px;&quot;&gt;y&lt;sub&gt;[&lt;i&gt;n&lt;/i&gt;]&lt;/sub&gt;&lt;/span&gt;" vertex="1">
<mxGeometry height="40" width="50" x="725" y="260" as="geometry" /> <mxGeometry height="40" width="50" x="725" y="260" as="geometry" />
</mxCell> </mxCell>
<mxCell id="QOcnq7HjOjD87WvfSlmi-5" parent="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" value="&lt;font style=&quot;font-size: 20px;&quot;&gt;b&lt;/font&gt;&lt;font style=&quot;font-size: 16.6667px;&quot;&gt;&lt;sub&gt;0&lt;/sub&gt;&lt;/font&gt;" vertex="1"> <mxCell id="QOcnq7HjOjD87WvfSlmi-5" parent="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" value="&lt;font style=&quot;font-size: 20px;&quot;&gt;b&lt;/font&gt;&lt;font style=&quot;font-size: 16.6667px;&quot;&gt;&lt;sub&gt;0&lt;/sub&gt;&lt;/font&gt;" vertex="1">
@@ -95,7 +95,7 @@
<mxPoint x="440" y="520" as="targetPoint" /> <mxPoint x="440" y="520" as="targetPoint" />
</mxGeometry> </mxGeometry>
</mxCell> </mxCell>
<mxCell id="2-d-TmP4VX6OiB4247eF-4" connectable="0" parent="2-d-TmP4VX6OiB4247eF-3" style="edgeLabel;html=1;align=center;verticalAlign=bottom;resizable=0;points=[];labelPosition=center;verticalLabelPosition=top;fontSize=15;" value="&lt;font style=&quot;&quot;&gt;&lt;span style=&quot;font-size: 20px;&quot;&gt;x&lt;sub&gt;[n-2]*&lt;/sub&gt;b&lt;/span&gt;&lt;span style=&quot;vertical-align: sub; font-size: 16.6667px;&quot;&gt;2&lt;/span&gt;&lt;/font&gt;" vertex="1"> <mxCell id="2-d-TmP4VX6OiB4247eF-4" connectable="0" parent="2-d-TmP4VX6OiB4247eF-3" style="edgeLabel;html=1;align=center;verticalAlign=bottom;resizable=0;points=[];labelPosition=center;verticalLabelPosition=top;fontSize=15;" value="&lt;font style=&quot;&quot;&gt;&lt;span style=&quot;font-size: 20px;&quot;&gt;x&lt;sub&gt;[&lt;i&gt;n-2&lt;/i&gt;]*&lt;/sub&gt;b&lt;/span&gt;&lt;span style=&quot;vertical-align: sub; font-size: 16.6667px;&quot;&gt;2&lt;/span&gt;&lt;/font&gt;" vertex="1">
<mxGeometry relative="1" x="0.4421" y="-3" as="geometry"> <mxGeometry relative="1" x="0.4421" y="-3" as="geometry">
<mxPoint x="175" y="-3" as="offset" /> <mxPoint x="175" y="-3" as="offset" />
</mxGeometry> </mxGeometry>
+12 -12
View File
@@ -1,6 +1,6 @@
<mxfile host="app.diagrams.net" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" version="29.3.4"> <mxfile host="app.diagrams.net" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36">
<diagram name="Seite-1" id="BWOSVWQKrhK0Pcg9Olm2"> <diagram name="Seite-1" id="BWOSVWQKrhK0Pcg9Olm2">
<mxGraphModel dx="983" dy="512" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0"> <mxGraphModel dx="1414" dy="743" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root> <root>
<mxCell id="0" /> <mxCell id="0" />
<mxCell id="1" parent="0" /> <mxCell id="1" parent="0" />
@@ -52,7 +52,7 @@
<mxCell id="OiLAJHeFUBjgwUQ8hIGB-13" parent="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" value="&lt;font style=&quot;font-size: 20px;&quot;&gt;Σ&lt;/font&gt;" vertex="1"> <mxCell id="OiLAJHeFUBjgwUQ8hIGB-13" parent="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" value="&lt;font style=&quot;font-size: 20px;&quot;&gt;Σ&lt;/font&gt;" vertex="1">
<mxGeometry height="40" width="40" x="360" y="260" as="geometry" /> <mxGeometry height="40" width="40" x="360" y="260" as="geometry" />
</mxCell> </mxCell>
<mxCell id="dvOqxy1bSSOmIYa8ABIz-1" parent="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" value="&lt;span style=&quot;font-size: 20px;&quot;&gt;x&lt;sub&gt;[n]&lt;/sub&gt;&lt;/span&gt;" vertex="1"> <mxCell id="dvOqxy1bSSOmIYa8ABIz-1" parent="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" value="&lt;span style=&quot;font-size: 20px;&quot;&gt;x&lt;sub&gt;[&lt;i&gt;n&lt;/i&gt;]&lt;/sub&gt;&lt;/span&gt;" vertex="1">
<mxGeometry height="40" width="50" x="25" y="260" as="geometry" /> <mxGeometry height="40" width="50" x="25" y="260" as="geometry" />
</mxCell> </mxCell>
<mxCell id="dvOqxy1bSSOmIYa8ABIz-3" parent="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" value="&lt;font style=&quot;font-size: 20px;&quot;&gt;b&lt;/font&gt;&lt;font style=&quot;font-size: 16.6667px;&quot;&gt;&lt;sub&gt;0&lt;/sub&gt;&lt;/font&gt;" vertex="1"> <mxCell id="dvOqxy1bSSOmIYa8ABIz-3" parent="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" value="&lt;font style=&quot;font-size: 20px;&quot;&gt;b&lt;/font&gt;&lt;font style=&quot;font-size: 16.6667px;&quot;&gt;&lt;sub&gt;0&lt;/sub&gt;&lt;/font&gt;" vertex="1">
@@ -67,16 +67,16 @@
<mxPoint x="155" y="230" as="targetPoint" /> <mxPoint x="155" y="230" as="targetPoint" />
</mxGeometry> </mxGeometry>
</mxCell> </mxCell>
<mxCell id="dvOqxy1bSSOmIYa8ABIz-7" parent="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" value="&lt;span style=&quot;font-size: 20px;&quot;&gt;x&lt;sub&gt;[n]&lt;/sub&gt;*b&lt;/span&gt;&lt;span style=&quot;font-size: 16.6667px;&quot;&gt;&lt;sub&gt;0&lt;/sub&gt;&lt;/span&gt;" vertex="1"> <mxCell id="dvOqxy1bSSOmIYa8ABIz-7" parent="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" value="&lt;span style=&quot;font-size: 20px;&quot;&gt;x&lt;sub&gt;[&lt;i&gt;n&lt;/i&gt;]&lt;/sub&gt;*b&lt;sub&gt;0&lt;/sub&gt;&lt;/span&gt;" vertex="1">
<mxGeometry height="40" width="80" x="260" y="240" as="geometry" /> <mxGeometry height="40" width="80" x="260" y="240" as="geometry" />
</mxCell> </mxCell>
<mxCell id="dvOqxy1bSSOmIYa8ABIz-9" parent="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" value="&lt;span style=&quot;font-size: 20px;&quot;&gt;y&lt;sub&gt;[n-1]&lt;/sub&gt;*a&lt;/span&gt;&lt;span style=&quot;font-size: 16.6667px;&quot;&gt;&lt;sub&gt;0&lt;/sub&gt;&lt;/span&gt;" vertex="1"> <mxCell id="dvOqxy1bSSOmIYa8ABIz-9" parent="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" value="&lt;span style=&quot;font-size: 20px;&quot;&gt;y&lt;sub&gt;[&lt;i&gt;n-1&lt;/i&gt;]&lt;/sub&gt;*a&lt;sub&gt;0&lt;/sub&gt;&lt;/span&gt;" vertex="1">
<mxGeometry height="40" width="90" x="415" y="390" as="geometry" /> <mxGeometry height="40" width="100" x="410" y="390" as="geometry" />
</mxCell> </mxCell>
<mxCell id="dvOqxy1bSSOmIYa8ABIz-10" parent="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" value="&lt;span style=&quot;font-size: 20px;&quot;&gt;y&lt;sub&gt;[n]&lt;/sub&gt;&lt;/span&gt;" vertex="1"> <mxCell id="dvOqxy1bSSOmIYa8ABIz-10" parent="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" value="&lt;span style=&quot;font-size: 20px;&quot;&gt;y&lt;sub&gt;[&lt;i&gt;n&lt;/i&gt;]&lt;/sub&gt;&lt;/span&gt;" vertex="1">
<mxGeometry height="40" width="50" x="705" y="260" as="geometry" /> <mxGeometry height="40" width="50" x="705" y="260" as="geometry" />
</mxCell> </mxCell>
<mxCell id="Lg59FlyzQoTfed3G6JgI-1" parent="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" value="&lt;span style=&quot;font-size: 20px;&quot;&gt;y&lt;sub&gt;[n]&lt;/sub&gt;&lt;/span&gt;" vertex="1"> <mxCell id="Lg59FlyzQoTfed3G6JgI-1" parent="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" value="&lt;span style=&quot;font-size: 20px;&quot;&gt;y&lt;sub&gt;[&lt;i&gt;n&lt;/i&gt;]&lt;/sub&gt;&lt;/span&gt;" vertex="1">
<mxGeometry height="40" width="50" x="475" y="240" as="geometry" /> <mxGeometry height="40" width="50" x="475" y="240" as="geometry" />
</mxCell> </mxCell>
<mxCell id="iQ2xeGu4HnHkSbtBqBDD-1" parent="1" style="triangle;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;strokeWidth=2;direction=west;" value="" vertex="1"> <mxCell id="iQ2xeGu4HnHkSbtBqBDD-1" parent="1" style="triangle;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;strokeWidth=2;direction=west;" value="" vertex="1">
@@ -115,8 +115,8 @@
<mxCell id="iQ2xeGu4HnHkSbtBqBDD-7" parent="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" value="&lt;font style=&quot;&quot;&gt;&lt;span style=&quot;font-size: 20px;&quot;&gt;a&lt;/span&gt;&lt;span style=&quot;font-size: 16.6667px;&quot;&gt;&lt;sub&gt;1&lt;/sub&gt;&lt;/span&gt;&lt;/font&gt;" vertex="1"> <mxCell id="iQ2xeGu4HnHkSbtBqBDD-7" parent="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" value="&lt;font style=&quot;&quot;&gt;&lt;span style=&quot;font-size: 20px;&quot;&gt;a&lt;/span&gt;&lt;span style=&quot;font-size: 16.6667px;&quot;&gt;&lt;sub&gt;1&lt;/sub&gt;&lt;/span&gt;&lt;/font&gt;" vertex="1">
<mxGeometry height="40" width="40" x="500" y="580" as="geometry" /> <mxGeometry height="40" width="40" x="500" y="580" as="geometry" />
</mxCell> </mxCell>
<mxCell id="iQ2xeGu4HnHkSbtBqBDD-8" parent="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" value="&lt;span style=&quot;font-size: 20px;&quot;&gt;y&lt;sub&gt;[n-2]&lt;/sub&gt;*a&lt;/span&gt;&lt;span style=&quot;font-size: 16.6667px;&quot;&gt;&lt;sub&gt;1&lt;/sub&gt;&lt;/span&gt;" vertex="1"> <mxCell id="iQ2xeGu4HnHkSbtBqBDD-8" parent="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" value="&lt;span style=&quot;font-size: 20px;&quot;&gt;y&lt;sub&gt;[&lt;i&gt;n-2&lt;/i&gt;]&lt;/sub&gt;*a&lt;sub&gt;1&lt;/sub&gt;&lt;/span&gt;" vertex="1">
<mxGeometry height="40" width="90" x="385" y="560" as="geometry" /> <mxGeometry height="40" width="100" x="380" y="560" as="geometry" />
</mxCell> </mxCell>
<mxCell id="iQ2xeGu4HnHkSbtBqBDD-9" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;strokeWidth=2;" value="" vertex="1"> <mxCell id="iQ2xeGu4HnHkSbtBqBDD-9" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;strokeWidth=2;" value="" vertex="1">
<mxGeometry height="60" width="120" x="70" y="330" as="geometry" /> <mxGeometry height="60" width="120" x="70" y="330" as="geometry" />
@@ -151,8 +151,8 @@
<mxPoint x="290" y="510" as="targetPoint" /> <mxPoint x="290" y="510" as="targetPoint" />
</mxGeometry> </mxGeometry>
</mxCell> </mxCell>
<mxCell id="iQ2xeGu4HnHkSbtBqBDD-16" parent="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" value="&lt;span style=&quot;font-size: 20px;&quot;&gt;x&lt;sub&gt;[n-1]&lt;/sub&gt;*b&lt;/span&gt;&lt;span style=&quot;font-size: 16.6667px;&quot;&gt;&lt;sub&gt;1&lt;/sub&gt;&lt;/span&gt;" vertex="1"> <mxCell id="iQ2xeGu4HnHkSbtBqBDD-16" parent="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" value="&lt;span style=&quot;font-size: 20px;&quot;&gt;x&lt;sub&gt;[&lt;i&gt;n-1&lt;/i&gt;]&lt;/sub&gt;*b&lt;sub&gt;1&lt;/sub&gt;&lt;/span&gt;" vertex="1">
<mxGeometry height="40" width="90" x="255" y="390" as="geometry" /> <mxGeometry height="40" width="100" x="250" y="390" as="geometry" />
</mxCell> </mxCell>
<mxCell id="aULBqXh62EUOtCBBRPnM-2" edge="1" parent="1" source="OiLAJHeFUBjgwUQ8hIGB-2" style="endArrow=classic;html=1;rounded=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;strokeWidth=2;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" target="aULBqXh62EUOtCBBRPnM-3" value=""> <mxCell id="aULBqXh62EUOtCBBRPnM-2" edge="1" parent="1" source="OiLAJHeFUBjgwUQ8hIGB-2" style="endArrow=classic;html=1;rounded=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;strokeWidth=2;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" target="aULBqXh62EUOtCBBRPnM-3" value="">
<mxGeometry height="50" relative="1" width="50" as="geometry"> <mxGeometry height="50" relative="1" width="50" as="geometry">
+6 -6
View File
@@ -1,6 +1,6 @@
<mxfile host="app.diagrams.net" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" version="29.3.4"> <mxfile host="app.diagrams.net" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36">
<diagram name="Seite-1" id="BWOSVWQKrhK0Pcg9Olm2"> <diagram name="Seite-1" id="BWOSVWQKrhK0Pcg9Olm2">
<mxGraphModel dx="1426" dy="743" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0"> <mxGraphModel dx="1414" dy="743" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root> <root>
<mxCell id="0" /> <mxCell id="0" />
<mxCell id="1" parent="0" /> <mxCell id="1" parent="0" />
@@ -43,19 +43,19 @@
<mxCell id="uwalZ4GZDBHuo1GNIbxM-2" parent="1" style="text;whiteSpace=wrap;html=1;align=center;" value="&lt;div&gt;&lt;span style=&quot;font-size: 20px;&quot;&gt;Recorded desired&lt;/span&gt;&lt;/div&gt;&lt;span style=&quot;font-size: 20px;&quot;&gt;signal&lt;/span&gt;&lt;div&gt;&lt;span style=&quot;font-size: 20px;&quot;&gt;+&lt;br&gt;Recorded corruption&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); font-size: 20px;&quot;&gt;noise&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); font-size: 20px;&quot;&gt;signal&lt;/span&gt;&lt;/div&gt;" vertex="1"> <mxCell id="uwalZ4GZDBHuo1GNIbxM-2" parent="1" style="text;whiteSpace=wrap;html=1;align=center;" value="&lt;div&gt;&lt;span style=&quot;font-size: 20px;&quot;&gt;Recorded desired&lt;/span&gt;&lt;/div&gt;&lt;span style=&quot;font-size: 20px;&quot;&gt;signal&lt;/span&gt;&lt;div&gt;&lt;span style=&quot;font-size: 20px;&quot;&gt;+&lt;br&gt;Recorded corruption&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); font-size: 20px;&quot;&gt;noise&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); font-size: 20px;&quot;&gt;signal&lt;/span&gt;&lt;/div&gt;" vertex="1">
<mxGeometry height="132.5" width="210" x="40" y="203.75" as="geometry" /> <mxGeometry height="132.5" width="210" x="40" y="203.75" as="geometry" />
</mxCell> </mxCell>
<mxCell id="ngw2JN3qWJ9t0b-mEEB_-1" parent="1" style="text;whiteSpace=wrap;html=1;" value="&lt;span style=&quot;font-size: 20px;&quot;&gt;d&lt;sub&gt;[n]&lt;/sub&gt; = s&lt;sub&gt;[n]&lt;/sub&gt;+n&lt;sub&gt;[n]&lt;/sub&gt;&lt;/span&gt;" vertex="1"> <mxCell id="ngw2JN3qWJ9t0b-mEEB_-1" parent="1" style="text;whiteSpace=wrap;html=1;" value="&lt;span style=&quot;font-size: 20px;&quot;&gt;d&lt;sub&gt;[&lt;i&gt;n&lt;/i&gt;]&lt;/sub&gt; = s&lt;sub&gt;[&lt;i&gt;n&lt;/i&gt;]&lt;/sub&gt;+n&lt;sub&gt;[&lt;i&gt;n&lt;/i&gt;]&lt;/sub&gt;&lt;/span&gt;" vertex="1">
<mxGeometry height="50" width="180" x="270" y="227.5" as="geometry" /> <mxGeometry height="50" width="180" x="270" y="227.5" as="geometry" />
</mxCell> </mxCell>
<mxCell id="ngw2JN3qWJ9t0b-mEEB_-3" parent="1" style="text;whiteSpace=wrap;html=1;align=center;" value="&lt;span style=&quot;font-size: 20px;&quot;&gt;Recorded reference&amp;nbsp;&lt;/span&gt;&lt;div&gt;&lt;span style=&quot;font-size: 20px;&quot;&gt;noise signal&lt;/span&gt;&lt;/div&gt;" vertex="1"> <mxCell id="ngw2JN3qWJ9t0b-mEEB_-3" parent="1" style="text;whiteSpace=wrap;html=1;align=center;" value="&lt;span style=&quot;font-size: 20px;&quot;&gt;Recorded reference&amp;nbsp;&lt;/span&gt;&lt;div&gt;&lt;span style=&quot;font-size: 20px;&quot;&gt;noise signal&lt;/span&gt;&lt;/div&gt;" vertex="1">
<mxGeometry height="50" width="195" x="50" y="430" as="geometry" /> <mxGeometry height="50" width="195" x="50" y="430" as="geometry" />
</mxCell> </mxCell>
<mxCell id="ngw2JN3qWJ9t0b-mEEB_-4" parent="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" value="&lt;span style=&quot;font-size: 20px;&quot;&gt;x&lt;sub&gt;[n]&lt;/sub&gt;&lt;/span&gt;" vertex="1"> <mxCell id="ngw2JN3qWJ9t0b-mEEB_-4" parent="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" value="&lt;span style=&quot;font-size: 20px;&quot;&gt;x&lt;sub&gt;[&lt;i&gt;n&lt;/i&gt;]&lt;/sub&gt;&lt;/span&gt;" vertex="1">
<mxGeometry height="40" width="50" x="305" y="420" as="geometry" /> <mxGeometry height="40" width="50" x="305" y="420" as="geometry" />
</mxCell> </mxCell>
<mxCell id="ngw2JN3qWJ9t0b-mEEB_-5" parent="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" value="&lt;span style=&quot;font-size: 20px;&quot;&gt;y&lt;/span&gt;&lt;span style=&quot;color: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); background-color: transparent; font-size: 20px;&quot;&gt;&lt;sub&gt;[n]&lt;/sub&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 20px; background-color: transparent; color: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));&quot;&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 20px;&quot;&gt;w*x&lt;/span&gt;&lt;span style=&quot;color: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); background-color: transparent; font-size: 20px;&quot;&gt;&lt;sub&gt;[n]&lt;/sub&gt;&lt;/span&gt;" vertex="1"> <mxCell id="ngw2JN3qWJ9t0b-mEEB_-5" parent="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" value="&lt;span style=&quot;font-size: 20px;&quot;&gt;y&lt;/span&gt;&lt;span style=&quot;color: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); background-color: transparent; font-size: 20px;&quot;&gt;&lt;sub&gt;[&lt;i&gt;n&lt;/i&gt;]&lt;/sub&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 20px; background-color: transparent; color: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));&quot;&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 20px;&quot;&gt;w*x&lt;/span&gt;&lt;span style=&quot;color: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); background-color: transparent; font-size: 20px;&quot;&gt;&lt;sub&gt;[&lt;i&gt;n&lt;/i&gt;]&lt;/sub&gt;&lt;/span&gt;" vertex="1">
<mxGeometry height="40" width="130" x="475" y="340" as="geometry" /> <mxGeometry height="40" width="130" x="475" y="340" as="geometry" />
</mxCell> </mxCell>
<mxCell id="ngw2JN3qWJ9t0b-mEEB_-6" parent="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" value="&lt;span style=&quot;font-size: 20px;&quot;&gt;e&lt;sub&gt;[n]&lt;/sub&gt;&amp;nbsp;&lt;/span&gt;" vertex="1"> <mxCell id="ngw2JN3qWJ9t0b-mEEB_-6" parent="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" value="&lt;span style=&quot;font-size: 20px;&quot;&gt;e&lt;sub&gt;[&lt;i&gt;n&lt;/i&gt;]&lt;/sub&gt;&amp;nbsp;&lt;/span&gt;" vertex="1">
<mxGeometry height="40" width="60" x="560" y="227.5" as="geometry" /> <mxGeometry height="40" width="60" x="560" y="227.5" as="geometry" />
</mxCell> </mxCell>
<mxCell id="qqt2P6Bfjwj8cCOmPv3F-1" parent="1" style="text;whiteSpace=wrap;html=1;" value="&lt;span style=&quot;font-size: 20px;&quot;&gt;Output&lt;/span&gt;" vertex="1"> <mxCell id="qqt2P6Bfjwj8cCOmPv3F-1" parent="1" style="text;whiteSpace=wrap;html=1;" value="&lt;span style=&quot;font-size: 20px;&quot;&gt;Output&lt;/span&gt;" vertex="1">
+14 -14
View File
@@ -1,6 +1,6 @@
<mxfile host="app.diagrams.net" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" version="29.3.8"> <mxfile host="app.diagrams.net" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36">
<diagram name="Page-1" id="V-e6ogSouhfiz4ZDr4nW"> <diagram name="Page-1" id="V-e6ogSouhfiz4ZDr4nW">
<mxGraphModel dx="815" dy="425" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0"> <mxGraphModel dx="786" dy="413" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
<root> <root>
<mxCell id="0" /> <mxCell id="0" />
<mxCell id="1" parent="0" /> <mxCell id="1" parent="0" />
@@ -454,7 +454,7 @@
<mxCell id="GcUYTYrn2KeO2qM5n07K-262" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontStyle=1;fontSize=14;" value="1st Cycle - FIR Caclulation" vertex="1"> <mxCell id="GcUYTYrn2KeO2qM5n07K-262" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontStyle=1;fontSize=14;" value="1st Cycle - FIR Caclulation" vertex="1">
<mxGeometry height="30" width="210" x="40" y="430" as="geometry" /> <mxGeometry height="30" width="210" x="40" y="430" as="geometry" />
</mxCell> </mxCell>
<mxCell id="GcUYTYrn2KeO2qM5n07K-263" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" value="Acc&amp;nbsp;&lt;div&gt;&lt;span style=&quot;font-size: 7px;&quot;&gt;(=0)&lt;/span&gt;&lt;/div&gt;" vertex="1"> <mxCell id="GcUYTYrn2KeO2qM5n07K-263" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" value="Acc&amp;nbsp;&lt;div&gt;&lt;font style=&quot;font-size: 10px;&quot;&gt;(=0)&lt;/font&gt;&lt;/div&gt;" vertex="1">
<mxGeometry height="30" width="50" x="264.5" y="701" as="geometry" /> <mxGeometry height="30" width="50" x="264.5" y="701" as="geometry" />
</mxCell> </mxCell>
<mxCell id="GcUYTYrn2KeO2qM5n07K-264" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" value="d&lt;sub&gt;1&lt;/sub&gt;" vertex="1"> <mxCell id="GcUYTYrn2KeO2qM5n07K-264" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" value="d&lt;sub&gt;1&lt;/sub&gt;" vertex="1">
@@ -523,10 +523,10 @@
<mxCell id="GcUYTYrn2KeO2qM5n07K-285" parent="1" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" value="x" vertex="1"> <mxCell id="GcUYTYrn2KeO2qM5n07K-285" parent="1" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" value="x" vertex="1">
<mxGeometry height="25" width="25" x="278" y="997.5" as="geometry" /> <mxGeometry height="25" width="25" x="278" y="997.5" as="geometry" />
</mxCell> </mxCell>
<mxCell id="GcUYTYrn2KeO2qM5n07K-286" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" value="Sample Line&lt;br&gt;x&lt;sub&gt;[n]&lt;/sub&gt;" vertex="1"> <mxCell id="GcUYTYrn2KeO2qM5n07K-286" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" value="Sample Line&lt;br&gt;x&lt;sub&gt;[&lt;i&gt;n&lt;/i&gt;]&lt;/sub&gt;" vertex="1">
<mxGeometry height="30" width="70" x="175" y="865" as="geometry" /> <mxGeometry height="30" width="70" x="175" y="865" as="geometry" />
</mxCell> </mxCell>
<mxCell id="GcUYTYrn2KeO2qM5n07K-287" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" value="Filter Line&lt;br&gt;w&lt;sub&gt;[n]&lt;/sub&gt;" vertex="1"> <mxCell id="GcUYTYrn2KeO2qM5n07K-287" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" value="Filter Line&lt;br&gt;w&lt;sub&gt;[&lt;i&gt;n&lt;/i&gt;]&lt;/sub&gt;" vertex="1">
<mxGeometry height="40" width="60" x="340" y="860" as="geometry" /> <mxGeometry height="40" width="60" x="340" y="860" as="geometry" />
</mxCell> </mxCell>
<mxCell id="GcUYTYrn2KeO2qM5n07K-288" edge="1" parent="1" source="GcUYTYrn2KeO2qM5n07K-282" style="endArrow=none;html=1;rounded=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" target="GcUYTYrn2KeO2qM5n07K-273" value=""> <mxCell id="GcUYTYrn2KeO2qM5n07K-288" edge="1" parent="1" source="GcUYTYrn2KeO2qM5n07K-282" style="endArrow=none;html=1;rounded=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" target="GcUYTYrn2KeO2qM5n07K-273" value="">
@@ -688,7 +688,7 @@
<mxCell id="GcUYTYrn2KeO2qM5n07K-316" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontStyle=1;fontSize=14;" value="2nd Cycle - FIR Caclulation" vertex="1"> <mxCell id="GcUYTYrn2KeO2qM5n07K-316" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontStyle=1;fontSize=14;" value="2nd Cycle - FIR Caclulation" vertex="1">
<mxGeometry height="30" width="210" x="40" y="820" as="geometry" /> <mxGeometry height="30" width="210" x="40" y="820" as="geometry" />
</mxCell> </mxCell>
<mxCell id="GcUYTYrn2KeO2qM5n07K-317" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" value="Acc&lt;div&gt;&lt;span style=&quot;font-size: 7px;&quot;&gt;(=w&lt;sub&gt;1&lt;/sub&gt; * x&lt;sub&gt;1&lt;/sub&gt;)&lt;/span&gt;&lt;/div&gt;" vertex="1"> <mxCell id="GcUYTYrn2KeO2qM5n07K-317" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" value="Acc&lt;div&gt;&lt;font style=&quot;font-size: 10px;&quot;&gt;(=w&lt;sub style=&quot;&quot;&gt;1&lt;/sub&gt;*x&lt;sub style=&quot;&quot;&gt;1&lt;/sub&gt;)&lt;/font&gt;&lt;/div&gt;" vertex="1">
<mxGeometry height="30" width="50" x="264.5" y="1091" as="geometry" /> <mxGeometry height="30" width="50" x="264.5" y="1091" as="geometry" />
</mxCell> </mxCell>
<mxCell id="GcUYTYrn2KeO2qM5n07K-318" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" value="d&lt;sub&gt;2&lt;/sub&gt;" vertex="1"> <mxCell id="GcUYTYrn2KeO2qM5n07K-318" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" value="d&lt;sub&gt;2&lt;/sub&gt;" vertex="1">
@@ -730,7 +730,7 @@
<mxCell id="zqf6Z4ZYqrToiwcanCgf-8" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" value="0" vertex="1"> <mxCell id="zqf6Z4ZYqrToiwcanCgf-8" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" value="0" vertex="1">
<mxGeometry height="30" width="80" x="753.75" y="605" as="geometry" /> <mxGeometry height="30" width="80" x="753.75" y="605" as="geometry" />
</mxCell> </mxCell>
<mxCell id="zqf6Z4ZYqrToiwcanCgf-9" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" value="w&lt;sub&gt;1&lt;br&gt;&lt;/sub&gt;&lt;font style=&quot;font-size: 10px;&quot;&gt;(=&amp;nbsp;&lt;span style=&quot;color: rgb(32, 33, 34); font-family: sans-serif; font-style: italic; text-align: start;&quot;&gt;µ*d&lt;sub&gt;1&lt;/sub&gt;*x&lt;sub&gt;1&lt;/sub&gt;)&lt;/span&gt;&lt;/font&gt;" vertex="1"> <mxCell id="zqf6Z4ZYqrToiwcanCgf-9" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" value="w&lt;sub&gt;1&lt;br&gt;&lt;/sub&gt;&lt;font style=&quot;font-size: 10px;&quot;&gt;(=&amp;nbsp;&lt;span style=&quot;color: rgb(32, 33, 34); font-family: sans-serif; font-style: italic; text-align: start;&quot;&gt;µ*&lt;/span&gt;&lt;span style=&quot;color: rgb(32, 33, 34); font-family: sans-serif; text-align: start;&quot;&gt;d&lt;sub style=&quot;&quot;&gt;1&lt;/sub&gt;&lt;i&gt;*&lt;/i&gt;x&lt;sub style=&quot;&quot;&gt;1&lt;/sub&gt;&lt;i&gt;)&lt;/i&gt;&lt;/span&gt;&lt;/font&gt;" vertex="1">
<mxGeometry height="30" width="80" x="913.75" y="515" as="geometry" /> <mxGeometry height="30" width="80" x="913.75" y="515" as="geometry" />
</mxCell> </mxCell>
<mxCell id="zqf6Z4ZYqrToiwcanCgf-10" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" value="0" vertex="1"> <mxCell id="zqf6Z4ZYqrToiwcanCgf-10" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" value="0" vertex="1">
@@ -757,10 +757,10 @@
<mxCell id="zqf6Z4ZYqrToiwcanCgf-17" parent="1" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" value="x" vertex="1"> <mxCell id="zqf6Z4ZYqrToiwcanCgf-17" parent="1" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" value="x" vertex="1">
<mxGeometry height="25" width="25" x="861.75" y="607.5" as="geometry" /> <mxGeometry height="25" width="25" x="861.75" y="607.5" as="geometry" />
</mxCell> </mxCell>
<mxCell id="zqf6Z4ZYqrToiwcanCgf-18" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" value="Sample Line&lt;br&gt;x&lt;sub&gt;[n]&lt;/sub&gt;" vertex="1"> <mxCell id="zqf6Z4ZYqrToiwcanCgf-18" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" value="Sample Line&lt;br&gt;x&lt;sub&gt;[&lt;i&gt;n&lt;/i&gt;]&lt;/sub&gt;" vertex="1">
<mxGeometry height="30" width="76.25" x="757.5" y="475" as="geometry" /> <mxGeometry height="30" width="76.25" x="757.5" y="475" as="geometry" />
</mxCell> </mxCell>
<mxCell id="zqf6Z4ZYqrToiwcanCgf-19" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" value="Filter Line&lt;br&gt;w&lt;sub&gt;[n]&lt;/sub&gt;" vertex="1"> <mxCell id="zqf6Z4ZYqrToiwcanCgf-19" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" value="Filter Line&lt;br&gt;w&lt;sub&gt;[&lt;i&gt;n&lt;/i&gt;]&lt;/sub&gt;" vertex="1">
<mxGeometry height="40" width="60" x="923.75" y="470" as="geometry" /> <mxGeometry height="40" width="60" x="923.75" y="470" as="geometry" />
</mxCell> </mxCell>
<mxCell id="zqf6Z4ZYqrToiwcanCgf-20" edge="1" parent="1" source="zqf6Z4ZYqrToiwcanCgf-14" style="endArrow=none;html=1;rounded=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" target="zqf6Z4ZYqrToiwcanCgf-5" value=""> <mxCell id="zqf6Z4ZYqrToiwcanCgf-20" edge="1" parent="1" source="zqf6Z4ZYqrToiwcanCgf-14" style="endArrow=none;html=1;rounded=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" target="zqf6Z4ZYqrToiwcanCgf-5" value="">
@@ -964,10 +964,10 @@
<mxCell id="zqf6Z4ZYqrToiwcanCgf-117" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" value="0" vertex="1"> <mxCell id="zqf6Z4ZYqrToiwcanCgf-117" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" value="0" vertex="1">
<mxGeometry height="30" width="80" x="753.75" y="995" as="geometry" /> <mxGeometry height="30" width="80" x="753.75" y="995" as="geometry" />
</mxCell> </mxCell>
<mxCell id="zqf6Z4ZYqrToiwcanCgf-118" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" value="w&lt;sub&gt;1&lt;/sub&gt;&lt;br&gt;&lt;font style=&quot;font-size: 10px;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));&quot;&gt;(= w&lt;sub&gt;1&lt;/sub&gt; +&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: rgb(32, 33, 34); font-family: sans-serif; font-style: italic; text-align: start;&quot;&gt;µ*o&lt;sub&gt;2&lt;/sub&gt;*x&lt;sub&gt;2&lt;/sub&gt;)&lt;/span&gt;&lt;/font&gt;" vertex="1"> <mxCell id="zqf6Z4ZYqrToiwcanCgf-118" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" value="w&lt;sub&gt;1&lt;/sub&gt;&lt;br&gt;&lt;font style=&quot;font-size: 10px;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));&quot;&gt;(= w&lt;sub&gt;1&lt;/sub&gt; +&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: rgb(32, 33, 34); font-family: sans-serif; font-style: italic; text-align: start;&quot;&gt;µ*&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: rgb(32, 33, 34); font-family: sans-serif; text-align: start;&quot;&gt;o&lt;sub style=&quot;&quot;&gt;2&lt;/sub&gt;&lt;i&gt;*&lt;/i&gt;x&lt;sub style=&quot;&quot;&gt;2&lt;/sub&gt;&lt;i&gt;)&lt;/i&gt;&lt;/span&gt;&lt;/font&gt;" vertex="1">
<mxGeometry height="30" width="80" x="913.75" y="905" as="geometry" /> <mxGeometry height="30" width="80" x="913.75" y="905" as="geometry" />
</mxCell> </mxCell>
<mxCell id="zqf6Z4ZYqrToiwcanCgf-119" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" value="w&lt;sub&gt;2&lt;/sub&gt;&lt;br&gt;&lt;font style=&quot;font-size: 10px;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));&quot;&gt;(=&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: rgb(32, 33, 34); font-family: sans-serif; font-style: italic; text-align: start;&quot;&gt;µ*o&lt;sub&gt;2&lt;/sub&gt;*x&lt;sub&gt;2&lt;/sub&gt;)&lt;/span&gt;&lt;/font&gt;" vertex="1"> <mxCell id="zqf6Z4ZYqrToiwcanCgf-119" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" value="w&lt;sub&gt;2&lt;/sub&gt;&lt;br&gt;&lt;font style=&quot;font-size: 10px;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));&quot;&gt;(=&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: rgb(32, 33, 34); font-family: sans-serif; font-style: italic; text-align: start;&quot;&gt;µ*&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: rgb(32, 33, 34); font-family: sans-serif; text-align: start;&quot;&gt;o&lt;sub style=&quot;&quot;&gt;2&lt;/sub&gt;&lt;i&gt;*&lt;/i&gt;x&lt;sub style=&quot;&quot;&gt;2&lt;/sub&gt;&lt;i&gt;)&lt;/i&gt;&lt;/span&gt;&lt;/font&gt;" vertex="1">
<mxGeometry height="30" width="80" x="913.75" y="935" as="geometry" /> <mxGeometry height="30" width="80" x="913.75" y="935" as="geometry" />
</mxCell> </mxCell>
<mxCell id="zqf6Z4ZYqrToiwcanCgf-120" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" value="0" vertex="1"> <mxCell id="zqf6Z4ZYqrToiwcanCgf-120" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" value="0" vertex="1">
@@ -991,10 +991,10 @@
<mxCell id="zqf6Z4ZYqrToiwcanCgf-126" parent="1" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" value="x" vertex="1"> <mxCell id="zqf6Z4ZYqrToiwcanCgf-126" parent="1" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" value="x" vertex="1">
<mxGeometry height="25" width="25" x="861.75" y="997.5" as="geometry" /> <mxGeometry height="25" width="25" x="861.75" y="997.5" as="geometry" />
</mxCell> </mxCell>
<mxCell id="zqf6Z4ZYqrToiwcanCgf-127" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" value="Sample Line&lt;br&gt;x&lt;sub&gt;[n]&lt;/sub&gt;" vertex="1"> <mxCell id="zqf6Z4ZYqrToiwcanCgf-127" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" value="Sample Line&lt;br&gt;x&lt;sub&gt;[&lt;i&gt;n&lt;/i&gt;]&lt;/sub&gt;" vertex="1">
<mxGeometry height="30" width="76.25" x="755.5" y="865" as="geometry" /> <mxGeometry height="30" width="76.25" x="755.5" y="865" as="geometry" />
</mxCell> </mxCell>
<mxCell id="zqf6Z4ZYqrToiwcanCgf-128" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" value="Filter Line&lt;br&gt;w&lt;sub&gt;[n]&lt;/sub&gt;" vertex="1"> <mxCell id="zqf6Z4ZYqrToiwcanCgf-128" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" value="Filter Line&lt;br&gt;w&lt;sub&gt;[&lt;i&gt;n&lt;/i&gt;]&lt;/sub&gt;" vertex="1">
<mxGeometry height="40" width="60" x="923.75" y="860" as="geometry" /> <mxGeometry height="40" width="60" x="923.75" y="860" as="geometry" />
</mxCell> </mxCell>
<mxCell id="zqf6Z4ZYqrToiwcanCgf-129" edge="1" parent="1" source="zqf6Z4ZYqrToiwcanCgf-123" style="endArrow=none;html=1;rounded=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" target="zqf6Z4ZYqrToiwcanCgf-114" value=""> <mxCell id="zqf6Z4ZYqrToiwcanCgf-129" edge="1" parent="1" source="zqf6Z4ZYqrToiwcanCgf-123" style="endArrow=none;html=1;rounded=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" target="zqf6Z4ZYqrToiwcanCgf-114" value="">
@@ -1156,7 +1156,7 @@
<mxCell id="zqf6Z4ZYqrToiwcanCgf-157" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontStyle=1;fontSize=14;" value="2nd Cycle - Coefficient adaption" vertex="1"> <mxCell id="zqf6Z4ZYqrToiwcanCgf-157" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontStyle=1;fontSize=14;" value="2nd Cycle - Coefficient adaption" vertex="1">
<mxGeometry height="30" width="236.25" x="623.75" y="820" as="geometry" /> <mxGeometry height="30" width="236.25" x="623.75" y="820" as="geometry" />
</mxCell> </mxCell>
<mxCell id="zqf6Z4ZYqrToiwcanCgf-158" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" value="Acc&lt;div&gt;&lt;span style=&quot;font-size: 7px;&quot;&gt;(=w&lt;sub&gt;1&lt;/sub&gt; * x&lt;sub&gt;1&lt;/sub&gt;)&lt;/span&gt;&lt;/div&gt;" vertex="1"> <mxCell id="zqf6Z4ZYqrToiwcanCgf-158" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" value="Acc&lt;div&gt;&lt;font style=&quot;font-size: 10px;&quot;&gt;(=w&lt;sub style=&quot;&quot;&gt;1&lt;/sub&gt;*x&lt;sub style=&quot;&quot;&gt;1&lt;/sub&gt;)&lt;/font&gt;&lt;/div&gt;" vertex="1">
<mxGeometry height="30" width="50" x="848.25" y="1091" as="geometry" /> <mxGeometry height="30" width="50" x="848.25" y="1091" as="geometry" />
</mxCell> </mxCell>
<mxCell id="zqf6Z4ZYqrToiwcanCgf-159" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" value="d&lt;sub&gt;2&lt;/sub&gt;" vertex="1"> <mxCell id="zqf6Z4ZYqrToiwcanCgf-159" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" value="d&lt;sub&gt;2&lt;/sub&gt;" vertex="1">
+2 -2
View File
@@ -78,8 +78,8 @@
\strng{authornamehash}{26ad37f8f6f878dc28acadb561885bff} \strng{authornamehash}{26ad37f8f6f878dc28acadb561885bff}
\strng{authorfullhash}{26ad37f8f6f878dc28acadb561885bff} \strng{authorfullhash}{26ad37f8f6f878dc28acadb561885bff}
\field{extraname}{1} \field{extraname}{1}
\field{sortinit}{4} \field{sortinit}{5}
\field{sortinithash}{9381316451d1b9788675a07e972a12a7} \field{sortinithash}{20e9b4b0b173788c5dace24730f47d8c}
\field{labelnamesource}{author} \field{labelnamesource}{author}
\field{labeltitlesource}{title} \field{labeltitlesource}{title}
\field{howpublished}{Elsevier Inc.} \field{howpublished}{Elsevier Inc.}