嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 2 元微信扫码支付:2 元
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
CZT变换(chirp z-transform) 相比DFT,CZT是完成频谱细化的一种思路,本文主要记录CZT的C代码实现。
void CZT(comp* x, int N, comp A, comp W, comp* xCZT, int M)
{
int i;
int L;
comp* h;
comp* g;
comp* pComp;
comp tmp,tmp1,tmp2;
i=1;
do
{
i*=2;
} while (i<N M-1);
L = i;
h = (comp*)calloc(L,sizeof(comp));
g = (comp*)calloc(L,sizeof(comp));
pComp = (comp*)calloc(L,sizeof(comp));
for (i = 0; i<N; i )
{
tmp1 = cpow(A,-i);
tmp2 = cpow(W, i*i/2.0);
tmp = cmul(tmp1,tmp2);
g[i] = cmul(tmp,x[i]);
}
for (i = N;i<L; i )
{
g[i] =czero();
}
FFT(g,L,1);
for (i = 0;i<=M-1;i )
{
h[i] = cpow(W, -i*i/2.0);
}
for (i=M; i<=L-N;i )
{
h[i] =czero();
}
for (i = L-N 1; i<=L;i )
{
h[i] = cpow(W,-(L-i)*(L-i)/2.0);
}