簡體   English   中英

FFT / PWELCH Matlab定義采樣頻率

[英]FFT / PWELCH Matlab define sampling frequency

我有一個帶有模擬值的TXT-Doc https://www.mikrocontroller.net/attachment/428580/Probe_1.txt 我在Matlab中使用FFT和Pwelch查找模擬信號的頻率。 理論上,該頻率應在〜300 Hz左右。 這就是為什么我想到的是0-500 Hz的區域。

我嘗試了fft:

>> load pr_1.txt;
>> Fs = 1000; 
>> T = 1/Fs; 
>> L = length(pr_1);
>> FFT = fft(pr_1);
>> P2 = abs(FFT/L);
>> P1 = P2(1:L/2+1);
>> P1(2:end-1) = 2*P1(2:end-1);
>> f = Fs*(0:(L/2))/L;
>> plot(f,20*log10(P1))

和pwelch:

>> len = 2050;
>> h = kaiser(len,4.53);
>> pwelch(pr_1,h,[],len,Fs)

兩者都顯示出相同的答案:峰值為〜300 Hz。 但是我的問題是如何定義正確的采樣頻率Fs? 如果我將Fs更改為Fs = 10000而不是Fs = 1000,我將獲得〜3000 Hz而不是300 Hz的峰值點。 如果我將Fs = 500更改為峰值,則結果為150 Hz。 我有問題要理解和定義正確的Fs。

假設您提供的文件是由某些測量設備生成的,則可以選擇第三行

#  Aufnahmerate [Hz]: 9997.4286613483

作為采樣率Fs。 正如@Irreducible所說,這是由捕獲設備定義的固定速率。 因此,您不能隨機更改它。

該文件的標題還告訴您更多信息:它說有100000個樣本,這是正確的,而且如果將每個樣本的時間間隔(第5行)乘以樣本數(100000,第2行),則可以得出測量持續時間(第4行)。 據此,我認為這些值是正確的。


有關完整性/將來的參考:文件的主要內容:

# 2019-08-26 15:38:49.661906
#  Anzahl Messwerte: 100000
#  Aufnahmerate [Hz]: 9997.4286613483
#  Messdauer [s]: 10.002572
#  Zeitintervall je Messpunkt [ms]: 0.10002572
2.820286226094503856e+00
2.820608226282290687e+00
2.820286226094503856e+00
2.820608226282290687e+00
2.820286226094503856e+00
2.820608226282290687e+00
2.820608226282290687e+00
2.820608226282290687e+00
2.819642225722452267e+00
2.820286226094503856e+00
2.820608226282290687e+00
2.819964225907891198e+00
2.820286226094503856e+00
2.819964225907891198e+00
...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM