选带傅里叶变换(zoom-fft)

选带傅里叶变换的原理大家可以看书。大致的步骤为

  1. 移频 (将选带的中心频率移动到零频)
  2. 数字低通滤波器  (防止频率混叠)
  3. 重新采样  (将采样的数据再次间隔采样,间隔的数据取决于分析的带宽,就是放大倍数)
  4. 复FFT (由于经过了移频,所以数据不是实数了)
  5. 频率调整 (将负半轴的频率成分移到正半轴)

程序如下:

function [f, y] = zfft(x, fi, fa, fs)
% 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
x2 = filter(B, 1, x1);               

c = x2(1:floor(fs/bw):N);           %重新采样
N1 = length(c);
f = linspace(fi, fa, N1);
y = abs(fft(c)) ./ N1 * 2;
y = circshift(y, [0, floor(N1/2)]);            %将负半轴的幅值移过来
end

应用实例:

fs = 2048;
T = 100;
t = 0:1/fs:T;
x = 30 * cos(2*pi*110.*t) + 30 * cos(2*pi*111.45.*t) + 25*cos(2*pi*112.3*t) + 48*cos(2*pi*113.8.*t)+50*cos(2*pi*114.5.*t);
[f, y] = zfft(x, 109, 115, fs);
plot(f, y);

效果:

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-16 13:18:43

选带傅里叶变换(zoom-fft)的相关文章

快速傅里叶变换(FFT)

快速傅里叶变换(FFT)算法[详解] 快速傅里叶变换(Fast Fourier Transform)是信号处理与数据分析领域里最重要的算法之一.我打开一本老旧的算法书,欣赏了JW Cooley 和 John Tukey 在1965年的文章中,以看似简单的计算技巧来讲解这个东西. 本文的目标是,深入Cooley-Tukey  FFT 算法,解释作为其根源的"对称性",并以一些直观的python代码将其理论转变为实际.我希望这次研究能对这个算法的背景原理有更全面的认识. FFT(快速傅里叶

【知识总结】快速傅里叶变换(FFT)

这可能是我第五次学FFT了--菜哭qwq 先给出一些个人认为非常优秀的参考资料: 一小时学会快速傅里叶变换(Fast Fourier Transform) - 知乎 小学生都能看懂的FFT!!! - 胡小兔 - 博客园 快速傅里叶变换(FFT)用于计算两个\(n\)次多项式相乘,能把复杂度从朴素的\(O(n^2)\)优化到\(O(nlog_2n)\).一个常见的应用是计算大整数相乘. 本文中所有多项式默认\(x\)为变量,其他字母均为常数.所有角均为弧度制. 一.多项式的两种表示方法 我们平时常

快速傅里叶变换(FFT)算法【详解】

快速傅里叶变换(Fast Fourier Transform)是信号处理与数据分析领域里最重要的算法之一.我打开一本老旧的算法书,欣赏了JW Cooley 和 John Tukey 在1965年的文章中,以看似简单的计算技巧来讲解这个东西. 本文的目标是,深入Cooley-Tukey  FFT 算法,解释作为其根源的“对称性”,并以一些直观的python代码将其理论转变为实际.我希望这次研究能对这个算法的背景原理有更全面的认识. FFT(快速傅里叶变换)本身就是离散傅里叶变换(Discrete

傅里叶变换,fft,fft energy

傅里叶变换:将信号转化到频率空间,详解:http://blog.jobbole.com/70549/ 图像傅里叶变换:傅立叶变换的物理意义是将图像的灰度分布函数变换为图像的频率分布函数, 空间三维,图像二维,因此空间中物体在另一个维度上的关系,就必须由梯度来表示,这样我们才能通过观察图像得知物体在三维空间中的对应关系. 图像傅里叶详解:http://www.cnblogs.com/EverYoung/archive/2012/05/29/2524058.html fft:快速傅里叶变换,nump

傅里叶变换(FFT)的多相滤波结构实现

作者:桂. 时间:2017-09-25  14:53:01 链接:http://www.cnblogs.com/xingshansi/p/7591868.html 前言 以前在梳理信号频域变换的时候,提到逆序级联FFT(Inverse cascade FFT)的实现思路,后来分析多相滤波信道化,才发现其实Cascade FFT就是FFT的多相结构实现,在此系统梳理一下. 一.多相结构FFT实现 A-传统测频技术分析 信号的短时傅里叶变换(STFT)可表示为: 其中s为输入信号,w为对应窗函数.长

快速傅里叶变换(FFT)求解多项式乘法

在我还会FFT的时候赶快写下一篇博客留着以后看...... FFT是用来求解多项式乘法,那么首先我们要知道多项式是啥. \[A(x) = a_0+a_1x^1+a_2x^2+···+a_{n-1}x^{n-1} \] 这是个n-1次多项式(最高项是\(x^{n-1}\)),\(a_0,a_1,···a_{n-1}\)是它各项的系数,该多项式可以写成: \[A(x) = \sum_{j=0}^{n-1}a_jx^j \] 一个多项式可以通过一组系数所确定,而这组系数所组成的向量也叫做系数向量(如\

FFT算法实现——基于GPU的基2快速傅里叶变换

最近做一个东西,要用到快速傅里叶变换,抱着蛋疼的心态,自己尝试写了一下,遇到一些问题. 首先看一下什么叫做快速傅里叶变换(FFT)(来自Wiki): 快速傅里叶变换(英语:Fast Fourier Transform, FFT),是离散傅里叶变换的快速算法,也可用于计算离散傅里叶变换的逆变换.快速傅里叶变换有广泛的应用,如数字信号处理.计算大整数乘法.求解偏微分方程等等. 对于复数串行,离散傅里叶变换公式为: 直接变换的计算复杂度是O(n^2).快速傅里叶变换可以计算出与直接计算相同的结果,但只

FFT快速傅里叶变换

摘自:https://www.cnblogs.com/RabbitHu/p/FFT.html 快速傅里叶变换(FFT)是一种能在O(nlogn)O(nlog?n)的时间内将一个多项式转换成它的点值表示的算法. 点值表示:设A(x)是一个n−1次多项式,那么把n个不同的x代入,会得到n个y.这n对(x,y)唯一确定了该多项.由多项式可以求出其点值表示,而由点值表示也可以求出多项式. 设有两个n−1次多项式A(x)和B(x)),我们的目标是——把它们乘起来.普通的多项式乘法是O(n^2),但有趣的是

图像的傅里叶变换

图像的傅里叶变换 备份自:http://blog.rainy.im/2015/11/03/fourier-transform-in-image-processing/ Fourier 傅里叶变换(Fourier Transform)是非常重要的数学分析工具,同时也是一种非常重要的信号处理方法.我记得本科课程电路原理中有提到过,但由于计算过于复杂,好像是超出考试范围了,所以并没有深入学习.最近实验中需要对图像进行滤波处理,文献中提到的方法通常是经过傅里叶变换之后对频域进行过滤,将图像中的低频信息与