DSPBuilder入门与使用FIR滤波器实现音频滤波--.QuartusII工程对DSPBuilder模块的调用一、设计要求(1)原始音乐(夹带2KHz的啸叫声)由电脑的媒体播放器播放后,经音频线连到CycloneIIEP2C70DSPDevelopmentBoard(以下简称DSP开发板)的LINEIN音频输入口,DSP开发板上音频codec对模拟音频进行采样得到数字化音频;(2)在DSP开发平台上设计FIR滤波器滤除原始音乐中的单音啸叫得到较理想的音乐,并通过DSP开发板上音频codec进行DAC转换,通过耳机收听音乐效果。二、AudioADC/DAC配置主要步骤:(1)在DE2_default工程上修改(2)从Bypass模式切换到DAC模式第一步:,下载原来的程序,用计算机播放器播放音乐并连到DE2的LINEIN输入端,用耳机可以听到效果。但是这个声音并没有经过ADC和DAC,因此并需进行修改,否则无法测试滤波器的效果。修改方法:A_PATH_CTRL : LUT_DATA <= 16'h08F8; 将8改为0SAMPLE_CTRL : LUT_DATA <= 16'h1002; 将2改为0改完后结果如下图所示:,将不能再听到LINEIN输入的音乐,说明修改生效了。第二步:Step2:(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:(1)将ADC采集的数据进行串并转换得到并行数据(2)将并行数据送给fir_in_data(3)ADC采集后的数据是双通道的,只需将左声道或右声道送给fir_in_data(1)//////////////////////////////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;end endelsebeginADC_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;end endend //////////////////////////////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(两种方式)1CommandWindow在命令窗口输入fdatool:2通过菜单项打开具体位置:Start->Toolboxes->FilterDesign->FilterDesi
使用FIR滤波器实现音频滤波实验指南 来自淘豆网m.daumloan.com转载请标明出处.