• 大小: 709B
    文件类型: .zip
    金币: 2
    下载: 2 次
    发布日期: 2021-07-13
  • 语言: Matlab
  • 标签: ZFFT  zoomfft  

资源简介

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

评论

共有 条评论