matlab - FFT 显示两倍大的频率——为什么?
问题描述
t=[0:1/4000:10];
fk1=[0:300/size(t,2):300];
vysk_f=fk1(1:40000);
t=t(1:40000);
arg = vysk_f.*t;
sv=sin(%pi*2*arg);
cv=cos(%pi*2*arg);
s2= sv+cv;
vys_sig= s2;
然后我fft
用Fs=4000
和做L=4000
了十次,频率从 0 变为600Hz
频谱而0
不是300Hz
。
fs = 4000;
L = 4000;
f = fs* ( 0 : (L / 2 )) / L;
for i = 1:2
for j = 1:10
fft_data=fft(vys_sig((4000*j)-3999:4000*j));
subplot(2,1,1);
a = gca();
delete(a.children);
plot(f,abs(fft_data(1:size(f, '*'))));
subplot(2,1,2);
plot(vysk_f);
sleep(500);
end
end
图片是fft结束的地方
解决方案
推荐阅读
- react-leaflet - 如何重写传单代码以响应传单
- python - Tkinter如何获取按钮图像地址
- azure - 基于 DTU 消耗警报的 Azure SQL 的自动 sql
- c - 分段错误双指针重新分配
- android - 以编程方式打开 Android/Xamarin.Android 中的文件夹
- python - 从 Python 中的联合分布计算边际分布
- javascript - 如何在脚本标签之间调用方法背后的代码?
- javascript - Google Maps DrawingManager 在 Angular 中未定义
- python - 如果表达式在单独的行中,我如何获得等效的正则表达式?
- python - 仅检查数据框中是否存在列值