当前位置:文档之家› SEED-DTK643_v1.0实验手册_09年版_ DSP算法实验

SEED-DTK643_v1.0实验手册_09年版_ DSP算法实验

SEED-DTK643_v1.0实验手册_09年版_ DSP算法实验
SEED-DTK643_v1.0实验手册_09年版_ DSP算法实验

101

3.4 DSP 算法实验

3.4.1

有限冲击响应滤波器(FIR)算法实验 3.4.1.1 实验目的

1. 掌握数字滤波器的设计过程;

2. 了解FIR 的原理和特性;

3. 熟悉设计FIR 数字滤波器的原理和方法。

3.4.1.2 实验内容

1. 通过MATLAB 设计确定FIR 滤波器系数;

2. DSP 初始化;

3. A/D 采样;

4. FIR 运算,观察滤波前后的波型变化。

3.4.1.3

实验背景知识 3.4.1.3.1 有限冲击响应数字滤波器(FIR )的基础理论

FIR 数字滤波器是一种非递归系统,其冲激响应h(n)是有限长序列,其差分方程表达式为: ∑?=?=1

0)()()(N i i n x i h n y

N 为FIR 滤波器的阶数。

在数字信号处理应用中往往需要设计线性相位的滤波器,FIR 滤波器在保证幅度特性满足技术要求的同时,很容易做到严格的线性相位特性。为了使滤波器满足线性相位条件,要求其单位脉冲响应h(n)为实序列,且满足偶对称或奇对称条件,即h(n)=h(N-1-n)或h(n)=-h(N-1-n)。这样,当N 为偶数时,偶对称线性相位FIR 滤波器的差分方程表达式为

))1()()(()(1

2/0

i n N x i n x i h n y N i ???+?=∑?=

由上可见,FIR 滤波器不断地对输入样本x(n)延时后,再做乘法累加算法,将滤波器结果y(n)输出。因此,FIR 实际上是一种乘法累加运算。而对于线性相位FIR 而言,利用线性相位FIR 滤波器系数的对称特性,可以采用结构精简的FIR 结构将乘法器数目减少一半。

3.4.1.3.2 本实验中FIR 的算法公式

nx j k j x k h j r nh k ≤≤?=∑=0]

[][][0

3.4.1.4 实验要求

对带有噪声的不同输入信号(正弦波、方波、三角波)进行FIR滤波,观看滤掉噪声后的波形。

3.4.1.5 实验程序功能与结构说明

3.4.1.5.1 Filter实验,包含文件

1. Filter.c:实验的主程序,包含了系统初始化,音频芯片各控制寄存器的初始化, A/D

采样程序,FIR_Filter子程序。

2. DEC64

3.C:对SEED-DEC643各项资源操作的函数集,主要包含系统初始化函数。

3. CODEC.c:包含对音频芯片的各控制函数。

4. IIC.c:包含对IIC的各操作函数。

5. vecs.asm:包含定时器中断的中断向量表。

6. CODEC.cmd:声明了系统的存储器配置与程序各段的连接关系。

7. DEC643.gel:系统初始化程序。

3.4.1.5.2 程序流程图

3.4.1.5.3 实验准备

首先将光盘下03. Examples of Program \ 04. SEED-DTK643实验程序目录下的

3.4.1 FIR_Filter的文件夹拷贝到D根目录下。

1. 将DSP仿真器与计算机连接好;

2. 将DSP仿真器的JTAG插头与SEED-DEC643单元的J1相连接;

3. 打开SEED-DTK643的电源。观察SEED-DTK_MBoard单元的+5V,+3.3V,+

15V,-15V的电源指示灯以及SEED_DEC643的电源指示灯D1是否均亮;若有

不亮的,请断开电源,检查电源。

4. 用音频线连接SEED-DTK_MBoard单元的DAOUT1(J10)接口和SEED-DEC643 102

的BNC转接头(J13)的音频输入接口Ain。

3.4.1.5.4 实验步骤

1. 打开CCS,进入CCS的操作环境。

2. 装入FIR_Filter.pjt工程文件,添加DEC64

3.gel文件,开始进行调试。

3. 打开Filter.c文件,到第21行修改SAMPLELONG宏定义。

SAMPLELONG是采样长度选择,有3个选择1、2、3。1表示256,2表示512,3表示1024;

4. 修改完宏定义后,编译、连接生成Filter.out文件,装载程序Filter.out。

5. 本实验和FFT实验,AD实验都需要设置实验箱信号源。通过液晶屏和键盘,设置

信号源:当液晶屏上出现“通讯自检不成功,请复位系统”时,按下“Enter”键,

进入“信号发生器设置”。

在“信号发生器设置”这一菜单下:

“通道”设为“0”;

“信号类型”可根据需要任意选择(这里我们选”噪声正弦波”);

“信号频率”和“信号振幅”可在屏幕下方“有效输入”限定的范围内任意输入,建议振幅设为1000左右,频率”设为300左右;

“信号发生器开关”设为“开启”。此时便有噪声方形波信号输入音频芯片AIC23的输入端(利用此芯片同样可以进行AD采集)。

6. 打开Filter.c文件,在第65行“fir_filter((int *)DataBuffer,(int *)hfir,DDataBuffer,

ORDER_FIR ,SampleLong,ROUND_FIR);”66行设置断点“printf("FIR filter have

done!\n");”

7. 运行程序。可以观察收到的数据和显示的图像;DataBuffer数组显示的是原始信号

图像;DDataBuffer数组显示的是滤波后信号图像。

其中图像显示设置对话框中Start adderss:起始地址;Acquisition Buffer Size:输入数据个数;Display Data Size:显示数据个数(注意:显示个数要与程序中宏

定义的采样个数一致);DSP Data Type:数据类型;

滤波前

103

104

滤波后:

8. 从第6)步开始重新执行,变化采样长度或滤波类型,或者退出本实验。

3.4.1.6 MATLAB的应用

实验者若进一步研究FIR算法,会发现在每种算法函数的开始处都已定义好进行FIR 运算时所需的系数,这些系数是用Matlab产生的。下面具体介绍一下在Matlab中如何设置各种参数,从而方便实验者根据具体需要进行参数的调整,从而达到不同的滤波效果。

说明:实验箱提供的信号默认采样频率为48KHz,信号频率为200Hz,幅值为500mv。fir具体参数如下:(为方便起见,采用MATLAB执行格式,括弧内为说明)ezFIR FILTER DESIGN SCRIPT

Input FIR Filter order(EVEN for BS and HP Filter) : 50(阶数)

Low Pass: 1

High Pass: 2

Band Pass: 3

Band Stop: 4

Select Any one of the above Response: 1(低通)

Hamming: 1

Hanning: 2

Bartlett : 3

Blackman: 4

Select Any one of the above window : 1(使用Hamming窗)

Enter the Sampling frequency: 48000(采样频率)

Enter the corner frequency(Fc): 500(截止频率)

Enter the name of the file for coeff storage : filter.dat(生成dat文件名)

说明:MATLAB源文件在在光盘下03. Examples of Program \07. MAtlab文件夹中,文件名为ezFIR,只需运行它,按照以上示例输入参数(或根据具体需要输入所需参数后)即可得到FIR-FILTER算法所需的系数。

输入参数中,通带截至频率(FP)和截止带截止频率(FS)是比较重要的两个参数,不宜过小,过小滤掉的高频成分太多,很难还原出原波形的形状;也不宜过大,过大滤波效果欠佳。这里只是作为实验演示程序时所需参数的建议,真正做滤波程序时,所需参数还要根据具体要求而定。

105

106 3.4.2

无限冲击响应滤波器(IIR)算法实验 3.4.2.1 实验目的

1. 掌握数字滤波器的设计过程;

2. 了解IIR 的原理和特性;

3. 熟悉设计IIR 数字滤波器的原理和方法。

3.4.2.2 实验内容

1. 通过MATLAB 设计确定IIR 滤波器系数;

2. A/D 采样 ;

3. IIR 运算,观察滤波前后的波型变化。

3.4.2.3 实验背景知识

3.4.2.3.1 无限冲击响应数字滤波器(IIR )的基础理论

1. IIR 滤波器直接型结构

数字滤波器的输入x[k]和输出y[k]之间的关系可以用如下常系数 线性差分方程及其z 变换描述。

][][][10p k y b p k x a k y N p p N p p ?+?=∑∑== 系统的转移函数为

∑∑=?=??==N k k

k M k k

k z a z b z X z Y z H 01

1)()()(

设N=M ,则传输函数变为

∏=??????=++++++=N j j j N N N N p z z z C z b z b z a z a a z H 111110...1...)(

它具有N 个零点和N 个极点,如果任何一个极点在Z 平面单位圆外,则系统不稳定。如果系数j b 全部为0,滤波器成为非递归的FIR 滤波器,这时系统没有极点,因此FIR 滤波器总是稳定的。对于IIR 滤波器,有系数量化敏感的缺点。

由于系统对序列施加的算法,是由加法、延时和常系数乘三种基本运算的组合,所以可以用不同结构的数字滤波器来实现而不影响系统总的传输函数。

2. IIR 数字滤波器的设计

数字滤波器设计的出发点是从熟悉的模拟滤波器的频率响应出发,IIR 滤波器的设

计有两种方法:

107

第一种方法先设计模拟低通滤波器,然后通过频带变换而成为其他频带选择滤波器(带通、高通等),最后通过滤波器变换得到数字域的IIR 滤波器。 第二种方法先设计模拟低通滤波器,然后通过滤波器变换而得到数字域的低通滤波器,最后通过频带变换而得到期望的IIR 滤波器。 模拟滤波器原理(巴特沃斯滤波器、切比雪夫滤波器) 为了用物理可实现的系统逼近理想滤波器的特性,通常对理想特性作如下修改:

1) 允许滤波器的幅频特性在通带和阻带有一定的衰减范围,幅频特性在这一范围内允许有起伏。

2) 在通带与阻带之间允许有一定的过渡带。

工程中常用的逼近方式有巴特沃斯(Butterworth )逼近、切比雪夫(Chebyshev )逼近和椭圆函数逼近。相应设计的滤波器分别为巴特沃斯滤波器、切比雪夫滤波器和椭圆函数滤波器。

巴特沃斯滤波器的模平方函数由下式描述:

n

c B H 22(11

|)(|ΩΩ+=Ω n 为阶数;c Ω为滤波器截止频率

切比雪夫滤波器比同阶的巴特沃斯滤波器具有更陡峭的过渡带特性和更优的阻带衰减特性。切比雪夫低通滤波器的模平方函数定义为

)(11|)(|222Ω+=

Ωn c T H ε 其中,ε为决定|)(|Ωc H 等波动起伏幅度的常数;n 为滤波器的阶数;)(Ωn T 是n 阶切比雪夫多项式。

3. 本实验中IIR 的算法公式:

)2()1()()()

2()1()()(21021?×+?×+×=?×??×?=n d b n d b n d b n y n d a n d a n x n d

3.4.2.4 实验要求

对带有噪声的不同输入信号进行IIR 滤波,观看滤掉噪声后的波形。

3.4.2.5 实验程序功能与结构说明

3.4.2.5.1 Filter 实验,包含文件

1. Filter.c :实验的主程序,包含了系统初始化,音频芯片各控制寄存器的初始化, A/D

采样程序。

2. IIR_Filte.c :IIR 滤波子程序。

3. DEC643.C :对SEED-DEC643各项资源操作的函数集,主要包含系统初始化

函数。

4. CODEC.c :包含对音频芯片的各控制函数。

5. IIC.c :包含对IIC 的各操作函数。

6. vecs.asm:包含定时器中断的中断向量表。

7. CODEC.cmd:声明了系统的存储器配置与程序各段的连接关系。

8. DEC643.gel:系统初始化程序。

3.4.2.5.2 程序流程图

3.4.2.5.3 实验准备

首先将光盘下03. Examples of Program \ 04. SEED-DTK643实验程序目录下的

3.4.2 IIR_Filter的文件夹拷贝到D盘根目录下。

1. 将DSP仿真器与计算机连接好;

2. 将DSP仿真器的JTAG插头与SEED-DEC643单元的J1相连接;

3. 打开SEED-DTK643的电源。观察SEED-DTK_MBoard单元的+5V,+3.3V,+

15V,-15V的电源指示灯以及SEED_DEC643的电源指示灯D1是否均亮;若有

不亮的,请断开电源,检查电源。

4. 用音频线连接SEED-DTK_MBoard单元的DAOUT1(J10)接口和SEED-DEC643

的BNC转接头(J13)的音频输入接口Ain。

3.4.2.5.4 实验步骤

1. 打开CCS,进入CCS的操作环境。

2. 装入IIR_Filter.pjt工程文件,添加DEC64

3.gel文件开始进行调试。

3. 打开Filter.c文件,到第24行修改SAMPLELONG宏定义。

SAMPLELONG是采样长度选择,有3个选择1、2、3。1表示256,2表示512,3表示1024。

4. 修改完宏定义后,编译、连接生成Filter.out文件,装载程序Filter.out;

5. 本实验和FFT实验,数字滤波实验都需要设置实验箱信号源。通过液晶屏和键盘,108

设置信号源:当液晶屏上出现“通讯自检不成功,请复位系统”时,按下“Enter”

键,进入“信号发生器设置”。

在“信号发生器设置”这一菜单下:

“通道”设为“0”;

“信号类型”可根据需要任意选择(这里我们选择”噪声正弦波”);

“信号频率”和“信号振幅”可在屏幕下方“有效输入”限定的范围内任意输入,建议振幅设为1000左右,频率”设为300左右;

“信号发生器开关”设为“开启”。此时便有信号输入音频芯片AIC23的输入端(利用此芯片同样可以进行AD采集)。

6. 打开Filter.c文件,在第65行“iir_filter(DataBuffer,SOSr,G,DDataBuffer,Sample-

Long,ROUND_IIR);”,66行设置断点“printf("IIR filter have done!\n");”设置断点。

运行程序。可以观察收到的数据和显示的图像;DataBuffer数组显示的是原始信号图像;DDataBuffer数组显示的是滤波后信号图像。

其中图像显示设置对话框中Start adderss:起始地址;Acquisition Buffer Size:输入数据个数;Display Data Size:显示数据个数(注意:显示个数要与程序中宏定义的采样个数一致);DSP Data Type:数据类型;

滤波前

滤波后:

109

110

7. 从第6)步开始重新执行,变化采样长度或滤波类型,或者退出本实验。

3.4.2.6 MATLAB的应用

下面具体介绍一下在Matlab中如何设置各种参数,从而方便实验者根据具体需要进行参数的调整,从而达到不同的滤波效果。

说明:实验箱提供的信号默认采样频率为48KHz,信号频率为200Hz,幅值为500mv。iir具体参数如下:(为方便起见,采用MATLAB执行格式,括弧内为说明)ezIIR FILTER DESIGN SCRIPT

Butterworth: 1

Chebyshev(Type 1: 2

Chebyshev(Type 2): 3

Elliptic: 4

Select Any one of the above IIR Filter Type: 1(采用Butterworth滤波)

Low pass: 1

High Pass: 2

Band Pass: 3

Band Stop: 4

Select Any one of the above Response: 1(低通)

Enter the Sampling frequency: 48000(采样频率)

Enter the Pass band Ripples in dB(RP): 1(通带内波动范围)

Enter the stop band Rippled in dB(RS): 20(截止带外波动范围)

Enter the pass band corner frequency(FP): 2000(通带截止频率)

Enter the stop band corner frequency(FS): 3000(截止带截止频率)

Enter the name of the file for coeff storage: filter.dat(生成dat文件名)Q format of the IIR filter coefficients:(其他所需参数) 13

Input Scaling value: 0.0678

Number of Biquads: 4

说明:MATLAB源文件在在光盘下03. Examples of Program \07. MAtlab文件夹中,文件名为ezIIR,只需运行它,按照以上示例输入参数(或根据具体需要输入所需参数后)即可得到IIR-FILTER算法所需的系数。

提示:IIR-FILTER算法程序中输入为Q15,输出为Q14,系数为Q13。

输入参数中,通带截至频率(FP)和截止带截止频率(FS)是比较重要的两个参数,不宜过小,过小滤掉的高频成分太多,很难还原出原波形的形状;也不宜过大,过大滤波效果欠佳。这里只是作为实验演示程序时所需参数的建议,真正做滤波程序时,所需参数还要根据具体要求而定。

111

112 3.4.3

快速傅立叶变换(FFT)算法实验 3.4.3.1 实验目的

1. 加深对DFT 算法原理和基本性质的理解;

2. 熟悉FFT 的算法原理和FFT 子程序的算法流程和应用;

3. 学习用FFT 对连续信号和时域信号进行频谱分析的方法。

3.4.3.2 实验内容

1. DSP 初始化;

2. A/D 采样;

3. FFT 的运算程序。

3.4.3.3 实验背景知识

傅立叶变换是一种将信号从时域到频域的变换形式,是声学、语音、电信和信号处理等领域中的一种重要分析工具。离散傅立叶变换(DFT )是连续傅立叶变换在离散系统中的表现形式,由于DFT 的计算量很大,因此在很长时间内其应用受到很大的限制。快速傅立叶变换(FFT )是离散傅立叶变换的一种高效运算方法。FFT 使DFT 的运算大大简化,运算时间一般可以缩短一至两个数量级,FFT 的出现大大提高了DFT 的运算速度,从而使DFT 在实际应用中得到广泛的应用。在数字信号处理系统中,FFT 作为一个非常重要的工具经常使用,它甚至成为DSP 运算能力的一个考核因素。

对于有限长离散数字信号{x[n]},0≦n ≦N-1,其离散谱{x[k]}可以由离散付氏变换(DFT )求得。DFT 的定义为

1,1,0][)()2(10?==??=∑N k e

n x k X nk N j N n L π

可以方便的把它改写为如下形式:

1,,1,0][)(10?==∑?=N k W n x k X nk N

N n L

即N

j N e W /22π?=称为蝶形因子式旋转因子。 对于旋转因子N W 来说,有如下的对称性和周期性:

对称性:2/N k N k N W W +?=; 周期性:N k N k N W W +=。

FFT就是利用了旋转因子的对称性和周期性来减少运算量的。

FFT算法将长序列的DFT分解为短序列的DFT。N点的DFT先分解为两个N/2点的DFT,每个N/2点的DFT又分解为两个N/4点的DFT等等,最小变换的点数即基数,基数为2的FFT算法的最小变换是2点DFT.

一般而言,FFT算法分为时间抽选(DIT)FFT和频率抽选(DIF)FFT两大类。时间抽取FFT算法的特点是每一级处理都是在时域里把输入序列依次按奇/偶一分为二分解成较短的序列;频率抽取FFT算法的特点是在频域里把序列依次按奇/偶一分为二分解成较短的序列来计算。

DIT和DIF两种FFT算法的区别是旋转因子

k

N

W

出现的位置不同,(DIT)FFT中旋转

因子

k

N

W

在输入端,(DIF)FFT中旋转因子

k

N

W

在输出端,除此之外,两种算法是一样

的。在本设计中实现的是基2的频率抽取FFT算法,具体的实现过程可参见源程序及其注释。

3.4.3.4 实验要求

对不同的输入信号进行FFT变换,观看不同信号在频域内的特性。

3.4.3.5 实验程序功能与结构说明

3.4.3.5.1 FFT实验,包含文件

1. FFT.c:实验主程序,包含系统初始化,音频芯片各控制寄存器的初始化,A/D采

样,FFT变换,以及将FFT变换结果做取模运算。

2. CODECc:音频芯片各控制寄存器的初始化。

3. FFTfunction.c:包含不同采样长度时FFT变换的各函数。

4. IIC.c:进行I2C初始化。

5. vecs.asm:包含定时器中断的中断向量表。

6. SEED_DEC643.cmd:声明了系统的存储器配置与程序各段的连接关系。

3.4.3.5.2 程序流程图

113

3.4.3.5.3 实验准备

首先将光盘下03. Examples of Program \ 04. SEED-DTK643实验程序目录下的

3.4.3 FFT的文件夹拷贝到D盘根目录下。

1. 将DSP仿真器与计算机连接好;

2. 将DSP仿真器的JTAG插头与SEED-DEC643单元的J1相连接;

3. 打开SEED-DTK643的电源。观察SEED-DTK_MBoard单元的+5V,+3.3V,+

15V,-15V的电源指示灯以及SEED_DEC643的电源指示灯D1是否均亮;若有不亮的,请断开电源,检查电源;

4. 用音频线连接SEED-DTK_MBoard单元的DAOUT1(J10)接口和SEED-DEC643

的BNC转接头(J13)的音频输入接口Ain。

3.4.3.5.4 实验步骤

1. 打开CCS,进入CCS的操作环境。

2. 装入FFT.pjt工程文件,添加DEC64

3.gel文件,开始进行调试。

3. 打开FFT.c文件,到第15行,可以修改宏定义SAMPLELONG 。

SAMPLELONG是采样长度选择,有3个选择1、2、3。1表示256,2表示512,3表示1024。

4. 修改完宏定义后,编译、连接生成DEC643_FFT.out文件,装载程序

DEC643_FFT.out。

5. 分别在FFT.c程序的65行“for(i=0;i<(SampleLong/2);i++)”处和120行“for(;;);”

处设置断点。

6. 本实验和AD实验,数字滤波实验都需要设置实验箱信号源。通过液晶和按键,设

置信号源。菜单路径为:“系统设置”-“信号发生器设置”。

在“信号发生器设置”这一菜单下:

“通道”设为“0”;

“信号类型”可根据需要任意选择,这里我们设置为”标准正弦波”;

“信号频率”和“信号振幅”可在屏幕下方“有效输入”限定的范围内任意输入,建议“信号振幅”设为1000左右,“信号频率” 设为300左右;

“信号发生器开关”设为“开启”。此时便有正弦信号输入音频芯片AIC23的输入端(利用此芯片同样可以进行AD采集)。

7. 运行程序。当程序执行到断点时,可以观察收到的数据和显示的图像。

运行到第一个断点处(65行),AD采样完成,此时可设置图像观察AD采样的结果(即显示DataBuffer数组);运行到第二个断点处(120行),FFT变换完成,同样可设置图像观察FFT变换后没有取模时的结果(即显示DDataBuffer数

114

组),和取模后的结果(即显示mod数组)。

如下图从上至下分别为512点时,DataBuffer数组,DDataBuffer数组,mod 数组的图像显示。

其中图像显示设置对话框中Start adderss:起始地址;Acquisition Buffer Size:输入数据个数;Display Data Size:显示数据个数(注意:显示个数要与程序中宏定义的采样个数一致);DSP Data Type:数据类型;

以上举例说明1024点时如何观察收到的数据和显示的图像,256点和512点可以此类推。

8. 重新执行第6)步,变化采样长度和输入信号类型;

提示:若第一次运行程序后的显示结果不理想,请重新复位CPU,返回程序起始处,再次运行程序。因为在FFT算法中进行了循环累加等运算,在第一次运行程序时,可能由于初始值的原因导致运算结果不理想,再次运行程序时将不会出现上述问题。

115

3.4.4 卷积算法实验

3.4.4.1 实验目的

1. 掌握卷积算法的原理和计算方法;

2. 熟悉卷积算法特性。

3.4.4.2 实验内容

1. 卷积的运算程序。

3.4.4.3 实验背景知识:

3.4.4.3.1 卷积算法基础理论简介

1. 卷积的基本原理和公式

卷积和:对离散系统“卷积和”也是求线性时不变系统输出响应(零状态响应)的主要方法。

∑∞?∞=

=?

=

m

n

h

n

X

m

n

h

m

X

n

Y)

(

*)

(

)

(

)

(

)

(

卷积和的运算在图形表示上可分为四步:

1) 翻褶:先在亚变量坐标M上作出x(m)和h(m),将m=0的垂直轴为轴翻褶成

h(-m);

2) 移位:将h(-m)移位n,即得h(n-m)。当n为正整数时,右移n位。当n为负

整数时,左移n位;

3) 相乘:再将h(n-m)和x(m)的相同m值的对应点值相乘;

4) 相加:把以上所有对应点的乘积叠加起来,即得y(n)值。依上法,取

n=,-2,-1,0,1,2,3,各值,即可得全部y(n)值。

3.4.4.3.2 程序的函数及其功能

2. static int step1(int *output1,int *output2)

调用形式:step1(ouput1,output2)

参数解释:output1、output2为两个整型指针数组。

返回值解释:返回了一个“TRUE”,让主函数的while循环保持连续。

功能说明:对输入的ouput1 buffer波形进行截取m点,再以零点的Y轴为对称轴

进行翻褶,把生成的波形上各点的值存入以OUTPUT2指针开始的一段地址空间

中。

3. static int step2(int *output2,int *output3)

调用形式:step2(ouput2,output3)

参数解释:output2、output3为两个整型指针数组。

返回值解释:返回了一个“TRUE”,让主函数的while循环保持连续。

功能说明:对输出的output2 buffer波形进行作n点移位,然后把生成的波形上的

各点的值存入以OUTPUT3指针开始的一段地址空间中。

116

4. static int step3(int *input1,int *output2,int *output4)

调用形式:step3(input1,output2,output4)

参数解释:output2、output4、input1为三个整型指针数组。

返回值解释:返回了一个“TRUE”,让主函数的while循环保持连续。

功能说明:对输入的ouput2 buffer波形和输入的input1 buffer作卷积和运算,然

后把生成的波形上的各点的值存入以OUTPUT4指针开始的一段地址空间中。

5. static int step4(int *input2,int *output1)

调用形式:step4(input2,output1)

参数解释:output1、input2为两个整型指针数组。

返回值解释:返回了一个“TRUE”,让主函数的while循环保持连续。

功能说明:对输入的input2 buffer波形截取m点,然后把生成的波形上的各点的

值存入以OUTPUT1指针开始的一段地址空间中。

3.4.4.4 实验要求

对不同输入信号(正弦波、方波)的卷积结果进行比较,从中更加深刻得了解卷积应用。

3.4.4.5 实验程序功能与结构说明

3.4.4.5.1 Convolve实验,包含文件

1. convolve.c:实验的主程序,包含了定义变量、数组、函数,进行卷积运算等。

2. data.c:存放供实验者选择的一些波形文件。

3. SEED_DEC643.cmd:声明了系统的存储器配置与程序各段的连接关系。

3.4.4.5.2 程序流程图

117

3.4.4.5.3 实验准备

首先将光盘下03. Examples of Program \ 04. SEED_DEC643实验程序目录下的

3.4.4 Convolve的文件夹拷贝到D盘根目录下。

1. 将DSP仿真器与计算机连接好;

2. 将DSP仿真器的JTAG插头与SEED-DEC643单元的J1相连接;

3. 打开SEED-DTK643的电源。观察SEED-DEC-MBoard单元的+5V,+3.3V,+

15V,-15V的电源指示灯以及SEED_DEC643的电源指示灯D1是否均亮;若有不亮的,请断开电源,检查电源。

3.4.4.5.4 实验步骤

1. 打开CCS,进入CCS的操作环境。

2. 装入convolve.pjt工程文件,添加DEC64

3.gel文件。

3. 装载程序Convolve.out,进行调试。

在convolve.c程序的第64行和第69行设置断点,如下图所示:

4. 打开输入输出波形观察窗口

选择菜单View->Graph->Time/Frequency…进行如下设置:

选择菜单View->Graph->Time/Frequency…进行如下设置:

118

119

在弹出的图形窗口中单击鼠标右键,选择“Clear Display”。

其中图像设置对话框中:Start adderss :表示起始地址;Acquisition Buffer

Size :表示 输入数据个数;Display Data Size :表示显示数据个数;DSP Data Type :表示数据类型;

5. 运行程序,程序将停在第一个断点处。此时程序已经将波形文件(这里我们以sin44[]

为例)复制作为卷积计算输入的缓冲区in1_buffer 和in2_buffer ,并可以通过刚才打开的输入观察窗看到两个输入波形的时域图,如下图所示:

6. 继续运行程序,程序停在第二个断点处。此时卷积计算已经结束,可以通过刚才打

开的结果观察窗,查看卷积之后的结果。当输入波形均为sin44[]时,得到的卷积时域图如下图所示:

注:此实验还可以将输入波形文件改成其他波形,如:sin22[]、sin33[]等,实验者需要

进行如下的修改:

将第60、61行待复制的波形文件修改为目标波形文件,例如:可以将下图中数组sin44[]换成sin22[]或其他波形(存放波形的数组定义在data.c文件中);

将进行卷积的点数修改为目标波形文件的点数,并重新编译运行即可。

120

数字信号处理实验二报告

实验二 IIR数字滤波器设计及软件实现 1.实验目的 (1)熟悉用双线性变换法设计IIR数字滤波器的原理与方法; (2)学会调用MATLAB信号处理工具箱中滤波器设计函数(或滤波器设计分析工具fdatool)设计各种IIR数字滤波器,学会根据滤波需求确定滤波器指标参数。 (3)掌握IIR数字滤波器的MATLAB实现方法。 (3)通过观察滤波器输入输出信号的时域波形及其频谱,建立数字滤波的概念。 2.实验原理 设计IIR数字滤波器一般采用间接法(脉冲响应不变法和双线性变换法),应用最广泛的是双线性变换法。基本设计过程是:①先将给定的数字滤波器的指标转换成过渡模拟滤波器的指标;②设计过渡模拟滤波器;③将过渡模拟滤波器系统函数转换成数字滤波器的系统函数。MATLAB信号处理工具箱中的各种IIR数字滤波器设计函数都是采用双线性变换法。第六章介绍的滤波器设计函数butter、cheby1 、cheby2 和ellip可以分别被调用来直接设计巴特沃斯、切比雪夫1、切比雪夫2和椭圆模拟和数字滤波器。本实验要求读者调用如上函数直接设计IIR数字滤波器。 本实验的数字滤波器的MATLAB实现是指调用MATLAB信号处理工具箱函数filter对给定的输入信号x(n)进行滤波,得到滤波后的输出信号y(n)。 3. 实验内容及步骤 (1)调用信号产生函数mstg产生由三路抑制载波调幅信号相加构成的复合信号st,该函数还会自动绘图显示st的时域波形和幅频特性曲线,如图1所示。由图可见,三路信号时域混叠无法在时域分离。但频域是分离的,所以可以通过滤波的方法在频域分离,这就是本实验的目的。 图1 三路调幅信号st的时域波形和幅频特性曲线 (2)要求将st中三路调幅信号分离,通过观察st的幅频特性曲线,分别确定可以分离st中三路抑制载波单频调幅信号的三个滤波器(低通滤波器、带通滤波器、高通滤波器)的通带截止频率和阻带截止频率。要求滤波器的通带最大衰减为0.1dB,阻带最小衰减为

DSP实验报告-深圳大学-自动化

深圳大学实验报告课程名称:DSP系统设计 实验项目名称:DSP系统设计实验 学院:机电与控制工程学院 专业:自动化 指导教师:杜建铭 报告人1:. 学号:。班级:3 报告人2:. 学号:。班级:3 报告人3:. 学号:。班级:3 实验时间: 实验报告提交时间: 教务处制

实验一、CCS入门试验 一、实验目的 1. 熟悉CCS集成开发环境,掌握工程的生成方法; 2. 熟悉SEED-DEC2812实验环境; 3. 掌握CCS集成开发环境的调试方法。 二、实验仪器 1.TMS320系列SEED-DTK教学试验箱24套 2. 台式PC机24台 三、实验内容 1.仿真器驱动的安装和配置 2. DSP 源文件的建立; 3. DSP程序工程文件的建立; 4. 学习使用CCS集成开发工具的调试工具。 四、实验准备: 1.将DSP仿真器与计算机连接好; 2.将DSP仿真器的JTAG插头与SEED-DEC2812单元的J1相连接; 3.启动计算机,当计算机启动后,打开SEED-DTK2812的电 源。SEED-DTK_MBoard单元的+5V,+3.3V,+15V,-15V的电源指示灯及SEED-DEC2812的电源指示灯D2是否均亮;若有不亮,请断开电源,检查电源。 五、实验步骤 (一)创建源文件 1.进入CCS环境。

2.打开CCS选择File →New →Source File命令 3.编写源代码并保存 4.保存源程序名为math.c,选择File →Save 5.创建其他源程序(如.cmd)可重复上述步骤。 (二)创建工程文件 1.打开CCS,点击Project-->New,创建一个新工程,其中工程名及路径可任意指定弹 出对话框: 2.在Project中填入工程名,Location中输入工程路径;其余按照默认选项,点击完成 即可完成工程创建; 3.点击Project选择add files to project,添加工程所需文件;

数字信号处理实验(吴镇扬)答案-2

(1) 观察高斯序列的时域和幅频特性,固定信号)(n x a 中参数p=8,改变q 的 值,使q 分别等于2、4、8,观察他们的时域和幅频特性,了解当q 取不同值时,对信号序列的时域和幅频特性的影响;固定q=8,改变p,使p 分别等于8、13、14,观察参数p 变化对信号序列的时域和幅频特性的影响,注意p 等于多少时会发生明显的泄漏现象,混叠是否也随之出现?记录实验中观察到的现象,绘出相应的时域序列和幅频特性曲线。 ()() ?????≤≤=-其他0150,2n e n x q p n a 解:程序见附录程序一: P=8,q 变化时: t/T x a (n ) k X a (k ) t/T x a (n ) p=8 q=4 k X a (k ) p=8 q=4 t/T x a (n ) p=8 q=8 k X a (k ) p=8 q=8 幅频特性 时域特性

t/T x a (n ) p=8 q=8 k X a (k ) p=8 q=8 t/T x a (n ) 5 10 15 k X a (k ) p=13 q=8 t/T x a (n ) p=14 q=8 5 10 15 k X a (k ) p=14 q=8 时域特性幅频特性 分析: 由高斯序列表达式知n=p 为期对称轴; 当p 取固定值时,时域图都关于n=8对称截取长度为周期的整数倍,没有发生明显的泄漏现象;但存在混叠,当q 由2增加至8过程中,时域图形变化越来越平缓,中间包络越来越大,可能函数周期开始增加,频率降低,渐渐小于fs/2,混叠减弱; 当q 值固定不变,p 变化时,时域对称中轴右移,截取的时域长度渐渐地不再是周期的整数倍,开始无法代表一个周期,泄漏现象也来越明显,因而图形越来越偏离真实值, p=14时的泄漏现象最为明显,混叠可能也随之出现;

数字信号处理实验程序2.

2.1 clc close all; n=0:15; p=8;q=2; x=exp(-(n-p.^2/q; figure(1; subplot(3,1,1; stem(n,x; title('exp(-(n-p^2/q,p=8,q=2'; xk1=fft(x,16; q=4; x=exp(-(n-p.^2/q; subplot(3,1,2; xk2=fft(x,16; stem(n,x; title('exp(-(n-p^2/q,p=8,q=4'; q=8; x=exp(-(n-p.^2/q;

xk3=fft(x,16; subplot(3,1,3; stem(n,x; title('exp(-(n-p^2/q,p=8,q=8';%时域特性figure(2; subplot(3,1,1; stem(n,abs(xk1; title('exp(-(n-p^2/q,p=8,q=2'; subplot(3,1,2; stem(n,abs(xk2; title('exp(-(n-p^2/q,p=8,q=4'; subplot(3,1,3; stem(n,abs(xk3; title('exp(-(n-p^2/q,p=8,q=8';%频域特性%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%% p=8;q=8; figure(3; subplot(3,1,1; stem(n,x; title('exp(-(n-p^2/q,p=8,q=8';

xk1=fft(x,16; p=13; x=exp(-(n-p.^2/q; subplot(3,1,2; xk2=fft(x,16; stem(n,x; title('exp(-(n-p^2/q,p=13,q=8'; p=14; x=exp(-(n-p.^2/q; xk3=fft(x,16; subplot(3,1,3; stem(n,x; title('exp(-(n-p^2/q,p=14,q=8';%时域特性figure(4; subplot(3,1,1; stem(n,abs(xk1; title('exp(-(n-p^2/q,p=8,q=8'; subplot(3,1,2; stem(n,abs(xk2; title('exp(-(n-p^2/q,p=13,q=8'; subplot(3,1,3;

数字信号处理实验作业

实验6 数字滤波器的网络结构 一、实验目的: 1、加深对数字滤波器分类与结构的了解。 2、明确数字滤波器的基本结构及其相互间的转换方法。 3、掌握用MA TLAB 语言进行数字滤波器结构间相互转换的子函数及程序编写方法。 二、实验原理: 1、数字滤波器的分类 离散LSI 系统对信号的响应过程实际上就是对信号进行滤波的过程。因此,离散LSI 系统又称为数字滤波器。 数字滤波器从滤波功能上可以分为低通、高通、带通、带阻以及全通滤波器;根据单位脉冲响应的特性,又可以分为有限长单位脉冲响应滤波器(FIR )和无限长单位脉冲响应滤波器(IIR )。 一个离散LSI 系统可以用系统函数来表示: M -m -1-2-m m m=0 012m N -1-2-k -k 12k k k=1 b z b +b z +b z ++b z Y(z)b(z)H(z)=== =X(z)a(z) 1+a z +a z ++a z 1+a z ∑∑ 也可以用差分方程来表示: N M k m k=1 m=0 y(n)+a y(n-k)=b x(n-m)∑∑ 以上两个公式中,当a k 至少有一个不为0时,则在有限Z 平面上存在极点,表达的是以一个IIR 数字滤波器;当a k 全都为0时,系统不存在极点,表达的是一个FIR 数字滤波器。FIR 数字滤波器可以看成是IIR 数字滤波器的a k 全都为0时的一个特例。 IIR 数字滤波器的基本结构分为直接Ⅰ型、直接Ⅱ型、直接Ⅲ型、级联型和并联型。 FIR 数字滤波器的基本结构分为横截型(又称直接型或卷积型)、级联型、线性相位型及频率采样型等。本实验对线性相位型及频率采样型不做讨论,见实验10、12。 另外,滤波器的一种新型结构——格型结构也逐步投入应用,有全零点FIR 系统格型结构、全极点IIR 系统格型结构以及全零极点IIR 系统格型结构。 2、IIR 数字滤波器的基本结构与实现 (1)直接型与级联型、并联型的转换 例6-1 已知一个系统的传递函数为 -1-2-3 -1-2-3 8-4z +11z -2z H(z)=1-1.25z +0.75z -0.125z 将其从直接型(其信号流图如图6-1所示)转换为级联型和并联型。

DSP实验报告

DSP实验报告 软件实验 1无限冲激响应滤波器(IIR) 算法 一.实验目的 1 .掌握设计IIR 数字滤波器的原理和方法。 2 .熟悉IIR 数字滤波器特性。 3 .了解IIR 数字滤波器的设计方法。 二.实验设备 PC 兼容机一台,操作系统为Windows2000( 或Windows98 ,WindowsXP ,以下默认为Windows2000) ,安装Code Composer Studio 2.21 软件。 三.实验原理 1 .无限冲激响应数字滤波器的基础理论。 2 .模拟滤波器原理(巴特沃斯滤波器、切比雪夫滤波器、椭圆滤波器、贝塞尔滤波器)。 3 .数字滤波器系数的确定方法。 4 .根据要求设计低通IIR 滤波器: 要求:低通巴特沃斯滤波器在其通带边缘1kHz 处的增益为-3dB ,12kHz 处的阻带衰减为30dB ,采样频率25kHz 。设计: - 确定待求通带边缘频率fp1Hz 、待求阻带边缘频率fs1Hz 和待求阻带衰减-20log δsdB 。 模拟边缘频率为:fp1=1000Hz ,fs1=12000Hz 阻带边缘衰减为:-20log δs=30dB - 用Ω= 2πf/fs 把由Hz 表示的待求边缘频率转换成弧度表示的数字频率,得到Ωp1 和Ωs1 。 Ωp1=2 πfp1/fs=2 π1000/25000=0.08 π弧度 Ωs1=2 πfs1/fs=2 π12000/25000=0.96 π弧度 - 计算预扭曲模拟频率以避免双线性变换带来的失真。 由w=2fs tan( Ω/2) 求得wp1 和ws1 ,单位为弧度/ 秒。 wp1=2fs tan( Ωp1/2)=6316.5 弧度/ 秒 ws1=2fs tan( Ωs1/2)=794727.2 弧度/ 秒 - 由已给定的阻带衰减-20log δs 确定阻带边缘增益δs 。

数字信号处理实验报告(实验1_4)

实验一 MATLAB 仿真软件的基本操作命令和使用方法 实验容 1、帮助命令 使用 help 命令,查找 sqrt (开方)函数的使用方法; 2、MATLAB 命令窗口 (1)在MATLAB 命令窗口直接输入命令行计算3 1)5.0sin(21+=πy 的值; (2)求多项式 p(x) = x3 + 2x+ 4的根; 3、矩阵运算 (1)矩阵的乘法 已知 A=[1 2;3 4], B=[5 5;7 8],求 A^2*B

(2)矩阵的行列式 已知A=[1 2 3;4 5 6;7 8 9],求A (3)矩阵的转置及共轭转置 已知A=[1 2 3;4 5 6;7 8 9],求A' 已知B=[5+i,2-i,1;6*i,4,9-i], 求B.' , B' (4)特征值、特征向量、特征多项式 已知A=[1.2 3 5 0.9;5 1.7 5 6;3 9 0 1;1 2 3 4] ,求矩阵A的特征值、特征向量、特征多项式;

(5)使用冒号选出指定元素 已知:A=[1 2 3;4 5 6;7 8 9];求A 中第3 列前2 个元素;A 中所有列第2,3 行的元素; 4、Matlab 基本编程方法 (1)编写命令文件:计算1+2+…+n<2000 时的最大n 值;

(2)编写函数文件:分别用for 和while 循环结构编写程序,求 2 的0 到15 次幂的和。

5、MATLAB基本绘图命令 (1)绘制余弦曲线 y=cos(t),t∈[0,2π]

(2)在同一坐标系中绘制余弦曲线 y=cos(t-0.25)和正弦曲线 y=sin(t-0.5), t∈[0,2π] (3)绘制[0,4π]区间上的 x1=10sint 曲线,并要求: (a)线形为点划线、颜色为红色、数据点标记为加号; (b)坐标轴控制:显示围、刻度线、比例、网络线 (c)标注控制:坐标轴名称、标题、相应文本; >> clear;

数字信号处理实验一

一、实验目的 1. 通过本次实验回忆并熟悉MATLAB这个软件。 2. 通过本次实验学会如何利用MATLAB进行序列的简单运算。 3. 通过本次实验深刻理解理论课上的数字信号处理的一个常见方法——对时刻n的样本附近的一些样本求平均,产生所需的输出信号。 3. 通过振幅调制信号的产生来理解载波信号与调制信号之间的关系。 二、实验内容 1. 编写程序在MATLAB中实现从被加性噪声污染的信号中移除噪声的算法,本次试验采用三点滑动平均算法,可直接输入程序P1.5。 2. 通过运行程序得出的结果回答习题Q1.31-Q1.33的问题,加深对算法思想的理解。 3. 编写程序在MATLAB中实现振幅调制信号产生的算法,可直接输入程序P1.6。 4. 通过运行程序得出的结果回答习题Q1.34-Q1.35的问题,加深对算法思想的理解。 三、主要算法与程序 1. 三点滑动平均算法的核心程序: %程序P1.5 %通过平均的信号平滑 clf; R=51; d=0.8*(rand(R,1)-0.5);%产生随噪声 m=0:R-1; s=2*m.*(0.9.^m);%产生为污染的信号 x=s+d';%产生被噪音污染的信号 subplot(2,1,1); plot(m,d','r-',m,s,'g--',m,x,'b-.');

xlabel('时间序号n');ylabel('振幅'); legend('d[n]','s[n]','x[n]'); x1=[0 0 x];x2=[0 x 0];x3=[x 0 0]; y=(x1+x2+x3)/3; subplot(2,1,2); plot(m,y(2:R+1),'r-',m,s,'g--'); legend('y[n]','s[n]'); xlabel('时间序号n');ylabel('振幅'); 2. 振幅调制信号的产生核心程序:(由于要几个结果,因此利用subplot函数画图) %程序P1.6 %振幅调制信号的产生 n=0:100; m=0.1;fH=0.1;fL=0.01; m1=0.3;fH1=0.3;fL1=0.03; xH=sin(2*pi*fH*n); xL=sin(2*pi*fL*n); y=(1+m*xL).*xH; xH1=sin(2*pi*fH1*n); xL1=sin(2*pi*fL1*n); y1=(1+m1*xL).*xH; y2=(1+m*xL).*xH1; y3=(1+m*xL1).*xH; subplot(2,2,1); stem(n,y); grid; xlabel('时间序号n');ylabel('振幅');title('m=0.1;fH=0.1;fL=0.01;'); subplot(2,2,2); stem(n,y1); grid; xlabel('时间序号n');ylabel('振幅');title('m=0.3;fH=0.1;fL=0.01;'); subplot(2,2,3); stem(n,y2); grid; xlabel('时间序号n');ylabel('振幅');title('m=0.3;fH=0.3;fL=0.01;'); subplot(2,2,4); stem(n,y3); grid;

数字信号处理实验作业

实验5 抽样定理 一、实验目的: 1、了解用MA TLAB 语言进行时域、频域抽样及信号重建的方法。 2、进一步加深对时域、频域抽样定理的基本原理的理解。 3、观察信号抽样与恢复的图形,掌握采样频率的确定方法和插公式的编程方法。 二、实验原理: 1、时域抽样与信号的重建 (1)对连续信号进行采样 例5-1 已知一个连续时间信号sin sin(),1Hz 3 ππ=0001f(t)=(2f t)+6f t f ,取最高有限带宽频率f m =5f 0,分别显示原连续时间信号波形和F s >2f m 、F s =2f m 、F s <2f m 三情况下抽样信号的波形。 程序清单如下: %分别取Fs=fm ,Fs=2fm ,Fs=3fm 来研究问题 dt=0.1; f0=1; T0=1/f0; m=5*f0; Tm=1/fm; t=-2:dt:2; f=sin(2*pi*f0*t)+1/3*sin(6*pi*f0*t); subplot(4,1,1); plot(t,f); axis([min(t),max(t),1.1*min(f),1.1*max(f)]); title('原连续信号和抽样信号'); for i=1:3; fs=i*fm;Ts=1/fs; n=-2:Ts:2; f=sin(2*pi*f0*n)+1/3*sin(6*pi*f0*n); subplot(4,1,i+1);stem(n,f,'filled'); axis([min(n),max(n),1.1*min(f),1.1*max(f)]); end 程序运行结果如图5-1所示:

原连续信号和抽样信号 图5-1 (2)连续信号和抽样信号的频谱 由理论分析可知,信号的频谱图可以很直观地反映出抽样信号能否恢复原模拟信号。因此,我们对上述三种情况下的时域信号求幅度谱,来进一步分析和验证时域抽样定理。 例5-2编程求解例5-1中连续信号及其三种抽样频率(F s>2f m、F s=2f m、F s<2f m)下的抽样信号的幅度谱。 程序清单如下: dt=0.1;f0=1;T0=1/f0;fm=5*f0;Tm=1/fm; t=-2:dt:2;N=length(t); f=sin(2*pi*f0*t)+1/3*sin(6*pi*f0*t); wm=2*pi*fm;k=0:N-1;w1=k*wm/N; F1=f*exp(-j*t'*w1)*dt;subplot(4,1,1);plot(w1/(2*pi),abs(F1)); axis([0,max(4*fm),1.1*min(abs(F1)),1.1*max(abs(F1))]); for i=1:3; if i<=2 c=0;else c=1;end fs=(i+c)*fm;Ts=1/fs; n=-2:Ts:2;N=length(n); f=sin(2*pi*f0*n)+1/3*sin(6*pi*f0*n); wm=2*pi*fs;k=0:N-1; w=k*wm/N;F=f*exp(-j*n'*w)*Ts; subplot(4,1,i+1);plot(w/(2*pi),abs(F)); axis([0,max(4*fm),1.1*min(abs(F)),1.1*max(abs(F))]); end 程序运行结果如图5-2所示。 由图可见,当满足F s≥2f m条件时,抽样信号的频谱没有混叠现象;当不满足F s≥2f m 条件时,抽样信号的频谱发生了混叠,即图5-2的第二行F s<2f m的频谱图,,在f m=5f0的围,频谱出现了镜像对称的部分。

DSP运行实验报告

DSP运行实验报告 一、实验目的 熟悉CCS软件仿真下,DSP程序的下载和运行;熟悉借助单片机的DSP程序下载和运行; 熟悉借助仿真器的DSP程序下载和运行;熟悉与DSP程序下载运行相关的CCS编程环境。 二、实验原理 CCS软件仿真下,借用计算机的资源仿真DSP的内部结构,可以模拟DSP程序的下载和运行。 如果要让程序在实验板的DSP中运行、调试和仿真,可以用仿真器进行DSP程序下载和运行。初学者也可以不用仿真器来使用这款实验板,只是不能进行程序调试和仿真。 在本实验板的作用中,单片机既是串口下载程序的载体,又是充当DSP 的片外存储器(相对于FLASH),用于固化程序。 三、实验设备、仪器及材料 安装有WINDOWS XP操作系统和CCS3.3的计算机。 四、实验步骤(按照实际操作过程) 1、CCS软件仿真下,DSP程序的下载和运行。 第一步:安装CCS,如果不使用仿真器,CCS 的运行环境要设置成一个模拟仿真器(软仿真)。

第二步:运行CCS,进入CCS 开发环境。 第三步:打开一个工程。 将实验目录下的EXP01目录拷到D:\shiyan下(目录路径不能有中文),用[Project]\[Open]菜单打开工程,在“Project Open”对话框中选 EXP01\CPUtimer\CpuTimer.pjt,选“打开”, 第四步:编译工程。 在[Project]菜单中选“Rebuild All”,生成CpuTimer.out文件。 第五步:装载程序。 用[File]\[Load Program]菜单装载第四步生成CpuTimer.out文件,在当前工程目录中的Debug 文件夹中找到CpuTimer.out文件,选中,鼠标左键单击“打开”。

数字信号处理实验1认识实验

实验1认识实验-MATLAB语言上机操作实践 一、实验目的 ㈠了解MATLAB语言的主要特点、作用。 ㈡学会MATLAB主界面简单的操作使用方法。 ㈢学习简单的数组赋值、运算、绘图、流程控制编程。 二、实验原理 ㈠简单的数组赋值方法 MATLAB中的变量和常量都可以是数组(或矩阵),且每个元素都可以是复数。 在MATLAB指令窗口输入数组A=[1 2 3;4 5 6;7 8 9],观察输出结果。然后,键入:A(4,2)= 11 键入:A (5,:) = [-13 -14 -15] 键入:A(4,3)= abs (A(5,1)) 键入:A ([2,5],:) = [ ] 键入:A/2 键入:A (4,:) = [sqrt(3) (4+5)/6*2 –7] 观察以上各输出结果。将A式中分号改为空格或逗号,情况又如何?请在每式的后面标注其含义。 2.在MATLAB指令窗口输入B=[1+2i,3+4i;5+6i ,7+8i], 观察输出结果。 键入:C=[1,3;5,7]+[2,4;6,8]*i,观察输出结果。 如果C式中i前的*号省略,结果如何? 键入:D = sqrt (2+3i) 键入:D*D 键入:E = C’, F = conj(C), G = conj(C)’ 观察以上各输出结果, 请在每式的后面标注其含义。 3.在MATLAB指令窗口输入H1=ones(3,2),H2=zeros(2,3),H3=eye(4),观察输出结果。 ㈡、数组的基本运算 1.输入A=[1 3 5],B= [2 4 6],求C=A+B,D=A-2,E=B-A 2.求F1=A*3,F2=A.*B,F3=A./B,F4=A.\B, F5=B.\A, F6=B.^A, F7=2./B, F8=B.\2 *3.求B',Z1=A*B’,Z2=B’*A 观察以上各输出结果,比较各种运算的区别,理解其含义。 ㈢、常用函数及相应的信号波形显示 例1:显示曲线f(t)=2sin(2πt),(t>0) ⅰ点击空白文档图标(New M-file),打开文本编辑器。 ⅱ键入:t=0:0.01:3; (1) f=2*sin(2*pi*t); (2) plot(t,f); title(‘f(t)-t曲线’); xlabel(‘t’),ylabel(‘f(t)’);

数字信号处理实验(吴镇扬)答案-4

实验四 有限长单位脉冲响应滤波器设计 朱方方 0806020433 通信四班 (1) 设计一个线性相位FIR 高通滤波器,通带边界频率为0.6π,阻带边界频率为0.4π,阻 带衰减不小于40dB 。要求给出h(n)的解析式,并用MATLAB 绘出时域波形和幅频特性。 解: (1) 求数字边界频率: 0.6 , .c r ωπωπ== (2) 求理想滤波器的边界频率: 0.5n ωπ= (3) 求理想单位脉冲响应: []d s i n ()s i n [()] () ()1n n n n n n h n n παωαα παωα π?-- -≠??-=? ? -=?? (4) 选择窗函数。阻带最小衰减为-40dB ,因此选择海明窗(其阻带最小衰减为-44dB);滤 波器的过渡带宽为0.6π-0.4π=0.2π,因此 6.21 0.231 , 152 N N N ππα-=?=== (5) 求FIR 滤波器的单位脉冲响应h(n): []31d sin (15)sin[0.5(15)] 1cos ()15()()()15(15)1 15 n n n R n n h n w n h n n n ππππ?---????-? ?≠? ???==-???? ? ?=? 程序: clear; N=31; n=0:N-1; hd=(sin(pi*(n-15))-sin(0.5*pi*(n-15)))./(pi *(n-15)); hd(16)=0.5; win=hanning(N); h=win'.*hd; figure; stem(n,h); xlabel('n'); ylabel('h(n)'); grid; title('FIR 高通滤波单位脉冲响应h(n)'); [H,w]=freqz(h,1); H=20*log10(abs(H)); figure;3 plot(w/pi,H); axis([0 1 -100 10]); xlabel('\omega/\pi'); ylabel('幅度/dB'); grid; title('FIR 高通滤波器,hanning 窗,N=31');

数字信号处理实验及参考程序

数字信号处理实验实验一离散时间信号与系统及MA TLAB实现 1.单位冲激信号: n = -5:5; x = (n==0); subplot(122); stem(n, x); 2.单位阶跃信号: x=zeros(1,11); n0=0; n1=-5; n2=5; n = n1:n2; x(:,n+6) = ((n-n0)>=0); stem(n,x); 3.正弦序列: n = 0:1/3200:1/100; x=3*sin(200*pi*n+1.2); stem(n,x); 4.指数序列 n = 0:1/2:10; x1= 3*(0.7.^n); x2=3*exp((0.7+j*314)*n); subplot(221); stem(n,x1); subplot(222); stem(n,x2); 5.信号延迟 n=0:20; Y1=sin(100*n); Y2=sin(100*(n-3)); subplot(221); stem(n,Y1); subplot(222); stem(n,Y2);

6.信号相加 X1=[2 0.5 0.9 1 0 0 0 0]; X2=[0 0.1 0.2 0.3 0.4 0.5 0.6 0.7]; X=X1+X2; stem(X); 7.信号翻转 X1=[2 0.5 0.9 1]; n=1:4; X2=X1(5-n); subplot(221); stem(n,X1); subplot(222); stem(n,X2); 8.用MATLAB计算序列{-2 0 1 –1 3}和序列{1 2 0 -1}的离散卷积。a=[-2 0 1 -1 3]; b=[1 2 0 -1]; c=conv(a,b); M=length(c)-1; n=0:1:M; stem(n,c); xlabel('n'); ylabel('幅度'); 9.用MA TLAB计算差分方程 当输入序列为时的输出结果。 N=41; a=[0.8 -0.44 0.36 0.22]; b=[1 0.7 -0.45 -0.6]; x=[1 zeros(1,N-1)]; k=0:1:N-1; y=filter(a,b,x); stem(k,y) xlabel('n'); ylabel('幅度') 10.冲激响应impz N=64; a=[0.8 -0.44 0.36 0.22];

DSP实验报告

DSP实验报告

软件实验 1无限冲激响应滤波器(IIR) 算法 一.实验目的 1 .掌握设计IIR 数字滤波器的原理和方法。 2 .熟悉IIR 数字滤波器特性。 3 .了解IIR 数字滤波器的设计方法。 二.实验设备 PC 兼容机一台,操作系统为Windows2000( 或Windows98 ,WindowsXP ,以下默认为Windows2000) ,安装Code Composer Studio 2.21 软件。 三.实验原理 1 .无限冲激响应数字滤波器的基础理论。 2 .模拟滤波器原理(巴特沃斯滤波器、切比雪夫滤波器、椭圆滤波器、贝塞尔滤波器)。 3 .数字滤波器系数的确定方法。 4 .根据要求设计低通IIR 滤波器: 要求:低通巴特沃斯滤波器在其通带边缘1kHz 处的增益为-3dB ,12kHz 处的阻带衰减为30dB ,采样频率25kHz 。设计: - 确定待求通带边缘频率fp1Hz 、待求阻带边缘频率fs1Hz 和待求阻带衰减-20log δsdB 。 模拟边缘频率为:fp1=1000Hz ,fs1=12000Hz 阻带边缘衰减为:-20log δs=30dB - 用Ω= 2πf/fs 把由Hz 表示的待求边缘频率转换成弧度表示的数字频率,得到Ωp1 和Ωs1 。 Ωp1=2 πfp1/fs=2 π1000/25000=0.08 π弧度 Ωs1=2 πfs1/fs=2 π12000/25000=0.96 π弧度 - 计算预扭曲模拟频率以避免双线性变换带来的失真。 由w=2fs tan( Ω/2) 求得wp1 和ws1 ,单位为弧度/ 秒。 wp1=2fs tan( Ωp1/2)=6316.5 弧度/ 秒 ws1=2fs tan( Ωs1/2)=794727.2 弧度/ 秒 - 由已给定的阻带衰减-20log δs 确定阻带边缘增益δs 。 因为-20log δs=30 ,所以log δs=-30/20 ,δs=0.03162

数字信处理上机实验答案全

数字信处理上机实验答 案全 Document number【SA80SAB-SAA9SYT-SAATC-SA6UT-SA18】

第十章 上机实验 数字信号处理是一门理论和实际密切结合的课程,为深入掌握课程内容,最好在学习理论的同时,做习题和上机实验。上机实验不仅可以帮助读者深入的理解和消化基本理论,而且能锻炼初学者的独立解决问题的能力。本章在第二版的基础上编写了六个实验,前五个实验属基础理论实验,第六个属应用综合实验。 实验一系统响应及系统稳定性。 实验二时域采样与频域采样。 实验三用FFT对信号作频谱分析。 实验四 IIR数字滤波器设计及软件实现。 实验五 FIR数字滤波器设计与软件实现 实验六应用实验——数字信号处理在双音多频拨号系统中的应用 任课教师根据教学进度,安排学生上机进行实验。建议自学的读者在学习完第一章后作实验一;在学习完第三、四章后作实验二和实验三;实验四IIR数字滤波器设计及软件实现在。学习完第六章进行;实验五在学习完第七章后进行。实验六综合实验在学习完第七章或者再后些进行;实验六为综合实验,在学习完本课程后再进行。 实验一: 系统响应及系统稳定性 1.实验目的 (1)掌握求系统响应的方法。 (2)掌握时域离散系统的时域特性。 (3)分析、观察及检验系统的稳定性。 2.实验原理与方法 在时域中,描写系统特性的方法是差分方程和单位脉冲响应,在频域可以用系统函数描述系统特性。已知输入信号可以由差分方程、单位脉冲响应或系统函数求出系统对于该输入信号的响应,本实验仅在时域求解。在计算机上适合用递推法求差分方程的解,最简单的方法是采用MATLAB语言的工具箱函数filter函数。也可以用MATLAB语言的工具箱函数conv函数计算输入信号和系统的单位脉冲响应的线性卷积,求出系统的响应。 系统的时域特性指的是系统的线性时不变性质、因果性和稳定性。重点分析实验系统的稳定性,包括观察系统的暂态响应和稳定响应。 系统的稳定性是指对任意有界的输入信号,系统都能得到有界的系统响应。或者系统的单位脉冲响应满足绝对可和的条件。系统的稳定性由其差分方程的系数决定。 实际中检查系统是否稳定,不可能检查系统对所有有界的输入信号,输出是否都是有界输出,或者检查系统的单位脉冲响应满足绝对可和的条件。可行的方法是在系统的输入端加入单位阶跃序列,如果系统的输出趋近一个常数(包括零),就可以断定系统是稳定的[19]。系统的稳态输出是指当∞ n时,系统的输出。如果系统稳定,信号加入 → 系统后,系统输出的开始一段称为暂态效应,随n的加大,幅度趋于稳定,达到稳态输出。 注意在以下实验中均假设系统的初始状态为零。 3.实验内容及步骤

数字信号处理实验答案完整版

数字信号处理实验答案 HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】

实验一熟悉Matlab环境 一、实验目的 1.熟悉MATLAB的主要操作命令。 2.学会简单的矩阵输入和数据读写。 3.掌握简单的绘图命令。 4.用MATLAB编程并学会创建函数。 5.观察离散系统的频率响应。 二、实验内容 认真阅读本章附录,在MATLAB环境下重新做一遍附录中的例子,体会各条命令的含义。在熟悉了MATLAB基本命令的基础上,完成以下实验。 上机实验内容: (1)数组的加、减、乘、除和乘方运算。输入A=[1 2 3 4],B=[3 4 5 6],求C=A+B,D=A-B,E=A.*B,F=A./B,G=A.^B并用stem语句画出A、B、C、D、E、F、G。 clear all; a=[1 2 3 4]; b=[3 4 5 6]; c=a+b; d=a-b; e=a.*b; f=a./b; g=a.^b; n=1:4; subplot(4,2,1);stem(n,a); xlabel('n');xlim([0 5]);ylabel('A'); subplot(4,2,2);stem(n,b); xlabel('n');xlim([0 5]);ylabel('B'); subplot(4,2,3);stem(n,c); xlabel('n');xlim([0 5]);ylabel('C'); subplot(4,2,4);stem(n,d); xlabel('n');xlim([0 5]);ylabel('D'); subplot(4,2,5);stem(n,e); xlabel('n');xlim([0 5]);ylabel('E'); subplot(4,2,6);stem(n,f); xlabel('n');xlim([0 5]);ylabel('F'); subplot(4,2,7);stem(n,g); xlabel('n');xlim([0 5]);ylabel('G'); (2)用MATLAB实现下列序列: a) x(n)= 0≤n≤15 b) x(n)=e+3j)n 0≤n≤15 c) x(n)=3cosπn+π)+2sinπn+π) 0≤n≤15 d) 将c)中的x(n)扩展为以16为周期的函数x(n)=x(n+16),绘出四个周期。

数字信号处理上机实验代码

文件名:tstem.m(实验一、二需要) 程序: f unction tstem(xn,yn) %时域序列绘图函数 %xn:被绘图的信号数据序列,yn:绘图信号的纵坐标名称(字符串)n=0:length(xn)-1; stem(n,xn,'.'); xlabel('n');ylabel('yn'); axis([0,n(end),min(xn),1.2*max(xn)]); 文件名:tplot.m(实验一、四需要) 程序: function tplot(xn,T,yn) %时域序列连续曲线绘图函数 %xn:信号数据序列,yn:绘图信号的纵坐标名称(字符串) %T为采样间隔 n=0;length(xn)-1;t=n*T; plot(t,xn); xlabel('t/s');ylabel(yn); axis([0,t(end),min(xn),1.2*max(xn)]); 文件名:myplot.m(实验一、四需要)

%(1)myplot;计算时域离散系统损耗函数并绘制曲线图。function myplot(B,A) %B为系统函数分子多项式系数向量 %A为系统函数分母多项式系数向量 [H,W]=freqz(B,A,1000) m=abs(H); plot(W/pi,20*log10(m/max(m)));grid on; xlabel('\omega/\pi');ylabel('幅度(dB)') axis([0,1,-80,5]);title('损耗函数曲线'); 文件名:mstem.m(实验一、三需要) 程序: function mstem(Xk) %mstem(Xk)绘制频域采样序列向量Xk的幅频特性图 M=length(Xk); k=0:M-1;wk=2*k/M;%产生M点DFT对应的采样点频率(关于pi归一化值) stem(wk,abs(Xk),'.');box on;%绘制M点DFT的幅频特性图xlabel('w/\pi');ylabel('幅度'); axis([0,2,0,1.2*max(abs(Xk))]); 文件名:mpplot.m(实验一需要)

数字信号处理第二章上机题作业

数字信号处理作业实验题报告 第一章16.(1) 实验目的: 求解差分方程所描述的系统的单位脉冲响应和单位阶跃响应。 实验要求: 运用matlab求出y(n)=0.6y(n-1)-0.08y(n-2)+x(n)的单位脉冲响应和单位阶跃响应的示意图。 源程序: B1=1;A1=[1, -0.6, 0.08]; ys=2; %设差分方程 xn=[1, zeros(1, 20)]; %xn=单位脉冲序列,长度N=31 xi=filtic(B1, A1, ys); hn1=filter(B1, A1, xn, xi); %求系统输出信号hn1 n=0:length(hn1)-1; subplot(2, 1, 1);stem(n, hn1, '.') title('单位脉冲响应'); xlabel('n');ylabel('h(n)') xn=ones(1, 20); sn1=filter(B1, A1, xn, xi); %求系统输出信号sn1 n=0:length(sn1)-1; Subplot(2, 1, 2); stem(n, sn1, '.') title('单位阶跃响应'); xlabel('n'); ylabel('s(n)')

运行结果: 实验分析: 单位脉冲响应逐渐趋于0,阶跃响应保持不变,由此可见,是个稳定系统。

第二章31题 实验目的: 用matlab判断系统是否稳定。 实验要求: 用matlab画出系统的极,零点分布图,输入单位阶跃序列u(n)检查系统是否稳定。 源程序: A=[2, -2.98, 0.17, 2.3418, -1.5147]; B=[0, 0, 1, 5, -50]; subplot(2,1,1); zplane(B,A); %求H(z)的极点 p=roots(A); %求H(z)的模 pm=abs(p); if max(pm)<1 disp('系统因果稳定'), else,disp('系统因果不稳定'),end un=ones(1,800); sn=filter(B, A, un); n=0:length(sn)-1; subplot(2, 1, 2);plot(n, sn) xlabel('n');ylabel('s(n)')

dsp实验报告5

一、实验原理: 1、无限冲击响数字滤波器的基础理论; 2、模拟滤波器原理(巴特沃斯滤波器、切比雪夫滤波器、贝塞尔滤波器); 3、双线性变换的设计原理。 二、实验内容: 1、复习有关巴特沃斯滤波器设计和用双线性变换法设计IIR数字滤波器的知识; 2、阅读本实验所提供的样例子程序; 3、运行CCS软件,对样例程序进行跟踪,分析结果; 4、填写实验报告。 5、样例程序实验操作说明 1)正确完成计算机、DSP仿真器和实验箱连接后,开关K9拨到右边,即仿真器选择连接右边的CPU:CPU2; 2)“A/D转换单元”的拨码开关设置: JP3 3)检查:计算机、DSP仿真器、实验箱是否正确连接,系统上电; 4)置拨码开关S23的1、2拨到OFF,用示波器分别观测模拟信号源单元的2号孔“信号源1”和“信号源2”输出的模拟信号,分别调节信号波形选择、信号频率、信号输出幅值等旋钮,直至满意,置拨码开关S23的1到ON,两信号混频输出; 三、程序分析: cpu_init(); //CPU初始化 fs = 25000; //设置采样频率为2500HZ nlpass = 0.18; //设置通带上限频率归一化参数为0.18 nlstop = 0.29; //设置阻带下限截止频率归一化参数为0.29 biir2lpdes(fs,nlpass,nlstop,a,b); 根据双线性变换法求滤波器的系数a和b set_int(); //调用低通滤波器子程序对信号进行滤波 中断程序注释: interrupt void int1()

{ in_x[m] = port8002; //读取port8002端口的数值 in_x[m] &= 0x00FF; //取后八位送入X[m] m++; //每取一个数字m加1 intnum = m; if (intnum == Len) //当取到128个字节时,重新读取port8002端口的数值 { intnum = 0; xmean = 0.0; for (i=0; i

相关主题
文本预览
相关文档 最新文档