您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 冶金工业 > 使用FIR滤波器实现音频滤波实验指南
DSPBuilder入门与使用FIR滤波器实现音频滤波--DSPBuilder应用实例主要内容1.设计要求2.AudioADC/DAC配置3.FIR滤波器的设计4.QuartusII工程对DSPBuilder模块的调用一、设计要求(1)原始音乐(夹带2KHz的啸叫声)由电脑的媒体播放器播放后,经音频线连到CycloneIIEP2C70DSPDevelopmentBoard(以下简称DSP开发板)的LINEIN音频输入口,DSP开发板上音频codec对模拟音频进行采样得到数字化音频;(2)在DSP开发平台上设计FIR滤波器滤除原始音乐中的单音啸叫得到较理想的音乐,并通过DSP开发板上音频codec进行DAC转换,通过耳机收听音乐效果。AudioADCAudioDAC可控正弦发生器FIR滤波器二、AudioADC/DAC配置主要步骤:(1)在DE2_default工程上修改(2)从Bypass模式切换到DAC模式第一步:修改I2C_AV_Config.v在修改工程之前,下载原来的程序,用计算机播放器播放音乐并连到DE2的LINEIN输入端,用耳机可以听到效果。但是这个声音并没有经过ADC和DAC,因此并需进行修改,否则无法测试滤波器的效果。修改方法:A_PATH_CTRL:LUT_DATA=16'h08F8;将8改为0SAMPLE_CTRL:LUT_DATA=16'h1002;将2改为0改完后结果如下图所示:图1修改I2C_AV_Config.v此时编译工程,将不能再听到LINEIN输入的音乐,说明修改生效了。第二步:Step2:修改AUDIO_DAC.v(1)增加两个输入fir_in_data和fir_out_data,前者为fir滤波器的输入数据,也是ADC采样后的数据,后者是fir滤波器滤波后的数据。具体代码为:input[DATA_WIDTH-1:0]fir_out_data;input[DATA_WIDTH-1:0]fir_in_data;图2增加两个输入(2)fir_in_data为ADC采样后的输出,现将其连入。图3将FLASH_Out改为fir_in_data第三步:Step3:修改DE2_Default.v主要内容(1)将ADC采集的数据进行串并转换得到并行数据(2)将并行数据送给fir_in_data(3)ADC采集后的数据是双通道的,只需将左声道或右声道送给fir_in_data(1)串并转换将以下代码加入到系统顶层文件DE2_Default.v//////////////////////////////addedbysunshine(begin)reg[3:0]count_ADC_l=0;reg[3:0]count_ADC_r=0;reg[15:0]fir_in_data_l=0;reg[15:0]fir_in_data_r=0;reg[15:0]ADC_data_l=0;reg[15:0]ADC_data_r=0;wire[15:0]fir_out_data;/////ADCdataserialtopararrelalways@(posedgeAUD_BCLK)beginif(AUD_ADCLRCK)beginADC_data_l[~count_ADC_l[3:0]]=AUD_ADCDAT;count_ADC_l=count_ADC_l+1;if(count_ADC_l==15)beginfir_in_data_r=ADC_data_r;count_ADC_r=0;endendelsebeginADC_data_r[~count_ADC_r[3:0]]=AUD_ADCDAT;count_ADC_r=count_ADC_r+1;if(count_ADC_r==15)beginfir_in_data_l=ADC_data_l;count_ADC_l=0;endendend//////////////////////////////addedbysunshine(end)图4串并转换(2)AUDIO_DAC重新连接AUDIO_DAC增加了两个输入fir_in_data和fir_out_data(已在第二步完成)将串并转换的数据送给fir_in_data,如下图所示图5重新对Audio_DAC进行元件例化至此,我们将ADC和DAC都已连接好。此时可以听到电脑播放器播放的音乐了。三、FIR滤波器的设计(1)启动FDATool(两种方式)①CommandWindow在命令窗口输入fdatool:②通过菜单项打开具体位置:Start-Toolboxes-FilterDesign-FilterDesign&analysisTool(fdatool)③设置滤波参数①设置参数为:带阻FIR滤波器,阶数128,汉明窗采样频率48KHz,fc1=1980Hz,fc2=2020Hz②点击DesignFilter此时出现滤波器频响曲线,注意参数的配置一定要符合滤波器性能要求,在要滤除的频率处,衰减至少10db以上,这样效果才够好。得到滤波器系数③设计完后导出滤波参数(点击Export)将滤波器参数导入工作区,名字默认为Num,直接点击Export(2)将滤波参数保存为文本文件将系数用记事本保存,这里记为coeff_116.txt4、FIR模型的建立(1)完成上述操作,然后打开Simulink,调用FIR的IPCORE①具体位置:SimulinkAlteraDSPBuilderMegaCoreFunctionsfir_compiler_v9_0②双击model中的fir模块进行设置,第一步Step1parameterize。③Step1EditCoefficientSetImportedCoefficientSet选择对应的滤波器配置文件(coeff_116.txt)后ApplyOK④之后的界面,参数如下:点击finish⑤然后点击Step2生成(Generate)(2)导入音频文件处理结果导出到workspace,再转存成文件(3)在工程目录下生成VHDL及QuartusII工程
本文标题:使用FIR滤波器实现音频滤波实验指南
链接地址:https://www.777doc.com/doc-4062180 .html