Plots überarbeitet
BIN
Bilder/fig_noise_signals.png
Normal file
|
After Width: | Height: | Size: 1.3 MiB |
|
Before Width: | Height: | Size: 1.3 MiB After Width: | Height: | Size: 1.3 MiB |
|
Before Width: | Height: | Size: 3.2 MiB After Width: | Height: | Size: 2.9 MiB |
|
Before Width: | Height: | Size: 2.8 MiB After Width: | Height: | Size: 2.5 MiB |
|
Before Width: | Height: | Size: 2.5 MiB After Width: | Height: | Size: 2.3 MiB |
|
Before Width: | Height: | Size: 1.3 MiB After Width: | Height: | Size: 1.1 MiB |
|
Before Width: | Height: | Size: 1.3 MiB After Width: | Height: | Size: 1.2 MiB |
|
Before Width: | Height: | Size: 343 KiB After Width: | Height: | Size: 295 KiB |
|
Before Width: | Height: | Size: 1.0 MiB After Width: | Height: | Size: 1000 KiB |
|
Before Width: | Height: | Size: 954 KiB After Width: | Height: | Size: 943 KiB |
|
Before Width: | Height: | Size: 990 KiB After Width: | Height: | Size: 983 KiB |
|
Before Width: | Height: | Size: 600 KiB After Width: | Height: | Size: 570 KiB |
|
Before Width: | Height: | Size: 716 KiB After Width: | Height: | Size: 685 KiB |
|
Before Width: | Height: | Size: 564 KiB After Width: | Height: | Size: 590 KiB |
|
Before Width: | Height: | Size: 964 KiB After Width: | Height: | Size: 819 KiB |
BIN
Bilder/fig_snr_comparison.png
Normal file
|
After Width: | Height: | Size: 748 KiB |
124
chapter_04.aux
@@ -1,28 +1,28 @@
|
||||
\relax
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {4}Hardware implementation and performance quantization of the ANR Algorithm on a low-power system}{40}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {4}Hardware implementation and performance quantization of the ANR Algorithm on a low-power system}{42}{}\protected@file@percent }
|
||||
\acronymused{ANR}
|
||||
\acronymused{CI}
|
||||
\acronymused{ANR}
|
||||
\acronymused{ANR}
|
||||
\acronymused{ANR}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {4.1}Low-power system architecture and integration}{40}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {4.1}Low-power system architecture and integration}{42}{}\protected@file@percent }
|
||||
\AC@undonewlabel{acro:SOC}
|
||||
\newlabel{acro:SOC}{{4.1}{40}{}{subsection.4.1}{}}
|
||||
\newlabel{acro:SOC}{{4.1}{42}{}{}{}}
|
||||
\acronymused{SOC}
|
||||
\AC@undonewlabel{acro:ARM}
|
||||
\newlabel{acro:ARM}{{4.1}{40}{}{subsection.4.1}{}}
|
||||
\newlabel{acro:ARM}{{4.1}{42}{}{}{}}
|
||||
\acronymused{ARM}
|
||||
\acronymused{DSP}
|
||||
\acronymused{ARM}
|
||||
\acronymused{DSP}
|
||||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.1.1}ARM and DSP hardware architecture overview}{40}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.1.1}ARM and DSP hardware architecture overview}{42}{}\protected@file@percent }
|
||||
\acronymused{ARM}
|
||||
\acronymused{ARM}
|
||||
\acronymused{CI}
|
||||
\acronymused{DSP}
|
||||
\acronymused{DSP}
|
||||
\AC@undonewlabel{acro:MAC}
|
||||
\newlabel{acro:MAC}{{4.1.1}{40}{}{subsubsection.4.1.1}{}}
|
||||
\newlabel{acro:MAC}{{4.1.1}{42}{}{}{}}
|
||||
\acronymused{MAC}
|
||||
\acronymused{ARM}
|
||||
\acronymused{ANR}
|
||||
@@ -37,10 +37,10 @@
|
||||
\acronymused{ARM}
|
||||
\acronymused{DSP}
|
||||
\AC@undonewlabel{acro:DMA}
|
||||
\newlabel{acro:DMA}{{4.1.1}{41}{}{subsubsection.4.1.1}{}}
|
||||
\newlabel{acro:DMA}{{4.1.1}{43}{}{}{}}
|
||||
\acronymused{DMA}
|
||||
\AC@undonewlabel{acro:PCM}
|
||||
\newlabel{acro:PCM}{{4.1.1}{41}{}{subsubsection.4.1.1}{}}
|
||||
\newlabel{acro:PCM}{{4.1.1}{43}{}{}{}}
|
||||
\acronymused{PCM}
|
||||
\acronymused{DSP}
|
||||
\acronymused{PCM}
|
||||
@@ -51,13 +51,13 @@
|
||||
\acronymused{DSP}
|
||||
\acronymused{DSP}
|
||||
\AC@undonewlabel{acro:ALU}
|
||||
\newlabel{acro:ALU}{{4.1.1}{41}{}{subsubsection.4.1.1}{}}
|
||||
\newlabel{acro:ALU}{{4.1.1}{43}{}{}{}}
|
||||
\acronymused{ALU}
|
||||
\acronymused{DSP}
|
||||
\acronymused{MAC}
|
||||
\acronymused{ALU}
|
||||
\acronymused{MAC}
|
||||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.1.2}Intercore communication mechanisms}{41}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.1.2}Intercore communication mechanisms}{43}{}\protected@file@percent }
|
||||
\acronymused{CI}
|
||||
\acronymused{ARM}
|
||||
\acronymused{DSP}
|
||||
@@ -65,12 +65,12 @@
|
||||
\acronymused{DSP}
|
||||
\acronymused{DSP}
|
||||
\acronymused{ARM}
|
||||
\@writefile{lof}{\contentsline {figure}{\numberline {32}{\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.}}{42}{}\protected@file@percent }
|
||||
\@writefile{lof}{\contentsline {figure}{\numberline {32}{\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 }
|
||||
\acronymused{CI}
|
||||
\acronymused{ARM}
|
||||
\acronymused{DSP}
|
||||
\acronymused{PCM}
|
||||
\newlabel{fig:fig_dsp_setup.jpg}{{32}{42}{}{figure.32}{}}
|
||||
\newlabel{fig:fig_dsp_setup.jpg}{{32}{44}{}{}{}}
|
||||
\acronymused{ARM}
|
||||
\acronymused{PCM}
|
||||
\acronymused{DMA}
|
||||
@@ -82,12 +82,12 @@
|
||||
\acronymused{DSP}
|
||||
\acronymused{DMA}
|
||||
\acronymused{PCM}
|
||||
\@writefile{lof}{\contentsline {figure}{\numberline {33}{\ignorespaces Simplified flowchart of the sample processing between the \ac {ARM} core and the \ac {DSP} core via interrupts and shared memory.}}{43}{}\protected@file@percent }
|
||||
\@writefile{lof}{\contentsline {figure}{\numberline {33}{\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 }
|
||||
\acronymused{ARM}
|
||||
\acronymused{DSP}
|
||||
\newlabel{fig:fig_dsp_comm.jpg}{{33}{43}{}{figure.33}{}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {4.2}Software architecture and execution flow}{43}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.1}ARM–DSP communication and data exchange details}{43}{}\protected@file@percent }
|
||||
\newlabel{fig:fig_dsp_comm.jpg}{{33}{45}{}{}{}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {4.2}Software architecture and execution flow}{45}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.1}ARM–DSP communication and data exchange details}{45}{}\protected@file@percent }
|
||||
\acronymused{ANR}
|
||||
\acronymused{DSP}
|
||||
\acronymused{DSP}
|
||||
@@ -117,11 +117,11 @@
|
||||
\acronymused{PCM}
|
||||
\acronymused{ARM}
|
||||
\acronymused{DSP}
|
||||
\@writefile{lof}{\contentsline {figure}{\numberline {34}{\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.}}{45}{}\protected@file@percent }
|
||||
\@writefile{lof}{\contentsline {figure}{\numberline {34}{\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 }
|
||||
\acronymused{DMA}
|
||||
\acronymused{DSP}
|
||||
\acronymused{ARM}
|
||||
\newlabel{fig:fig_dsp_dma.jpg}{{34}{45}{}{figure.34}{}}
|
||||
\newlabel{fig:fig_dsp_dma.jpg}{{34}{47}{}{}{}}
|
||||
\acronymused{DMA}
|
||||
\acronymused{DMA}
|
||||
\acronymused{PCM}
|
||||
@@ -131,18 +131,18 @@
|
||||
\acronymused{ARM}
|
||||
\acronymused{ANR}
|
||||
\acronymused{DSP}
|
||||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.2}System control flow and main processing loop}{45}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.2}System control flow and main processing loop}{47}{}\protected@file@percent }
|
||||
\acronymused{ANR}
|
||||
\acronymused{DSP}
|
||||
\@writefile{toc}{\contentsline {paragraph}{Memory initialization and mapping}{45}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {paragraph}{Memory initialization and mapping}{47}{}\protected@file@percent }
|
||||
\acronymused{DSP}
|
||||
\acronymused{PCM}
|
||||
\acronymused{DSP}
|
||||
\newlabel{fig:fig_dps_code_memory}{{4.2.2}{46}{}{lstnumber.-2.13}{}}
|
||||
\@writefile{lof}{\contentsline {figure}{\numberline {35}{\ignorespaces Low-level implementation: Memory initialization and mapping}}{46}{}\protected@file@percent }
|
||||
\@writefile{lof}{\contentsline {figure}{\numberline {36}{\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.}}{46}{}\protected@file@percent }
|
||||
\newlabel{fig:fig_compiler.jpg}{{36}{46}{}{figure.36}{}}
|
||||
\@writefile{toc}{\contentsline {paragraph}{Main loop and interrupt handling}{46}{}\protected@file@percent }
|
||||
\newlabel{fig:fig_dps_code_memory}{{4.2.2}{48}{}{}{}}
|
||||
\@writefile{lof}{\contentsline {figure}{\numberline {35}{\ignorespaces Low-level implementation: Memory initialization and mapping}}{48}{}\protected@file@percent }
|
||||
\@writefile{lof}{\contentsline {figure}{\numberline {36}{\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 }
|
||||
\newlabel{fig:fig_compiler.jpg}{{36}{48}{}{}{}}
|
||||
\@writefile{toc}{\contentsline {paragraph}{Main loop and interrupt handling}{48}{}\protected@file@percent }
|
||||
\acronymused{DSP}
|
||||
\acronymused{ANR}
|
||||
\acronymused{ARM}
|
||||
@@ -150,76 +150,76 @@
|
||||
\acronymused{DSP}
|
||||
\acronymused{ARM}
|
||||
\acronymused{DSP}
|
||||
\@writefile{lof}{\contentsline {figure}{\numberline {37}{\ignorespaces Low-level implementation: Main loop and interrupt handling}}{47}{}\protected@file@percent }
|
||||
\newlabel{fig:fig_dps_code_mainloop}{{37}{47}{}{figure.37}{}}
|
||||
\@writefile{lof}{\contentsline {figure}{\numberline {38}{\ignorespaces Flow diagram of the code implementation of the main loop and interrupt handling on the \ac {DSP} core.}}{48}{}\protected@file@percent }
|
||||
\@writefile{lof}{\contentsline {figure}{\numberline {37}{\ignorespaces Low-level implementation: Main loop and interrupt handling}}{49}{}\protected@file@percent }
|
||||
\newlabel{fig:fig_dps_code_mainloop}{{37}{49}{}{}{}}
|
||||
\@writefile{lof}{\contentsline {figure}{\numberline {38}{\ignorespaces Flow diagram of the code implementation of the main loop and interrupt handling on the \ac {DSP} core.}}{50}{}\protected@file@percent }
|
||||
\acronymused{DSP}
|
||||
\newlabel{fig:fig_dsp_logic.jpg}{{38}{48}{}{figure.38}{}}
|
||||
\@writefile{toc}{\contentsline {paragraph}{calculate\_output()-function}{48}{}\protected@file@percent }
|
||||
\newlabel{fig:fig_dsp_logic.jpg}{{38}{50}{}{}{}}
|
||||
\@writefile{toc}{\contentsline {paragraph}{calculate\_output()-function}{50}{}\protected@file@percent }
|
||||
\acronymused{DSP}
|
||||
\acronymused{ANR}
|
||||
\acronymused{DSP}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {4.3}DSP-level implementation of the ANR algorithm}{49}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {4.3}DSP-level implementation of the ANR algorithm}{51}{}\protected@file@percent }
|
||||
\acronymused{DSP}
|
||||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.3.1}DSP-specific optimizations for real-time processing}{49}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.3.1}DSP-specific optimizations for real-time processing}{51}{}\protected@file@percent }
|
||||
\acronymused{ANR}
|
||||
\acronymused{DSP}
|
||||
\@writefile{toc}{\contentsline {paragraph}{Logic operations}{49}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {paragraph}{Logic operations}{51}{}\protected@file@percent }
|
||||
\acronymused{DSP}
|
||||
\acronymused{DSP}
|
||||
\@writefile{lof}{\contentsline {figure}{\numberline {39}{\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 allows a 4-cycle implementation of such an operation.}}{49}{}\protected@file@percent }
|
||||
\newlabel{fig:fig_dsp_code_find_max}{{39}{49}{}{figure.39}{}}
|
||||
\@writefile{toc}{\contentsline {paragraph}{Cyclic array iteration}{49}{}\protected@file@percent }
|
||||
\@writefile{lof}{\contentsline {figure}{\numberline {39}{\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 allows a 4-cycle implementation of such an operation.}}{51}{}\protected@file@percent }
|
||||
\newlabel{fig:fig_dsp_code_find_max}{{39}{51}{}{}{}}
|
||||
\@writefile{toc}{\contentsline {paragraph}{Cyclic array iteration}{51}{}\protected@file@percent }
|
||||
\acronymused{ANR}
|
||||
\@writefile{lof}{\contentsline {figure}{\numberline {40}{\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.}}{50}{}\protected@file@percent }
|
||||
\newlabel{fig:fig_dsp_code_cyclic_add}{{40}{50}{}{figure.40}{}}
|
||||
\@writefile{lof}{\contentsline {figure}{\numberline {40}{\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 }
|
||||
\newlabel{fig:fig_dsp_code_cyclic_add}{{40}{52}{}{}{}}
|
||||
\acronymused{DSP}
|
||||
\acronymused{DSP}
|
||||
\@writefile{toc}{\contentsline {paragraph}{Fractional fixed-point arithmetic}{50}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {paragraph}{Fractional fixed-point arithmetic}{52}{}\protected@file@percent }
|
||||
\acronymused{DSP}
|
||||
\acronymused{MAC}
|
||||
\acronymused{ALU}
|
||||
\acronymused{DSP}
|
||||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.3.2}Performance quantization of the ANR calculation}{50}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.3.2}Performance quantization of the ANR calculation}{52}{}\protected@file@percent }
|
||||
\acronymused{ANR}
|
||||
\acronymused{DSP}
|
||||
\acronymused{FIR}
|
||||
\acronymused{FIR}
|
||||
\acronymused{DSP}
|
||||
\@writefile{toc}{\contentsline {paragraph}{write\_buffer}{51}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {paragraph}{write\_buffer}{53}{}\protected@file@percent }
|
||||
\acronymused{DSP}
|
||||
\@writefile{toc}{\contentsline {paragraph}{apply\_fir\_filter}{51}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {paragraph}{apply\_fir\_filter}{53}{}\protected@file@percent }
|
||||
\acronymused{FIR}
|
||||
\acronymused{MAC}
|
||||
\acronymused{DSP}
|
||||
\acronymused{DSP}
|
||||
\@writefile{lof}{\contentsline {figure}{\numberline {41}{\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.}}{52}{}\protected@file@percent }
|
||||
\@writefile{lof}{\contentsline {figure}{\numberline {41}{\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 }
|
||||
\acronymused{MAC}
|
||||
\acronymused{DSP}
|
||||
\newlabel{fig:fig_dsp_code_apply_fir_filter}{{41}{52}{}{figure.41}{}}
|
||||
\@writefile{lof}{\contentsline {figure}{\numberline {42}{\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).}}{52}{}\protected@file@percent }
|
||||
\newlabel{fig:fig_dsp_fir_cycle.jpg}{{42}{52}{}{figure.42}{}}
|
||||
\@writefile{toc}{\contentsline {paragraph}{update\_output}{53}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {paragraph}{update\_filter\_coefficient}{53}{}\protected@file@percent }
|
||||
\newlabel{fig:fig_dsp_code_apply_fir_filter}{{41}{54}{}{}{}}
|
||||
\@writefile{lof}{\contentsline {figure}{\numberline {42}{\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 }
|
||||
\newlabel{fig:fig_dsp_fir_cycle.jpg}{{42}{54}{}{}{}}
|
||||
\@writefile{toc}{\contentsline {paragraph}{update\_output}{55}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {paragraph}{update\_filter\_coefficient}{55}{}\protected@file@percent }
|
||||
\acronymused{DSP}
|
||||
\acronymused{MAC}
|
||||
\@writefile{lof}{\contentsline {figure}{\numberline {43}{\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.}}{53}{}\protected@file@percent }
|
||||
\@writefile{lof}{\contentsline {figure}{\numberline {43}{\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 }
|
||||
\acronymused{MAC}
|
||||
\acronymused{DSP}
|
||||
\newlabel{fig:fig_dsp_code_update_filter_coefficients}{{43}{53}{}{figure.43}{}}
|
||||
\@writefile{lof}{\contentsline {figure}{\numberline {44}{\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.}}{54}{}\protected@file@percent }
|
||||
\newlabel{fig:fig_dsp_coefficient_cycle.jpg}{{44}{54}{}{figure.44}{}}
|
||||
\@writefile{toc}{\contentsline {paragraph}{write\_output}{54}{}\protected@file@percent }
|
||||
\newlabel{equation_computing}{{24}{54}{}{equation.24}{}}
|
||||
\newlabel{equation_c_1}{{25}{54}{}{equation.25}{}}
|
||||
\newlabel{equation_c_2}{{26}{54}{}{equation.26}{}}
|
||||
\newlabel{equation_c_3}{{27}{54}{}{equation.27}{}}
|
||||
\newlabel{equation_c_4}{{28}{54}{}{equation.28}{}}
|
||||
\newlabel{equation_c_5}{{30}{54}{}{equation.30}{}}
|
||||
\newlabel{equation_computing_final}{{31}{55}{}{equation.31}{}}
|
||||
\newlabel{fig:fig_dsp_code_update_filter_coefficients}{{43}{55}{}{}{}}
|
||||
\@writefile{lof}{\contentsline {figure}{\numberline {44}{\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}{{44}{56}{}{}{}}
|
||||
\@writefile{toc}{\contentsline {paragraph}{write\_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}{{30}{56}{}{}{}}
|
||||
\newlabel{equation_computing_final}{{31}{57}{}{}{}}
|
||||
\acronymused{DSP}
|
||||
\@setckpt{chapter_04}{
|
||||
\setcounter{page}{56}
|
||||
\setcounter{page}{58}
|
||||
\setcounter{equation}{31}
|
||||
\setcounter{enumi}{0}
|
||||
\setcounter{enumii}{0}
|
||||
@@ -354,7 +354,7 @@
|
||||
\setcounter{lstnumber}{15}
|
||||
\setcounter{FancyVerbLine}{0}
|
||||
\setcounter{linenumber}{1}
|
||||
\setcounter{LN@truepage}{55}
|
||||
\setcounter{LN@truepage}{57}
|
||||
\setcounter{FancyVerbWriteLine}{0}
|
||||
\setcounter{FancyVerbBufferLine}{0}
|
||||
\setcounter{FV@TrueTabGroupLevel}{0}
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
\relax
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {5}Performance evaluation of different implementation variants}{56}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {5}Performance evaluation of different implementation variants}{58}{}\protected@file@percent }
|
||||
\acronymused{DSP}
|
||||
\acronymused{ANR}
|
||||
\acronymused{FIR}
|
||||
\acronymused{ANR}
|
||||
\acronymused{SNR}
|
||||
\@writefile{lof}{\contentsline {figure}{\numberline {45}{\ignorespaces Desired signal, corrupted signal, reference noise signal and filter output of the complex \ac {ANR} use case, simulated on the \ac {DSP}}}{56}{}\protected@file@percent }
|
||||
\@writefile{lof}{\contentsline {figure}{\numberline {45}{\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 }
|
||||
\acronymused{ANR}
|
||||
\acronymused{DSP}
|
||||
\newlabel{fig:fig_plot_1_dsp_complex.png}{{45}{56}{}{figure.45}{}}
|
||||
\@writefile{lof}{\contentsline {figure}{\numberline {46}{\ignorespaces Error signal and filter coefficient evolution of the complex \ac {ANR} use case, simulated on the \ac {DSP}}}{57}{}\protected@file@percent }
|
||||
\newlabel{fig:fig_plot_1_dsp_complex.png}{{45}{58}{}{}{}}
|
||||
\@writefile{lof}{\contentsline {figure}{\numberline {46}{\ignorespaces Error signal of the complex \ac {ANR} use case, simulated on the \ac {DSP}}}{59}{}\protected@file@percent }
|
||||
\acronymused{ANR}
|
||||
\acronymused{DSP}
|
||||
\newlabel{fig:fig_plot_2_dsp_complex.png}{{46}{57}{}{figure.46}{}}
|
||||
\newlabel{fig:fig_plot_2_dsp_complex.png}{{46}{59}{}{}{}}
|
||||
\acronymused{ANR}
|
||||
\acronymused{DSP}
|
||||
\acronymused{SNR}
|
||||
@@ -20,12 +20,21 @@
|
||||
\acronymused{DSP}
|
||||
\acronymused{ANR}
|
||||
\acronymused{DSP}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {5.1}Computational efficiency evaluation}{57}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {5.1}Computational efficiency evaluation}{59}{}\protected@file@percent }
|
||||
\acronymused{CI}
|
||||
\acronymused{ANR}
|
||||
\acronymused{CI}
|
||||
\@writefile{lof}{\contentsline {figure}{\numberline {47}{\ignorespaces Noise signals used to corrupt the desired signal in the computational efficiency evaluation}}{60}{}\protected@file@percent }
|
||||
\newlabel{fig:fig_noise_signals.png}{{47}{60}{}{}{}}
|
||||
\acronymused{ANR}
|
||||
\acronymused{SNR}
|
||||
\@writefile{lof}{\contentsline {figure}{\numberline {48}{\ignorespaces Python 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 graphes are smoothed by a third order savigol filter.}}{61}{}\protected@file@percent }
|
||||
\acronymused{SNR}
|
||||
\newlabel{fig:fig_snr_comparison.png}{{48}{61}{}{}{}}
|
||||
\acronymused{SNR}
|
||||
\acronymused{SNR}
|
||||
\@setckpt{chapter_05}{
|
||||
\setcounter{page}{58}
|
||||
\setcounter{page}{62}
|
||||
\setcounter{equation}{31}
|
||||
\setcounter{enumi}{0}
|
||||
\setcounter{enumii}{0}
|
||||
@@ -39,7 +48,7 @@
|
||||
\setcounter{subsubsection}{0}
|
||||
\setcounter{paragraph}{0}
|
||||
\setcounter{subparagraph}{0}
|
||||
\setcounter{figure}{46}
|
||||
\setcounter{figure}{48}
|
||||
\setcounter{table}{0}
|
||||
\setcounter{float@type}{16}
|
||||
\setcounter{tabx@nest}{0}
|
||||
@@ -160,7 +169,7 @@
|
||||
\setcounter{lstnumber}{15}
|
||||
\setcounter{FancyVerbLine}{0}
|
||||
\setcounter{linenumber}{1}
|
||||
\setcounter{LN@truepage}{57}
|
||||
\setcounter{LN@truepage}{61}
|
||||
\setcounter{FancyVerbWriteLine}{0}
|
||||
\setcounter{FancyVerbBufferLine}{0}
|
||||
\setcounter{FV@TrueTabGroupLevel}{0}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
\section{Performance evaluation of different implementation variants}
|
||||
To verify the general performance of the \ac{DSP} implemented \ac{ANR} algorithm, the complex usecase of the high-level implemenation is used, which includes, again, a 16-tap \ac{FIR} filter and an update of the filter coefficients every cycle. In contary to the high-level implementation, the coeffcient convergence is now not included in the evaluation anymore, but the metric for the \ac{ANR} performance stays the same as the \ac{SNR} improvement.
|
||||
To verify the general performance of the \ac{DSP}-implemented \ac{ANR} algorithm, the complex usecase of the high-level implemenation is utilized, which includes, again, a 16-tap \ac{FIR} filter and an update of the filter coefficients every cycle. In contary to the high-level implementation, the coeffcient convergence is now not included in the evaluation anymore, but the metric for the \ac{ANR} performance stays the same as the \ac{SNR} improvement.
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
\includegraphics[width=1.0\linewidth]{Bilder/fig_plot_1_dsp_complex.png}
|
||||
@@ -9,23 +9,32 @@ To verify the general performance of the \ac{DSP} implemented \ac{ANR} algorithm
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
\includegraphics[width=1.0\linewidth]{Bilder/fig_plot_2_dsp_complex.png}
|
||||
\caption{Error signal and filter coefficient evolution of the complex \ac{ANR} use case, simulated on the \ac{DSP}}
|
||||
\caption{Error signal of the complex \ac{ANR} use case, simulated on the \ac{DSP}}
|
||||
\label{fig:fig_plot_2_dsp_complex.png}
|
||||
\end{figure}
|
||||
Figure \ref{fig:fig_plot_1_dsp_complex.png} and \ref{fig:fig_plot_2_dsp_complex.png} show the results of the complex \ac{ANR} use case, simulated on the \ac{DSP}. The \ac{SNR} improvement of XXXX dB is nearly the same as the one of the high-level implementation, which is XXXX dB. The small difference can be explained by the fact that the \ac{DSP} implementation is based on fixed-point arithmetic, which leads to a slightly different convergence behavior. Nevertheless, the results show that the \ac{DSP} implementation of the \ac{ANR} algorithm is able to achieve a similar performance as the high-level implementation, again indicating the fact, that 16 filter coefficients are insufficent to filter out a complex, phase-shifted noise signal. The next step is of evaluate the performance of the \ac{DSP} implementation in terms of computational efficiency under different scenarios.
|
||||
\noindent Figure \ref{fig:fig_plot_1_dsp_complex.png} and \ref{fig:fig_plot_2_dsp_complex.png} show the results of the complex \ac{ANR} use case, simulated on the \ac{DSP}. The \ac{SNR} improvement of 5.92 dB is similar to the one of the high-level implementation, which is 5.14 dB. The small difference can be explained by the fact that the \ac{DSP} implementation is based on fixed-point arithmetic, which leads to a slightly different convergence behavior. Nevertheless, the results show that the \ac{DSP} implementation of the \ac{ANR} algorithm is able to achieve a similar performance as the high-level implementation, again indicating the fact, that 16 filter coefficients are insufficent to filter out a complex, phase-shifted noise signal. The next step is of evaluate the performance of the \ac{DSP} implementation in terms of computational efficiency under different scenarios.
|
||||
\subsection{Computational efficiency evaluation}
|
||||
\noindent For the evaluation of the computational efficiency, different combinations of desired signals and noise signals are considered. This approach rules out, that a certain combination of signals is not representative for the overall performance of the \ac{ANR} algorithm.
|
||||
The desired signals are chosen as follows:
|
||||
\noindent For the evaluation of the computational efficiency, different signal combinations, which are to be expected everyday situiations for a \ac{CI} patient, are considered. This approach rules out, that a certain combination of signals is not representative for the overall performance of the \ac{ANR} algorithm.
|
||||
The desired signal of a male voice over speaker is now corrupted with 5 different noise signals:
|
||||
\begin{itemize}
|
||||
\item A male speaker on TV
|
||||
\item A short music jingle
|
||||
\item Breathing noise: Already used in the high-level implementation, this noise signal is a typical noise source for \ac{CI} patients, especially in quiet environments. It consists out of slowly rising and falling peaks.
|
||||
\item Coughing noise: This noise signal is generated by coughing and consists out few, but long lasting peaks.
|
||||
\item Scratching noise: This noise signal is generated by scratching some material, like the hair or clothes. It consists out of a high number of sharp peaks.
|
||||
\item Drinking Noise: This noise signal is generated by drinking and consists out of a low number of peaks, which are not as sharp as the ones of the scratching noise, but still more sharp than the ones of the breathing and coughing noise.
|
||||
\item Chewing Noise: This noise signal is generated by chewing and consists out of a high number of peaks of different amplitude.
|
||||
\end{itemize}
|
||||
PLOT
|
||||
These two desired signals are corrupted with 3 different noise signals:
|
||||
\begin{itemize}
|
||||
\item The already used breathing sound
|
||||
\item A chewing sound
|
||||
\item A scratching sound
|
||||
\end{itemize}
|
||||
PLOT
|
||||
The combination of stated sets delivers 6 different scenarious, everyone different in regard of it's challenges for the \ac{ANR} algorithm. For every scenario, the \ac{SNR}-Gain is calculated with an increasing set of filter coeffcients, ranging from 16 to 64.
|
||||
The vizualization of the noise signals is shown in figure \ref{fig:fig_noise_signals.png}.
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
\includegraphics[width=1.0\linewidth]{Bilder/fig_noise_signals.png}
|
||||
\caption{Noise signals used to corrupt the desired signal in the computational efficiency evaluation}
|
||||
\label{fig:fig_noise_signals.png}
|
||||
\end{figure}
|
||||
The combination of stated sets delivers five different scenarious, everyone different in regard of it's challenges for the \ac{ANR} algorithm. For every scenario, the \ac{SNR}-Gain is calculated with an increasing set of filter coeffcients, ranging from 16 to 64.
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
\includegraphics[width=1.0\linewidth]{Bilder/fig_snr_comparison.png}
|
||||
\caption{Python 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 graphes are smoothed by a third order savigol filter.}
|
||||
\label{fig:fig_snr_comparison.png}
|
||||
\end{figure}
|
||||
Figure \ref{fig:fig_snr_comparison.png} shows the expected \ac{SNR}-Gain for the different noise signals and filter lengths. The results shows, that a minimum filter length of about 32 taps is required, before (in any case) a rise in the \ac{SNR}-Gain can be observed.
|
||||
164
main.bbl-SAVE-ERROR
Normal file
@@ -0,0 +1,164 @@
|
||||
% $ biblatex auxiliary file $
|
||||
% $ biblatex bbl format version 3.2 $
|
||||
% Do not modify the above lines!
|
||||
%
|
||||
% This is an auxiliary file used by the 'biblatex' package.
|
||||
% This file may safely be deleted. It will be recreated by
|
||||
% biber as required.
|
||||
%
|
||||
\begingroup
|
||||
\makeatletter
|
||||
\@ifundefined{ver@biblatex.sty}
|
||||
{\@latex@error
|
||||
{Missing 'biblatex' package}
|
||||
{The bibliography requires the 'biblatex' package.}
|
||||
\aftergroup\endinput}
|
||||
{}
|
||||
\endgroup
|
||||
|
||||
|
||||
\refsection{0}
|
||||
\datalist[entry]{none/global//global/global}
|
||||
\entry{source_synchrony}{misc}{}
|
||||
\name{author}{1}{}{%
|
||||
{{hash=ffb45f0281705211553241b831eeaf22}{%
|
||||
family={MED-EL},
|
||||
familyi={M\bibinithyphendelim E\bibinitperiod}}}%
|
||||
}
|
||||
\strng{namehash}{ffb45f0281705211553241b831eeaf22}
|
||||
\strng{fullhash}{ffb45f0281705211553241b831eeaf22}
|
||||
\strng{bibnamehash}{ffb45f0281705211553241b831eeaf22}
|
||||
\strng{authorbibnamehash}{ffb45f0281705211553241b831eeaf22}
|
||||
\strng{authornamehash}{ffb45f0281705211553241b831eeaf22}
|
||||
\strng{authorfullhash}{ffb45f0281705211553241b831eeaf22}
|
||||
\field{extraname}{1}
|
||||
\field{sortinit}{1}
|
||||
\field{sortinithash}{4f6aaa89bab872aa0999fec09ff8e98a}
|
||||
\field{labelnamesource}{author}
|
||||
\field{labeltitlesource}{title}
|
||||
\field{howpublished}{\url{https://www.medel.com/de/hearing-solutions/cochlear-implants}}
|
||||
\field{note}{Accessed on 20.01.2026}
|
||||
\field{title}{MED-EL Synchrony Cochlear Implant with a Sonnet 3 Audio Processor}
|
||||
\field{year}{2026}
|
||||
\endentry
|
||||
\entry{source_electrode}{misc}{}
|
||||
\name{author}{1}{}{%
|
||||
{{hash=ffb45f0281705211553241b831eeaf22}{%
|
||||
family={MED-EL},
|
||||
familyi={M\bibinithyphendelim E\bibinitperiod}}}%
|
||||
}
|
||||
\strng{namehash}{ffb45f0281705211553241b831eeaf22}
|
||||
\strng{fullhash}{ffb45f0281705211553241b831eeaf22}
|
||||
\strng{bibnamehash}{ffb45f0281705211553241b831eeaf22}
|
||||
\strng{authorbibnamehash}{ffb45f0281705211553241b831eeaf22}
|
||||
\strng{authornamehash}{ffb45f0281705211553241b831eeaf22}
|
||||
\strng{authorfullhash}{ffb45f0281705211553241b831eeaf22}
|
||||
\field{extraname}{2}
|
||||
\field{sortinit}{3}
|
||||
\field{sortinithash}{ad6fe7482ffbd7b9f99c9e8b5dccd3d7}
|
||||
\field{labelnamesource}{author}
|
||||
\field{labeltitlesource}{title}
|
||||
\field{howpublished}{\url{https://blog.medel.pro/de/chirurgie/relevanz-der-ci-elektrode/}}
|
||||
\field{note}{Accessed on 30.01.2026}
|
||||
\field{title}{Visualization of a MED-EL electrode inserted into a human cochlear}
|
||||
\field{year}{2026}
|
||||
\endentry
|
||||
\entry{source_dsp_ch1}{misc}{}
|
||||
\name{author}{1}{}{%
|
||||
{{hash=26ad37f8f6f878dc28acadb561885bff}{%
|
||||
family={Li\bibnamedelima Tan},
|
||||
familyi={L\bibinitperiod\bibinitdelim T\bibinitperiod},
|
||||
given={Jean\bibnamedelima Jiang},
|
||||
giveni={J\bibinitperiod\bibinitdelim J\bibinitperiod}}}%
|
||||
}
|
||||
\strng{namehash}{26ad37f8f6f878dc28acadb561885bff}
|
||||
\strng{fullhash}{26ad37f8f6f878dc28acadb561885bff}
|
||||
\strng{bibnamehash}{26ad37f8f6f878dc28acadb561885bff}
|
||||
\strng{authorbibnamehash}{26ad37f8f6f878dc28acadb561885bff}
|
||||
\strng{authornamehash}{26ad37f8f6f878dc28acadb561885bff}
|
||||
\strng{authorfullhash}{26ad37f8f6f878dc28acadb561885bff}
|
||||
\field{extraname}{1}
|
||||
\field{sortinit}{4}
|
||||
\field{sortinithash}{9381316451d1b9788675a07e972a12a7}
|
||||
\field{labelnamesource}{author}
|
||||
\field{labeltitlesource}{title}
|
||||
\field{howpublished}{Elsevier Inc.}
|
||||
\field{note}{Chapter 1}
|
||||
\field{title}{Digital Signal Processing Fundamentals and Applications 3rd Ed}
|
||||
\field{year}{2013}
|
||||
\endentry
|
||||
\entry{source_dsp_ch2}{misc}{}
|
||||
\name{author}{1}{}{%
|
||||
{{hash=26ad37f8f6f878dc28acadb561885bff}{%
|
||||
family={Li\bibnamedelima Tan},
|
||||
familyi={L\bibinitperiod\bibinitdelim T\bibinitperiod},
|
||||
given={Jean\bibnamedelima Jiang},
|
||||
giveni={J\bibinitperiod\bibinitdelim J\bibinitperiod}}}%
|
||||
}
|
||||
\strng{namehash}{26ad37f8f6f878dc28acadb561885bff}
|
||||
\strng{fullhash}{26ad37f8f6f878dc28acadb561885bff}
|
||||
\strng{bibnamehash}{26ad37f8f6f878dc28acadb561885bff}
|
||||
\strng{authorbibnamehash}{26ad37f8f6f878dc28acadb561885bff}
|
||||
\strng{authornamehash}{26ad37f8f6f878dc28acadb561885bff}
|
||||
\strng{authorfullhash}{26ad37f8f6f878dc28acadb561885bff}
|
||||
\field{extraname}{2}
|
||||
\field{sortinit}{1}
|
||||
\field{sortinithash}{4f6aaa89bab872aa0999fec09ff8e98a}
|
||||
\field{labelnamesource}{author}
|
||||
\field{labeltitlesource}{title}
|
||||
\field{howpublished}{Elsevier Inc.}
|
||||
\field{note}{Chapter 2}
|
||||
\field{title}{Digital Signal Processing Fundamentals and Applications 3rd Ed}
|
||||
\field{year}{2013}
|
||||
\endentry
|
||||
\entry{source_patent}{misc}{}
|
||||
\name{author}{1}{}{%
|
||||
{{hash=93a5470d20a141eea1a1f94678d4a447}{%
|
||||
family={Fogel},
|
||||
familyi={F\bibinitperiod},
|
||||
given={Lawrence\bibnamedelima J.},
|
||||
giveni={L\bibinitperiod\bibinitdelim J\bibinitperiod}}}%
|
||||
}
|
||||
\strng{namehash}{93a5470d20a141eea1a1f94678d4a447}
|
||||
\strng{fullhash}{93a5470d20a141eea1a1f94678d4a447}
|
||||
\strng{bibnamehash}{93a5470d20a141eea1a1f94678d4a447}
|
||||
\strng{authorbibnamehash}{93a5470d20a141eea1a1f94678d4a447}
|
||||
\strng{authornamehash}{93a5470d20a141eea1a1f94678d4a447}
|
||||
\strng{authorfullhash}{93a5470d20a141eea1a1f94678d4a447}
|
||||
\field{sortinit}{1}
|
||||
\field{sortinithash}{4f6aaa89bab872aa0999fec09ff8e98a}
|
||||
\field{labelnamesource}{author}
|
||||
\field{labeltitlesource}{title}
|
||||
\field{howpublished}{United States Patent Office}
|
||||
\field{note}{Pat. Nr. 2966549}
|
||||
\field{title}{Apparatus for improving intelligence under high ambient noise levels}
|
||||
\field{year}{1960}
|
||||
\endentry
|
||||
\entry{source_dsp_ch9}{misc}{}
|
||||
\name{author}{1}{}{%
|
||||
{{hash=26ad37f8f6f878dc28acadb561885bff}{%
|
||||
family={Li\bibnamedelima Tan},
|
||||
familyi={L\bibinitperiod\bibinitdelim T\bibinitperiod},
|
||||
given={Jean\bibnamedelima Jiang},
|
||||
giveni={J\bibinitperiod\bibinitdelim J\bibinitperiod}}}%
|
||||
}
|
||||
\strng{namehash}{26ad37f8f6f878dc28acadb561885bff}
|
||||
\strng{fullhash}{26ad37f8f6f878dc28acadb561885bff}
|
||||
\strng{bibnamehash}{26ad37f8f6f878dc28acadb561885bff}
|
||||
\strng{authorbibnamehash}{26ad37f8f6f878dc28acadb561885bff}
|
||||
\strng{authornamehash}{26ad37f8f6f878dc28acadb561885bff}
|
||||
\strng{authorfullhash}{26ad37f8f6f878dc28acadb561885bff}
|
||||
\field{extraname}{3}
|
||||
\field{sortinit}{1}
|
||||
\field{sortinithash}{4f6aaa89bab872aa0999fec09ff8e98a}
|
||||
\field{labelnamesource}{author}
|
||||
\field{labeltitlesource}{title}
|
||||
\field{howpublished}{Elsevier Inc.}
|
||||
\field{note}{Chapter 9}
|
||||
\field{title}{Digital Signal Processing Fundamentals and Applications 3rd Ed}
|
||||
\field{year}{2013}
|
||||
\endentry
|
||||
\enddatalist
|
||||
\endrefsection
|
||||
\endinput
|
||||
|
||||