本文整理汇总了C++中PCM::read方法的典型用法代码示例。如果您正苦于以下问题:C++ PCM::read方法的具体用法?C++ PCM::read怎么用?C++ PCM::read使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PCM
的用法示例。
在下文中一共展示了PCM::read方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
int main(int argc, char** argv)
{
// Args
var arg(argc, argv);
// Read the waveform from file
PCM pcm;
ind fi = arg.index("-f");
var wav = fi ? arg[fi+1] : "arctic_a0001.wav";
var a = pcm.read(wav);
// Frame it
int frameSize = 256;
int framePeriod = 128;
var f = pcm.frame(a, frameSize, framePeriod);
// Window the frames
var w = nuttall(frameSize);
f *= w;
// Choose the output type
ind ti = arg.index("-t");
var t = ti ? arg[ti+1] : "spec";
var p;
if (t == "spec")
{
// Fourier transform
lube::DFT dft(frameSize);
var s = dft(f);
// Periodogram
p = lube::norm(s);
}
else if (t == "ar")
{
// LP spectrum
int order = arorder(pcm.rate());
Autocorrelation ac(frameSize);
var af = ac(f);
Levinson ar(order);
var lf = ar(af);
Gain gain(order);
var g = gain(af, lf);
Spectrum s(order, 129);
p = s(lf, g);
}
// Plot
var gnu;
gnu.push("plot \"-\" matrix with image");
gnu.push(lube::log(p+1e-8));
file gnuf("gnuplot");
gnuf.write(lube::nil, gnu);
return 0;
}