⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 equaliz.c

📁 dsp AD公司ADSP21的代码,里面有FFT FIR IIR EQULIZER G722_21F 等可以在项目中直接应用的代码.此代码的来源是ADI公司自己出版的书籍,此书在美国购得
💻 C
字号:
#include <stdlib.h>
#include <math.h>
#include "rtdspc.h"

/**************************************************************************

EQUALIZ.C - PROGRAM TO DEMONSTRATE AUDIO EQUALIZATION
            USING 7 IIR BANDPASS FILTERS.

*************************************************************************/

/* gain values global so they can be changed in real-time */
/* start at flat pass through */
    float gain[7] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };

void main()
{
    int i;
    float signal_in,signal_out;

/* history arrays for the filters */
    static float hist[7][2];

/* bandpass filter coefficients for a 44.1 kHz sampling rate */
/* center freqs are 60, 150, 400, 1000, 2400, 6000, 15000 Hz */
/* at other rates center freqs are:                          */
/* at 32 kHz:       44, 109, 290,  726, 1742, 4354, 10884 Hz */
/* at 22.1 kHz:     30,  75, 200,  500, 1200, 3000,  7500 Hz */

    static float bpf[7][5] = {
  {  0.0025579741,  -1.9948111773,   0.9948840737,   0.0,  -1.0 },
  {  0.0063700872,  -1.9868060350,   0.9872598052,   0.0,  -1.0 },
  {  0.0168007612,  -1.9632060528,   0.9663984776,   0.0,  -1.0 },
  {  0.0408578217,  -1.8988473415,   0.9182843566,   0.0,  -1.0 },
  {  0.0914007276,  -1.7119922638,   0.8171985149,   0.0,  -1.0 },
  {  0.1845672876,  -1.0703823566,   0.6308654547,   0.0,  -1.0 },
  {  0.3760778010,   0.6695288420,   0.2478443682,   0.0,  -1.0 },
              };

    for(;;) {
/* sum 7 bpf outputs + input for each new sample */
        signal_out = signal_in = getinput();
        for(i = 0 ; i < 7 ; i++)
          signal_out += gain[i]*iir_filter(signal_in,bpf[i],1,hist[i]);
        sendout(signal_out);
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -