Low frequency results using poctave
3 ビュー (過去 30 日間)
古いコメントを表示
Now I have time-waveform data with time span of 40s and dt 1e-3 s, and I want the octave spectrum of the waveform under 1 Hz.
However, unfortunately, it seems that using "poctave" function, we can get spectrum only over 3 Hz, according to the instruction of the function.
Can I get low frequency octave spectrum?
0 件のコメント
回答 (1 件)
Mathieu NOE
2025 年 6 月 26 日
hello
right, poctave does not go below 3 Hz in the best case and that's already low enough for acoustics (normally)
unless you want to rework / extend some existing code (attached FYI) , my 2 cents suggestion would be simply to "fool" poctave by passing a xx times higher sampling rate argument then divide the resulting octave bands central frequencies by the same factor (I opted for power of 2 factor so that we stay in line with the definition of the octave bands)
Of course there is a bit of extra work to put back everything nicely in a bar plot ..
quick and dirty example below :
% your data (dummy)
dt= 1e-3;
fs = 1/dt;
duration = 40;
t = (0:dt:duration);
freq = 1;
y = sin(2*pi*freq*t)+0.1*randn(size(t));
% shift Fs
Fs_factor = 32;
fss = fs*Fs_factor;
[p,cf] = poctave(y,fss,'FrequencyLimits',[3 fs/2]);
cf = cf/Fs_factor
% show the results in dB ref 20 microP
refdB = 20*log10(20e-6);
P_dB = 20*log10(p) - refdB;
plot(cf,P_dB,'-*')
set(gca,'Xscale','log');
2 件のコメント
Mathieu NOE
2025 年 6 月 26 日
and here are the other solution / files Ipromised you , but there is more work to extend the filter banks to even lower frequencies
参考
カテゴリ
Help Center および File Exchange で Measurements and Spatial Audio についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
