如何找到任意矩阵的功率谱密度(PSD) ?

4次浏览(最近30天)
Priyank帕沙克
Priyank帕沙克 2022年7月13日
编辑: dpb 2022年7月13日
我在这里附上了一个代码,我正在使用,但不知道它是对的还是错的。
请检查一下,这是一个矩阵的正确工作?
你的帮助将受到感激。
data_01 =负载(“plot_bouguer_20220713013040.txt”);
% https://drive.matlab.com/files/plot_bouguer_20220713013040.txt
%以上链接的数据
A02 = data_01 (: 3);
A03 =重塑(A02,541,541);
= A03 ';
bouin =一个;
numrows = 541;
numcolumns = 541;
截断= 0.1;
计算重力图的平均值
fftbou = fft2 (bouin);%fft2计算二维矩阵的二维FFT(在这里是bou)
meangravity = (fftbou (1, 1) / (numrows * numcolumns));2-D fft数组的第一项除以行数和列数的乘积,得到给定矩阵的平均值
%降级数据
disp (“贬低数据集”%在屏幕上显示文本“数据集降级”
bou = bouin-meangravity;%的输入数据
将应用截断值为默认值10%的余弦Tukey窗口
Wrows = tukeywin(numrows,截断);%该函数计算一个与原始矩阵输入行长度相同的1-D余弦Tukey窗口,并使用变量'truncation'定义的截断。
Wcolumns = tukeywin(numcolumns,截断);%该函数计算一个与原始矩阵输入列长度相同的1-D余弦Tukey窗口,并使用变量'truncation'定义的截断。
w2 = wrows (:) * wcolumns(:)。”;%这将生成一个2-D余弦图键窗口乘以1-D窗口
bou = bou。* w2 ';%原来的重力输入矩阵,先前降低,乘以余弦窗口
mapabou = bou’;%,还原后的原始输入矩阵被转置
fftbou = fft2 (mapabou);对重力输入矩阵进行减值后,计算其二维FFT
谱= abs (fftbou (1: numrows / 2, 1: numcolumns / 2));%这个计算振幅谱
st11 =频谱;%振幅谱
p_s = log10 (st11”。^ 2);功率谱
%圣= max (p_s);每一行振幅谱的%均值
圣=意味着(p_s);
Number_psd = length(st);
相约=重塑(圣number_psd 1);
wn_k = linspace(0、0.03、number_psd);%波数k
dwn_k = wn_k ';
情节(wn_k相约,“。”“MarkerSize”15)
网格
网格
包含(的波数(1 /公里)
ylabel (“PSD(日志(振幅。^ 2))

答案(0)

世界杯预选赛小组名单社区寻宝

在MATLAB Central中找到宝藏,并发现社区如何帮助您!世界杯预选赛小组名单

开始狩猎!

Baidu
map