Skip to content
Snippets Groups Projects
Select Git revision
  • 83ab7e4f39e1a84b0101e1f7c3c49ea2810c3d9f
  • main default protected
  • dev protected
  • Issue/3133-subProjectsChanges
  • Issue/2489-addNotificationManagement
  • Issue/3085-useNewApiClient
  • Issue/3043-DataStorageNrwResource
  • Issue/3011-maintenanceMode
  • Issue/2446-addingResponsibleOrganization
  • Issue/2900-removeInsituteField
  • Issue/2981-dataPubInDb
  • Issue/2881-messageController
  • Issue/2921-changesToDataPublicationFeature
  • Issue/2926-regAppLogin
  • Issue/2672-fixSfbPidPointing
  • Issue/2875-devcontainer
  • Issue/2401-advisoryServiceUI2
  • Issue/2445-extractedMetadata
  • Issue/2829-useHrefProperty
  • Issue/xxxx-configurableApiHostname
  • Issue/2627-addPidRecord
  • v3.18.0
  • v3.17.0
  • v3.16.0
  • v3.15.0
  • v3.14.0
  • v3.13.0
  • v3.12.0
  • v3.11.0
  • v3.10.0
  • v3.9.0
  • v3.8.0
  • v3.7.0
  • v3.6.0
  • v3.5.0
  • v3.4.3
  • v3.4.2
  • v3.4.1
  • v3.4.0
  • v3.3.2-package.0
  • v3.3.1
41 results

index.ts

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    FilterGenerator.h 2.55 KiB
    /*
     * ----------------------------------------------------------------
     *
     *		ITA geometrical acoustics
     *		(c) Copyright Institute of Technical Acoustics (ITA)
     *		RWTH Aachen University, Germany, 2015-2018
     *
     * ----------------------------------------------------------------
     *				    ____  __________  _______
     *				   //  / //__   ___/ //  _   |
     *				  //  /    //  /    //  /_|  |
     *				 //  /    //  /    //  ___   |
     *				//__/    //__/    //__/   |__|
     *
     * ----------------------------------------------------------------
     *
     */
    
    #ifndef INCLUDE_WATCHER_ITA_PROPAGATION_MODELS_FILTER_GENERATOR
    #define INCLUDE_WATCHER_ITA_PROPAGATION_MODELS_FILTER_GENERATOR
    
    #include "Base.h"
    #include "Definitions.h"
    #include "DiffractionFilter.h"
    
    // ITA includes
    #include <ITAGeo/Base.h>
    #include <ITAHDFTSpectra.h>
    #include <ITAHDFTSpectrum.h>
    
    // STL includes
    #include <vector>
    
    namespace ITAPropagationModels
    {
    	//! Transfer function filter generator for propagation paths
    	/**
    	  * Generates transfer functions in the frequency-domain that
    	  * can be used as filters, e.g. for auralization.
    	  */
    	class ITA_PROPAGATION_MODELS_API CTFGenerator
    	{
    	public:
    
    		//! Construct a generator with predetermined output channels, e.g. for binaural or SH filters
    		/**
    		  * @param[in] iNumOutputChannels Number of output channels
    		  * @param[in] iDFTSize Length of the DFT used to construct and combine filter components
    		  * @param[in] fSamplingRate Filer sampling rate
    		  */
    		CTFGenerator( const int iNumOutputChannels, const int iDFTSize = 128, const float fSamplingRate = 44100.0f );
    
    		//! Cunstruct a generator with matching properties of a target spectrum
    		inline CTFGenerator( const ITABase::CHDFTSpectrum& pTransferFunction )
    			: CTFGenerator( 1, pTransferFunction.GetDFTSize(), pTransferFunction.GetSampleRate() )
    		{
    		};
    
    		//! Cunstruct a generator with matching properties of multi-channel target spectra
    		CTFGenerator( const ITABase::CHDFTSpectra& pTransferFunctions )
    			: CTFGenerator( pTransferFunctions.GetNumChannels(), pTransferFunctions.GetDFTSize(), pTransferFunctions.GetSampleRate() )
    		{
    		};
    
    		//! Generate a single-channel transfer function
    		inline void GenerateTF( ITABase::CHDFTSpectrum& pTransferFunction )
    		{
    			const std::vector< ITABase::CHDFTSpectrum* > vpSpectra = { &( pTransferFunction ) };
    			ITABase::CHDFTSpectra oTF( vpSpectra );
    			GenerateTF( oTF );
    		};
    
    		//! Generate a multi-channel transfer function
    		inline void GenerateTF( ITABase::CHDFTSpectra& pTransferFunctions );
    
    	private:
    	};
    }
    
    #endif // INCLUDE_WATCHER_ITA_PROPAGATION_MODELS_FILTER_GENERATOR