對於fft函式,其作用為快速傅利葉變換,可以實現常規傅利葉變換的**。而由於其原理,最後生成的影象可能並不是我們常分析的樣子。本文將簡要對fft函式的細節處理進行一定的分析,從而使原來的的影象變為便於我們分析的樣子。
f0=1e6; %頻率
fs=5e6; %取樣率
t=1/fs:1/fs:1; %樣點採集
s=cos(2pif0*t); %訊號
原始與最後版本以一段程式實現,測試時只需要把所有的**取消備註,**加上備註,即可實現對原始模式的**。
**結果如下:
我們可以看到,頻率上除了1e6hz,還有4e6hz,這其實是由於fft函式的對稱性而產生的。即fft函式的返回值是以奈奎斯特頻率對稱的(本函式為2.5e6hz)
對於幅度來說,這兩根線的幅度均為2.5e6。分析可知,其為取樣率的一半。即fft的幅值大小與樣點個數有關。
而對於我們來說,我們習慣正頻率與負頻率,訊號幅值下的影象,這就要求我們對fft的結果進行一定的變化。
**正常執行即可,結果為:
簡要來說,我們只是將橫座標變為正負兩端,對已進行fft變化的函式進行了fftshift的再次變化。
fftshift——一種迴圈平移的函式,可以將奈奎斯特頻率(即對稱軸)移動至頻譜中心。
clc;%%
%%%%
%%%%
%%%%
%%%%
%%%%
%%%%
%%%傅利葉變換理解%%%
%%%%
%%%%
%%%%
%%%%
%%%%
%%%%
%%%%
%%f0=1e6
;%頻率
fs=5e6
;%取樣率t=1
/fs:
1/fs:1;
%樣點採集
%fshift =(1
:length
(t))
;%【2】原始版,頻率
fshift=(-
length
(t)/2:
length
(t)/2-
1);%【1】完全版,頻率
s=cos(2
*pi*f0*t)
;%sff=
fft(s)
;%【2】原始版,變換
sf_test=
fft(s)
/length
(s);
%【1】完全版,還原原始幅度值
sff=
fftshift
(sf_test)
;%【1】完全版,變換迴圈平移
figure;
plot
(fshift,
abs(sff));
%abs取絕對值,消除虛數影響
xlabel
('頻率/hz');
ylabel
('幅度');
title
('常規傅利葉變換圖'
)
openpose的細節處理
最近使用openpose,但是有一些細節 中沒有給出,還有一些不太重要但也挺關鍵的細節需要搞清楚,這篇文章就把用到的這些細節一併及下來。1 vgg基礎網路的輸入輸出 中說vgg基礎網路用到了前10層,但是看原始碼的話,他是用了12層的。相關的輸入輸出維度如下 vgg cfg 64,64,m 128,...
批處理指令碼的細節
寫jenkins在windows下vs專案的自動化編譯的批處理指令碼的時候,在一些細節處理方法遇到過很多問題,雖然網上關於批處理有很多的教程,但是對於一些指令講解還是不夠詳細,這些小問題往往會困擾你比較長的時間,這裡分享一下我在寫指令碼時遇到的一些小問題,希望能夠幫助到大家。1.錯誤處理乙個好的指令...
ListView記憶體處理細節
listview注意事項 解決步驟 1 定義乙個空的listview資料集合,先在主線程中載入 第四步做完之後 利用定義的handler來傳送訊息更新ui message.obtain handler,message update listview sendtotarget 3 寫乙個類實現 han...