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










相关推荐
长安er27 分钟前
LeetCode136/169/75/31/287 算法技巧题核心笔记
数据结构·算法·leetcode·链表·双指针
MarkHD29 分钟前
智能体在车联网中的应用:第29天 多智能体完全合作场景的核心算法:从CTDE思想到VDN与MADDPG的深度解析
算法
wanzhong23331 小时前
CUDA学习5-矩阵乘法(共享内存版)
深度学习·学习·算法·cuda·高性能计算
fufu03112 小时前
Linux环境下的C语言编程(四十八)
数据结构·算法·排序算法
Yingye Zhu(HPXXZYY)2 小时前
Solution to Luogu P6340
算法
小熳芋2 小时前
单词搜索- python-dfs&剪枝
算法·深度优先·剪枝
Xの哲學2 小时前
Linux SLAB分配器深度解剖
linux·服务器·网络·算法·边缘计算
bu_shuo2 小时前
MATLAB中的转置操作及其必要性
开发语言·算法·matlab
高洁013 小时前
图神经网络初探(2)
人工智能·深度学习·算法·机器学习·transformer
爱装代码的小瓶子3 小时前
算法【c++】二叉树搜索树转换成排序双向链表
c++·算法·链表