声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

声振论坛 展示 基础理论 查看内容

[原创]exzfft_m程序

2011-3-6 23:16| 发布者: FtpAdmin| 查看: 1052| 评论: 0|来自: 振动论坛

摘要: 在http://www.chinavib.com/forum/vi ... 23569highlight=czt上我曾提供了zfft_m的函数,yangzj 指出:“这个程序的采用这样的滤波有问题哦,使整个程序都没有意义了.既然都已经做了 nf点的FFT了,那直接用这个结果的频 ...
http://www.chinavib.com/forum/vi ... 23569&highlight=czt上我曾提供了zfft_m的函数,yangzj 指出:“这个程序的采用这样的滤波有问题哦,使整个程序都没有意义了.既然都已经做了 nf点的FFT了,那直接用这个结果的频率分辨率已经很低了,也就没必要后面的细化了. ”他批评得对。我把原函数作了改进,用了decimate函数既滤波又下采样,现提供该ZFFT函数共享。该函数文件名为exzfft_m:
function y=exzfft_m(x,fi,fs,nfft,np)
% x 被测信号,被测信号长度要>=nfft*np
% fi  细化的最低频率
% fs  采样频率
% nfft 作细化FFT长
% np 放大倍数
% y  细化FFT输出
nt=length(x);     %计算读入数据长度
fa=fi+0.5 * fs/np;     %最大细化截止频率
nf= 2^nextpow2(nt);     %取大于nt且最接近nt的整数次方为FFT长度
na=round(0.5 * nf/np+1);     %确定细化带宽的数据长度
% 频移
n=0: nt-1;     %建一个递增向量
b=n*pi* (fi+fa)/fs;     %乘单位旋转因子进行频移
y=x.*exp(-i*b);
%  滤波和下采样
c=decimate(y,np);
% FFT
y=fft(c, nfft) * 2/nfft;
以下又给出测试程序,计算结果如下:

[ 本帖最后由 zhangnan3509 于 2007-7-4 15:32 编辑 ]

本文内容由 songzy41 提供



[attach]17885[/attach]

[attach]17886[/attach]

最新评论

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-20 14:29 , Processed in 0.030057 second(s), 15 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部