将一个离散时间信号进行傅立叶变换,怎样用MATLAB求该傅立叶变换中包含的频率值?
实际上将这个离散时间信号用origin进行傅立叶变换后可以得到频率,但不知它的原理
将一个离散时间信号进行傅立叶变换,怎样用MATLAB求该傅立叶变换中包含的频率值?
答案:1 悬赏:0 手机版
解决时间 2021-07-26 04:38
- 提问者网友:难遇难求
- 2021-07-25 19:55
最佳答案
- 五星知识达人网友:零点过十分
- 2021-07-25 20:26
基本思路是用fft做傅立叶变换,然后画出频谱图,其中的极值处就是频率值.比如下面这个例子,一个22hz的信号.
%generate the time index
sampling_rate = 100;
t1 = 0:1/sampling_rate:3-1/sampling_rate;
t2 = 3+1/sampling_rate:1/sampling_rate:6;
t = [t1 t2];
%determine the frequency of the input signal
F1 = 2;
F2 = 8;
temp1 = sin(2*F1*pi*t1);
temp2 = sin(2*F2*pi*t2);
%generate the signals
x1 = [temp1 temp2];
%apply the FFT transform on the input signals
y1 = fft(x1);
%plot the input signal
plot(t, x1); grid on; xlabel('time (seconds)'); ylabel('Magnitude');
%generate the frequency index
f = (0:length(y1)-1)'*sampling_rate/length(y1);
%plot the frequency components of the input signal
plot(f(1:length(f)/2), abs(y1(1:length(y1)/2)));
xlabel('Frequency (Hz)'); ylabel('Abs. Magnitude'); grid on;
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯