实际问题中,测量一个时间信号,为了保证满足采样定理,就需要知道信号的最高频率,怎样才能知道这个最高频率呢?
1. 可以预采样进行傅里叶变换获得最高频率吗,如果可以,在matlab中使用FFT命令时,使用fft(x)还是fft(x,n)命令,这两个得到结果有什么区别呢?怎样画频谱图,需要先定义频率范围和间隔作为横坐标吗?
2. 另外,fft(x,n)命令中n是如何选取的,取不同值有什么影响啊?
请各位详细点解答,非常感谢!
1.频率分辨率为fres=fs/FFTlen;
假定你需要分辨10khz和11khz的频率,而你的采样率是1024khz,则需要的N至少为1024
2.通过fft函数求频谱
Y = fft(X,n) returns the n-point DFT.
fftshift把直流量移动到频谱的中间位置,其实就是circle shift fft的输出 这样出来的结果是我们教科书上的图形
3.各位可以自行把N改短 看是否能检测出这两个靠的很近的频率
1.频率分辨率为fres=fs/FFTlen;
假定你需要分辨10khz和11khz的频率,而你的采样率是1024khz,则需要的N至少为1024
2.通过fft函数求频谱
Y = fft(X,n) returns the n-point DFT.
fftshift把直流量移动到频谱的中间位置,其实就是circle shift fft的输出 这样出来的结果是我们教科书上的图形
3.各位可以自行把N改短 看是否能检测出这两个靠的很近的频率
感谢您的回答,不过还是不太明白,我想问的是怎样知道一个时间信号的最高频率,不是要提高信号分析频率的分辨率,这二者有什么联系吗?谢谢
最高频率和你实际模拟世界中的频率有关系
比如语音信号 就大概800khz以内的样子
比如视频信号 就要400M左右了
一般设计系统的时候 你输入信号的特性是知道的
请问fft(x)与fft(x,n)有什么区别呢,如果使用fft(x),它的分辨率是多少呢?平时做仿真计算时,使用的都是fft(x),没有考虑过这个问题。谢谢
Y = fft(X) returns the discrete Fourier transform (D