作者SKTP (SKTP)
看板MATLAB
标题[问题] 请问FFT的Fs取样频率相关问题
时间Tue Mar 8 12:57:55 2016
请教各位,我要将一个5秒有1002个点的资料做fft,我看过help里面的fft范例。
因为本身不是通讯相关领域出来的,对於取样频率Fs以及Ts不太了解其含义,
先附上程式码:
A = load('FFT2.csv');
B = size(A);
L = B(1,1); % Length of signal
Tmax = A(L,1);
Fs = L/Tmax; % Sampling frequency
T = 1/Fs; % Sample time
t = (0:L-1)*T; % Time vector
y = A(:,2);
subplot(2,1,1);plot(t(1:L),y(1:L))
title('Signal Corrupted with Zero-Mean Random Noise')
xlabel('time (seconds)')
NFFT = 2^nextpow2(L); % Next power of 2 from length of y
Y = fft(y,NFFT)/L;
f = Fs/2*linspace(0,1,NFFT/2+1);
subplot(2,1,2);plot(f,2*abs(Y(1:NFFT/2+1)))
title('Single-Sided Amplitude Spectrum of y(t)')
xlabel('Frequency (Hz)')
ylabel('|Y(f)|')
基本上就是照help里面把程式码复制下来,将Ts从1/Fs改成5/Fs,
可是我发现我只要去更改Fs,第二张图fft的结果在x轴频率的部分中会有所改变,
而我的曲线却不会有所变化,像是Fs为1000时,曲线在300Hz有一根,
但我将Fs改成100就会变成30Hz有一根,那我该如何知道我所用的Fs是正确的?
我仔细查了一下,将程式码改写,Fs应该是这样定义没错吧?
资料点数除以总时间?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.121.120.213
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/MATLAB/M.1457413078.A.D55.html
※ 编辑: SKTP (140.121.120.213), 03/08/2016 18:30:48
1F:→ nc23nick: 取样频率Fs=1002/5才对 03/09 11:59