python 频谱图,qt 频谱

  python 频谱图,qt 频谱

  FFT是离散傅立叶变换的快速算法,可以对信号进行变换。

  到频域。尽管一些信号难以在时域中识别任何特征,例如

  转换到频域后,特征变得容易理解。这是很多信号。

  分析了采用FFT变换的原因。此外,FFT表示信号的频谱。

  摘录。这也是光谱分析中常用的方法。

  虽然很多人都知道FFT是什么,能做什么,怎么做到的。

  然而,FFT后的结果意味着什么呢?不知道怎么决定用。

  你什么时候做FFT?

  现在,静羽将根据实际经验讲述FFT结果的具体物理意义。

  模拟信号经ADC采样后成为数字信号。随机突击检查

  该定理表明采样频率大于信号频率的两倍。这些我.

  不要在这里唠叨。

  采样的数字信号可以通过FFT变换。n个采样点,

  FFT后,可以得到n个点的FFT结果。为了简化FFT

  通常,n是2的整数次方。

  设采样频率为Fs,信号频率为f,采样点数为n,则FFT

  结果可以得到n点的复数。每个点对应一个频率。

  关键点。这个点的本征值就是其频率值的幅度特性。具体来说,原始的和

  信号宽度有什么关系?设原始信号的峰值为A,然后FFT

  结果中每一点(除了第一点的DC分量)的模都是a

  一半时间。第一点是DC分量,其模值是DC分量。

  n次。每个点的相位就是该频率下信号的相位。

  第一个点代表DC分量,即0Hz,最后一个点n的下一个点

  点(其实这是不存在的。这是假设点N 1,也是

  可以认为第一个点分一半,另一半最后移动)

  采样频率Fs,其中间在N-1点被N等分,以及每个点的频率

  依次增加。例如,点n代表的频率为fn=(n-1) * fs/n。

  从上式可以看出,Fn能够识别的频率为FS/N,如果

  如果采样频率Fs为1024Hz,采样点数为1024,则可以识别1Hz。

  1024Hz的采样率采样1024个点,正好是1秒,也就是1秒。

  如果对的时间信号执行FFT,结果可以分析到1Hz,如果采样为2秒。

  FFT之后,结果可以分析到0.5Hz。要提高频率

  分辨率需要增加采样点数,也就是采样时间。频率分辨率和

  采样时间是倒数。

  如果FFT后的点n用复数a bi表示,则复数的类型为

  An=根号a*a b*b,相位为pn=Atan2(b,a)。根据上述结果,

  可以计算对应于N点1和n=N/2)的信号的公式如下。

  An/(n/2) cos )2*pi*fn*tpn(即2*an/n*cos )2*pi*fn*tpn)。

  对于n=1点的信号,是宽度为a1/n的直流分量。

  由于FFT结果的对称性,通常只使用前半部分的结果。

  即少于一半采样频率的结果。

  然后说了半天,看着公式晕过去了,下面平静的羽毛变成了实际。

  用信号解释。

  包含频率为50Hz的2V直流分量,

  相位为-30度、振幅为3V、频率为75Hz交流信号,

  相位为90度、宽度为1.5V的交流信号,公式如下。

  s=23 * cos(2 * pi * 50 * t-pi * 30/180)1.5 * cos(2 * pi * 75 * TPI * 90/180))

  公式中的cos参数是弧度,所以-30度和90度必须分别换算成弧度。

  以256Hz的采样率对信号进行采样,总共采样了256个点。

  根据以上分析,fn=(n-1) *Fs/N每两个

  点与点之间的间隔是1Hz,第n个点的频率是n-1。我们的信号

  有三个频率:0Hz,50Hz,75Hz,分别是第一点,第五十一点,

  76点有一个峰值,其他点应该接近0。实际情况如何?

  看FFT结果的幅度。

  图1 FFT结果

  从图中可以看出,在第1、51和76点附近

  一个比较大的值。仔细看看这三点周围的数据。

  1: 512 0i

  2: -2.6195E-14-1.4162E-13i

  3: -2.8586E-14-1.1898E-13i

  0: 00: -6.2076E-13-2.1713E-12i

  1: 00: 332.55-192i

  2: 00: -1.6707E-12-1.5241E-12i

  在0500时:-2.2199E-13 -1.0076E-12i

  0600小时:3.4315E-12 192i

  7: 00: -3.0263E-14 7

  5609E-13i

  显然,价值观

  都很小,可以认为是0,也就是那些频率点的信号幅度为0。

  接下来,我们来计算每个点的振幅。分别计算这三个点的模值,

  结果如下:

  1: 512

  1: 00: 384

  6: 00: 192

  根据公式,DC分量可以计算如下:512/n=512/256=2;

  50Hz信号的幅度为:384/(n/2)=384/(256/2)=3;75Hz信号

  幅度为192/(N/2)=192/(256/2)=1.5。从光谱分析可以看出。

  振幅正确。

  然后计算相位信息。DC信号没有相位,所以不用担心。

  它。先计算50Hz信号的相位,atan2(-192,332.55)=-0.5236,

  结果是弧度,换算成角度就是180 *(0.5236)/pi=-30.0001。又

  计算75Hz信号的相位,atan2(192,3.4315E-12)=1.5708弧度,

  角度为180*1.5708/pi=90.0002。可见相也是对的。

  根据FFT结果和上述分析计算,我们可以写出信号表达式。

  类型,是我们开始提供的信号。

  总结:假设采样频率为Fs,采样点数为N,FFT后,a

  点n(n从1开始)表示的频率为:fn=(n-1)* fs/n;该点的模数值

  除以N/2是对应于该频率的信号的幅度(对于DC信号除以

  n);这个点的相位就是对应于这个频率的信号的相位。相位计算

  可以通过函数atan2(b,a)来计算。Atan2(b,a)是坐标为(a,b)的点的角度

  度,范围从-到。为了精确到xHz,采样长度需要为1/x秒。

  发信号,做FFT。为了提高频率分辨率,有必要增加采样点的数量,

  这在一些实际应用中是不现实的,需要在短时间内完成。

  分析。解决这个问题的方法是频率细分,更简单的方法是

  对信号进行短时间采样,然后添加一定数量的零使其变长。

  达到要求的点数,再进行FFT,可以在一定程度上提高频率分辨率。

  具体的频率细分方法可以参考相关文献。

  [附录:用于此测试数据的matlab程序]

  全部关闭;%首先关闭所有图片。

  ADC=2;% DC分量振幅

  a1=3;%频率F1信号的振幅

  A2=1.5%频率F2信号的振幅

  F1=50%信号1频率(赫兹)

  F2=75%信号2频率(赫兹)

  Fs=256%采样频率(赫兹)

  P1=-30;%信号1相位(度)

  P2=90;%信号相位(度)

  N=256%采样点

  t=[0:1/Fs:N/Fs];%采样时间

  %信号

  s=Adc A1 * cos(2 * pi * F1 * t pi * P1/180)A2 * cos(2 * pi * F2 * t pi * P2/180);

  %显示原始信号

  情节;

  标题(“原始信号”);

  图;

  Y=fft(S,N);%进行FFT变换

  ayy=(ABS(Y));%取模

  plot(Ayy(1:N));%显示原始FFT模数结果。

  标题( FFT模数);

  图;

  Ayy=Ayy/(N/2);%转换成实际振幅。

  Ayy(1)=Ayy(1)/2;

  f=([1:N]-1)* Fs/N;%转换成实际频率值。

  plot(F(1:N/2),Ayy(1:N/2));%显示转换后的FFT模数结果。

  标题(幅频曲线);

  图;

  pyy=[1:N/2];

  因为i=1:N/2

  pyy(I)=相位(Y(I));%计算阶段

  Pyy(I)=Pyy(I)* 180/pi;%转换成角度

  结束;

  plot(F(1:N/2),Pyy(1:N/2));%显示相位图

  标题(“相位-频率曲线”);

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: