DOI: 10.3217/jfez2-dmk93
title: Heterodyne Background-Oriented Schlieren for the Measurement of Thermoacoustic Oscillations in Flames

description: Introduction

This research is the result of Austrian-German joint research project, funded by the Austrian Science Fund FWF within grant FWF-I5392-N and the Deutsche Forschungsgemeinschaft DFG within grant CZ 55/50-1. This project is a Lead-Agency D-A-CH project in cooperation between Graz University of Technology, Austria and Technische Universität Dresden, Germany, named "FOUR-DIMENSIONAL MEASUREMENT OF THERMOACOUSTIC OSCILLATIONS".

The underlying hypothesis of this project claims that four-dimensional detection of local thermoacoustic oscillations, based on the combination of a (camera-based) laser interferometric vibrometer with multidirectional background-oriented schlieren method, density tagging velocimetry and deep neural networks as binding element, will reveal local and coupled information on combustion, acoustics and fluid dynamics. 

As of May 2024, this repository contains the Python routines and sample data from this project.

Data_Sets.zip

In the data directory, recordings can be found as .tiff files for the speckled background-oriented schlieren and for the heterodyne background oriented schlieren recordings. The directories contain subdirectories, where in 'Data_Phase_Average' 100 recordings for the phase averaged set (with trigger, first time step out of eight) and in 'Data_Time_Average' 100 recordings for the time average set (without trigger, free run) are located. The directory 'Background' contains 100 recordings of the background after the flame recordings were taken.

Python_Codes.zip

All Python files are built for version 3.9.

All packages use the latest available version, July 2023.

Note that some of the scripts have the same name, but are located in different directories. In these cases, they have been adapted, e.g. for the speckled background.

Directory Main:

\Main\main.py: Main file for Heterodyne Background Oriented Schlieren (HBOS) evaluation. It is used to apply the HBOS method to the acquired images, it takes as input two batches of images acquired without the flame (directories Background_0 recorded before the experiment, and Background_1 recorded after the experiment) and several batches of images acquired in the presence of the flame (in directories 0, 1, 2, ... for the eight phase steps; phase-averaged data), it gives as output the phase and fringe modulation of the processed images as numpy arrays. 100 images from the directory Background_1 are included in the database 'Data_Sets.zip' with the name 'Background', and 100 images from the directory 0 are included in the database with the name 'Data_Phase_Average', for each of the different background patterns.

Directory FFT_and_mask:

\FFT_and_mask\Fourier_averaging 1000.py: This routine transforms a batch of 1000 images into the Fourier domain and averages the result, the output file is also used in 'signal_to_noise corner noise.py' to calculate the signal-to-noise ratio.

\FFT_and_mask\signal_to_noise corner noise.py: This routine takes as input the averaged frequency spectra for each of the different background patterns and returns as output the signal-to-noise ratio for each case.

Directory Background_generation:

\Background_generation\ main.py, including ‘modified __init__.py’, ‘Fourier_domain_picture_mod.py’, ‘speckle.py’, and ‘speckle_pattern-1.3.1.dist-info’ which are the modified library files needed to run ‘main.py’. The library can be downloaded from another source, but the ‘speckle.py’ file should then be replaced with the one included here. ‘main.py’ is the Python file needed for all the backgrounds used, the instructions for using it are available online at the library's website.

Directory Abel_inversion:

\Abel_inversion\abel_inversion_gradient.py, including directories ‘.idea’, ‘venv’, and ‘__pycache__’ which contains the files to create the local virtual environment (used in pycharm) with the modified abel library necessary to perform the abel inversion starting from gradient data. ‘Abel_inversion_results’ is the directory to store the output of ‘abel_inversion_gradient.py’ file. ‘abel_inversion_gradient.py’ computes the Abel transform (computation of local data) from the gradient data and then recomputes the line-of-sight refractive index oscillations in the projection from the phase-stepped result (file \Abel_inversion\Gradient plots/0/average_0.npy) and time-averaged result (file \Abel_inversion\Gradient plots/0/average_8.npy).