View Single Post
      07-28-2013, 04:22 PM   #101
MCaro
New Member
0
Rep
9
Posts

Drives: M3 & 335
Join Date: Jul 2013
Location: NJ

iTrader: (0)

Quote:
Originally Posted by bradleyland View Post
A few questions:

1) What tool are you using to perform the FFT?
2) What windowing function and size are you using?
3) What do you mean by a 1/3 octave snapshot? Do you mean a bandpass filter; if so, what specific frequency range?

Below are answers to my own questions

1) Swamp and I are both using Audacity's "Plot Spectrum" feature, so it'd be worth running it through another tool. The math should be the same, regardless of the tool though.

2) I've tried Hanning (preferred), Hamming, and Rectangular at 512 window size. All produced highest amplitude peaks at 320 Hz - 330 Hz

3) I applied a lowpass filter, but it's completely unnecessary for the FFT analysis because of the windowing function. It just eliminates noise, where "noise" is defined as anything that falls outside what could reasonably be assumed to be the primary cylinder firing impulse.

In general, I don't see much amplitude at all in the 1200hz range when using rectangular/hamming/hanning windows at a window size of 512. How are you extracting audio from the video? I used a tool called AudioHijack to capture system audio internally, but a better method would be to download the video data, then extract the audio stream.
Just for another perspective, I used MATLAB to compute the PSD of the signal. Please see the attached images. Notice there is a peak adjacent to the one I have selected

If you're interested in the code, it is as follows:

Code:
clear; clc; close all;
% Read the file in in
[clip, fs] = wavread('m3clip.wav');
% Shorten the clip and only select one channel
clip = clip(4*fs:fs*(4.3),1);
% Have a listen to make sure it is okay
soundsc(clip , fs)
% Display the length of the clip
disp(sprintf('The length of the clip is %1.2f s',length(clip)/fs))
% Apply a hamming window
clip = hamming(length(clip)).*clip;
% Create a linearly space independent time vector
t=linspace(0,length(clip)/fs,length(clip)); 
% Find the coefficients for a lowpass butterworth filter
[B,A] = butter(5,600/(fs/2),'low');
% Filter the signal
clip = filter(B,A,clip);
% Find the coefficients for a highpass butterworth filter
[B,A] = butter(5,200/(fs/2),'high');
% Filter the signal
clip = filter(B,A,clip);
% Pad the signal with zeroes to increase the FFT's efficiency
nfft = 2^nextpow2(length(clip));
Pxx = abs(fft(clip,nfft)).^2/length(clip)/fs;

% Create a single-sided spectrum
Hpsd = dspdata.msspectrum(Pxx(1:length(Pxx)/2),'Fs',fs);  
plot(Hpsd); 
title('Power Spectral Density for the F80 M3 Sound Analysis Thread')
Let me know if I made any mistakes in my script.
Attached Images
  

Last edited by MCaro; 07-28-2013 at 05:40 PM.. Reason: forgot to window the signal
Appreciate 0