十段图示均衡器实验报告文档格式.docx
- 文档编号:16662395
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:13
- 大小:37.17KB
十段图示均衡器实验报告文档格式.docx
《十段图示均衡器实验报告文档格式.docx》由会员分享,可在线阅读,更多相关《十段图示均衡器实验报告文档格式.docx(13页珍藏版)》请在冰豆网上搜索。
中心频率两边功率衰减3dB时,对应的两个不同频率,分别为上、下截止频率,上、下截止频率之差为带宽。
增益(G):
均衡器对于各种音效的实现依靠的最重要指标为增益曲线,一般以分贝为单位表示。
品质因子(Q):
中心频率与带宽的比值,用来表征滤波器的锐度。
音乐风格
预设增益
Default
{0,0,0,0,0,0,0,0,0,0}
Club
{0,0,0,1,2,3,3,2,1,0}
Dance
{9,8,5,2,1,0,-3,-4,-3,0}
FullBuss
{8,8,8,7,4,0,-3,-5,-7,-9}
FullTreble
{-9,-8,-7,-6,-3,1,5,8,10,12}
Pope
{-2,-1,0,2,3,2,0,-2,-2,-1}
Rock
{6,5,2,-2,-5,-2,0,3,5,6}
Soft
{2,1,0,0,-1,0,1,2,3,4}
LargeHall
{8,7,6,3,2,0,-1,-2,-1,0}
Party
{4,4,3,2,0,0,0,0,0,4}
四、实验主要代码:
//音乐风格的预设增益
intPreEft[18][10]={0,0,0,0,0,-1,-2,-4,-6,-9,
0,0,0,1,2,3,3,2,1,0,
9,8,5,2,1,0,-3,-4,-3,0,
0,0,0,0,0,0,0,0,0,0,
8,8,8,7,4,0,-3,-5,-7,-9,
7,6,4,1,-3,-2,-1,2,6,9,
-9,-8,-7,-6,-3,1,5,8,10,12,
1,5,7,3,-2,-1,0,3,6,10,
8,7,6,3,2,0,-1,-2,-1,0,
-4,-3,-1,0,2,3,3,2,1,0,
4,4,3,2,0,0,0,0,0,4,
-2,-1,0,2,3,2,0,-2,-2,-1,
0,0,0,-1,-3,0,2,2,1,0,
6,5,2,-2,-5,-2,0,3,5,6,
-1,-2,-3,-2,0,1,2,3,4,5,
2,1,0,0,-1,0,1,2,3,4,
1,1,1,1,0,-1,-2,-2,0,3,
3,2,1,0,-3,-2,-1,1,3,4};
intCEqualizer:
:
UseEQ(EQPARAM*param,unsignedchar*Sig,unsignedchar*OutSig,longILen)
{
unsignedlongHband=(unsignedlong)(3*param->
Fs/8);
double*bandpow=(double*)malloc(param->
wbandlen*sizeof(double));
longi,k,len,level=-1;
for(i=9;
i>
=0;
i--)
{
if(CenBand[i]<
Hband)
{level=i;
break;
}
}
if((level<
1)||((level+1)>
param->
wbandlen))returnERR_PARAMERR;
if(level==1)returnERR_NOERR;
InitFilterBank(level);
for(i=0;
i<
wbandlen;
i++)bandpow[i]=pow(10,(param->
wband[i]/20));
double*tSig1=NULL;
double*tSig2=NULL;
if(param->
bitpersmp==16)
short*sig16=NULL;
if(param->
nchn==2)
{
len=ILen>
>
2;
if(NULL==(tSig1=(double*)malloc(sizeof(double)*len)))
returnERR_INSURMEM;
if(NULL==(tSig2=(double*)malloc(sizeof(double)*len)))
sig16=(short*)Sig;
k=0;
for(i=0;
len;
i++)
{tSig1[i]=sig16[k++]/32768.;
tSig2[i]=sig16[k++]/32768.;
//channel1
WaveDec(tSig1,len);
level+1;
i++)//addweight
{
k=Lb[i];
while(k<
=Le[i]){C[k]*=bandpow[i];
k++;
}
WaveRec(tSig1,len);
//channel2
WaveDec(tSig2,len);
WaveRec(tSig2,len);
//writebacktoOutSig
sig16=(short*)OutSig;
if(tSig1[i]>
1)sig16[k++]=32767;
elseif(tSig1[i]<
-1)sig16[k++]=-31768;
elsesig16[k++]=(short)(tSig1[i]*32768);
if(tSig2[i]>
elseif(tSig2[i]<
elsesig16[k++]=(short)(tSig2[i]*32768);
}
elseif(param->
nchn==1)
1;
{tSig1[i]=sig16[i]/32768.;
1)sig16[i]=32767;
-1)sig16[i]=-31768;
elsesig16[i]=(short)(tSig1[i]*32768);
else
returnERR_PARAMERR;
elseif(param->
bitpersmp==8)
k=0;
{tSig1[i]=(Sig[k++]-128)/128.;
tSig2[i]=(Sig[k++]-128)/128.;
1)OutSig[k++]=255;
-1)OutSig[k++]=0;
elseOutSig[k++]=(unsignedchar)(tSig1[i]*128+128);
elseOutSig[k++]=(unsignedchar)(tSig2[i]*128+128);
//OutSig[k++]=(unsignedchar)(tSig1[i]*128+128);
//OutSig[k++]=(unsignedchar)(tSig2[i]*128+128);
len=ILen;
{tSig1[i]=(Sig[i]-128)/128;
1)OutSig[i]=255;
-1)OutSig[i]=0;
elseOutSig[i]=(unsignedchar)(tSig1[i]*128+128);
//OutSig[i]=(unsignedchar)(tSig1[i]*128+128);
free(bandpow);
if(tSig1!
=NULL)free(tSig1);
if(tSig2!
=NULL)free(tSig2);
returnERR_NOERR;
//启用均衡
voidCEQDlg:
OnBtnset()//启用均衡
//TODO:
Addyourcontrolnotificationhandlercodehere
isset=true;
CScrollBar*pSB=(CScrollBar*)GetDlgItem(IDC_SCR1);
pSB->
EnableScrollBar(ESB_ENABLE_BOTH);
pSB=(CScrollBar*)GetDlgItem(IDC_SCR2);
pSB->
pSB=(CScrollBar*)GetDlgItem(IDC_SCR3);
pSB=(CScrollBar*)GetDlgItem(IDC_SCR4);
pSB=(CScrollBar*)GetDlgItem(IDC_SCR5);
pSB=(CScrollBar*)GetDlgItem(IDC_SCR6);
pSB=(CScrollBar*)GetDlgItem(IDC_SCR7);
pSB=(CScrollBar*)GetDlgItem(IDC_SCR8);
pSB=(CScrollBar*)GetDlgItem(IDC_SCR9);
pSB=(CScrollBar*)GetDlgItem(IDC_SCR10);
pSB=(CScrollBar*)GetDlgItem(IDC_SCRG);
if(isset)
for(inti=0;
10;
i++)bandpow[i]+=m_editg;
mwavefile.SetEQ(bandpow,10);
//禁用均衡
OnBtnclose()//禁用均衡
isset=false;
EnableScrollBar(ESB_DISABLE_BOTH);
mwavefile.StopEQ();
//归零
OnBtnzero()//归零
if(isset)
CScrollBar*pSB=(CScrollBar*)GetDlgItem(IDC_SCR1);
pSB->
SetScrollPos(0);
pSB=(CScrollBar*)GetDlgItem(IDC_SCR2);
pSB=(CScrollBar*)GetDlgItem(IDC_SCR3);
pSB=(CScrollBar*)GetDlgItem(IDC_SCR4);
pSB=(CScrollBar*)GetDlgItem(IDC_SCR5);
pSB=(CScrollBar*)GetDlgItem(IDC_SCR6);
pSB=(CScrollBar*)GetDlgItem(IDC_SCR7);
pSB=(CScrollBar*)GetDlgItem(IDC_SCR8);
pSB=(CScrollBar*)GetDlgItem(IDC_SCR9);
pSB=(CScrollBar*)GetDlgItem(IDC_SCR10);
UpdateData();
bandpow[0]=m_edit1=0;
bandpow[1]=m_edit2=0;
bandpow[2]=m_edit3=0;
bandpow[3]=m_edit4=0;
bandpow[4]=m_edit5=0;
bandpow[5]=m_edit6=0;
bandpow[6]=m_edit7=0;
bandpow[7]=m_edit8=0;
bandpow[8]=m_edit9=0;
bandpow[9]=m_edit10=0;
m_editg=0;
UpdateData(FALSE);
if(isset)mwavefile.SetEQ(bandpow,10);
}
//选择下拉效果菜单
OnSelchangePresent()//效果选择下拉框
isset=true;
intix=m_PresentEf.GetCurSel();
bandpow[0]=m_edit1=PreEft[ix][0];
bandpow[1]=m_edit2=PreEft[ix][1];
bandpow[2]=m_edit3=PreEft[ix][2];
bandpow[3]=m_edit4=PreEft[ix][3];
bandpow[4]=m_edit5=PreEft[ix][4];
bandpow[5]=m_edit6=PreEft[ix][5];
bandpow[6]=m_edit7=PreEft[ix][6];
bandpow[7]=m_edit8=PreEft[ix][7];
bandpow[8]=m_edit9=P
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图示 均衡器 实验 报告