的傅里叶变换因( nωt ) _ _cos⁡(nωt)

信息处理 傅里叶变换
2022-02-09 10:52:16

我的问题可能很愚蠢,但我现在已经为此苦苦挣扎了一段时间......

需要找到的傅里叶变换。1+cos3(2πft)

我写道: 所以我有:

cos3(2πft)=cos(6πft)+3cos(2πft)4
δ(f)+18[δ(f3f0)+δ(f3f0)]+38[δ(ff0)+δ(ff0)]

所以,在我的范围内,我应该在有一个狄拉克,在有一个更小的狄拉克,在有一个更小的……0f03f0

但是当我用 matlab 处理它(使用快速傅立叶变换)时,我得到了这个:

(频率为)。10 kHz

所以我认为在的狄拉克实际上是在我错过了什么?3f0f02

2个回答

谢谢大家!谢谢!

我真的对自己的数学技能没有信心,所以我专注于傅立叶变换,但正如你们都猜到的,问题是我的采样频率太小(我使用的是 25kHz)。使用 60kHz,它就像一个魅力。不过还是觉得自己像个白痴;-)

谢谢 !

PS:总结一下是否有人面临同样的问题

理论部分是赖特的。我们有:

δ(f)+18[δ(f3f0)+δ(f3f0)]+38[δ(ff0)+δ(ff0)]

问题在于我的模拟:我忘记检查我的采样频率是否满足 Nyquist-Shannon 标准()。Fs>2Fmax

因此,使用此代码:

Fs = 7e4;            % Sampling frequency
T = 1/Fs;             % Sampling period
L = 100000;             % Length of signal
t = (0:L-1)*T;        % Time vector
fm = 10e3;

X = 1+(cos(2*pi*fm*t)).^3;
%X = 1 + 0.25*cos(3*2*pi*10000*t)+(3/4)*cos(2*pi*10000*t);
Y = abs(fft(X));

f = 0:Fs/L:Fs/2;
plot(f,Y(1:L/2+1))
xlabel('f (Hz)')
ylabel('|P1(f)|')

我们得到预期的结果:

让我们来看看你扩张的前半部分;cos(6πf0t)

对此的傅里叶变换将是

Xc(jΩ)=πδ(Ω6πf0)+πδ(Ω+6πf0)

为了使您的傅立叶变换正确,我们需要

6πf0<πfs

这意味着您的采样率必须足够高以避免混叠。你确定你的f0<fs/2?

在我看来,这就是问题所在。