将一个离散时间信号进行傅立叶变换,怎样用MATLAB求该傅立叶变换中包含的频率值?实际上将这个离散时间信号用origin进行傅立叶变换后可以得到频率,但不知它的原理
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/27 10:41:34
![将一个离散时间信号进行傅立叶变换,怎样用MATLAB求该傅立叶变换中包含的频率值?实际上将这个离散时间信号用origin进行傅立叶变换后可以得到频率,但不知它的原理](/uploads/image/z/4951190-38-0.jpg?t=%E5%B0%86%E4%B8%80%E4%B8%AA%E7%A6%BB%E6%95%A3%E6%97%B6%E9%97%B4%E4%BF%A1%E5%8F%B7%E8%BF%9B%E8%A1%8C%E5%82%85%E7%AB%8B%E5%8F%B6%E5%8F%98%E6%8D%A2%2C%E6%80%8E%E6%A0%B7%E7%94%A8MATLAB%E6%B1%82%E8%AF%A5%E5%82%85%E7%AB%8B%E5%8F%B6%E5%8F%98%E6%8D%A2%E4%B8%AD%E5%8C%85%E5%90%AB%E7%9A%84%E9%A2%91%E7%8E%87%E5%80%BC%3F%E5%AE%9E%E9%99%85%E4%B8%8A%E5%B0%86%E8%BF%99%E4%B8%AA%E7%A6%BB%E6%95%A3%E6%97%B6%E9%97%B4%E4%BF%A1%E5%8F%B7%E7%94%A8origin%E8%BF%9B%E8%A1%8C%E5%82%85%E7%AB%8B%E5%8F%B6%E5%8F%98%E6%8D%A2%E5%90%8E%E5%8F%AF%E4%BB%A5%E5%BE%97%E5%88%B0%E9%A2%91%E7%8E%87%2C%E4%BD%86%E4%B8%8D%E7%9F%A5%E5%AE%83%E7%9A%84%E5%8E%9F%E7%90%86)
将一个离散时间信号进行傅立叶变换,怎样用MATLAB求该傅立叶变换中包含的频率值?实际上将这个离散时间信号用origin进行傅立叶变换后可以得到频率,但不知它的原理
将一个离散时间信号进行傅立叶变换,怎样用MATLAB求该傅立叶变换中包含的频率值?
实际上将这个离散时间信号用origin进行傅立叶变换后可以得到频率,但不知它的原理
将一个离散时间信号进行傅立叶变换,怎样用MATLAB求该傅立叶变换中包含的频率值?实际上将这个离散时间信号用origin进行傅立叶变换后可以得到频率,但不知它的原理
基本思路是用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;