【发布时间】:2013-03-14 04:18:31
【问题描述】:
我创建了一个与matlab help page 完全相同的对数啁啾。
t = 0:0.001:10; % 10 seconds @ 1kHz sample rate
fo = 10; f1 = 400; % Start at 10Hz, go up to 400Hz
X = chirp(t,fo,10,f1,'logarithmic');
figure(2);
spectrogram(X,256,200,256,1000,'yaxis');
然后我使用以下代码将它带到频域,该代码适用于我的其他应用程序。
fft_prep = fftshift(fft(X));
fft_mag = abs(fft_prep);
pos_fft = fft_mag(1:ceil(length(fft_mag)/2));
db_fft = 20*log10(pos_fft);
figure(1);
plot(db_fft);
我很惊讶地看到下图在 1kHz-5kHz 时似乎令人兴奋:
我对 matlab 中的啁啾函数不太熟悉,想知道是否有人看到我遗漏的明显内容。欢迎任何其他指针。
【问题讨论】:
-
对啁啾信号进行 FFT 似乎不是一件有用的事情?我不认为只是因为您的频谱图的范围是 10Hz-400Hz,而这些频率与波特图上显示的频率相同。我认为您的问题更多地与有限时间啁啾信号的频率特性有关,而不是与 matlab 有关。我建议你在这里问:dsp.stackexchange.com
-
好点,也许那个频谱图没有向我展示整个画面。这是我试图更好地理解的啁啾函数。我希望我可以扫描有限数量的频率并通过 FFT 看到它们。你认为我希望看到什么?我使这个问题更加以代码为中心,专注于可能在我的啁啾函数或其他东西中找到错误。我也在 DSP 论坛上发布了更多 DSP-based question。如果您认为它可以更友好,请随时编辑我的问题。
-
不,我认为它不属于这里,您的问题与代码无关。啁啾信号在不同时间显示不同的频率,但 FFT 看起来是整个信号(所有时间),为了实现这一点,我想它会产生更高的谐波。 matlab 示例绘制频谱图并且不采用 FFT 是有原因的,这是因为啁啾的 FFT 并不是真正有用的事情。啁啾信号本身在一定频率范围内测试系统,而不必离开时域,重点(在我看来)是消除进行 FFT 的需要
-
顺便说一句,如果您要在有限的频率范围内寻找恒定幅度(即频域中的
rect函数),则转换后的时域函数是sinc函数,即 @ 987654330@. -
我绝对同意你的观点,对啁啾进行 FFT 并不是一件很有用的事情。我正在尝试详细了解啁啾功能,并想验证我正在用它创建什么。我试图将这个理论排除在这个线程之外,但我们的 cmets 肯定让我们误入歧途,也许我们应该将我们的 cmets 移到 DSP 线程或将它们带到电子邮件通信中。正如下面的答案所证实的那样,我的代码中有一个错误或误解,我试图关注这些问题,我觉得这个线程对我来说非常有价值,希望将来对其他人也很有价值。
标签: matlab signal-processing fft frequency-analysis