手机可以做3d动漫视频网站,做彩铃的网站,网站建设氵金手指下拉十三,网页设计html代码大全怎么改颜色一、实验目的
掌握Matlab辅助设计滤波器系数的方法#xff0c;并实现音频混噪及IIR滤波器滤除#xff0c;并在LCD上显示音频信号的FFT计算结果。
二、实验原理
音频接口采用的是24.576MHz#xff08;读兆赫兹#xff09;晶振#xff0c;实验板上共有3个音频端口#x…一、实验目的
掌握Matlab辅助设计滤波器系数的方法并实现音频混噪及IIR滤波器滤除并在LCD上显示音频信号的FFT计算结果。
二、实验原理
音频接口采用的是24.576MHz读兆赫兹晶振实验板上共有3个音频端口分别是LINE IN、MIC IN和LINE OUT音频数据是通过I2C总线进行读写的McASP字母的时钟来自于晶振时钟分频后可得到帧同步信号和位同步信号。 TLV320AIC3106音频芯片
1数据精度支持 16/20/24/32 bit 。
2支持速率 8kHz ~ 96kHz 采样率。
3控制总线可选为 SPI 或 I2C。
4音频串行数据总线支持4种协议格式 I2S 左对齐格式右对齐格式DSP格式。
5有可编程PLL 可以灵活产生时钟。 音频芯片功能框图
1)在框图底部分别是供电部分、点击鼠标时钟产生部分、点击鼠标SPI或I2C串行总线控制部分。
2芯片通过左右声道采集输入的音频模拟信号。
3经过ADC采样后得到数字化的音频数据。
4数字化音频数据通过音频串行总线接口传输到DSP。
5DSP处理之后的数字化音频从DSP通过音频串行总线接口再传输到DAC。
6音频经过DAC还原为可输出的模拟信号。
7最后通过耳机或者音箱输出音频模拟信号。 音频芯片的工作流程。音频模拟信号通过左右声道分别采样经过ADC转换为数字信号后通过McASP传输到DSP在DSP处理完成后再通过McASP传输到DAC最后经过DAC转换为模拟信号后分左右声道输出。 IIR滤波器
IIR无限冲激响应数字滤波器infinite impulse response digital filter是对单位冲激的输入信号的响应为无限长序列的数字滤波器。可分为一维、二维或多维无限冲激响应数字滤波器。它的输出yn由当前的和过去的输入信号x(n)及过去的输出信号共同决定。IIR的幅频特性精度很高不是线性相位的可以应用于对相位信息不敏感的音频信号上。
对于IIR滤波器冲激响应理论上应会无限持续其输出不仅取决于当前和过去的输入信号值也取决于过去的信号输出值。其系统函数如下 无限冲激响应数字滤波器的差分工程如下 IIR滤波器特性
无限冲激响应数字滤波器具有以下特性
1系统函数可以写成封闭函数的形式。
2采用递归型结构即结构上带有反馈环路。IIR滤波器运算结构通常由延时、乘以系数和相加等基本运算组成可以组合成直接型、正准型、级联型、并联型四种结构形式都具有反馈回路。由于运算中的舍入处理使误差不断累积有时会产生微弱的寄生振荡。
3在设计上可以借助成熟的模拟滤波器的成果如巴特沃斯、契比雪夫和椭圆滤波器等有现成的设计数据或图表可查其设计工作量比较小对计算工具的要求不高。
4相位特性不好控制对相位要求较高时需加相位校准网络。
IIR滤波器的设计
设计IIR数字滤波器实质上就是找到一个使其频率响应H(Z)满足给定的通带截止频率、通带衰减系数、阻带截止频率及阻带衰减系数的可以在物理上实现的系统函数H(Z)。
根据所要设计滤波器的参数去确定一个模拟滤波器的传输函数然后再根据这个传输函数通过双线性变换、或脉冲响应不变法来进行数字滤波器的设计。它的设计比较复杂复杂在于它的模拟滤波器传输函数Hs的确定。这一点可以让软件来实现。具体实现步骤
1先确定需要一个什么样的滤波器巴特沃斯型切比雪夫型还是其它什么型的滤波器。
2当选定一个型号后就可以根据设计参数和这个滤波器的计算公式来确定其阶数、传输函数的表达式。通常这个过程中还存在预扭曲的问题这只是双线性变换法所需要注意的问题脉冲响应不变法不存在这种问题。
3确定HS后就可以通过双线性变换得到其数字域的差分方程。
MATLAB FIR 滤波器辅助设计生成滤波器系数。
打开Matlab 软件并打开Filter DesignedAnalaysis Tool工具在弹出的界面中按照所需滤波器修改以下参数
1滤波器类型高通Highpass
2滤波方式切比雪夫Ⅱ型IIRChebyshev Type II
3滤波器阶数Minimum order
4采样频率8000Hz
5阻带截止频率100Hz
6通带截止频率3400Hz
设置好参数后转换为单精度再导出生成包含滤波器系数的.h头文件将该头文件的数据拆分复制即可用于IIR函数。 程序流程设计
设计中首先要首先要进行I2C和McASP的管脚复用配置接着使能EDMA3的PSC和配置GPIO模块然后初始化DSP中断和配置按键中断进行音频芯片的初始化并将McASP初始化为EDMA方式初始化LCD自定义生成一段噪声备用最后进行按键检测如果USER0按键按下进行音频数据的混合噪声或IIR滤波或者是恢复原声如果是USER1按键按下则在LCD上显示计算的音频数据FFT结果。 数字信号处理库
DSPLIB 包含优化的、C语言可调用的通用信号处理例程用于计算密集型实时应用程序。 调用这些例程的运行速度比直接用C语言编写的等效代码快得多。使用DSPLIB可以缩短应用程序开发时间。
DSPLIB 3_4_0_0包括适用于 C64x 或 C66x 或 C674x 处理器的 Windows 或 Linux 安装可执行文件。 每个可执行文件安装一个组件包存储库、一个文档目录、一个 Eclipse 插件目录和一个扩展的组件目录结构其中包含组件库、头文件和测试示例。
TMS320C6748处理器使用的是dsplib_c674x_3_4_0_0。
dsplib_c674x_3_4_0_0 函数源码
FFT运算函数
程序使用DSPLIB 的库来进行FFT运算调用的程序源码和使用说明可以安装DSPLIB后查看。调用的FFT函数中第一个参数是样本中 FFT 的长度第二个参数是指向数据输入的指针。第三个参数是指向复杂旋转因子的指针。第四个参数是指向复杂输出数据的指针。第五个参数是指向包含 64 个条目的位反转表的指针。如果样本的FFT长度可以表示为 4 的幂第六个参数是4否则第六个参数是2 。第七个参数是从主FFT开始的样本中的子 FFT偏移索引 。 第八个参数是样本中主FFT的大小。
使用DSPLIB 的库来进行FFT运算。使用时直接包含“DSPF_sp_fftSPxSP.h”文件 即可。
API接口
void DSPF_sp_fftSPxSP(int N, float *ptr_x, float *ptr_w, float *ptr_y, unsigned char *brev, int n_min, int offset, int n_max); FFT逆变换函数
程序使用DSPLIB 的库来进行FFT逆变换调用的程序源码和使用说明可以安装DSPLIB后查看。调用的IFFT函数中第一个参数是样本中 FFT 的长度。第二个参数是指向数据输入的指针。第三个参数是指向复杂旋转因子的指针。第四个参数是指向复杂输出数据的指针。第五个参数是指向包含 64 个条目的位反转表的指针 。如果样本的FFT长度可以表示为 4 的幂第六个参数是4否则第六个参数是 2 。第七个参数是从主FFT开始的复杂样本中的子FFT偏移索引 。第八个参数是样本中主FFT的大小。
使用DSPLIB 的库来进行FFT逆变换。使用时直接包含“DSPF_sp_ifftSPxSP.h”文件 即可。
API接口
void DSPF_sp_ifftSPxSP (int N, float *ptr_x, float *ptr_w, float *ptr_y,
unsigned char *brev, int n_min, int offset, int n_max); 三、操作现象
实验设备
本实验使用的硬件接口为LINE IN和LINE OUT接口所需硬件为实验板、仿真器、电源、音频线、耳机和音乐播放器。本次操作是使用手机来播放音乐。 硬件连接
1使用音频线连接LINE IN停顿一下 CON10音频接口和手机手机播放音乐
2在LINE OUT 停顿一下CON11接口插上耳机或者音箱。
3连接仿真器和电脑的USB接口
4将拨码开关拨到DEBUG模式01111连接实验箱电源拨动电源开关上电。 软件操作
导入工程选择Demo文件夹下的对应工程
编译工程生成可执行文件
将CCS连接实验箱并加载程序
程序加载完成后点击运行程序
运行程序后按下USER0通过耳机可以听到播放的音乐混合了噪声。
再次按下USER0可以听到滤波后的音乐滤波后的音乐和原声几乎一致。
再按下一次USER0按键耳机会输出原声。
按下USER1按键在LCD屏上会显示音频信号的频谱图。
实验结束后先点击黄色按钮暂停程序运行再点击红色按钮退出CCS与实验箱的连接最后实验箱断电即可。