文档库 最新最全的文档下载
当前位置:文档库 › DSP实验报告(四)

DSP实验报告(四)

DSP实验报告(四)
DSP实验报告(四)

实验四 用窗函数设计FIR 滤波器

一、实验目的

1、熟悉FIR 滤波器设计的基本方法。

2、掌握用窗函数设计FIR 数字滤波器的原理及方法,熟悉相应的计算机高级语言编程。

3、熟悉线性相位FIR 滤波器的幅频特性和相位特性。

4、了解各种不同窗函数对滤波器性能的响应

二、实验原理和方法

(一)FIR 滤波器的设计

IIR 滤波器的优异幅度响应,一般是以相位的非线性为代价的,非线性相位会引起频率色散。FIR 滤波器具有严格的相位特性,这对于语音信号处理和数据传输是和重要的。目前FIR 滤波器的设计方法主要有三种:窗函数法、频率取样法和切比雪夫等波纹逼近的最优化设计方法。常用的是窗函数法和切比雪夫等波纹逼近的最优化设计方法。窗函数法是从时域出发,用一个窗函数截取理想的hd(n)得到h(n),以有限长序列h(n)近似理想的hd(n);如果从频域出发,用理想的()j d H e ω在单位圆上等角度取样得到H(k),根据h(k)得到H(z)将逼近理想的hd(z),这就是频率取样法。

(二)窗函数设计法

用窗函数设计滤波器首先要对滤波器提出性能指标。一般是给定一个理想的频率响应()j d H e ω,使所设计的FIR 滤波器的频率响应()j H e ω去逼近所要求的理性的滤波器的响应()j d H e ω。窗函数法设计的任务在于寻找一个可实现(有限长单位脉冲响应)h(n )的传递函数

()()j j n n H e h n e ω

ω+∞

-==∑去逼近理想的幅频响应。一个理想的频率响应的傅立

叶反变换

20

1

()()2j j n d d H n H e e d π

ωωωπ

=

?

(1)

所得到的理想单位脉冲响应h 往往是一个无限长序列。对经过适当的加权、截断处理才能得到一个所需要的有限长脉冲响应序列。对应不同的加权、截断,就有不同的窗函数。所要寻找的滤波器脉冲响应就等于理想脉冲响应和窗函数的乘积,即

()()()d h n h n w n = (2)

由此可见,窗函数的性质就决定了滤波器的品质。例如:窗函数的主瓣宽度决定了滤波器的过渡带宽;窗函数的旁瓣代销决定了滤波器的阻带衰减。 几种常用的窗函数: 窗函数

表达式

过渡带

ω?

最小阻带衰减(dB )

矩形窗

()N R n

4N π -21 Hanning 窗 20.5[1cos()]()1

N n

R n N π-- 8N π -44 Hamming 窗 2[0.540.46cos()]()1

N n

R n N π--

8N

π -53

Blackman 窗 24[0.420.5cos(

)0.08cos()]()11N n n R n N N ππ-+-- 12N

π

-74

Kaiser 窗

2002(1(1))

1()

n

I N I ββ--- 10N

π

-80

线性相位实系数FIR 滤波器按其N 值奇偶和h(n)的奇偶对称性,可以分成四种,它们的h (n )具有不同的幅频和相位特性:

1、h(n)为偶对称,N 为奇数;

1

12

2

1

11()[()2()cos ]22N N j j n N N H e h h n n e

ωω

ω---=--=++∑ (3) 它的幅度是关于ω=0,π,2π点成偶对称。

2、h(n)为偶对称,N 为偶数;

1

12

2

1

1(){2(1)cos ()]}22N N j j n N H e h n n e

ωω

ω---==-+-∑ (4) 它的幅度是关于ω=π点成奇对称,ω=π处有零点,所以它不适合于作高通滤波器。

3、h(n)为奇对称,N 为奇数;

1

12

()2

1

1()[2()sin ]2N N j j n N H e h n n e

πωω

ω--+-=-=+∑ (5) 它的幅度是关于ω=0,π,2π点成奇对称。在ω=0,π,2π处都有零点。因此它不适用于低通和高通。

4、h(n)为奇对称,N 为偶数。

1

12

2

1

11()[2()sin ()]22N N j j n N H e h n n e

π

ωω

ω--+-=-=+-∑ (6) 它的幅度是关于ω=0,2π点成奇对称。在ω=0,2π处都有零点。因此它不适用于低通。

在滤波器设计过程中,必须根据上述四种线性相位滤波器传递函数的性质,合理地选择应采用的种类,构造出的幅频特性和相位特性。窗函数法设计线性相位FIR 滤波器可以按如下步骤进行:

(1)确定数字滤波器的性能要求。确定各临界频率{ωk}和滤波器单位脉冲

响应长度N 。

(2)根据性能要求和N 值,合理地选择单位脉冲响应h(n)的奇偶对称性,从

而确定理想频率响应的幅频特性和相位特性。

(3)用傅立叶反变换公式,求得理想单位脉冲响应。

(4)选择适当的窗函数w(n),求得所设计的FIR 滤波器单位脉冲响应。 (5)用傅立叶变换求得其频率响应,分析它的幅频特性,若不满足要求,

可适当改变窗函数形式或长度N ,重复上述过程,直至得到满意的结果。

在上述步骤(3)中,从到的反变换要用到式(1)。这里的积分运算,在计算机上可取其数值计算结果

2210

1

()()M j

k j

kn M

M

d d

n h n H

e

e

M

ππ-=≈

∑ (7)

当M>8N 时 可以获得足够的精度。

三、实验内容及步骤

(一)、编制窗函数设计FIR 滤波器的主程序及相应子程序。

(1)傅立叶反变换数值计算子程序,用于计算设计步骤(3)中的傅立叶反变换,按照公式(4-13)求得理想单位脉冲响应。(2)窗函数产生子程序,用于产生几种常见的窗函数序列。本实验中要求产生的窗函数序列有:矩形窗、Hanning窗、Hamming 窗、Blackman窗、Kaiser窗。根据给定的长度N,按照公式(4-4)到公式(4-8)生成相应的窗函数序列。

(3)主程序,在上述子程序的基础上,设计主程序完成线性相位FIR滤波器的窗函数法设计。其中理想滤波器幅频特性已知的一半以及滤波器的长度N可以从数据文件或其他形式输入。滤波器幅频特性的另外一半(从ω=π到ω=2π区间)的幅频特性和全部相位特性在程序中根据N的奇偶性和幅频特性的要求,在四种滤波器中选择一种,自动产生。

程序附后。

(二)、

(1)用Hanning 窗设计一个线性相位带通滤波器,其长度N=15,上下边带截至频率分别为0.3π和0. 5π,求h(n),绘制它的幅频和相位特性曲线,观察它的实际3dB和20dB带宽。如果N=45,重复这一设计,观察幅频和相位特性的变化,注意长度N变化对结果的影响。

结果分析:

由设计要求,采用N为奇数,h(n)偶对称的设计。

当N=15时,得到的h(n)是

0 0 0.0230 0.0303 -0.0783 -0.1409 0.0523 0.2167 0.0523 -0.1409 -0.0783 0.0303 0.0230 0 0

其幅频和相频特性曲线为:

从图上来看大致是以0.4π为中心的带通滤波器。它的3dB宽约为0.1π,20dB带宽约为0.5π。

当N=45时,

h(n)为0 -0.0000 0.0001 -0.0001 0.0008 0.0031 -0.0002 -0.0094 -0.0069 0.0101 0.0139 -0.0014 -0.0031 0.0048 -0.0215 -0.0473 0.0170 0.1113 0.0528 -0.1298 -0.1556 0.0588 0.2056 0.0588 -0.1556 -0.1298 0.0528 0.1113 0.0170 -0.0473 -0.0215 0.0048 -0.0031 -0.0014 0.0139 0.0101 -0.0069 -0.0094 -0.0002 0.0031 0.0008 -0.0001 0.0001 -0.0000 0

其幅频和相频特性曲线为:

此时仍是以0.4π为中心,左右对称。它的3dB宽约为0.1π,20dB带宽约为0.3π。

可以看到,当N增大时,滤波器幅频在过渡区内的起伏更加频繁,但幅度有所减小,也即过渡区变窄。但阻带衰减没有明显变化约为10dB。相位变化率更大,这是由于N变大后,线性相位本身跨度区间更大了。

(2)改用矩形窗和Blackman窗,设计步骤(1)中的带通滤波器,观察并记录窗函数对滤波器幅频和相位特性的影响,比较这三种窗函数的特点。

结果分析:

对于固定的N=15

矩形窗:

h(n)为-0.0608 -0.0000 0.1223 0.0780 -0.1281 -0.1736 0.0550 0.2167 0.0550 -0.1736 -0.1281 0.0780 0.1223 0.0000 -0.0608

阻带衰减为-20dB,20dB带宽约为0.3π,3dB带宽约为0.15π。

Blackman窗:h(n)为

0.0000 -0.0000 0.0111 0.0185 -0.0588 -0.1239 0.0506 0.2167 0.0506 -0.1239 -0.0588 0.0185 0.0111 0.0000 0.0000

阻带衰减为-80dB,20dB带宽约为0.4π,3dB带宽约为0.2π。

对于固定的N=45

矩形窗:

h(n)为

-0.0207 -0.0008 0.0052 -0.0030 0.0095 0.0253 -0.0013 -0.0408 -0.0237 0.0280 0.0325 -0.0028 -0.0055 0.0075 -0.0304 -0.0614 0.0206 0.1268 0.0573 -0.1359 -0.1588 0.0591 0.2056 0.0591 -0.1588 -0.1359 0.0573 0.1268 0.0206 -0.0614 -0.0304 0.0075 -0.0055 -0.0028 0.0325 0.0280 -0.0237 -0.0408 -0.0013 0.0253 0.0095 -0.0030 0.0052 -0.0008 -0.0207

阻带衰减为-20dB,20dB带宽约为0.25π,3dB带宽约为0.15π。

Balckman窗:

h(n)为

0.0000 -0.0000 0.0000 -0.0001 0.0003 0.0014 -0.0001 -0.0047 -0.0038 0.0059 0.0088 -0.0010 -0.0023 0.0037 -0.0175 -0.0404 0.0152 0.1026 0.0501 -0.1260 -0.1536 0.0586 0.2056 0.0586 -0.1536 -0.1260 0.0501 0.1026 0.0152 -0.0404 -0.0175 0.0037 -0.0023 -0.0010 0.0088 0.0059 -0.0038 -0.0047 -0.0001 0.0014 0.0003 -0.0001

0.0000 -0.0000 0.0000

阻带衰减约为-70dB。20dB带宽大于3π,3dB带宽大于1.7π。

从图上可以看出,窗函数的不同,对应的幅频响应的阻带衰减和过渡带宽就不一样。与(一)中矩形窗比较,Hanning窗、blackman窗产生的幅频相应阻带衰减更大,付出的代价是过渡带展宽了,20dB带宽增加了。这是两者在边缘比矩形窗圆滑从而减小了陡峭边缘引起的副瓣分量,增加了主瓣宽度宽度引起的。频域上波动和变化范围更大了。

(3)用Kaiser窗设计一个专用的线性相位滤波器。N=40,理想的幅频特性(从ω=π到ω=2π区间):在0.2π-0.4π和0.6π-0.8π内带通。

当β值分别4,6,8时,设计相应的滤波器,比较它们的幅频和相位特性,观察并分析β值不同的时候对结果有什么影响。

结果分析:

β为4时,相位滤波器特性如下:

β=6:

β=8

阻带衰减约为-70dB ,20dB 带宽约为0.8π。

由Kaiser 窗的性质知,β值越大,过渡带宽越大,通带波动越小,阻带衰减越大。因而对应的滤波器的幅频响应阻带衰减越大,3dB 带宽越大,20dB 带宽越大。则可以从上图的到验证。

四、实验总结

本次实验通过窗函数设计FIR 滤波器。通过本次实验,进一步熟悉了用窗函数设计FIR 数字滤波器的原理及方法,复习了线性相位FIR 滤波器的幅频特性和相位特性了解各种不同窗函数对滤波器性能的响应。 在FIR 数字滤波器中常用的公式有

(2)式:()()()d h n h n w n =表明了窗函数的截断。

(3)-(6)式:112

2

1

11()[()2()cos ]22N N j j n N N H e h h n n e

ωω

ω---=--=++∑ 1

1

2

2

1

1(){2(1)cos ()]}22N N j j n N H e h n n e

ωω

ω---==-+-∑

112

()2

1

1()[2()sin ]2N N j j n N H e h n n e

πωω

ω--+-=-=+∑ 1

12

2

1

11()[2()sin ()]22N N j j n N H e h n n e

πωω

ω--+-=-=+-∑表明了四种线性相位滤波器的幅频和相频特性。

(7)式:2210

1

()()M j

k j

kn M

M

d d

n h n H

e

e

M

ππ-=≈

∑表明了数值计算方法计算积分。

通过本次实验,可以知道,对于各种窗函数,一般希望窗函数主瓣尽可能窄,副瓣尽可能小。但两者不可能同时达到最佳。通常用的窗函数是在两者之间找到合适的平衡。如果需要比较锐利的响应,应选择主瓣较窄的窗函数,如blackman 和hannning 窗,但在通带中会产生较大的震荡,在阻带中产生波纹。若是为了得到较平坦的响应函数,则应选择副瓣较窄的窗函数,如矩形窗,但截止效果则不明显。

五、思考题

1、定性的说明用本实验程序设计的FIR 滤波器的3dB 截止频率在什么位置?它等于理想频率响应的截止频率吗?

答: 在设计要求的通带内(即通带衰减大于3dB )。不等于理想频率响应的截止频率。由于FIR 滤波器设计过程中窗函数的截断效应,不可能获得无限陡峭的频率响应。因而3dB 截止频率在要求的通带范围内。采用主瓣宽度更大的窗函数和更大的N 值,可以更加接近理想的截止频率。

2、如果没有给定的长度N ,而是给定了通带边缘截止频率和阻带临界频率,以及相应的衰减,你能根据这些条件用窗函数法设计线性相位FIR 低通滤波起吗?

答:可以。若是给定了通带边缘截止频率和阻带临界频率,以及相应的衰减,则可以先确定所用窗函数的类型,然后为了确定N ,可以采用多次,直到设计的滤波器完全符合要求为止。

3、频率取样方法和窗函数法各有什么特点?简单说明?

答: 窗函数法大多可用闭合的公式可循,设计上简单、方便、实用。缺点在于当响应很复杂时,积分的数值计算凉大大增加。另一困难是要预先确定窗函数种类及N 值大小。

频率取样法在取样点上实际滤波器严格与理想响应曲线一致。在取样点之间是插值形成的,其误差是有限的,取样值越大,误差越小。特别适合设计窄带滤波器的设计。这种方法缺点是当截止频率不是2π/N的整数倍时,计算量很大。

六、源代码

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%主程序

%(一)

N=15;%长度为15的hanning窗

M=8*N;

Hd=zeros(1,M);

for i=19:31

Hd(i)=1

end

p=Hd_Hd(Hd,N,M);

h=exfor(N,M,p);

h=h.*pro_hanning(N);

mydtft(h);

N=45;长度为45的hanning窗

M=8*N;

Hd=zeros(1,M);

for i=55:91

Hd(i)=1

end

p=Hd_Hd(Hd,N,M);

h=exfor(N,M,p);

h=h.*pro_hanning(N);

mydtft(h);

N=45; %长度为45的矩形窗

M=8*N;

Hd=zeros(1,M);

for i=55:91

Hd(i)=1

end

p=Hd_Hd(Hd,N,M);

h=exfor(N,M,p);

h=h.*pro_rn(N);

mydtft(h);

N=45;%长度为45的blackman窗

M=8*N;

Hd=zeros(1,M);

for i=55:91

Hd(i)=1

end

p=Hd_Hd(Hd,N,M);

h=exfor(N,M,p);

h=h.*pro_blackman(N);

mydtft(h);

N=40;%长度为40的kaiser窗

M=8*N;

Hd=zeros(1,M);

for i=33:64

Hd(i)=1

end

for i=97:129

Hd(i)=1

end

p=Hd_Hd(Hd,N,M);

h=exfor(N,M,p);

beta=4;

h=h.*pro_kaiser(N,beta);

mydtft(h);

%子程序

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%

function[p]=mydtft(a)

%产生序列的dtft并作图

N=length(a);

p=0;

w=0:0.01*pi:pi;

for i=1:N

p=p+a(i)*exp((i-1)*j*w);

end

subplot(2,1,1);plot(w/pi,20*log10(abs(p)));title('·ù?μ');

subplot(2,1,2);plot(w/pi,(angle(p))/pi);title('?à?μ'); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

function[hd]=exfor(N,M,Hd)

%反傅里叶变换|

hd=zeros(1,N);

for i=1:N

for k=1:M

hd(i)=hd(i)+Hd(k)*exp(j*2*pi*k*(i-1)/M);

end

hd(i)=hd(i)/M;

end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%

function[a]=pro_blackman(N)

%产生blackman窗

a=zeros(1,N);

for i=1:N

a(i)=0.42-0.5*cos(2*pi*(i-1)/(N-1))+0.08*cos(4*pi*(i-1)/(N-1)); end

stem(a);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%

function[a]=pro_hamming(N);

%产生hamming窗

a=zeros(1,N);

for i=1:N

a(i)=0.54-0.46*cos((2*pi*(i-1))/(N-1));

end

stem(a);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%

function[a]=pro_hanning(N)

%产生hanning窗

a=zeros(1,N);

for i=1:N

a(i)=0.5*(1-cos((2*pi*(i-1))/(N-1)));

end

stem(a);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%

function[a]=pro_kaiser(N,beta)

%产生kaiser窗

a=zeros(1,N);

for i=1:N

a(i)=besseli(0,beta*sqrt(1-(2*(i-1)/(N-1)-1)^2))/besselj(0,beta); end

stem(a);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%

function[a]=pro_rn(N);

%产生矩形窗

a=zeros(1,N);

for i=1:N

a(i)=1;

end

stem(a);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%

function[p]=Hd_Hd(Hd,N,M)

%从一半幅频响应得到相应的整个幅频序列

p=zeros(1,M);

for i=1:M/2

p(i)=Hd(i);

p(M-i)=Hd(i);

end

for i=1:M

p(i)=p(i)*exp(-j*i*pi*(N-1)/M);

end

DSP实验报告

实验0 实验设备安装才CCS调试环境 实验目的: 按照实验讲义操作步骤,打开CCS软件,熟悉软件工作环境,了解整个工作环境内容,有助于提高以后实验的操作性和正确性。 实验步骤: 以演示实验一为例: 1.使用配送的并口电缆线连接好计算机并口与实验箱并口,打开实验箱电源; 2.启动CCS,点击主菜单“Project->Open”在目录“C5000QuickStart\sinewave\”下打开工程文件sinewave.pjt,然后点击主菜单“Project->Build”编译,然后点击主菜单“File->Load Program”装载debug目录下的程序sinewave.out; 3.打开源文件exer3.asm,在注释行“set breakpoint in CCS !!!”语句的NOP处单击右键弹出菜单,选择“Toggle breakpoint”加入红色的断点,如下图所示; 4.点击主菜单“View->Graph->Time/Frequency…”,屏幕会出现图形窗口设置对话框 5.双击Start Address,将其改为y0;双击Acquisition Buffer Size,将其改为1; DSP Data Type设置成16-bit signed integer,如下图所示; 6.点击主菜单“Windows->Tile Horizontally”,排列好窗口,便于观察 7.点击主菜单“Debug->Animate”或按F12键动画运行程序,即可观察到实验结果: 心得体会: 通过对演示实验的练习,让自己更进一步对CCS软件的运行环境、编译过程、装载过程、属性设置、动画演示、实验结果的观察有一个醒目的了解和熟悉的操作方法。熟悉了DSP实验箱基本模块。让我对DSP课程产生了浓厚的学习兴趣,课程学习和实验操作结合为一体的学习体系,使我更好的领悟到DSP课程的实用性和趣味性。

DSP实验报告

一、综合实验内容和目的 1、实验目的 (1) 通过实验学习掌握TMS320F28335的浮点处理; (2) 学习并掌握A/D模块的使用方法; (3) 学习并掌握中断方式和查询方式的相关知识及其相互之间的转换; (4) 学习信号时域分析的方法,了解相关电量参数的计算方法; (5) 了解数字滤波的一些基本方法。 2、实验内容 要求1:对给定的波形信号,采用TMS320F28335的浮点功能计算该信号的以下时域参数:信号的周期T,信号的均方根大小V rms、平均值V avg、峰-峰值V pp。 其中,均方根V rms的计算公式如下: V= rms 式中N为采样点数,()u i为采样序列中的第i个采样点。 要求2:所设计软件需要计算采样的波形周期个数,并控制采样点数大于1个波形周期,且小于3个波形周期大小。 要求3:对采集的数据需要加一定的数字滤波。 二、硬件电路 相关硬件:TMS320F28335DSP实验箱,仿真器。

硬件结构图 三、程序流程图 1、主程序流程图 程序的主流程图2、子程序流程图

参数计算的流程图 四、实验结果和分析 1、实验过程分析 (1) 使用的函数原型声明 对ADC模件相关参数进行定义:ADC时钟预定标,使外设时钟HSPCLK 为25MHz,ADC模块时钟为12.5MHz,采样保持周期为16个ADC时钟。 (2) 定义全局变量 根据程序需要,定义相关变量。主要有:ConversionCount、Voltage[1024]、Voltage1[1024]、Voltage2[1024]、filter_buf[N]、filter_i、Max、Min、T、temp、temp1、temp2、temp3、Num、V、Vav、Vpp、Vrm、fre。这些变量的声明请见报告后所附的源程序。 (3) 编写主函数 完成系统寄存器及GPIO初始化;清除所有中断,初始化PIE向量表,将程

北邮dsp软件实验报告

Matlab仿真实验 实验报告 学院:电子工程学院 专业:电子信息科学与技术 班级: 学号: 姓名:

时间:2015年12月23日 实验一:数字信号的FFT分析 1.实验目的 通过本次试验,应该掌握: (a)用傅里叶变换进行信号分析时基本参数的选择 (b)经过离散时间傅里叶变换和有限长度离散傅里叶变换后信号频谱上的区别,前者DTFT时间域是离散信号,频率域还是连续的,而DFT在两个域中都是离散的。(c)离散傅里叶变化的基本原理、特性,以及经典的快速算法(基2时间抽选法),体会快速算法的效率。 (d)获得一个高密度频谱和高分辨率频谱的概念和方法,建立频率分辨率和时间分辨率的概念,为将来进一步进行时频分析(例如小波)的学习和研究打下基础。(e)建立DFT从整体上可看成是由窄带相邻滤波器组成的滤波器组的概念,此概念的一个典型应用时数字音频压缩中的分析滤波器,例如DVD AC3和MPEG Audio。 2.实验容、要求及结果。 (1)离散信号的频谱分析: 设信号x(n)=0.001*cos(0.45n)+sin(0.3n)-cos(0.302n-) 此信号的0.3谱线相距很近,谱线0.45的幅度很小,请选择合适的序列长度N和窗函数,用DFT分析其频谱,要求得到清楚的三根谱线。 【实验代码】:

k=2000; n=[1:1:k]; x=0.001*cos(0.45*n*pi)+sin(0.3*n*pi)-cos(0.302*n*pi-pi/4); subplot(2,1,1); stem(n,x,'.'); title(‘时域序列'); xlabel('n'); ylabel('x(n)'); xk=fft(x,k); w=2*pi/k*[0:1:k-1]; subplot(2,1,2); stem(w/pi,abs(xk)); axis([0 0.5 0 2]); title('1000点DFT'); xlabel('数字频率'); ylabel('|xk(k)|'); 【实验结果图】:

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 。

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,添加工程所需文件;

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文件,选中,鼠标左键单击“打开”。

dsp实验报告

DSP 实验课大作业实验报告 题目:在DSP 上实现线性调频信号的脉冲压缩,动目标显示和动目标检测 (一)实验目的: (1)了解线性调频信号的脉冲压缩、动目标显示和动目标检测的原理,及其DSP 实现的整个流程; (2)掌握C 语言与汇编语言混合编程的基本方法。 (3)使用MATLAB 进行性能仿真,并将DSP 的处理结果与MATLAB 的仿真结果进行比较。 (二)实验内容: 1. MATLAB 仿真 设定信号带宽为B= 62*10,脉宽-6=42.0*10τ,采样频率为62*10Fs =,脉冲重复周期为-4T=2.4*10,用MATLAB 产生16个脉冲的线性调频信号,每个脉冲包含三个目标,速度和距离如下表: 对回波信号进行脉冲压缩,MTI ,MTD 。并且将回波数据和频域脉压系数保存供DSP 使用。 2.DSP 实现 在Visual Dsp 中,经MATLAB 保存的回波数据和脉压系数进行脉压,MTI 和MTD 。 (三)实验原理 1.脉冲压缩原理 在雷达系统中,人们一直希望提高雷达的距离分辨力,而距离分辨力定义为:22c c R B τ?==。其中,τ表示脉冲时宽,B 表示脉冲带宽。从上式中我们可以看

出高的雷达分辨率要求时宽τ小,而要求带宽B大。但是时宽τ越小雷达的平均发射功率就会很小,这样就大大降低了雷达的作用距离。因此雷达作用距离和雷达分辨力这两个重要的指标变得矛盾起来。然而通过脉冲压缩技术就可以解决这个矛盾。脉冲压缩技术能够保持雷达拥有较高平均发射功率的同时获得良好的距离分辨力。 在本实验中,雷达发射波形采用线性调频脉冲信号(LFM),其中频率与时延成正比关系,因此我们就可以将信号通过一个滤波器,该滤波器满足频率与时延成反比关系。那么输入信号的低频分量就会得到一个较大的时延,而输入信号的高频分量就会得到一个较小的时延,中频分量就会按比例获得相应的时延,信号就被压缩成脉冲宽度为1/B的窄脉冲。 从以上原理我们可以看出,通过使用一个与输入信号时延频率特性规律相反的滤波器我们可以实现脉冲压缩,即该滤波器的相频特性与发射信号时共轭匹配的。所以说脉冲压缩滤波器就是一个匹配滤波器。从而我们可以在时域和频域两个方向进行脉冲压缩。 滤波器的输出() h n= y n为输入信号() x n与匹配滤波器的系统函数() *(1) y n x n s N n =--。转换到频域就是--卷积的结果:* ()()*(1) s N n =。因此我们可以将输入信号和系统函数分别转化到频域:Y k X k H k ()()( Y k,然后将结果再转化到时域, h n H k →,进行频域相乘得() ()() x t X k →,()() 就可以得到滤波器输出:()() →。我们可用FFT和IFFT来实现作用域的 Y k y n 转换。原理图如下: 图1.脉冲压缩原理框图 2.MTI原理 动目标显示(MTI)技术是用来抑制各种杂波,来实现检测或者显示运动目标的技术。利用它可以抑制固定目标的信号,显示运动目标的信号。以线性调频

dsp实验报告4

实验2.4 外中断 一.实验目的 1.通过实验熟悉VC5509A的中断响应过程。 2.学会C语言中断程序设计,以及运用中断程序控制程序流程。 二.实验设备 计算机,ICETEK-VC5509-A实验箱及电源。 三.实验原理 1.中断及中断处理过程: ⑴中断简介:中断是一种由硬件或软件驱动的信号,DSP在接到此信号时,将当前程序悬挂起来,转去执行另外一个任务,这个任务我们称为中断服务程序(ISR)。TMS320C55x DSP 可支持32个ISR,可由硬件或软件触发。 ⑵DSP处理中断的步骤: ①接收中断请求:由软件或硬件发出。 ②响应中断请求:对于可屏蔽中断,需要满足若干条件,才发生响应;而对于不可屏蔽中断,则立即响应。 ③准备执行中断服务程序。 - 完成当前正在执行的指令;将进入流水线但还未解码的指令清除。 - 自动保存若干寄存器的值到数据堆栈和系统堆栈。 - 取得用户定义的中断向量表中当前中断向量,中断向量指向中断服务程序入口。 ④执行中断服务程序。中断服务程序包含中断返回指令,这样返回时可以出栈以前保存的关键寄存器数据,从而恢复中断服务程序执行前的现场。 ⑶中断向量表: 中断向量表的构成请参见TI的文档sprs295d.pdf之3.11节。 中断向量表的地址可以由用户指定。 ⑷外中断: TMS320C5509可以响应INT0-INT4五个外中断。 2.ICETEK-CTR板的键盘接口: 显示/控制模块ICETEK-CTR通过接口P8连接小键盘,接收小键盘传送的扫描码,并在每个扫描码结束后保存,同时向DSP的INT2发送中断信号;当DSP读键盘时将扫描码送到数据总线上。小键盘上每次按下一个键将产生2个扫描码,2次中断。 3.程序编制 由一个不含中断处理程序的工程通过改写加入中断处理程序部分大致需要如下操作(假设使用INT2): ⑴编制中断服务程序:参见实验程序,编写单独的一个函数XINT,此函数使用interrupt 修饰,没有参数和返回值。 ⑵构造中断向量表:可以用汇编语言构造,编写一个汇编语言模块程序vector.asm。 ⑶修改链接命令文件:在MEMORY小节中开辟单独的地址段用以存放中断向量表;在SECTIONS小节中指定.vectors段到前步开设的内存段中。 ⑷主程序中进行初始化设置:定位中断向量表、使能中断、清中断等。 4.实验程序流程图:

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

DSP实验报告二CCS的使用

实验二 CCS使用操作:报告: 1.实验目的 (1) 熟悉CCS集成开发环境,掌握工程的生成方法。 (2) 掌握CCS集成开发环境的调试方法。 2.实验容及步骤 (1)查阅CCS发展历史,给出CCS发展的版本和适用的芯片。 Code Composer Studio 包含一整套用于开发和调试嵌入式应用的工具。它包含适用于每个TI 器件系列的编译器、源码编辑器、项目构建环境、调试器、描述器、仿真器以及多种其它功能。CCS IDE 提供了单个用户界面,可帮助您完成应用开发流程的每个步骤。借助于精密的高效工具,用户能够利用熟悉的工具和界面快速上手并将功能添加至他们的应用。 版本 4 之前的 CCS 均基于 Eclipse 开放源码软件框架。Eclipse 软件框架可用于多种不同的应用,但是它最初被开发为开放框架以用于创建开发工具。我们之所以选择让 CCS 基于Eclipse ,是因为它为构建软件开发环境提供了出色的软件框架,并且正成为众多嵌入式软件供应商采用的标准框架。CCS 将 Eclipse 软件框架的优点和仪器 (TI) 先进的嵌入式调试功能相结合,为嵌入式开发人员提供了一个引人注目、功能丰富的开发环境。 CCS 有 2 个版本:白金版和微处理器版。各版本支持的处理器不同。支持的核白金版:TMS320C6000、TMS320C5000、TMS320C2800、TMS470、TMS570、ARM 7、ARM9、ARM 11、ARM Cortex M3(不包含 Stellaris Cortex M3)、ARM Cortex R4、ARM Cortex A8 和 MSP430 处理器版:TMS320C2800 和MSP430 CCS 白金版和微处理器版都使用以下各项:主机:PC 操作系统:Microsoft Windows Vista 和 XP (2) 使用CCS时,经常遇到下述扩展名文件,说明分别是什么文件。 ①project. mak :即MAKE文件,VC4及以前版本使用的工程文件,用来指定如何建立一个工程, VC6把MAK文件转换成DSP文件来处理。 ②program. c :定义的变量、数组、函数的声明 ③program. asm :Oracle管理文件(OMF) ④filename. h :H C程序头文件 ⑤filename. lib :LIB 库文件 ⑥project. cmd :CMD Windows NT,OS/2的命令文件;DOS CD/M命令文件;dBASEⅡ程序文件 ⑦program. obj :OBJ 对象文件 ⑧program. Out: C语言输出文件 ⑨project. Wks :WKS Lotus 1-2-3电子表格;Microsoft Works文档 保存配置文件时产生的文件: ①programcfg.cmd 连接器命令文件 ②programcfg.h54 头文件 ③programcfg.s54 汇编源文件 DSP源文件的建立;

DSP实验报告

实验一 离散系统的时域分析 一、实验目的 1、掌握离散时间信号的MATLAB 表示; 2、信号运算; 3、差分方程的求解; 4、离散时间信号的卷积运算。 二、实验原理 1、离散时间信号 离散时间信号只在某些离散的瞬时给出函数值,而在其他时刻无定义。它是时间上不连续按一定先后次序排列的一组数的集合,称为时间序列,用x(n)表示,n 取整数代表时间的离散时刻。 在matlab 中用向量来表示一个有限长度的序列。 2、序列的类型 为了分析的方便,在数字信号处理中规定了一些基本的序列。 a) 单位采样序列 function [x,n]=impseq(n1,n2,n0) n=[n1:n2]; x=[(n-n0)==0]; 调用该函数 [x,n]=impseq(-2,8,2); stem(n,x) 0010()001()0n n n n n n n n n δδ =?=? ≠? =?-? ≠?

单位采样序列的另一种生成方法 n0=-2; n=[-10:10]; nc=length(n); x=zeros(1,nc); for i=1:nc if n(i)==n0 x(i)=1 end end stem(n,x) b) 单位阶跃序列 function [x,n]=stepseq(n1,n2,n0) n=[n1:n2]; x=[(n-n0)>=0]; 调用该函数 [x,n]=stepseq(-2,8,2); stem(n,x) 000 10()001()0n n n n n n n n n εε >=?=? =?-?

c) 实数指数序列 x(n)=an (运算符“.^”) n=[0:10]; x=0.9.^n; stem(n,x) d) 复数指数序列 n=[-10:10]; alpha=-0.1+0.3*j; x=exp(alpha*n); real_x=real(x); image_x=imag(x); mag_x=abs(x); phase_x=angle(x); subplot(2,2,1); stem(n,real_x) subplot(2,2,2); stem(n,image_x) subplot(2,2,3); stem(n,mag_x) subplot(2,2,4); stem(n,phase_x) ()()j n x n e αω+=(0.1j0.3)n x(n)e (10n 10) -+= -<<

DSP原理与应用实验报告

DSP原理与应用实验报告 姓名: 学号: 班级: 学院: 指导教师:

实验一代数汇编指令基础实验 一、实验目的: 1.通过调试目标代码,掌握指令的功能,熟悉指令; 2.通过指令的熟悉,能够指令应用于实际项目中。 二、实验原理: Ti公司的代数汇编指令。 三、实验程序: .title"算术指令综合实验" .mmregs .sect ".vect" .copy "vectors.asm" .text _Start: ; AR7=#767 ; A=#38CAH ; DP=#08AH ; RSA=#0123H; DP=#188H ; ASM=#0AH AR7=A MMR(*AR7+)=#1234H DP=#04H A=#9876H AR6=#230H *AR6+=#9ACDH ARP=#6 ; @38H=A NOP NOP AR0=#003AH A=*AR6+0 T=#08H SXM=1 B=*AR6-<

DSP实验报告重叠保留法和重叠相加法(精)

北京邮电大学 实 学班姓学 日 验报告 MATLAB 实现线性卷积运算院:信息与通信工程学院级:名: ______ 号: 期: 实验名称:用 索引

一、实验原 理 ..................................................................................................................... 3 1、算法产生背景 (3) 2、算法基本思 想 ...........................................................................................................................3 1)重叠相加法 (3) 2)重叠保留 法 ...........................................................................................................................4 二、流程图设计 . ................................................................................................................. 5 1、重叠相加 法 . .............................................................................................................................. 5 2、重叠保留 法 . (6) 三、MATLAB 源代 码 . ........................................................................................................... 7 1、重叠相加源码 ...........................................................................................................................7 2、重叠保留源 码 ...........................................................................................................................8 四、实验结果与分析 ........................................................................................................... 9 ①调用CONV (计 算 . ......................................................................................................................... 9 ②测试重叠相加算法 (9) ③测试重叠保留算 法 .....................................................................................................................9 五、讨论与总结 . ............................................................................................................... 10 1、算法效率分 析: .....................................................................................................................10 A. 重叠相加法 . (10)

DSP实验报告模版

我们做的dsp实验是实验一,实验二,实验三!模板上只有1 3 !2要自己仿照实验一写! 不要弄错了!实验题目在另外一个共享表格里! 实验一数据存储实验 一、实验目的 1. 掌握ccs的使用 2. 掌握 tms320c54x 程序空间的分配; 3. 掌握 tms320c54x 数据空间的分配; 4. 能够熟练运用tms320c54x 数据空间的指令。 二、实验设备 计算机,ccs 3.1版软件,dsp仿真器,e300实验箱,dsp-54xp cpu板。 三、实验步骤与内容 1. 在进行 dsp实验之前,需先连接好仿真器、实验箱及计算机,连接方法如下所示: 2. e300 底板的开关sw4 的第1位置on,其余位置off。其余开关设置为off。 sw5全部置on;其余开关不做设置要求 3. 上电复位 在硬件安装完成后,确认安装正确、各实验部件及电源连接无误后,启动计算机,接通仿真器电源,此时,仿真器上的“红色指示灯”应点亮,否则dsp开发系统与计算机连接存在问题。 4. 运行ccs程序 1) 待计算机启动成功后,实验箱220v电源置“on”,实验箱上电 2) 启动ccs3.1,进入ccs界面后,点击“debug—connect” 3) 此时仿真器上的“绿色指示灯”应点亮,ccs正常启动,表明系统连接正常;否则仿真器的连接、jtag 接口或ccs 相关设置存在问题,这时需掉电检查仿真器的连接、jtag 接口连接是否正确,或检查ccs相关设置是否存在问题。 5. 成功运行ccs 程序后,首先应熟悉ccs的用户界面; 6. 学会在ccs环境下创建工程文件、添加程序文件、编写程序、编译、装载、调试,学习如何使用观察窗口等。 7. 用“project\open”打开“c:\ti5000\myprojects\01_mem\ mem.pjt”. 编译并装载“\ 01_mem\debug\mem.out” 8.用“edit”下拉菜单中的“memory/fill”编辑内存单元,参数设置如下图: 单击“ok”此时以0x1000 为起始地址的16个内存单元被修改成:0x0009 9.用“view”下拉菜单“memory”观察内存单元变化,输入要查看的内存单元地址,本实验要查看0x1000h~0x100fh 单元的数值变化,输入地址0x1000h; 单击“ok”如下图所示: 10. 点击“debug\go main”进入主程序,在程序中“加软件断点1”和“加软件断点2”处 施加软件断点。 11. 单击“debug\run”运行程序,也可以“单步”运行程序;当程序运行到“软件断点1” 处时,查看0x1000h~0x1007h单元的值变化, 12. 再单击“debug\run”,当程序运行到“软件断点2”处时,查看0x1008~0x100f

DSP实验报告+心得体会

龙岩学院 实验报告 班级07电本(1)班学号2007050344 姓名杨宝辉同组人独立 实验日期2010-5-18 室温大气压成绩 基础实验 一、实验目的 1. 掌握CCS实验环境的使用; 2. 掌握用C语言编写DSP程序的方法。 二、实验设备 1. 一台装有CCS软件的计算机; 2. DSP实验箱的TMS320F2812主控板; 3. DSP硬件仿真器。 三、实验原理 浮点数的表达和计算是进行数字信号处理的基本知识;产生正弦信号是数字信号处理中经常用到的运算;C语言是现代数字信号处理表达的基础语言和通用语言。写实现程序时需要注意两点:(1)浮点数的范围及存储格式;(2)DSP的C语言与ANSI C语言的区别。 四、实验步骤 1.打开CCS 并熟悉其界面; 2.在CCS环境中打开本实验的工程(Example_base.pjt),编译并重建.out 输出文件,然后通过仿真器把执行代码下载到DSP芯片中; 3.把X0 , Y0 和Z0添加到Watch窗口中作为观察对象(选中变量名,单击鼠标右键,在弹出菜单中选择“Add Watch Window”命令); 4.选择view->graph->time/frequency…。设置对话框中的参数: 其中“Start Address”

设为“sin_value”,“Acquisition buffer size”和“Display Data size”都设为“100”,并且把“DSP Data Type”设为“32-bit floating point”, 设置好后观察信号序列的波形(sin函数,如图); 5.单击运行; 6.观察三个变量从初始化到运算结束整个过程中的变化;观察正弦波形从初始化到运算结束整个过程中的变化; 7.修改输入序列的长度或初始值,重复上述过程。 五、实验心得体会 通过本次实验,加深了我对DSP的认识,使我对DSP实验的操作有了更进一步的理解。基本掌握了CCS实验环境的使用,并能够使用C语言进行简单的DSP程序设计。 从软件的安装到使用软件进行程序设计与仿真,锻炼了自己的动手能力,也遇到了不少的坎坷,例如芯片的选择,不能因为麻烦而省略该步骤,否则将会运行出错。

DSP实验报告5

DSP 第五次实验 1.实验目的: (1)进一步熟悉matlab 实验环境和语言。 (2)掌握求序列圆周翻褶的MATLAB 方法。 (3)掌握求序列DFT 及IDFT 矩阵的MATLAB 方法。 (4)掌握用MATLAB 求解用圆周卷积计算线性卷积的时域的方法。 (5)掌握用FFT 计算有限长序列的线性卷积和线性相关的方法。 2.实验内容及总结: 1.圆周翻褶 【例3.27】 已知()[2,3,4,5,6],8X n N ==,求x(n)的8点圆周翻褶序列88(())()x n R n -。 代码: clc;clear all x=[2,3,4,5,6];N=8; x=[x,zeros(1,N-length(x))];nx=0:N-1 y=x(mod(-nx,N)+1); subplot(121),stem([0:N-1],x);title('原序列'); xlabel('n');ylabel('x(n)');grid; subplot(122),stem([0:N-1],y);title('圆周翻褶序列'); xlabel('n');ylabel('x((n))8 R8(n)');grid; 结果:

总结: 对于圆周翻褶 (0),0 ()(())() (),11 N N x n y n x n R n x N n n N = =-=? -≤≤-MA TLAB可用 y=x(mode(-nx,N)+1)求得。因此,要求X(n)=[2,3,4,5,6],N=8的8点圆周翻褶序列,要先将x(n)补零到8点长度再求圆周翻褶。 x=[x,zeros(1,N-length(x))];nx=0:N-1 %x补零到8点长 y=x(mod(-nx,N)+1); %圆周翻褶从一开始,因此得到8点长 %序列,应该再加一 2.DFT矩阵,IDFT矩阵 【例3.29】已知N=4的DFT矩阵w4,求IDFT矩阵w4I。 代码:

DSP实验报告

DSP实验报告 电子111班 刘卓 112099 同组人:张顺 112108

指令实验 一、实验目的 1、了解DSP的结构及引脚功能; 2、掌握DSP的基本指令。 二、实验要求 了解怎样对DSP进行简单的编程操作、运算控制等基本汇编语言及算术语言、实验测试及除错验证。 三、实验步骤 见教材342页。 四、实验结果 1、直观结果 .title "ex1" .mmregs .def _c_int00 DAT0 .SET 60H DAT1 .SET 61H DAT2 .SET 62H DAT3 .SET 63H .text ADD3 .MACRO P1,P2,P3,ADDRP LD P1,A ADD P2,A ADD P3,A STL A,ADDRP .ENDM _c_int00:B start start: LD #004h,DP ;DP=0004,ST0=1804 STM #1000h,SP ;SP=1000 SSBX INTM ;INTM=1 bk0: ST #0012h,DAT0 ;D(0x0260)=0x0012 LD #0023h,A ;A=0000000023 ADD DAT0,A ;A=0000000035,ST0=1004,C=0 NOP NOP bk1: ST #0054h,DAT0 ;D(0x0260)= 0x0054 LD #0002h,A ;A=0000000002 SUB DAT0,A ;A=FFFFFFFFAE NOP NOP bk2: ST #0345h,DAT0 ;D(0x0260)=0x0345 STM #0002h,T ;T=0002

DSP实验报告3

DSP 实验报告3 姓名 学号 时间 2015.6.9 地点 实验大楼A631 实验题目 卷积运算 一、 实验目的 1、学习如何用DSP 的C 语言程序实现卷积与相关的计算; 2、学习用CCS 调试程序的详细过程; 3、学习如何设置断点。 二、 实验内容及步骤 1、创建一个新项目工程 将“maxminmath 文件夹”复制到“D:\CCStudio_v3.3\MyProjects ”下。 2、打开工程调试程序,并说明程序的功能; 3、编程实现以下功能: 已知()()n R n x 4=,()()n R n h 4=,求()()()n h n x n y *= a 、采用子程序调用的方式实现,并且注释程序; b 、把x ,h 和y 添加到Watch 窗口中作为观察对象; c 、观察三个数组从初始化到卷积运算结束整个过程中的变化(可单击变量名前的“+”号把数组展开),并将变化过程记录下来。 三、 实验程序 给出卷积运算的子程序: void main() { int x[7]={0,0,0,1,1,1,1},h[7]={1,1,1,1,0,0,0},y[7]={0}; int i,j; for(i=0;i<7;i++) for(j=0;j<7;j++) {if(i+j<7) y[i]=y[i]+x[i+j]*h[j]; y[i]=y[i]%2;} } 评 阅

四、实验结果 y值的变化情况如下: 五、实验思考题 1、试用汇编语言编写实现卷积运算的程序; .global start ;定义全局变量 .mmregs .data; 开始数据段 .bss m,1; 开设全局变量,每个变量占用一个字 .bss n,1 .bss z,1 .text; 开始文本段 start: ST #1000h,AR1 ST #3000h,AR2 ST #5000h,AR3 ST #0,@m RPT 999 RPT m+ LOOP: MVPD 6000h MVDD *AR1+,*AR4 MVDD *AR2+,*AR5 MACP *AR4,*AR5,src B LOOP ST A,*AR3+ xh: b xh;空循环 .end

DSP实验报告4剖析.

DSP实验报告 院系:哈尔滨理工大学荣成校区 专业:电子信息工程 学号: 1230160101 姓名:董小天 日期: 2015年6月16日

实验四无限冲击相应滤波器(IIR)算法实验 一、实验目的 1、熟悉设计IIR数字滤波器的原理与方法 2、掌握数字滤波器的计算机仿真方法; 3、通过观察对实际信号的滤波作用,获得对数字滤波的感性认识。 二、实验设备 计算机,CCS 3.1版软件,实验箱,DSP仿真器,连接线。 三、实验原理 1、无限冲击响数字滤波器的基础理论; 2、模拟滤波器原理(巴特沃斯滤波器、切比雪夫滤波器、贝塞尔滤波器); 3、双线性变换的设计原理。 四、实验步骤 1、复习有关巴特沃斯滤波器设计和用双线性变换法设计IIR数字滤波器的知识; 2、阅读本实验所提供的样例子程序; 3、运行CCS软件,对样例程序进行跟踪,分析结果; 4、填写实验报告。 5、样例程序实验操作说明 A.实验前准备 ①实验箱和CPU板设置:SW2的2、4置ON,1、3置OFF;S2全部置ON;JP3开关的3、6位置ON,其余置off,S23全部置OFF。 ②用导线连接“信号源”2号孔“信号源1”和“A/D单元”2号孔“ADIN1”; B.实验 启动CCS 3.1,打开工程文件exp03_iir。在程序中m=0处设置断点,运行 打开一个图形观察窗口;设置双综观察在起始地址x、y,数值变化为256,32位浮点型变量。 五、实验结果及代码

实验代码 #define UCHAR unsigned char #define UINT16 unsigned int #define UINT32 unsigned long #define TRUE 1 #define FALSE 0 //--------------------------------------------------------- //----------------定义寄存器地址-------------- #define IODIR_ADDR 0x3400 #define IODATA_ADDR 0x3401 //---------------定义寄存器操作-------------- #define IODIR *(ioport unsigned int *)IODIR_ADDR #define IODATA *(ioport unsigned int *)IODATA_ADDR #define IER0 (*(volatile unsigned int*)0x0000) //Interrupt Enable Register 0 #define IFR0 (*(volatile unsigned int*)0x0001) //Interrupt Flag Register 0 #define IER1 (*(volatile unsigned int*)0x0045) //Interrupt Enable Register 1 #define IFR1 (*(volatile unsigned int*)0x0046) //Interrupt Flag Register 1 #define AD_Addr 0x20008 #define AD_in (*(unsigned int *)AD_Addr) //AD输入 //---------------------------------------------------------- /* 全局变量定义*/

相关文档
相关文档 最新文档