通過Matlab 使用 FFT 分析週期性資料

2021-08-29 01:54:43 字數 1443 閱讀 9394

前言:天文學家使用蘇黎世太陽黑子相對數將幾乎 300 年的太陽黑子的數量和大小製成**。對大約 1700 至 2000 年間的蘇黎世數繪圖。

load sunspot.dat

year = sunspot(:,1);

relnums = sunspot(:,2);

plot(year,relnums)

xlabel('year')

ylabel('zurich number')

title('sunspot data')

為了更詳細地看太陽黑子活動的週期特性,將對前 50 年的資料繪圖。

plot(year(1:50),relnums(1:50),'b.-');

xlabel('year')

ylabel('zurich number')

title('sunspot data')

傅利葉變換是一種基礎的訊號處理工具,可確定資料中的頻率分量。使用fft函式可獲取蘇黎世資料的傅利葉變換。刪除儲存資料總和的輸出的第乙個元素。繪製該輸出的其餘部分,其中包含復傅利葉係數關於實軸的映象影象。

y = fft(relnums);

y(1) = ;

plot(y,'ro')

xlabel('real(y)')

ylabel('imag(y)')

title('fourier coefficients')

n = length(y);

power = abs(y(1:floor(n/2))).^2; % power of first half of transform data

maxfreq = 1/2; % maximum frequency

freq = (1:n/2)/(n/2)*maxfreq; % equally spaced frequency grid

plot(freq,power)

xlabel('cycles/year')

ylabel('power')

單獨的傅利葉係數難以解釋。計算係數更有意義的方法是計算其平方幅值,即計算冪。由於一半的係數在幅值中是重複的,因此您只需要對一半的係數計算冪。以頻率函式的形式繪製功率頻譜圖,以每年的週期數為測量單位。

period = 1./freq;

plot(period,power);

xlim([0 50]); %zoom in on max power

xlabel('years/cycle')

ylabel('power')

太陽黑子活動發生的最大頻率低於每年一次。為了檢視更易解釋的週期活動,以週期函式形式繪製冪圖,以每週期的年數為測量單位。該繪圖揭示了太陽黑子活動約每 11 年出現一次高峰。

基於matlab的FFT分析

離散傅利葉變換dft的計算公式如下,fft為dft的一種快速演算法。n 64時 fs 100 取樣頻率 n 64 資料點數 n 0 n 1 抽樣間隔ts 1 fs,所以t n ts n fs為時間序列 t n fs 時間序列 x 0.5 sin 2 pi 15 t 2 sin 2 pi 40 t y...

MATLAB中FFT的分析總結

1 取樣頻率和取樣週期的設定 取樣頻率的設定應滿足奈奎斯特準則,當取樣頻率設定之後求倒數即為取樣週期。如 fs 1000 sampling frequency 取樣頻率 t 1 fs sampling period 取樣週期 2 取樣點數的確定 若想要規定取樣點數,則採用如下方式 l 1000 le...

MATLAB中FFT使用方法

說明 以下資源 於 數字訊號處理的matlab實現 萬永革主編 一.呼叫方法 x fft x x fft x,n x ifft x x ifft x,n 用matlab進行譜分析時注意 1 函式fft返回值的資料結構具有對稱性。例 n 8 n 0 n 1 xn 4 3 2 6 7 8 9 0 xk ...