package ca.uol.aig.fftpack;
/**
* @author Baoshe Zhang
* @author Astronomical Instrument Group of University of Lethbridge.
*/
class RealDoubleFFT_Mixed
{
// ******************************************************************** //
// Real-Valued FFT Initialization.
// ******************************************************************** //
/**
* Initialization of Real FFT.
*/
void rffti(int n, double wtable[]) /* length of wtable = 2*n + 15 */
{
if (n == 1)
return;
rffti1(n, wtable, 0);
}
/*---------------------------------------------------------
rffti1: further initialization of Real FFT
--------------------------------------------------------*/
void rffti1(int n, double wtable[], int offset)
{
double argh;
int ntry=0, i, j;
double argld;
int k1, l1, l2, ib;
double fi;
int ld, ii, nf, ip, nl, is, nq, nr;
double arg;
int ido, ipm;
int nfm1;
// Create a working array.
tempData = new double[n];
nl=n;
nf=0;
j=0;
factorize_loop:
while(true)
{
++j;
if(j<=4)
ntry=NTRY_H[j-1];
else
ntry+=2;
do
{
nq=nl / ntry;
nr=nl-ntry*nq;
if(nr !=0) continue factorize_loop;
++nf;
wtable[nf+1+2*n+offset]=ntry;
nl=nq;
if(ntry==2 && nf !=1)
{
for(i=2; i<=nf; i++)
{
ib=nf-i+2;
wtable[ib+1+2*n+offset]=wtable[ib+2*n+offset];
}
wtable[2+2*n+offset]=2;
}
}while(nl !=1);
break factorize_loop;
}
wtable[0+2*n+offset] = n;
wtable[1+2*n+offset] = nf;
argh=TWO_PI /(double)(n);
is=0;
nfm1=nf-1;
l1=1;
if(nfm1==0) return;
for(k1=1; k1<=nfm1; k1++)
{
ip=(int)wtable[k1+1+2*n+offset];
ld=0;
l2=l1*ip;
ido=n / l2;
ipm=ip-1;
for(j=1; j<=ipm;++j)
{
ld+=l1;
i=is;
argld=(double)ld*argh;
fi=0;
for(ii=3; ii<=ido; ii+=2)
{
i+=2;
fi+=1;
arg=fi*argld;
wtable[i-2+n+offset] = Math.cos(arg);
wtable[i-1+n+offset] = Math.sin(arg);
}
is+=ido;
}
l1=l2;
}
} /*rffti1*/
// ******************************************************************** //
// Real-Valued FFT -- Forward Transform.
// ******************************************************************** //
/*---------------------------------------------------------
rfftf: Real forward FFT
--------------------------------------------------------*/
void rfftf(int n, double r[], double wtable[])
{
if(n==1) return;
rfftf1(n, r, wtable, 0);
} /*rfftf*/
/*---------------------------------------------------------
rfftf1: further processing of Real forward FFT
--------------------------------------------------------*/
void rfftf1(int n, double[] c, final double[] wtable, int offset)
{
final double[] td = tempData;
System.arraycopy(wtable, offset, td, 0, n);
int nf = (int) wtable[1 + 2 * n + offset];
int na = 1;
int l2 = n;
int iw = n - 1 + n + offset;
for (int k1 = 1; k1 <= nf; ++k1) {
int kh = nf - k1;
int ip = (int) wtable[kh + 2 + 2 * n + offset];
int l1 = l2 / ip;
int ido = n / l2;
int idl1 = ido * l1;
iw -= (ip - 1) * ido;
na = 1 - na;
if (ip == 4) {
if (na == 0)
radf4(ido, l1, c, td, wtable, iw);
else
radf4(ido, l1, td, c, wtable, iw);
} else if (ip == 2) {
if (na == 0)
radf2(ido, l1, c, td, wtable, iw);
else
radf2(ido, l1, td, c, wtable, iw);
} else if (ip == 3) {
if (na == 0)
radf3(ido, l1, c, td, wtable, iw);
else
radf3(ido, l1, td, c, wtable, iw);
} else if (ip == 5) {
if (na == 0)
radf5(ido, l1, c, td, wtable, iw);
else
radf5(ido, l1, td, c, wtable, iw);
} else {
if (ido == 1)
na = 1 - na;
if (na == 0) {
radfg(ido, ip, l1, idl1, c, c, c, td, td, wtable, iw);
na = 1;
} else {
radfg(ido, ip, l1, idl1, td, td, td, c, c, wtable, iw);
na = 0;
}
}
l2 = l1;
}
// If na == 1, the results are in c. Otherwise they're in tempData.
if (na == 0)
for (int i = 0; i < n; i++)
c[i] = td[i];
}
// ******************************************************************** //
// Real-Valued FFT -- Reverse Transform.
// ******************************************************************** //
/*---------------------------------------------------------
rfftb: Real backward FFT
--------------------------------------------------------*/
void rfftb(int n, double r[], double wtable[])
{
if(n==1) return;
rfftb1(n, r, wtable, 0);
} /*rfftb*/
/*---------------------------------------------------------
rfftb1: further processing of Real backward FFT
--------------------------------------------------------*/
void rfftb1(int n, double c[], final double wtable[], int offset)
{
int k1, l1, l2, na, nf, ip, iw, ido, idl1;
final double[] td = tempData;
System.arraycopy(wtable, offset, td, 0, n);
nf=(int)wtable[1+2*n+offset];
na=0;
l1=1;
iw=n+offset;
for(k1=1; k1<=nf; k1++)
{
ip=(int)wtable[k1+1+2*n+offset];
l2=ip*l1;
ido=n / l2;
idl1=ido*l1;
if(ip==4)
{
if(na==0)
{
radb4(ido, l1, c, td, wtable, iw);
}
else
{
radb4(ido, l1, td, c, wtable, iw);
}
na=1-na;
}
else if(ip==2)
{
if(na==0)
{
radb2(ido, l1, c, td, wtable, iw);
}
else
{
radb2(ido, l1, td, c, wtable, iw);
}
na=1-na;
}
else if(ip==3)
{
if(na==0)
{
radb3(ido, l1, c, td, wtable, iw);
}
else
{
radb3(ido, l1, td, c, wtable, iw);
}
na=1-na;
}
else if(ip==5)
{
if(na==0)
{
radb5(ido, l1, c, td, wtable, iw);
}
else
{
radb5(ido, l1, td, c, wtable, iw);
}
na=1-na;
}
else
{
if(na==0)
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
Android多媒体开发高级编程 源码 (1259个子文件)
all-wcprops 2KB
all-wcprops 2KB
resources.ap_ 1.02MB
resources.ap_ 66KB
resources.ap_ 66KB
resources.ap_ 65KB
resources.ap_ 33KB
resources.ap_ 11KB
resources.ap_ 11KB
resources.ap_ 11KB
resources.ap_ 11KB
resources.ap_ 11KB
resources.ap_ 11KB
resources.ap_ 11KB
resources.ap_ 11KB
resources.ap_ 11KB
resources.ap_ 11KB
resources.ap_ 11KB
resources.ap_ 11KB
resources.ap_ 11KB
resources.ap_ 11KB
resources.ap_ 11KB
resources.ap_ 11KB
resources.ap_ 11KB
resources.ap_ 11KB
resources.ap_ 11KB
resources.ap_ 11KB
resources.ap_ 11KB
resources.ap_ 11KB
resources.ap_ 11KB
resources.ap_ 11KB
resources.ap_ 11KB
resources.ap_ 11KB
resources.ap_ 11KB
resources.ap_ 11KB
resources.ap_ 11KB
resources.ap_ 11KB
resources.ap_ 11KB
resources.ap_ 11KB
resources.ap_ 11KB
resources.ap_ 11KB
resources.ap_ 11KB
resources.ap_ 10KB
resources.ap_ 10KB
resources.ap_ 10KB
resources.ap_ 10KB
resources.ap_ 10KB
resources.ap_ 10KB
resources.ap_ 10KB
resources.ap_ 10KB
resources.ap_ 10KB
resources.ap_ 10KB
resources.ap_ 10KB
resources.ap_ 10KB
resources.ap_ 10KB
resources.ap_ 10KB
resources.ap_ 10KB
Pro Android Media Ch 6 - Background Audio Service Binding.apk 1.03MB
Pro Android Media Ch 12 - Blip Uploader.apk 151KB
Pro Android Media Ch 6 - Background Audio Service.apk 70KB
Pro Android Media Ch 5 - Custom Audio v2.apk 70KB
Pro Android Media Ch 5 - Custom Audio v1.apk 69KB
Pro Android Media Ch 4 - Graphics Examples.apk 37KB
Pro Android Media Ch 8 - Audio Processing.apk 33KB
Pro Android Media Ch 12 - Location Flickr JSON.apk 18KB
Pro Android Media Ch 12 - Flickr JSON.apk 17KB
Pro Android Media Ch 10 - MediaPlayer Network Video Player.apk 17KB
Pro Android Media Ch 7 - Raw Audio Capture and Playback.apk 17KB
Pro Android Media Ch 7 - Custom Audio Recorder Amplitude MediaStore.apk 17KB
Pro Android Media Ch 10 - Video Gallery.apk 17KB
Pro Android Media Ch 9 - Custom Video Player MediaPlayer with MediaController.apk 16KB
Pro Android Media Ch 7 - Custom Audio Recorder Amplitude.apk 16KB
Pro Android Media Ch 1 - MediaStore Camera Intent.apk 16KB
Pro Android Media Ch 4 - Choose Picture Draw Save.apk 16KB
Pro Android Media Ch 2 - Timelapse Snapshot.apk 16KB
Pro Android Media Ch 2 - Timer Snapshot.apk 16KB
Pro Android Media Ch 9 - Custom Video Player MediaPlayer.apk 16KB
Pro Android Media Ch 3 - Choose Picture - Composite.apk 16KB
Pro Android Media Ch 4 - Choose Picture Draw.apk 15KB
Pro Android Media Ch 3 - Choose Picture - Manual ColorMatrix .apk 15KB
Pro Android Media Ch 7 - Custom Audio Recorder.apk 15KB
Pro Android Media Ch 3 - Choose Picture - Matrix Examples.apk 15KB
Pro Android Media Ch 3 - Choose Picture - Manual Matrix.apk 15KB
Pro Android Media Ch 3 - Choose Picture - Bitmap on Bitmap.apk 15KB
Pro Android Media Ch 12 - Simple XML Parser.apk 15KB
Pro Android Media Ch 1 - MediaStore Gallery.apk 15KB
Pro Android Media Ch 2 - Snapshot.apk 15KB
Pro Android Media Ch 11 - Intent Video Capture with Metadata.apk 15KB
Pro Android Media Ch 3 - Choose Picture.apk 15KB
Pro Android Media Ch 8 - Finger Sounds.apk 15KB
Pro Android Media Ch 1 - Sized Camera Intent.apk 15KB
Pro Android Media Ch 8 - Generating Samples.apk 15KB
Pro Android Media Ch 11 - Custom Video Capture.apk 15KB
Pro Android Media Ch 8 - Audio Synthesis.apk 14KB
Pro Android Media Ch 5 - Audio Browser.apk 14KB
Pro Android Media Ch 12 - Location Tracking.apk 14KB
Pro Android Media Ch 7 - Intent Audio Recorder.apk 14KB
Pro Android Media Ch 11 - Intent Video Capture.apk 14KB
Pro Android Media Ch 6 - Simple Local Service.apk 14KB
Pro Android Media Ch 4 - Simple Finger Draw v2.apk 14KB
共 1259 条
- 1
- 2
- 3
- 4
- 5
- 6
- 13
资源评论
- yangtingruiaaa2014-10-31谢谢分享,最近在学习android多媒体相关的东西。收益了,谢谢
- wocawuliao2015-04-14还可以。5分有点多了
- 引修竹2014-05-22相比较于需要花费的5分..还是一般的..
ShaderJoy
- 粉丝: 2w+
- 资源: 38
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功