資源簡介
ZFFT matlab實現,用于頻譜細化以函數的方式實現,非常方便

代碼片段和文件信息
function?[f?y]?=?zoomfft(x?fi?fa?fs)??
%ZOOMFFT?
%?x為采集的數據??
%?fi為分析的起始頻率??
%?fa為分析的截止頻率??
%?fs為采集數據的采樣頻率??
%?f為輸出的頻率序列??
%?y為輸出的幅值序列(實數)??
??
f0?=?(fi?+?fa)?/?2;?????????????????%中心頻率??
N?=?length(x);??????????????????????%數據長度????
r?=?0:N-1;??
b?=?2*pi*f0.*r?./?fs;?????????????????
x1?=?x?.*?exp(-1j?.*?b);????????????%移頻將觀察的頻帶中點移到零頻??
??
bw?=?fa?-?fi;?????????????????????%觀察頻帶帶寬????????????????????
???????????????????????
B?=?fir1(32?bw?/?fs);??????????????%低通濾波?截止頻率為0.5bw???Hamming?window?,32?order?
x2?=?filter(B?1?x1);??????????????%通過低通濾波器后的信號輸出
??
c?=?x2(1:floor(fs/bw):N);???????????%對低通濾波后的信號以floor(fs/bw)?D=floor(fs/bw)重新采樣??
N1?=?length(c);??
f?=?linspace(fi?fa?N1);??
y?=?abs(fft(c))?./?N1?*?2;???????????????????????????????
y?=?circshift(y?[0?floor(N1/2)]);??%將負半軸的幅值移過來??
end
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????????966??2017-12-02?17:06??zoomfft.m
評論
共有 條評論