目录
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 滤波器的导出文件,这里省略了部分内容。
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 ) ;










56

被折叠的 条评论
为什么被折叠?



