gpt4 book ai didi

Matlab 绘图对数线性调频幅度

转载 作者:行者123 更新时间:2023-12-04 06:28:56 24 4
gpt4 key购买 nike

我创建了一个与 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');

Spectrogram

然后我使用以下代码将它带到频域,该代码适用于我的其他应用程序。

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:

SpectrumAnalyzer

我不太熟悉 matlab 中的 chirp 函数,想知道是否有人看到我遗漏的明显东西。欢迎任何其他指点。

最佳答案

chirp 函数没问题...

您只需要根据频率值绘制 db_fft,而不是向量索引 =)。

plot(linspace(fo,f1,length(db_fft)), db_fft);

enter image description here

我还测试了使用我的其他 FFT 方法计算信号的 FFT,它们也指示了 0 到 400 Hz 之间的范围。

更新:

IMO,我发现不以 dB 或功率(周期图)为单位绘制在视觉上更容易。这是一个很好的例子和我计算时域信号 FFT 的转到方法:mathworks.se/help/matlab/ref/fft.html

回复:

经过一番思考,我同意我上面的回答是不正确的,但不是因为你所说的原因。频域中的 x 轴不应达到线性调频脉冲的实际长度(或一半、双倍频或类似的长度)。频域中的 x 轴应达到信号采样率 (Fs/2) 的一半,您有义务确保以两倍于您希望/希望的最大频率的采样频率对信号进行采样解决。

换句话说,假设您的 FFT 与时域信号的长度相同/两倍/一半是不正确的,因为我们可以选择任意数量的频率仓来表示 FFT,最佳实践是长度 = N ^2(2 的幂)用于快速计算。想一想,为什么在计算 FFT 时甚至需要知道时间值?你不知道!您只需要采样频率(应该设置为 Fs = 1000 btw,而不是 Fs = 0.001)。

那我上面的回答是不正确的,应该是:

plot(linspace(0, Fs/2, length(db_fft)), db_fft)

您写的不是 Fs/2,而是 length(t)/(2*Tfinal)。它(几乎)与 Fs/2 的值相同,但它不是正确的处理方式=)。

这是我的 goto FFT 方法(值不是以 dB 为单位)。

function [X,f] = myfft(x,Fs,norm)
% usage: [X, f] = myfft(x,Fs,norm);
% figure(); plot(f,X)
% norm: 'true' normalizes max(amplitude(fft))=1, default=false.
if nargin==2
norm=false;
end
L = length(x); NFFT = 2^nextpow2(L);
f = Fs/2*linspace(0,1,NFFT/2+1);
%f =0:(Fs/NFFT):Fs/2;
X = fft(x,NFFT)/L; X = 2*abs(X(1:NFFT/2+1));
if norm==true; X = X/max(abs(X)); end
end

这是 [Xfft, f] = myfft(X,Fs) 的结果图;情节(f,Xfft);请注意,根据 NyQuist 定理,返回频率仓向量具有 max(f) = Fs/2(无法解析任何高于 Fs/2 的频率)。

enter image description here

关于Matlab 绘图对数线性调频幅度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15401123/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com