FFT工具-振幅与频率相关

3次浏览(过去30天)
你好,
我试着在频域测试一个信号。为了测试,我尝试了连续波,一个窦。我注意到我的信号的频谱振幅随频率变化(在我的例子中是F1)。
我的Pin1_dBm只用于F1非常低…
它是否与时间窗相联系太长以至于我们在频域看到了正弦?
谢谢
以下是剧本:
%的声明
Fs = 1e3;%采样频率
F1 = 0.42 e3;%信号频率
Tstop = 2.54 e6 / Fs;%时间窗口-模拟的持续时间
t = 0:1/Fs:Tstop;%时间步
Pin1_dBm = 10;信号的%功率电平
nbre_step = Tstop * Fs;在我的时间窗口内的时间步数%
x =√2 * 10 ^ (Pin1_dBm-30) / 10)) * cos(2 *π* F1 * t);% my信号(连续波)
In_spectrum_2sided_W = (abs (fft (x)) / nbre_step) ^ 2;%谱2边在瓦
In_spectrum_1sided_W = In_spectrum_2sided_W (1: nbre_step / 2 + 1);
In_spectrum_1sided_W (2: end-1) = 2 * In_spectrum_1sided_W (2: end-1);%谱2边->1边瓦
In_spectrum_dBm = 10 * log10 (1000 * In_spectrum_1sided_W);%频谱,单位为dBm
频率= f * (0: (nbre_step / 2)) / nbre_step;
情节(频率、In_spectrum_dBm);
2的评论
大卫·洛佩兹
大卫·洛佩兹 2021年9月23日
例如F1 = 10hz ->功率= 10dbm
对于F1 = 270 Hz功率= 8.9 dBm…
呢?

登录评论。

接受的答案

保罗
保罗 2021年9月23日
对于纯正弦信号,只有当FFT的长度N满足时,才能获得“期望”结果
N = M*Fs/F1
其中M是整数,Fs是采样频率,F1是正弦波的频率,当然我们需要Fs/F > 2。问题中的代码不能完全满足F1 = 10 Hz或F1 = 270 Hz的要求。为了说明
Fs = 1e3;%抽样频率
F1 = [10 270];信号频率%
Tstop = 2.54e6/Fs;%的持续时间
t = 0:1/Fs:Tstop;%时间步长
N =数字(t)FFT中样本数的%
N = 2540001
M = N.* f ./ f
M = 1×2
1.0e+05 * 0.2540 6.8580
M == round(M)%检查整数值
ans =1×2逻辑阵列
0 0
所以我们看到对于所选参数M不是整数。将t的定义修改为一个样本
t = (0:2.54e6-1)/Fs;
N =数字(t)
N = 2540000
M = N.* f ./ f
M = 1×2
25400 685800
M == round(M)%检查整数值
ans =1×2逻辑阵列
1 1
现在让我们为F1的选定值绘制图形
图;
临时(Tstop Fs, F1 (1), t);%使用函数来避免重写代码
持有
情节(F1 (1) 10“o”)、网格
图;
临时(Tstop Fs, F1 (2), t);%使用函数来避免重写代码
持有
情节(F1 (2) 10“o”)、网格
现在这两种情况都产生了预期的结果。在这些情况下,频率不等于F1的FFT应该正好为零。但会有一些数值噪声,如图中所示。
此外,如果nbre_step为奇数,则考虑采取适当的操作。
函数临时(Tstop Fs, F1, t)
Pin1_dBm = 10;信号的%功率电平
nbre_step = Tstop * Fs;在我的时间窗口内的时间步数%
x =√2 * 10 ^ (Pin1_dBm-30) / 10)) * cos(2 *π* F1 * t);% my信号(连续波)
In_spectrum_2sided_W = (abs (fft (x)) / nbre_step) ^ 2;%谱2边在瓦
In_spectrum_1sided_W = In_spectrum_2sided_W (1: nbre_step / 2 + 1);
In_spectrum_1sided_W (2: end-1) = 2 * In_spectrum_1sided_W (2: end-1);%谱2边->1边瓦
In_spectrum_dBm = 10 * log10 (1000 * In_spectrum_1sided_W);%频谱,单位为dBm
频率= f * (0: (nbre_step / 2)) / nbre_step;
情节(频率、In_spectrum_dBm);
结束

更多答案(0)

标签

下载188bet金宝搏


释放

R2021a

社区寻宝

在MATLAB Central中找到宝藏,并发现社区如何帮助您!

开始狩猎!