音频DSP技术与应用数字信号处理算法实验(论文)

目录

1 实验目的 1

掌握 FIR,IIR,FFT 滤波的 DSP 实现方法。 1

2 实验设备 1

3 实验内容 1

3.1 软件仿真 1

3.1.1 使用 Matlab 辅助生成滤波器系数 1

FIR 滤波器导出系数文件 2

3.1.2 FIR IIR FFT IFFT 频域滤波重叠相加法的 DSP 实现 4

FIR 实现方法 4

3.1.4 在 Matlab 中对仿真数据进行验证 9

图 9: 验证 FFT 数据 9

3.2 硬件实现 10

下按键 8, 9,LED7, 8 都亮,实现频域滤波重叠相 F IR。 11

4 实验总结与体会 11

5 实验完成后实验器材照片 12

26 N1=l e n g t h ( i n ) −1; 14

1实验目的

掌握 FIR,IIR,FFT 滤波的 DSP 实现方法。

2实验设备

硬件:ADSP-21489 EZ-Borad 开发板;软件:Matlab, Visual DSP++。

3实验内容

3.1软件仿真

软件仿真目标:输入一个音频数据,搭建数据流,生成软件仿真产生的 FIR,IIR,FFT 数据文件; 将原始输入数据导入 Matlab,在 Matlab 中,结合 Matlab 自身的函数,对 DSP 仿真生成的 FIR,IIR, FFT 数据的准确性进行验证。

3.1.1使用 Matlab 辅助生成滤波器系数

打开 Matlab 的 FDAtool 工具,出现如下图 1滤波器设计界面,选择 IIR 或 FIR 设计滤波器,注意这里需同输入的音频信号保持一致的采样频率,即 F s = 48000Hz,自定义参数后,点击 DesignF ilter 来生成滤波器,生成后可以在该界面上快捷框选择 M agnitudeandP haseRespenses 来直观查看滤波器冲 击响应的幅度谱和相位谱。确认无误之后,通过 F ile− > Export,选择导出 Coef f icientF ile(ASCII), 导出方式为 Decimal,点击 Export 确认导出,导出的文件为 .f cf 文件,导出后,M atlab 自动打开,如下??所示为设计一个 FIR,IIR 滤波器的导出文件,这里省略了部分内容。

css 复制代码
16 f i g u r e ;
17 s u b p l o t ( 2 1 1 ) ; p l o t (outFFT ) ;
18 xlim ( [ 1 1 0 0 0 ] ) ;
19 t i t l e ( 'FFT␣ r e s u l t ␣ (DSP␣implement ) ' ) ;
20 s u b p l o t ( 2 1 2 ) ; p l o t ( f f t a l l ) ;
21 t i t l e ( 'FFT␣ r e s u l t ␣ ( Matlab␣ c a l c u l a t e d ) ' ) ;
22 xlim ( [ 1 1 0 0 0 ] ) ;
23
24 % i n = i n ( 1 : 3 2 ) ;
25 %FIR 验证部分
26  N1=l e n g t h ( i n ) −1;
27   t1 =0:1/ f s : N1/ f s ;
28   f 1=[−N1/ 2 :N1/ 2 ] * f s /N1 ;
29   Fin=f f t s h i f t ( f f t ( i n ) ) ;
30 f i g u r e ;
31 s u b p l o t ( 3 , 2 , 1 ) ;
32 p l o t ( t1 , i n ) ;
33 xlim ( [ 0 0 . 1 ] ) ;
34 ylim ([ −20000 2 0 0 0 0 ] ) ;
35 x l a b e l ( ' t / s ' ) ;
36 t i t l e ( ' FIR␣ input ␣data ' ) ;
37
38
39 s u b p l o t ( 3 , 2 , 2 ) ;
40 N2=l e n g t h ( outFIR) −1;
41 t2 =0:1/ f s : N2/ f s ;
42 f 2=[−N2/ 2 :N2/ 2 ] * f s /N2 ;
43 Fout=f f t s h i f t ( f f t ( outFIR ) ) ;
44 p l o t ( t2 , outFIR ) ;
45 xlim ( [ 0 0 . 1 ] ) ;
46 ylim ([ −10000 1 0 0 0 0 ] ) ;
47 t i t l e ( ' FIR␣output ␣data (DSP␣implement ) ' ) ;
48 x l a b e l ( ' t / s ' ) ;
49
50
51 s u b p l o t ( 3 , 2 , 3 ) ;
52 p l o t ( f1 , abs ( Fin )/ f s ) ;
53     t i t l e ( ' FIR␣ input ␣ amplitude ␣spectrum ' ) ;
54 ylim ( [ 0 1 6 0 ] ) ; xlim ( [ 0 2 4 0 0 0 ] ) ; x l a b e l ( ' f /Hz ' ) ;
55 s u b p l o t ( 3 , 2 , 4 ) ;
56 p l o t ( f2 , abs ( Fout )/ f s ) ;
57     t i t l e ( ' FIR␣output ␣ amplitude ␣␣spectrum (DSP␣implement ) ' ) ;
58 ylim ( [ 0 1 6 0 ] ) ; xlim ( [ 0 2 4 0 0 0 ] ) ; x l a b e l ( ' f /Hz ' ) ;
59
60
61 s u b p l o t ( 3 , 2 , 5 ) ;
62 p l o t ( f1 , a n g l e ( Fin ) ) ;
63     t i t l e ( ' FIR␣ input ␣phase ␣spectrum ' ) ;
64 ylim ( [ 0 6 ] ) ; xlim ( [ 0 2 4 0 0 0 ] ) ; x l a b e l ( ' f /Hz ' ) ;
65 s u b p l o t ( 3 , 2 , 6 ) ;










相关推荐
会员源码网16 小时前
使用`mysql_*`废弃函数(PHP7+完全移除,导致代码无法运行)
后端·算法
木心月转码ing17 小时前
Hot100-Day10-T438T438找到字符串中所有字母异位词
算法
HelloReader18 小时前
Wi-Fi CSI 感知技术用无线信号“看见“室内的人
算法
颜酱20 小时前
二叉树分解问题思路解题模式
javascript·后端·算法
qianpeng8971 天前
水声匹配场定位原理及实验
算法
董董灿是个攻城狮1 天前
AI视觉连载8:传统 CV 之边缘检测
算法
AI软著研究员2 天前
程序员必看:软著不是“面子工程”,是代码的“法律保险”
算法
FunnySaltyFish2 天前
什么?Compose 把 GapBuffer 换成了 LinkBuffer?
算法·kotlin·android jetpack
颜酱2 天前
理解二叉树最近公共祖先(LCA):从基础到变种解析
javascript·后端·算法
地平线开发者2 天前
SparseDrive 模型导出与性能优化实战
算法·自动驾驶