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










相关推荐
君义_noip4 分钟前
信息学奥赛一本通 1661:有趣的数列 | 洛谷 P3200 [HNOI2009] 有趣的数列
c++·算法·组合数学·信息学奥赛·csp-s
程序员:钧念7 分钟前
深度学习与强化学习的区别
人工智能·python·深度学习·算法·transformer·rag
英英_1 小时前
MATLAB数值计算基础教程
数据结构·算法·matlab
一起养小猫1 小时前
LeetCode100天Day14-轮转数组与买卖股票最佳时机
算法·leetcode·职场和发展
hele_two2 小时前
快速幂算法
c++·python·算法
l1t2 小时前
利用DeepSeek将python DLX求解数独程序格式化并改成3.x版本
开发语言·python·算法·数独
jllllyuz2 小时前
基于子集模拟的系统与静态可靠性分析及Matlab优化算法实现
算法·matlab·概率论
程序员-King.3 小时前
day143—递归—对称二叉树(LeetCode-101)
数据结构·算法·leetcode·二叉树·递归
BlockChain8883 小时前
字符串最后一个单词的长度
算法·go
爱吃泡芙的小白白3 小时前
深入解析:2024年AI大模型核心算法与应用全景
人工智能·算法·大模型算法