Computes a frequency spectrum with the autoregressive Yule-Walker method.
Computes a frequency spectrum from Data and places the result in Result. AROrder is the autoregressive order used by the Yule-Walker method and zero padding factor for the FFT is defined with the ZeroPadding parameter.
Example 1
Estimate the frequency spectrum of sine signal with the Yule-Walker method. The assumed order is 4 and zero padding is set to 16.
uses MtxExpr, Math387, MtxVec, SignalUtils, MtxVecTee, MtxVecEdit;
procedure TForm1.Button1Click(Sender: TObject);
var b,Response,X: Vector;
begin
b := Sin(Ramp(300,0,2*Pi*50/300));
ArYuleWalkerSpectrum(b,Response, 4,32);
X := Ramp(Response.Length,0,1/Response.Length);
DrawIt(X,20*Log10(Abs(Response)));
end;
#include "MtxVecCPP.h" //MtxVecCPP.cpp must be included in the project
#include "MtxVecEdit.hpp"
#include "MtxVecTee.hpp"
#include "SignalUtils.hpp"
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
Vector b,Response,X;
b = Sin(Ramp(300,0,2*PI*50/300));
ArYuleWalkerSpectrum(b, Response, 4,32);
X = Ramp(Response.Length,0,1.0/Response.Length);
DrawIt(X,20*Log10(Abs(Response)));
}
using Dew.Math;
using Dew.Math.Editors;
using Dew.Math.Units;
using Dew.Signal;
using Dew.Signal.Units;
using Dew.Math.Tee;
using Dew.Signal.Tee;
private void button1_Click(object sender, EventArgs e)
{
Vector b, X;
Vector Response = new Vector(0);
b = MtxExpr.Sin(MtxExpr.Ramp(300, 0, 2 * Math.PI * 50 / 300));
SignalUtils.ArYuleWalkerSpectrum(b, Response, 4, 32);
X = MtxExpr.Ramp(Response.Length, 0, 1.0 / Response.Length);
TeeChart.DrawIt(X, 20 * MtxExpr.Log10(MtxExpr.Abs(Response)),"",false);
}