音频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 ) ;










相关推荐
小妖6661 小时前
力扣(LeetCode)- 60. 排列序列
算法·leetcode·职场和发展
im_AMBER1 小时前
Leetcode 70 好数对的数目 | 与对应负数同时存在的最大正整数
数据结构·笔记·学习·算法·leetcode
小妖6661 小时前
力扣(LeetCode)- 74. 搜索二维矩阵
算法·leetcode·矩阵
Liangwei Lin1 小时前
洛谷 U311289 矩阵距离
线性代数·算法·矩阵
Dev7z4 小时前
基于MATLAB数学形态学的边缘检测算法仿真实现
算法·计算机视觉·matlab
风筝在晴天搁浅11 小时前
代码随想录 718.最长重复子数组
算法
kyle~11 小时前
算法---回溯算法
算法
star _chen11 小时前
C++实现完美洗牌算法
开发语言·c++·算法
hzxxxxxxx11 小时前
1234567
算法