- 入力する2次元行列は正方行列である事
- ドーナツ状マスクの幅、即ちビンの分割数を設定する事が可能(m)
- ドーナツ状マスクの中心座標をオフセットする事が可能(-1 <= x0,y0 <= 1)
- ドーナツ状マスクの要素数は動径と共に変化するが、要素数で割った値(平均値)を出力している
- 円から外れる四隅の部分は動径方向の分布集計に含まれない
- 入力する2次元行列にNaN値が含まれてもそれを無視した結果を出力可能
パワースペクトル解析の動径方向分布と角度方向分布について radial direction and angular directions of Power spectrum
9 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
二次元フーリエ解析をして,パワースペクトルを得て,動径方向分布と角度方向分布のデータを得たいと思っています.
どなたか動径方向と角度方向の分布を得られるコードを教えてください.お願いします.
二次元フーリエ変換に関しては以下のコードを書きました.
I did a two-dimensional Fourier analysis and got the figure of Power spectrum.
Then I want to get the data on radial direction and angular directions.
Can anyone tell me that?
For the two-dimensional Fourier analysis, the following code was used.
rgb =imread('.jpg');
I = rgb2gray(rgb);
figure
imshow(I)
Y = fft2(I);
imagesc(abs(fftshift(Y)))
imagesc(log(abs(fftshift(Y))));
0 commentaires
Réponse acceptée
Atsushi Ueno
le 31 Août 2021
Modifié(e) : Atsushi Ueno
le 31 Août 2021
function [Zr, R] = radialavg(z,m,xo,yo) % Radially averaqe 2D square matrix z into m bins
MATLABに専用の関数は見つかりませんでしたが、File Exchangeで「動径方向の分布を得るradialavg関数」を見つけました。リンク先からダウンロードして、radialavg.mを現在のフォルダに置けば利用可能です。ご使用の条件に合うか試してみてください。また、デモ用のテストコードradialavg_tester.mが同梱されており、それを実行すればradialavg関数の機能が一目瞭然です。主な仕様を調べ下記に羅列しました。
% 質問に掲載のコードの続きとして書くコード例
m = 101; % 半径方向のbin分割数+1
[Yr,r] = radialavg(Y,m); % オフセットは省略(=0)
plot(r,Yr,'o');
7 commentaires
Atsushi Ueno
le 2 Sep 2021
Modifié(e) : Atsushi Ueno
le 2 Sep 2021
radialavg_tester.m だけでは実行不可能で,定義として何かしら必要なのでしょうか?
→MATLABだけで動きます。radialavg_tester.m(デモ用のテストコード) の他に、radialavg.m(radialavg関数の本体)も必要です。下記のページでDownloadボタンを押すとまとめてダウンロードできます。
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur スペクトル測定 dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!