主要内容

dsp。ZoomFFT

光谱部分的高分辨率FFT

描述

dsp。ZoomFFT系统对象™计算信号在奈奎斯特区间的部分频率上的快速傅里叶变换(FFT)。通过设置适当的抽取因子D,采样率Fs,可以选择频率的带宽进行分析BW,在那里BWFs/D.您还可以通过选择所需频带的中心频率,在奈奎斯特区间内选择要分析的特定频率范围。

信号的分辨率是的比值Fs, FFT长度(l).使用缩放FFT,您可以通过在较短的信号上计算较小的FFT,来保留与原始信号上的全尺寸FFT相同的分辨率。较短的信号来自于抽取原始信号。节省来自能够计算更短的FFT,同时实现相同的分辨率。的抽取因子D,新的采样率,女性性功能障碍,是Fs/D,新的帧大小(和FFT长度)为Ldl/D.抽取信号的分辨率为女性性功能障碍/LdFs/l.为了获得较短波段的更高分辨率,使用原始FFT长度,l,而不是十进制FFT长度,Ld

计算一部分频谱的FFT:

  1. 创建dsp。ZoomFFT对象并设置其属性。

  2. 使用参数调用对象,就像调用函数一样。

有关系统对象如何工作的详细信息,请参见什么是系统对象?

创建

描述

zfft= dsp。ZoomFFT创建一个缩放FFT系统对象,zfft,它对输入信号的频率范围的一部分执行FFT。该对象使用指定的中心频率和抽取因子值确定执行FFT的频率范围。

例子

zfft= dsp.ZoomFFT (d)属性创建一个缩放FFT对象DecimationFactor属性设置为d

例子

zfft= dsp.ZoomFFT (d, Fc)属性创建一个缩放FFT对象DecimationFactor属性设置为d,以及CenterFrequency属性设置为足球俱乐部

例子

zfft= dsp.ZoomFFT (d, Fc, Fs)属性创建一个缩放FFT对象DecimationFactor属性设置为d,CenterFrequency属性设置为足球俱乐部,以及SampleRate属性设置为Fs

例子

zfft= dsp。ZoomFFT (名称,值创建一个缩放FFT对象,每个指定的属性设置为指定的值。将每个属性名用单引号括起来。您可以将此语法用于以前的任何输入参数组合。

例子:zfft = dsp.ZoomFFT(2,2e3,48e3,'FFTLength',64);

属性

全部展开

除非另有说明,属性为nontunable,这意味着在调用对象后不能更改它们的值。对象在调用时锁定,而释放功能解锁它们。

如果属性为可调,您可以随时更改其值。

有关更改属性值的详细信息,请参见使用系统对象的MATLAB系统设计

抽取因子,指定为正整数。此值指定对象减少输入信号带宽的因子。输入信号的行数必须是抽取因子的倍数。

例子:4

例子:8

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

所需频带的中心频率(以Hz为单位),指定为范围(-)中的实标量SampleRate/ 2,SampleRate/ 2)。

例子:0.5

例子:10

可调:是的

数据类型:|

FFT长度,指定为正整数。FFT长度必须大于或等于帧大小(输入行数)与抽取因子之比,l/D.默认的,[],指定FFT长度等于该比值,l/D

例子:24

例子:52

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

输入采样率(Hz),指定为正实标量。

例子:44100

例子:48000

数据类型:|

使用

描述

例子

zfftOut= zfft(输入)计算输入的放大FFT。输入的每一列都被视为一个独立的通道。该对象随时间独立地计算输入信号的每个通道的FFT。

输入参数

全部展开

对象计算其缩放FFT的数据输入,指定为向量或矩阵。输入行数必须是抽取因子的倍数。

该对象支持可变大小的输入万博1manbetx信号,只要输入帧大小是抽取因子的倍数。也就是说,即使在调用算法之后,您也可以更改输入帧大小(行数)。但是,通道数(列数)必须保持不变。

例子:randn(22日2)

数据类型:|
复数支持:万博1manbetx是的

输出参数

全部展开

放大FFT输出,返回为矢量或矩阵。如果FFT长度设置为自动,输出帧大小等于输入帧大小除以抽取因子。如果该对象指定了FFT长度,则输出帧大小等于指定的FFT长度。输出数据类型与输入数据类型匹配。

例子:2) randn(11日

数据类型:|
复数支持:万博1manbetx是的

对象的功能

要使用对象函数,请将System对象指定为第一个输入参数。例如,释放system对象的系统资源obj,使用这种语法:

发行版(obj)

全部展开

一步 运行系统对象算法
释放 释放资源并允许更改系统对象属性值和输入特征
重置 重置的内部状态系统对象

例子

全部折叠

使用放大FFT对48 kHz采样的信号计算[1500 Hz 2500 Hz]子带的FFT。

初始化

将中心频率设置为2 kHz,感兴趣的带宽设置为1 kHz。带宽以中心频率为中心。抽取因子是输入采样率(48khz)和感兴趣的带宽(1khz)之比。选择FFT长度为64。设置输入帧大小为抽取因子乘以FFT长度。创建一个dsp。ZoomFFT对象与指定的抽取因子,中心频率,采样率,FFT长度。

Fs = 48e3;CF = 2e3;BW = 1e3;D = Fs/BW;Fftlen = 64;L = D * fftlen;ZFFT = dsp。ZoomFFT (D,CF,Fs,“FFTLength”, fftlen);

频率

FFT计算频率从1500 Hz开始,间隔为Fs / (D * fftLen)美元Hz之间的距离,这是分辨率或可以被区分的最小频率。计算变焦FFT的频率数等于FFT长度。

Fsd = Fs/D;F = CF + (Fsd/fftlen)*(0:fftlen-1)-Fsd/2;

初始化作用域

创建一个数组图来显示频率F

Ap = dsp。ArrayPlot (“XDataMode”“自定义”“CustomXData”F...“YLabel”'z .* conj(z)'“包含”的频率(赫兹)“YLimits”, e3 1.1 [0],...“标题”sprintf (抽取因子= %d。中心频率= %d Hz。分辨率= %f Hz'D CF (Fs / D) / fftlen));

正弦波发生器

创建频率为1625hz, 2000hz和2125 Hz的正弦波。

音调= [1625 2000 2125];sin = dsp。SineWave (“SampleRate”Fs,“频率”、音调“SamplesPerFrame”L);

流媒体

通过一个采样率为48khz的有噪声的正弦波。计算这个正弦波在子带[1500 Hz 2500 Hz]的放大FFT。通过将零频率分量移到数组的中心来重新排列傅里叶变换。在阵列图中查看1625hz、2000hz和2125hz的音调。

i = 1:1000 x = sum(sin (),2)+1e-1*randn(L,1);Z = zfft(x);Z = fftshift(Z);美联社(z。*连词(z));结束

dsp。ZoomFFT对象接受可变大小的输入,只要输入是抽取因子的倍数。输入通道的数量不能改变。

创建一个dsp。ZoomFFT抽取因子为4,中心频率为2 kHz,输入采样率为48 kHz的对象。传递一个4*64行2列的随机输入。将行数更改为4*128和4*32。得到的FFT长度分别为64、128和32。输出的大小分别为[64 2]、[128 2]和[32 2]。

zfft = dsp.ZoomFFT(4,2e3,48e3);Y1 = zfft(randn(4*64,2));Y2 = zfft(randn(4*128,2));Y3 = zfft(randn(4*32,2));

设置FFT长度为256并传递可变大小的输入。所有输出的大小为[256 2]。

释放(zfft);zfft。FFTlength = 256; y4 = zfft(randn(4*64,2)); y5 = zfft(randn(4*128,2)); y6 = zfft(randn(4*32,2));

算法

变焦FFT算法在计算信号的FFT之前利用带通滤波。带通滤波的概念是假设你对带[F1F2]的原始输入信号,以该速率采样Fs赫兹。如果你让这个信号通过一个复杂的(单侧)带通滤波器的中心在足球俱乐部= (F1+F2)/2,表示带宽BWF2- - - - - -F1,然后对信号进行因子的下采样D= (Fs/BW),所需的频带向下到基带。

如果足球俱乐部不能用的形式表示k×Fs/D,在那里k为整数,则移位后抽取的频谱不以DC为中心。在这种情况下,中心频率被转换为Fd

F d F c F 年代 / D × f l o o r D × F c + F 年代 / 2 / F 年代

首先设计低通滤波器原型,然后将低通系数与复指数相乘,从而得到复带通滤波器。该算法采用多速率、多级FIR滤波器作为低通滤波器原型。为了得到带通滤波器,每级的系数进行频移。抽取因子是各阶段的累积抽取因子。采用高效多相结构实现了复杂带通滤波器和抽取器。有关多速率多级FIR滤波器原型的复杂带通滤波器设计的更多细节,请参见变焦FFT而且复杂带通滤波器设计

参考文献

哈里斯,F.J.通信系统多速率信号处理“,.Prentice Hall, 2004, pp. 208-209。

扩展功能

版本历史

在R2017b中引入