period.m

来自「经典的功率谱估计」· M 代码 · 共 12 行

M
12
字号
function p_out=period(input_x,data_length,Num_sec,Num_fft)  %input_x为输入序列,data_length为数据长度,Num_fft为FFT输出点数,Num_sec为分段数
M=data_length/Num_sec;% M为每一段内的数据长度
input_x;
Pxx=zeros(Num_sec,Num_fft);%每一段内的数据数M,但进行FFT变换后,输出Num_ff个点数,共有Num_sec个周期图
p_out=zeros(1,Num_fft);    %构造一个输出序列,初始化为0
for count=1:Num_sec        %对于每一段进行操作
    begin_pos=1+(count-1)*M;%进行FFT变换的序列的起始位置
    end_pos=count*M;        %进行FFT变换的序列的结束位置
    temp_fft=fft(input_x(begin_pos:end_pos),Num_fft);%对该段内的数据进行FFT变换,输出点数为Num_ff
    p_out=(abs(temp_fft)).^2/M+p_out;%对各段求得的功率谱密度进行累加
end
p_out=p_out./Num_sec;%对求得的各段数据功率谱密度进行平均

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?