Re: some suggestions on my octave-band spectrogram analysis in fixed point DSP implementation
- From: "Simon" <Simon.jwfg@xxxxxxxxx>
- Date: 17 Aug 2006 22:31:15 -0700
Well, i am aiming to design a 1/3 octave band spctrogram for vibration
analysis to find the perifodic fault of the mechanical gearbox. the
target frequency range is from 0.7HZ to 325HZ.
I use the digital 1/3 octave bandpass filter banks to achieve my goal.
First, I did it in MATLAB.
the algorithm goes like this way,
first, i use Tms320LF2407 DSP board to sampling the data, with the
sampling frequency is 775HZ. then
1) DC removal
2) respectively calculate the coefficients of the 4 order IIR bandpss
filter for
first three center frequency. let's say one center frequency
stands for one channel
we start from the biggest frequency that is 325 hz.
and the first three coefficients bank is [B_high,A_high],
[B_center,A_center], [B_low,A_low].
[B_high,A_high] =oct3design(Fc,Fs, 4);
y_output=filter(B_high,A_high,x_input);
P(45)=std(y_output);
[B_center,A_center] =oct3design(Fc,Fs, 4);
y_output=filter(B_center,A_center,x_input);
P(44)=std(y_output);
[B_low,A_low] =oct3design(Fc,Fs, 4);
y_output=filter(B_low,A_low,x_input);
P(43)=std(y_output);
thus ,calculate the first P(45), P(44),P(43) ,
3) decimate the input by the factor of 2,that is
first there is one 30 order FIR lowpass filter, then
resample the input at the interval of 2.
then, repeat the step 2), while the center frequency is decreasing ,
the sampling rate is decreasing by 2, (multirate filter, decimate), but
the coefficients [B_high,A_high], [B_center,A_center], [B_low,A_low]
is the same.
x_input=decimate(x_input,2);
y_output=filter(B_high,A_high,x_input)
;
p(i)=std(y_output);
4) repeat step 3) till calculate P(1),
thus, bar(P); we can get the spectrum.
The problem is :
I get the right result from MATLAB, the value from P(45) to
P(1) is right in MATLAB.
But after the implementation inside the fixed point dsp TMS320LF2407
,
I found P(45) to P(15), the result is almost the same as that from
MATLAB,but from
P(14) to P(1), I found that some of the result from DSP is bigger than
that from MATLAB.
So, I thought the calculation may lost the resolution for the low
frequency after serval downsamping by 2.
And I want to know how to resolve this problem. Should I change the
coefficients after P(14), since after serval times decimate by 2, the
value of the input is gradually decrease to near zero, i thought the
problem is because these value. In matlab, the resolution is enough,
but for the fixed point DSP, it is hard to calculate the IIR bandpass
filter , when the input is near zero.
hope you understand me. how to resolve this problem, i want to get the
same result of P, not the high frequency ,but the low frequency. thanks
.
- Follow-Ups:
- References:
- some suggestions on my octave-band spectrogram analysis in fixed point DSP implementation
- From: Simon
- Re: some suggestions on my octave-band spectrogram analysis in fixed point DSP implementation
- From: Vladimir Vassilevsky
- Re: some suggestions on my octave-band spectrogram analysis in fixed point DSP implementation
- From: Simon
- Re: some suggestions on my octave-band spectrogram analysis in fixed point DSP implementation
- From: Vladimir Vassilevsky
- some suggestions on my octave-band spectrogram analysis in fixed point DSP implementation
- Prev by Date: Re: Rechargeable batteries
- Next by Date: Re: Can I atomically grab a CPU timer value in TMS320x280x DSP?
- Previous by thread: Re: some suggestions on my octave-band spectrogram analysis in fixed point DSP implementation
- Next by thread: Re: some suggestions on my octave-band spectrogram analysis in fixed point DSP implementation
- Index(es):
Relevant Pages
|