mar1psd.c

来自「AR模型参数的FORTRAN和C两种语言的几种算法(BURG」· C语言 代码 · 共 39 行

C
39
字号
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include "msp.h"
void mar1psd(complex a[],int ip,int mfre,float *ep,float ts)
{
/*----------------------------------------------------------------------
   Routine mar1psd: To compute the power spectum by AR-model parameters.
   Input parameters:
          ip : AR model order (integer)
          ep   : White noise variance of model input (real)
          ts   : Sample interval in seconds (real)
          a    : Complex array of AR  parameters a(0) to a(ip)
   Output parameters:
          psdr : Real array of power spectral density values
          psdi : Real work array
                                        in chapter 12
---------------------------------------------------------------------*/
        float psdr[4096],psdi[4096];
        int k;
        float p;
        for(k=0;k<=ip;k++)
           {psdr[k]=a[k].real;
            psdi[k]=a[k].imag;
            }
        for(k=ip+1;k<mfre;k++)
           {psdr[k]=0.;
            psdi[k]=0.;
            }
        mrelfft(psdr,psdi,mfre,-1);
        for(k=0;k<mfre;k++)
           {p=pow(psdr[k],2)+pow(psdi[k],2);
            psdr[k]=(*ep)*ts/p;
            }
        mpsplot(psdr,psdi,mfre,ts);
        return;
        }

⌨️ 快捷键说明

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