【お知らせ】この部分は英語原文のみでの提供となります。何卒ご了承ください。
2.1.22.2.1.17 fft_apply_window
Contents
Description
Apply a window to a sequence with shift, then get a new sequence of result. Pay atention the start position is not at 0, but at ishift.
Syntax
int fft_apply_window( int iSigSize, double * vSig, int iWinSize, double * vWindow, int iShift, int iResultSize, double * vResult, int iPadding, int iStep )
Parameters
- iSigSize
- [input] number of data values in the source sequency.
- vSig
- [input] source sequency
- iWinSize
- [input] size of window to be applied
- vWindow
- [input] window sequency
- iShift
- [input] shift of window per step
- iResultSize
- [output] the size of the vResult
- vResult
- [output] result sequency
- iPadding
- [input] number of paddings (0)
- iStep
- [input] number of total shift steps
Return
returns 0 for success.
returns INVALID_SIZE data size maybe incorrect.
returns UNKNOWN_ERROR Memory Error.
Examples
EX1
//Assume in the current worksheet, the first is signal sequence, the second is the window data to be applied. #include <..\originlab\fft.h> void TEST_fft_apply_window() { Worksheet wks = Project.ActiveLayer(); if(wks) { Dataset dsSig(wks, 0); Dataset dsWin(wks, 1); vector vecSig, vecWin, vecResult; int iSigSize, iWinSize, iShift, iPadding; vecSig = dsSig; vecWin = dsWin; iSigSize = vecSig.GetSize(); iWinSize = vecWin.GetSize(); iShift = 5; //specify a number just as you wish iPadding = 10; int iSteps = iSigSize/iShift; int iResultSize = iSteps * (iWinSize+iPadding); vecResult.SetSize(iResultSize); int ret = fft_apply_window(iSigSize, vecSig, iWinSize, vecWin, iShift, iResultSize, vecResult, iPadding, iSteps); if (ret != 0) out_str("Fail call"); } }
Remark
See Also
Header to Include
fft.h