零在fft频率幅度问题

19日视图(30天)
低音茶
低音茶 2021年6月6日
编辑: 保罗 2021年6月8日
嘿,
我想转矩和转速fft这样的数据集
其实我知道理论和读过文档的fft和补零,等等。
但可以肯定的是,我会正确的unperiodic光谱测量数据,我startet众所周知的信号构建来验证代码
例子:
%认为我会有一个信号叠加3单sinusodials . .
A0 = 9.5;A1 = 25;A2 = 15;%物理振幅(rpm)(无电压)
f0 = 0;f1 = 10;f2 = 22;%频率(赫兹)
%认为采样频率是50赫兹,样品每20(女士). .
fs = 50;
%这导致. .
n = A0 + A1 * sin(2 *π* 10 * t) + 15 *罪(2 *π* 22 * t);%叠加速度信号
%认为测量行有653个元素. .
t = (0:1 / fs: 662 * 1 / fs) ';
%这导致. .
t = (0:1 / fs: 662 * 1 / fs) ';
S0 = A0 *的(大小(t));
S1 = A1 * sin(2 *π* f1 * t);
S2 = A2 * sin(2 *π* f2 * t);
S = S0 + S1 + S2;
图();
ax₁=次要情节(4,1,1);情节(t, S0);网格;
ax2 =次要情节(4,1,2);情节(t, S1);网格;
ax3 =情节(4 1 3);情节(t, S2);网格;
大举裁员=次要情节(4,1、4);情节(t, S,“r”);网格;
linkaxes ([ax₁, ax2 ax3,大举裁员),“x”);
实际上,fft后我希望3峰:9.5 rpm @ 0赫兹,25 rpm @ 10赫兹和15 rpm @ 22赫兹如果我匹配频率垃圾箱等尽可能好。
但我不肯定期望振幅比,如果有的话,你应该小于
%如果我不会做补零. .
L_n =(大小(n, 1));
Nfft = L_n;% 1 * 2 ^ nextpow2 (L_n);
fn = f * (0: (Nfft / 2)) / Nfft;
最大= fft (n, Nfft);
P2_n = abs(最大/ L_n);
P1_n = P2_n (1: Nfft / 2 + 1);
P1_n (2: end-1) = 2 * P1_n (2: end-1);
我得到这个%:
%,S0有点多余,S1和S2有点削弱。
%,如果我补零增加不增加DFT / FFT决议
%,但增加可读性,…
Nfft = 1 * 2 ^ nextpow2 (L_n);% 1024台padd上阅读清单
(甚至休息)
%我. .
%,我们越来越近了。
%如果我进一步增加补零. .
Nfft = 8 * 2 ^ nextpow2 (L_n);% 8192台padd上阅读清单
(甚至休息)
%我. .
所以,S1和S2适合,但是S0“ffs”? ? ? ? ? ? ?我怎么能相信这个直流信号如果我不知道源信号. . ? ? ?技术上补零零信号和@补充道 这是总体的总体平均值的信号。为什么均值- aka 0 Hz -不是死与零填充,而不是增加。如果我添加多个零均值应该减少 。我怎么能知道,我可以走多远补零不杀直流信号
问候

答案(3)

Sulaymon Eshkabilov
Sulaymon Eshkabilov 2021年6月6日
你所做的不是零填充。你是改变块大小和频率分辨率。
因此,无论如何是块大小直流将出现在你的锻炼,因为 S0 = A0 *的(大小(t));
补零将信号的时域完成。在你的锻炼,将用零填充:
S0 = A0 * 0(大小(t))
1评论
低音茶
低音茶 2021年6月7日
嘿,你为你的答案。
首先,如我参考代码 https://de.mathworks.com/help/signal/ug/amplitude-estimation-and-zero-padding.html ,因为它们增加“L”,称之为补零,我以为,“fft”
fft(数据、L)
而不是
fft(数据)
会自动自动填充信号在时域落后于0。如果不是,我misunderstodd什么的。但无论如何。关键是,我希望我的构造信号有一定的直流值。如果我使用你的建议
A0 * 0(大小(t))
,是的两个振幅右边我exspectations完全填满。更糟糕的是振幅随着坏频率垃圾箱。振幅越来越提高频率分辨率的确切时间。但这样我踢直流信号。在以后的实际测量数据我不能踢小直流值。
我不让,我为什么不能保留直流叠加信号的一部分,得到正确的振幅。必须有一种方法。

登录置评。


保罗
保罗 2021年6月6日
编辑:保罗 2021年6月6日
在第三图,数据提示不X = 0(前两个情节)一样。先试着放大,实际点阴谋。
此外,代码运行的FFT的价值在所有三个直流是相同的情况下,因为这条线:
P2_n = abs(最大/ L_n);
因为它看起来像L_n总是663。FFT在直流会减少如果这条线而不是最大/ Nfft。我只是指出这是因为似乎有一个期望,FFT直流与补零增加会减少。
4评论
保罗
保罗 2021年6月7日
编辑:保罗 2021年6月8日
为了应对 这样的评论 ,我的观点关于部门L_n是因为L_n的原始代码划分(而不是Nfft长度后补零),在dc dc的解将是相同的三个案例,目前显示放大后第三例(Nfft的所有三个值的值是9.552)。
我不推荐除以Nfft,我只是说明我的观点,以应对中的语句的问题“如果我添加多个零,平均值应该降低。”Of course the 平均值 应该减少,但通过除以L_n的价值在直流不的意思。一个在任何情况下的直流价值增加(如果除以L_n总是9.552)。
最后,考虑这条线:
P1_n (2: end-1) = 2 * P1_n (2: end-1);
我认为这是为什么你看到如此高的“边带”的权利。补零可以引入FFT频率值高的直流(但仍小于直流值)、(情节FFT Nfft S0为不同的值),然后他们被2正片叠底。

登录置评。


Sulaymon Eshkabilov
Sulaymon Eshkabilov 2021年6月6日
这是正确的在信号和整个信号的fft:
%这导致. .
t = (0:1 / fs: 662 * 1 / fs) ';
S0 = A0 * 0(大小(t));%在
% S0 = A0 *的(大小(t));
S1 = A1 * sin(2 *π* f1 * t);
S2 = A2 * sin(2 *π* f2 * t);
S = S0 + S1 + S2;
P1_n情节(fn)%比较这个
1评论
低音茶
低音茶 2021年6月7日
我不认为这是正确的补零! ? ! ?
你只踢出我的某些直流样本值为零。
如我理解zeropadding直流信号。
4、4、4、4、4、4北京4、4、4、4、4、4、4 0,0,0,0
然后我垫4 0原始信号在时间域。我错了吗?

登录置评。

s manbetx 845


释放

R2020a

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!

翻译的