fft scaling, shaping

View: New views
5 Messages — Rating Filter:   Alert me  

fft scaling, shaping

by Don Morgan (E-mail) :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi. I think this is a real simple one.

In the past, I have always used 1/3 octave filters to develop the spl  
for each band, but in this product we want to use an fft.

My concern is in the scaling. Bandpass filters 'shape' and integrate a  
signal differently than an fft but we need this to look like it was  
done with 1/3 octave filters. Can someone direct me to a reference  
that can shed some light on this?

Thanks,
Don
--
dupswapdrop -- the music-dsp mailing list and website:
subscription info, FAQ, source code archive, list archive, book reviews, dsp links
http://music.columbia.edu/cmc/music-dsp 
http://music.columbia.edu/mailman/listinfo/music-dsp

Re: fft scaling, shaping

by Charles Henry :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

If you need to get the output from the fft as numbers in the 1/3rd
octave filters:

1.  Take the fft of each of your filters impulse response (sample if
continuous), and store the results into vectors f1...fN
2.  Take the fft of your input, x
3.  Sum up the squares of fft(x)*fn to get raw ~p^2 numbers
(proportional to intensity) in the nth subband
4.  Compute the SPL in each subband from step 3

It's unclear what kind of scaling factor and reference level you will
use to have to correctly calculate SPL in step 4.  Also, there is
likely a way to reduce the number of multiplies in step 3, if you only
consider a certain set of non-zero entries in fn to multiply with.

Chuck

On Thu, Oct 8, 2009 at 10:08 AM, Don Morgan (E-mail) <dgm@...> wrote:

> Hi. I think this is a real simple one.
>
> In the past, I have always used 1/3 octave filters to develop the spl
> for each band, but in this product we want to use an fft.
>
> My concern is in the scaling. Bandpass filters 'shape' and integrate a
> signal differently than an fft but we need this to look like it was
> done with 1/3 octave filters. Can someone direct me to a reference
> that can shed some light on this?
>
> Thanks,
> Don
> --
> dupswapdrop -- the music-dsp mailing list and website:
> subscription info, FAQ, source code archive, list archive, book reviews, dsp links
> http://music.columbia.edu/cmc/music-dsp
> http://music.columbia.edu/mailman/listinfo/music-dsp
>
--
dupswapdrop -- the music-dsp mailing list and website:
subscription info, FAQ, source code archive, list archive, book reviews, dsp links
http://music.columbia.edu/cmc/music-dsp 
http://music.columbia.edu/mailman/listinfo/music-dsp

Re: fft scaling, shaping

by Don Morgan (E-mail) :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Thanks for the information. I appreciate it.

I will be using a calibrated microphone as an input that references x
millivolts/Pascal.

Don

-----Original Message-----
From: music-dsp-bounces@...
[mailto:music-dsp-bounces@...] On Behalf Of Charles Henry
Sent: Thursday, October 08, 2009 9:40 AM
To: A discussion list for music-related DSP
Subject: Re: [music-dsp] fft scaling, shaping

If you need to get the output from the fft as numbers in the 1/3rd
octave filters:

1.  Take the fft of each of your filters impulse response (sample if
continuous), and store the results into vectors f1...fN
2.  Take the fft of your input, x
3.  Sum up the squares of fft(x)*fn to get raw ~p^2 numbers
(proportional to intensity) in the nth subband
4.  Compute the SPL in each subband from step 3

It's unclear what kind of scaling factor and reference level you will
use to have to correctly calculate SPL in step 4.  Also, there is
likely a way to reduce the number of multiplies in step 3, if you only
consider a certain set of non-zero entries in fn to multiply with.

Chuck

On Thu, Oct 8, 2009 at 10:08 AM, Don Morgan (E-mail) <dgm@...>
wrote:

> Hi. I think this is a real simple one.
>
> In the past, I have always used 1/3 octave filters to develop the spl
> for each band, but in this product we want to use an fft.
>
> My concern is in the scaling. Bandpass filters 'shape' and integrate a
> signal differently than an fft but we need this to look like it was
> done with 1/3 octave filters. Can someone direct me to a reference
> that can shed some light on this?
>
> Thanks,
> Don
> --
> dupswapdrop -- the music-dsp mailing list and website:
> subscription info, FAQ, source code archive, list archive, book reviews,
dsp links
> http://music.columbia.edu/cmc/music-dsp
> http://music.columbia.edu/mailman/listinfo/music-dsp
>
--
dupswapdrop -- the music-dsp mailing list and website:
subscription info, FAQ, source code archive, list archive, book reviews, dsp
links
http://music.columbia.edu/cmc/music-dsp 
http://music.columbia.edu/mailman/listinfo/music-dsp

--
dupswapdrop -- the music-dsp mailing list and website:
subscription info, FAQ, source code archive, list archive, book reviews, dsp links
http://music.columbia.edu/cmc/music-dsp 
http://music.columbia.edu/mailman/listinfo/music-dsp

Re: fft scaling, shaping

by Charles Henry :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

The key properties of the Fourier transform that make it work this way are:
1. Isometry--the sum of complex normed squares is the same in time
domain as in frequency domain (specifically the L2 and little-L2
norms)
2. orthogonality--each "bin" in the frequency domain does not contain
energy from any other "bin"
but... frequencies between "bin"s in the Fourier transform are not
orthogonal to any of the "bin"s.  So, the impulse response of your
bandlimited filters may look a little weird in the fft, but is
nonetheless correct.

You may want to consider some different problems that may arise and
adopt changes to the simple steps I provided.  You may want to
consider windowing for dealing with non-stationary measurement.  Also,
the length of the window determines the lowest sub-band you can
support--the impulse response may be much longer than your window
size, which is not practical.  Also, assuming your 1/3 octave filters
are nearly orthogonal, you will have to have at least n points in your
fft to support n filters.  There's probably more considerations that I
haven't thought of yet.

Chuck

On Thu, Oct 8, 2009 at 12:35 PM, Don Morgan <dgm@...> wrote:

> Thanks for the information. I appreciate it.
>
> I will be using a calibrated microphone as an input that references x
> millivolts/Pascal.
>
> Don
>
> -----Original Message-----
> From: music-dsp-bounces@...
> [mailto:music-dsp-bounces@...] On Behalf Of Charles Henry
> Sent: Thursday, October 08, 2009 9:40 AM
> To: A discussion list for music-related DSP
> Subject: Re: [music-dsp] fft scaling, shaping
>
> If you need to get the output from the fft as numbers in the 1/3rd
> octave filters:
>
> 1.  Take the fft of each of your filters impulse response (sample if
> continuous), and store the results into vectors f1...fN
> 2.  Take the fft of your input, x
> 3.  Sum up the squares of fft(x)*fn to get raw ~p^2 numbers
> (proportional to intensity) in the nth subband
> 4.  Compute the SPL in each subband from step 3
>
> It's unclear what kind of scaling factor and reference level you will
> use to have to correctly calculate SPL in step 4.  Also, there is
> likely a way to reduce the number of multiplies in step 3, if you only
> consider a certain set of non-zero entries in fn to multiply with.
>
> Chuck
>
> On Thu, Oct 8, 2009 at 10:08 AM, Don Morgan (E-mail) <dgm@...>
> wrote:
>> Hi. I think this is a real simple one.
>>
>> In the past, I have always used 1/3 octave filters to develop the spl
>> for each band, but in this product we want to use an fft.
>>
>> My concern is in the scaling. Bandpass filters 'shape' and integrate a
>> signal differently than an fft but we need this to look like it was
>> done with 1/3 octave filters. Can someone direct me to a reference
>> that can shed some light on this?
>>
>> Thanks,
>> Don
>> --
>> dupswapdrop -- the music-dsp mailing list and website:
>> subscription info, FAQ, source code archive, list archive, book reviews,
> dsp links
>> http://music.columbia.edu/cmc/music-dsp
>> http://music.columbia.edu/mailman/listinfo/music-dsp
>>
> --
> dupswapdrop -- the music-dsp mailing list and website:
> subscription info, FAQ, source code archive, list archive, book reviews, dsp
> links
> http://music.columbia.edu/cmc/music-dsp
> http://music.columbia.edu/mailman/listinfo/music-dsp
>
> --
> dupswapdrop -- the music-dsp mailing list and website:
> subscription info, FAQ, source code archive, list archive, book reviews, dsp links
> http://music.columbia.edu/cmc/music-dsp
> http://music.columbia.edu/mailman/listinfo/music-dsp
>
--
dupswapdrop -- the music-dsp mailing list and website:
subscription info, FAQ, source code archive, list archive, book reviews, dsp links
http://music.columbia.edu/cmc/music-dsp 
http://music.columbia.edu/mailman/listinfo/music-dsp

Re: fft scaling, shaping

by Don Morgan (E-mail) :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Thanks again, Chuck.
When you mentioned the technique, of course, I realized how it worked  
and felt somewhat foolish for not thinking of it. But there is a lot  
to think of and I am a long way from knowing everything so I really  
appreciate your help here.

thanks,
Don

在 Oct 8, 2009,11:28 AM, Charles Henry 写道:

> The key properties of the Fourier transform that make it work this  
> way are:
> 1. Isometry--the sum of complex normed squares is the same in time
> domain as in frequency domain (specifically the L2 and little-L2
> norms)
> 2. orthogonality--each "bin" in the frequency domain does not contain
> energy from any other "bin"
> but... frequencies between "bin"s in the Fourier transform are not
> orthogonal to any of the "bin"s.  So, the impulse response of your
> bandlimited filters may look a little weird in the fft, but is
> nonetheless correct.
>
> You may want to consider some different problems that may arise and
> adopt changes to the simple steps I provided.  You may want to
> consider windowing for dealing with non-stationary measurement.  Also,
> the length of the window determines the lowest sub-band you can
> support--the impulse response may be much longer than your window
> size, which is not practical.  Also, assuming your 1/3 octave filters
> are nearly orthogonal, you will have to have at least n points in your
> fft to support n filters.  There's probably more considerations that I
> haven't thought of yet.
>
> Chuck
>
> On Thu, Oct 8, 2009 at 12:35 PM, Don Morgan <dgm@...> wrote:
>> Thanks for the information. I appreciate it.
>>
>> I will be using a calibrated microphone as an input that references x
>> millivolts/Pascal.
>>
>> Don
>>
>> -----Original Message-----
>> From: music-dsp-bounces@...
>> [mailto:music-dsp-bounces@...] On Behalf Of Charles  
>> Henry
>> Sent: Thursday, October 08, 2009 9:40 AM
>> To: A discussion list for music-related DSP
>> Subject: Re: [music-dsp] fft scaling, shaping
>>
>> If you need to get the output from the fft as numbers in the 1/3rd
>> octave filters:
>>
>> 1.  Take the fft of each of your filters impulse response (sample if
>> continuous), and store the results into vectors f1...fN
>> 2.  Take the fft of your input, x
>> 3.  Sum up the squares of fft(x)*fn to get raw ~p^2 numbers
>> (proportional to intensity) in the nth subband
>> 4.  Compute the SPL in each subband from step 3
>>
>> It's unclear what kind of scaling factor and reference level you will
>> use to have to correctly calculate SPL in step 4.  Also, there is
>> likely a way to reduce the number of multiplies in step 3, if you  
>> only
>> consider a certain set of non-zero entries in fn to multiply with.
>>
>> Chuck
>>
>> On Thu, Oct 8, 2009 at 10:08 AM, Don Morgan (E-mail) <dgm@...
>> >
>> wrote:
>>> Hi. I think this is a real simple one.
>>>
>>> In the past, I have always used 1/3 octave filters to develop the  
>>> spl
>>> for each band, but in this product we want to use an fft.
>>>
>>> My concern is in the scaling. Bandpass filters 'shape' and  
>>> integrate a
>>> signal differently than an fft but we need this to look like it was
>>> done with 1/3 octave filters. Can someone direct me to a reference
>>> that can shed some light on this?
>>>
>>> Thanks,
>>> Don
>>> --
>>> dupswapdrop -- the music-dsp mailing list and website:
>>> subscription info, FAQ, source code archive, list archive, book  
>>> reviews,
>> dsp links
>>> http://music.columbia.edu/cmc/music-dsp
>>> http://music.columbia.edu/mailman/listinfo/music-dsp
>>>
>> --
>> dupswapdrop -- the music-dsp mailing list and website:
>> subscription info, FAQ, source code archive, list archive, book  
>> reviews, dsp
>> links
>> http://music.columbia.edu/cmc/music-dsp
>> http://music.columbia.edu/mailman/listinfo/music-dsp
>>
>> --
>> dupswapdrop -- the music-dsp mailing list and website:
>> subscription info, FAQ, source code archive, list archive, book  
>> reviews, dsp links
>> http://music.columbia.edu/cmc/music-dsp
>> http://music.columbia.edu/mailman/listinfo/music-dsp
>>
> --
> dupswapdrop -- the music-dsp mailing list and website:
> subscription info, FAQ, source code archive, list archive, book  
> reviews, dsp links
> http://music.columbia.edu/cmc/music-dsp
> http://music.columbia.edu/mailman/listinfo/music-dsp
>

--
dupswapdrop -- the music-dsp mailing list and website:
subscription info, FAQ, source code archive, list archive, book reviews, dsp links
http://music.columbia.edu/cmc/music-dsp 
http://music.columbia.edu/mailman/listinfo/music-dsp