• 大小: 39KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-09
  • 语言: C/C++
  • 标签: 去噪  降噪  音频  

资源简介

音频去噪C++代码,注释清晰可用

资源截图

代码片段和文件信息

#include “Platform.h“
#include “avsmallft.h“

static void drfti1(int nfloat *waint *ifac)
{
    static int ntryh[4] = { 4235 };
    static float tpi = 6.28318530717958648f;
    float argarghargldfi;
    int ntry=0ij=-1;
    int k1 l1 l2 ib;
    int ld ii ip is nq nr;
    int ido ipm nfm1;
    int nl=n;
    int nf=0;
 L101:
    j++;
    if (j < 4)
        ntry=ntryh[j];
    else
        ntry+=2;
 L104:
    nq=nl/ntry;
    nr=nl-ntry*nq;
    if (nr!=0) goto L101;
    nf++;
    ifac[nf+1]=ntry;
    nl=nq;
    if(ntry!=2)goto L107;
    if(nf==1)goto L107;
    for (i=1;i    {
        ib=nf-i+1;
        ifac[ib+1]=ifac[ib];
    }
    ifac[2] = 2;
 L107:
    if(nl!=1)goto L104;
    ifac[0]=n;
    ifac[1]=nf;
    argh=tpi/n;
    is=0;
    nfm1=nf-1;
    l1=1;
    if(nfm1==0)return;
    for (k1=0;k1    {
        ip=ifac[k1+2];
        ld=0;
        l2=l1*ip;
        ido=n/l2;
        ipm=ip-1;
        for (j=0;j        {
            ld += l1;
            i = is;
            argld = (float)ld*argh;
            fi = 0.f;
            for (ii=2;ii            {
            fi += 1.f;
            arg = fi*argld;
            wa[i++] = cosf(arg);
            wa[i++] = sinf(arg);
            }
            is+=ido;
        }
        l1=l2;
    }
}

static void fdrffti(int nfloat *wsaveint *ifac)
{
    if (n == 1) return;
    drfti1(n wsave+n ifac);
}

static void dradf2(int idoint l1float *ccfloat *chfloat *wa1)
{
    int ik;
    float ti2tr2;
    int t0t1t2t3t4t5t6;

    t1=0;
    t0=(t2=l1*ido);
    t3=ido<<1;
    for(k=0;k    {
        ch[t1<<1]=cc[t1]+cc[t2];
        ch[(t1<<1)+t3-1]=cc[t1]-cc[t2];
        t1+=ido;
        t2+=ido;
    }

    if(ido<2)return;
    if(ido==2)goto L105;

    t1=0;
    t2=t0;
    for(k=0;k    {
        t3=t2;
        t4=(t1<<1)+(ido<<1);
        t5=t1;
        t6=t1+t1;
        for(i=2;i        {
            t3+=2;
            t4-=2;
            t5+=2;
            t6+=2;
            tr2=wa1[i-2]*cc[t3-1]+wa1[i-1]*cc[t3];
            ti2=wa1[i-2]*cc[t3]-wa1[i-1]*cc[t3-1];
            ch[t6]=cc[t5]+ti2;
            ch[t4]=ti2-cc[t5];
            ch[t6-1]=cc[t5-1]+tr2;
            ch[t4-1]=cc[t5-1]-tr2;
        }
        t1+=ido;
        t2+=ido;
    }
    if(ido%2==1)return;
 L105:
    t3=(t2=(t1=ido)-1);
    t2+=t0;
    for(k=0;k    {
        ch[t1]=-cc[t2];
        ch[t1-1]=cc[t3];
        t1+=ido<<1;
        t2+=ido;
        t3+=ido;
    }
}

static void dradf4(int idoint l1float *ccfloat *chfloat *wa1float *wa2float *wa3)
{
    static float hsqt2 = .70710678118654752f;
    int ikt0t1t2t3t4t5t6;
    float ci2ci3ci4cr2cr3cr4ti1ti2ti3ti4tr1tr2tr3tr4;
    t0=l1*ido;
  
    t1=t0;
    t4=t1<<1;
    t2=t1+(t1<<1);
    t3=0;

    for(k=0;k

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      26799  2015-08-17 10:31  TestNs\avsmallft.c

     文件        483  2015-08-17 10:23  TestNs\avsmallft.h

     文件       1277  2016-02-01 14:04  TestNs\fftwrap.c

     文件        497  2015-08-31 16:45  TestNs\fftwrap.h

     文件       7752  2016-08-07 16:38  TestNs\ns.c

     文件        399  2016-02-01 08:49  TestNs\ns.h

     文件       6607  2016-02-01 12:45  TestNs\Platform.h

     文件       1179  2016-08-07 15:45  TestNs\TestNs.cpp

     文件       4596  2016-02-02 09:39  TestNs\TestNs.vcxproj

     文件       1707  2016-02-02 09:39  TestNs\TestNs.vcxproj.filters

     文件        143  2016-02-02 09:35  TestNs\TestNs.vcxproj.user

     文件       1664  2016-02-01 16:27  TestNs\WavReader.cpp

     文件        759  2015-08-29 13:54  TestNs\WavReader.h

     文件       2215  2016-01-13 09:11  TestNs\WavWriter.cpp

     文件        687  2016-01-13 09:11  TestNs\WavWriter.h

     文件        885  2016-02-02 09:35  TestNs.sln

     文件      33900  2016-02-01 16:14  带噪语音.wav

     目录          0  2016-03-17 13:03  TestNs

----------- ---------  ---------- -----  ----

                91549                    18


评论

共有 条评论