DSP Builder 入门与使用 FIR 滤波器实现音频滤波--DSP Builder 应用实例主要内容 2. Audio ADC/DAC 配置 3. FIR 滤波器的设计 4. Quartus II工程对 DSP Builder 模块的调用一、设计要求(1) 原始音乐(夹带 2KHz 的啸叫声) 由电脑的媒体播放器播放后, 经音频线连到 Cyclone II EP2C70 DSP Development Board ( 以下简称 DSP 开发板)的 LINE IN 音频输入口, DS P 开发板上音频 codec 对模拟音频进行采样得到数字化音频; (2) 在 DSP 开发平台上设计 FIR 滤波器滤除原始音乐中的单音啸叫得到较理想的音乐, 并通过 DSP 开发板上音频 codec 进行 DAC 转换,通过耳机收听音乐效果。 Audio ADC Audio DAC 可控正弦发生器 FIR 滤波器二、 Audio ADC/DAC 配置主要步骤: ( 1)在 DE2_default 工程上修改( 2)从 Bypass 模式切换到 DAC 模式第一步:修改 在修改工程之前,下载原来的程序,用计算机播放器播放音乐并连到 DE2 的 LINEIN 输入端,用耳机可以听到效果。但是这个声音并没有经过 ADC 和 DAC ,因此并需进行修改, 否则无法测试滤波器的效果。修改方法: A_PATH_CTRL : LUT_DATA <= 16'h08F 8;将 8改为 0 SAMPLE_CTRL : LUT_DATA <= 16'h100 2;将 2改为 0 改完后结果如下图所示: 图 1修改 此时编译工程,将不能再听到 LINEIN 输入的音乐,说明修改生效了。第二步: Step 2: 修改 ( 1 )增加两个输入 fir_in_data 和 fir_out_data ,前者为 fir 滤波器的输入数据,也是 AD C 采样后的数据,后者是 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 第三步: Step 3: 修改 主要内容(1) 将 ADC 采集的数据进行串并转换得到并行数据(2) 将并行数据送给 fir_in_data (3) ADC 采集后的数据是双通道的,只需将左声道或右声道送给 fir_in_data ( 1)串并转换将以下代码加入到系统顶层文件 //////////////////////////////added by sunshine (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; ///// ADC data serial to pararrel always @(posedge AUD_BCLK) begin if(AUD_ADCLRCK) begin ADC_data_l[~count_ADC_l[3:0]]<=AUD_ADCDAT; count_ADC_l <= count_ADC_l+1; if(count_ADC_l==15) begin fir_in_data_r<=ADC_data_r; count_ADC_r<=0; end end else begin ADC_data_r[~count_ADC_r[3:0]]<=AUD_ADCDAT; count_ADC_r <= count_ADC_r+1; if(count_ADC_r==15) begin fir_in_data_l<=ADC_data_l; count_ADC_l<=0; end end end //////////////////////////////added by sunshine (end) 图 4串并转换( 2) AUDIO_DAC 重新连接? AUDIO_DAC 增加了两个输入 fir_in_data 和 fir_out_data (已在第二步完成) ?将串并转换的
使用FIR滤波器实现音频滤波实验指南. 来自淘豆网m.daumloan.com转载请标明出处.