三分之一倍频程谱
三分之一倍頻程譜是一種頻率分析方法,它具有譜線少頻帶寬的特點。
倍頻程實際上是頻域分析中頻率的一種相對尺度。倍頻程譜是由一系列頻率點以及對應這些頻率點附近的頻帶內信號的平均幅值(有效值)所構成。這些頻率點稱為中心頻率fc,中心頻率附近的頻帶出于下限頻率fl和上限頻率fu之間。
三分之一倍頻程譜是按逐級式頻率進行分析的,它是由多個帶通濾波器并聯組成,為的是使這些帶通濾波器的帶寬覆蓋整個分析頻帶。根據國籍電工委員會(IEC)的推薦,三分之一倍頻程的中心頻率為:
fc = 1000*10^(3n/30)Hz (n = ...-3,-2,-1,0,1,2,3...)
但在實際應用中,通常采用中心頻率是其近似值。按照我國現行標準規定,中心頻率為1Hz,1.25Hz,1.6Hz,2Hz,2.5Hz,3.15Hz,4Hz,5Hz,6.3Hz,8Hz,10Hz,...。可以看出,每隔三個中心頻率,頻率值增加一倍。三分之一倍頻程的上下限頻率以及中心頻率之間的關系為:
fu/fl = 2^(1/3);fc/fl = 2^(1/6);fu/fc = 2^(1/6)
三分之一倍頻程帶寬為
△f = fu - fl
對于三分之一倍頻程譜可以通過兩種處理方法得到。一種方法是在整個分析頻率從范圍,按照不同的中心頻率從定義對采樣信號進行帶通濾波,然后,計算出濾波后數據的均方值或均方根值(有效值),這樣,變得到對應每個中心頻率的功率譜值或幅值譜值。由于但分之一倍頻程譜的濾波帶與中心頻率的比值是不變的,這種處理方法稱為恒定百分比帶寬濾波法。另一種方法首先對采樣信號進行快速傅立葉變換,計算出功率譜或幅值譜,然后用功率譜或幅值譜的數據,計算每一個中心頻率帶寬內數矩的平均值,這樣便處理得到三分之一倍頻程譜值。這種方法顯然要比第一種方法處理效率要高的多。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 三分之一倍頻程處理
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear??????????????% Remove items from workspace, freeing up system memory
clc????????????????% Clear Command Window
clf????????????????% Clear current figure window
close all hidden???% removal draws only those lines that are not obscured
???????????????????% by other objects in the field of view.
format long
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 加載數據
fun = @(t) sin(50*2*pi*t) +sin(20*2*pi*t) + randn(size(t));
sf = 300;???????????????????????% 采樣頻率
n = 1000;??????????????????????% 數據長度
t = 0:1/sf:(n-1)/sf;????????????% 建立離散時間列向量
x = fun(t);?????????????????????% 產生時間序列數據
% 定義三分之一倍頻程的中心頻率
f = [1.00 1.25 1.60 2.00 2.50 3.15 4.00 5.00 6.300 8.00];
fc = [f,10*f,100*f,1000*f,10000*f];
oc6 = 2^(1/6);????????% 中心頻率與下限頻率的比值
nc = length(fc);??????% 取中心頻率總的長度?????
nfft = 2^nextpow2(n); % 大于并最接近n的2的冪次方長度
a = fft(x,nfft);??????% FFT變換
yc = zeros(1,nc);
for j = 1:nc???
??????fl = fc(j)/oc6;??% 下限頻率???
??????fu = fc(j)*oc6;??????% 上限頻率
??????nl = round(fl*nfft/sf+1);??% 下限頻率對應的序號
??????nu = round(fu*nfft/sf+1);??% 上限頻率對應的序號
??????if fu > sf/2?????% 如果上限頻率大于折疊頻率則循環中斷
?????????m = j-1; break
??????end
????% 以每個中心頻率段為通帶進行帶通頻域濾波?
??????b = zeros(1,nfft);
??????b(nl:nu) = a(nl:nu);
??????b(nfft-nu+1:nfft-nl+1) = a(nfft-nu+1:nfft-nl+1);
??????c = ifft(b,nfft);
????%計算對應每個中心頻率段的有效值
??????yc(j) = sqrt(var(real(b(1:n))));
end
%繪制輸入時程曲線圖形
subplot(2,1,1);plot(t,x);
xlabel('時間 (s)');ylabel('加速度 (g)');grid on;?????????????????????
%繪制三分之一倍頻程有效值圖形
subplot(2,1,2); plot(fc(1:m),yc(1:m));
xlabel('頻率 (Hz)');ylabel('有效值'); grid on;
總結
- 上一篇: 上海亚商投顾:沪指窄幅震荡 ChatG
- 下一篇: Android闪闪发光字体