当前位置:文档之家› 数字信号处理实验讲义20071120(0502起用)2010.11.26

数字信号处理实验讲义20071120(0502起用)2010.11.26

数字信号处理实验讲义20071120(0502起用)2010.11.26
数字信号处理实验讲义20071120(0502起用)2010.11.26

目录

实验一熟悉MATLAB环境 (1)

实验二DFT在卷积计算中的应用 (5)

实验三快速Fourier变换(FFT)及其应用 (6)

实验四IIR滤波器的设计 (8)

实验五FIR 滤波器设计 (12)

附录MATLAB在信号处理中的应用简介 (16)

实验一熟悉MATLAB环境

一、实验目的:熟悉MATLAB环境,理解常用离散信号及系统。

二、实验原理:Matlab是一套功能强大的工程计算及数据处理软件,广泛应用于工业、电子、医疗和建筑等众多领域。它是一种面向对象的,交互式程序设计语言,其结构完整又有优良的可移植性,在矩阵运算,数字信号处理方面有强大的功能。另外,Matlab提供了方便的绘图功能,便于用户直观地输出处理结果。本课程实验要求学生运用Matlab编程完成一些数字信号处理的基本功能,加深对教学内容的理解。

1.理想采样信号序列

(1)首先产生信号x(n),O≤n≤50

n=0:50;%定义序列的长度是50

A=444.128;%设置信号有关的参数

a=50*sqrt(2)*pi;

T=0.001;

w=50*sqrt(2)*pi;

x=A*exp(-a*n*T).*sin(w*n*T);%pi是Matlab定义的π,信号乘可采用”.*”

close all;%清除已经绘制的x(n)图形

subplot(3,1,1);stem(x);%绘制x(n)的图形

title(…理想采样信号序列?); %设置结果图形的标题

(2)绘制信号x(n)的幅度谱和相位谱

k=-25:25;

W=(pi/12.5)*k;

x=x*(exp(-j*pi/2.5)).^(n'*k);

magX=abs(x);%绘制x(n)的幅度谱

subplot(3,1,2);stem(magX);title('序列的幅度谱');

angX=angle(x);%绘制x(n)的相位谱

subplot(3,1,3);stem(angX);title('序列的相位谱');

2.单位抽样序列

在Matlab中,这一函数可以用zeros函数实现。

n=1:50;%定义序列的长度是50

x=zeros(1,50);%注意MATLAB中数组下标是从1开始

x(1)=1;%x=[(n-k)==0]表示δ(n-k)

close all;

subplot(3,1,1);stem(x);title('单位冲激信号序列');

k=-25:25;

y=x*(exp(-j*pi/12.5)).^(n'*k);

magy=abs(y);%绘制x(n)的幅度谱

subplot(3,1,2);stem(magy);title('单位冲激信号的幅度谱');

angy=angle(y);%绘制x(n)的相位谱

subplot(3,1,3);stem(angy);title('单位冲激信号的相位谱')

3.矩形序列

n=1:50;

x=sign(sign(20-n)+1);

close all;

subplot(3,1,1);stem(x);title('矩形序列');

k=-25:25;

X=x*(exp(-j*pi/25)).^(n'*k);

Magx=abs(X);%绘制x(n)的幅度谱

subplot(3,1,2);stem(Magx);title('矩形序列的幅度谱');

angx=angle(X);%绘制x(n)的相位谱

subplot(3,1,3);stem(angx);title('矩形序列的相位谱')

4.特定冲激串

n=1:50;%定义序列的长度是50

x=zeros(1,50);%注意:Matlab中数组下标从1开始

x(1)=1;

x(2)=2.5;

x(3)=2.5;

x(4)=1;

close all;

subplot(3,1,1);stem(x);title('特定冲激串序列');

k=-25:25;

X=x*(exp(-j*pi/12.5)).^(n'*k);

magX=abs(x);%绘制x(n)的幅度谱

subplot(3,1,2);stem(magX);title('特定冲激串的幅度谱');

angX=angle(X);%绘制x(n)的相位谱

subplot(3,1,3);stem(angX);title('特定冲激串的相位谱')

5.其它序列

(1)单位阶跃序列:

在Matlab中可以利用ones()函数实现。如:x=ones(1,N)

(2)正弦序列:x(n)=Asin(2πfn/f s +φ)

在Matlab 中:n=0:N-1,x(n)=A*sin(2*pi*f*n/Fs+fai) (3)复正弦序列:x(n)=e

jwn

在Matlab 中: n=0:N-1,x(n)=exp(j*w*n) (4)指数序列:x(n)=a n

在Matlab 中: n=0:n-1,x(n)=a.^n 6.常用MATLAB 函数

三、实验要求:

(1)预先阅读教材第8章MATLAB 在信号处理中的应用。 (2)预习实验内容,编写程序

(3)实验时在MATLAB 环境中,录入编写程序,得结果(图形);

(4)实验报告以WORD 文档形式保存,文件名为学号+实验一,如张三的学号为123456,文件名为123456实验一(下同) 四、实验内容:

1.编制程序产生上述其它序列(长度可自行输入确定),并绘出其图形。

2.利用MATLAB 计算单位脉冲序列(2)n δ-在-4<=n<=4范围内各点的取值。

3.已知x(n)=(-0.5,0,0.5,1),n=-1:2;h(n)=[1,1,1],n=-2:0。用MATLAB 函数conv 计算两序列的卷积。

4.已知离散系统为-1-2-1-2-1-2-1-2(0.5009-1.0019z +0.5009z )(0.5320+1.0640z +0.5320z )H(z)=(1-0.8519z +0.4167z )(1+0.8519z +0.4167z )

试画

出该系统的幅度响应。

5.试用MATLAB计算

-1-2-3-4

-1-2-3

1.5+0.981z-

2.6082z+1.23z-0.1444z

X(z)=

1-1.41z+0.62z-0.0723z

的部分分式展开。

6.已知一因果的LTI系统的系统函数为

2

32

z+2z+1

H(z)=

z-0.5z-0.005z+0.3

,试用函数zplane画出系统的

零极点分布,并判断系统的稳定性。

7.给定一因果系统

1

()

H z

-

=,画出H(z)的幅频响应、相频响应以及零、极点图。

实验二 DFT 在卷积计算中的应用

一、实验目的:

学习MATLAB 计算信号DFT ;学习利用MA TLAB 由DFT 计算线性卷积。 二、实验原理:

在MA TLAB 信号处理工具箱中,函数dftmtx(n)用来产生N*N 的DFT 矩阵DN 。另外MATLAB 提供了4个内部函数用于计算DFT 和IDFT 。分别为:fft(x),fft(x,n),ifft(x),ifft(x,n)。

fft(x):计算M 点的DFT ,M 是序列X 的长度;

fft(x,n):计算N 点的DFT ,若M>N,则截断,反之则补0; ifft(x),ifft(x,n):分别为以上两种运算的逆运算;

Fftfilt :函数基于重叠相加法的原理,可实现长短序列的线性卷积,其格式为:y=fftfilt(h,x,n),h 为短序列,x 长序列,n 为DFT 点数。 三、实验内容:

1.分别计算16点序列15()cos

16

x n n π

=,015n ≤≤的16点和32点DFT ,绘出幅度谱图形。 2.已知x[k]=2k+1,018k ≤≤,h[k]={1,3,2,4};试分别用重叠相加法和直接求卷积法求两序列的卷积,并绘出幅度谱图形。

实验三 快速Fourier 变换(FFT)及其应用

一、实验目的:

加深对离散信号的D F T 的理解及其F F T 算法的运用。 二、实验原理:

N 点序列的DFT 和IDFT 变换定义式如下:

[]1

0()()()0,1,1N nk

N

n X k DFT x n x n W k N -====-∑

[]10

1()()()0,1,1N nk

N

k x n IDFT X k X k W n N N --====-∑L

利用旋转因子2N

j nk nK N

W

e

π-=的周期性,可以得到快速算法(FFT )。

在Matlab 中,可以用函数X=fft(x,N)和x=ifft(X ,N)计算N 点序列的DFT 正、反变换。 三、实验内容: 四、实验要求:

利用Matlab 编程完成下列序列的FFT ,绘出相应图形。并与理论计算相比较,说明实验结果的原因。

1、高斯序列

???

??≤≤=--else n e

n x q p n a 0

15

0)(2

)

(

附:序列产生

n=0:15; %定义序列的长度是15

p=8; q=2; x=exp(-1*(n-p).^2/q); %利用fft 函数实现富氏变换 close all; subplot(3,1,1); stem(abs(fft(x)));

p=8; q=4; x=exp(-1*(n-p).^2/q); %改变信号参数,重新计算 subplot(3,1,2); stem(abs(fft(x))); p=8; q=8; x=exp(-1*(n-p).^2/q); subplot(3,1,3); stem(abs(fft(x))); 2、衰减正弦序列

?

?

?≤

=

-

else

n

fn

e

n

x

n

b

15

2

sin

)

(

π

α

附:序列产生

n=0:15; %定义序列的长度是15

a=0.1; f=0.0625; x=exp(-a*n).*sin(2*pi*f*n);

close all; subplot(2,1,1); stem(x);

subplot(2,1,2); stem(abs(fft(x))) ;

3、三角波序列

?

?

?

?

?

-

+

=

else

n

n

n

n

n

x c

7

4

8

3

1

)

(

附:序列产生

for i=1:4 %设置信号前4 个点的数值

x(i)=i; %注意:MATLAB 中数组下标从

1 开始

end

for i=5:8 %设置信号后4 个点的数值

x(i)=9-i;

end

close all; subplot(2,1,1); stem(x); %绘制

信号图形

subplot(2,1,2); stem(abs(fft(x,16))) %绘

制信号的频谱

4、反三角序列

?

?

?

?

?

-

-

=

e l s e

n

n

n

n

n

x d

7

4

3

3

4

)

(

附:序列产生

for i=1:4;%设置信号前4 个点的数值

x(i)=5-i; %注意:MATLAB 中数组下标从1 开始

end;

for i=5:8; %设置信号后4 个点的数值

x(i)=i-4;

end;close all; subplot(2,1,1); stem(x); %绘制信号图形

subplot(2,1,2); stem(abs(fft(x,16))); %绘制信号的频谱

实验四IIR滤波器的设计

一、模拟滤波器的设计

(1)滤波器的原型设计

[z,p,k]=bessl ap(n)

H(s)的表达式

(2)滤波器阶数的选择

除能求模拟阶数,也能求数字的阶数

[n,Wn]=butt ord(Wp,Ws.Rp,Rs)(数字)

[n,Wn]=butt ord(Wp,Ws.Rp,Rs,?s?)(模拟)

(3)模拟频率的变换

[bt,at]=lp2lp(b,a,wo)

二、模拟到数字的映射

(1)双线性变换法

[zd,pd,kd]=bilinear(z,p,k,fs)

[numd,dend]=bilinear(num,den,fs)

(2)冲激响应不变法

[bz,az]=impinvar(b,a,fs)

三、直接设计

[b,a]=butter(n,wn)

[b,a]=butter(n,wn,?ftype?)

[b,a]=butter(n,wn,?s?)

[b,a]=butter(n,wn,?ftype?,?s?)

另外:

Freqz(B,A,N,FS)

一.实验目的

1.了解工程上两种最常用的变换方法:脉冲响应不变法和双线性变换法。

2.掌握双线性变换法设计IIR滤波器的原理及具体设计方法,熟悉用双线性设计法设计低通、带通和高通IIR数字滤波器的计算机程序。

3.观察用双线性变换法设计的滤波器的频域特性,并与脉冲响应不变法相比较,了解双线性变换法的特点。

4.熟悉用双线性变换法设计数字Butterworth和Chebyshev 滤波器的全过程。

二.实验原理

从模拟滤波器设计IIR数字滤波器具有四种方法:微分-差分变换法、脉冲响应不变法、双线性变换法、z平面变换法。工程上常用的是其中的两种:脉冲响应不变法、双线性变换法。脉冲响应不变法需要经历如下基本步骤:由已知系统传输函数H(S)计算系统冲激响应h(t);对h(t)等间隔采

样得到h(n)=h(nT);由h(n)获得数字滤波器的系统响应H(Z)。这种方法非常直观,其算法宗旨是保证所设计的IIR 滤波器的脉冲响应和模拟滤波器的脉冲响应在采样点上完全一致。而双线性变换法的设计准则是使数字滤波器的频率响应与参考模拟滤波器的频率响应相似。

脉冲响应不变法一个重要的特点是频率坐标的变换是线性的(T Ω=ω),其确定是有频谱的周期延拓效应,存在频谱混叠的现象。为了克服脉冲响应不变法可能产生的频谱混叠,提出了双线性变换法,它依靠双线性变换式:

1111--+-=

z z s ,

s s

z -+=11, 其中 Ω+=j s σ,ωj re z = 建立其S 平面和Z 平面的单值映射关系,数字域频率和模拟域频率的关系是:

)2/(ωtg =Ω, )(2Ω=arctg ω

由上面的关系式可知,当∞→Ω时,ω终止在折叠频率πω=处,整个Ωj 轴单值的对应

于单位圆的一周。因此双线性变换法不同于脉冲响应不变法,不存在频谱混叠的问题。从式(3-1)还可以看出,两者的频率不是线性关系。这种非线性关系使得通带截至频率、过渡带的边缘频率的相对位置都发生了非线性畸变。这种频率的畸变可以通过预畸变来校正。用双线性变换法设计数字滤波器时,一般总是先将数字滤波器的个临界频率经过频率预畸变,求得相应参考模拟滤波器的个临界频率,然后设计参考模拟滤波器的传递函数,最后通过双线性变换式求得数字滤波器的传递函数。这样通过双线性变换,正好将这些频率点映射到我们所需要的位置上。参考模拟滤波器的设计,可以按照一般模拟滤波器设计的方法,利用已经成熟的一整套计算公式和大量的归一化设计表格和曲线。这些公式、表格主要是用于归一化低通原型的。通过原型变换,可以完成实际的低通、带通和高通滤波器的设计。在用双线性变换法设计滤波器的过程中,我们也可以通过原型变换,直接求得归一化参考模拟滤波器原型参数,从而使得设计更加简化。综上所述,以低通数字滤波器设计为例,可以将双线性变换法设计数字滤波器的步骤归纳如下:

(1)确定数字滤波器的性能指标。这些指标包括:通带、阻带临界频率s p f f ,;通带内的最大衰减

p α;阻带内的最小衰减s α;采样周期T 。

(2)确定相应的数字频率,T f p p πω2=,T f s s πω2=。

(3)计算经过频率预畸变的相应参考模拟低通原型的频率,)2/(p p tg ω=Ω,)2/(s s tg ω=Ω (4)计算低通原型阶数N ;计算3dB 归一化频率c Ω,从而求得低通原型的传递函数)(s H a 。

(5)用表(3-1)中所列变换公式1111--+-=

z z s ,代入)(s H a ,求得数字滤波器的传世函数)(z H 。

(6)分析滤波器频域特性,检查其指标是否满足要求。 1、ButterWorth 模拟和数字滤波器

(1)butterd 函数:ButterWorth 滤波器阶数的选择。

调用格式:[n,Wn]=buttord(Wp,Ws,Rp,Rs),在给定滤波器性能的情况下(通带临界频率Wp 、阻带临界频率Ws 、通带内最大衰减Rp 和阻带内最小衰减Rs ),计算ButterWorth 滤波器的阶数n 和截止频率Wn 。相同参数条件下的模拟滤波器则调用格式为:

[n,Wn]=butto rd(Wp,Ws,Rp,Rs,?s?)

(2)butter 函数:ButterWorth 滤波器设计。

调用格式:[b,a]=butter(n,Wn),根据阶数n 和截止频率Wn 计算ButterWorth 滤波器分子分母系数(b 为分子系数的矢量形式,a 为分母系数的矢量形式)。相同参数条件下的模拟滤波器则调用格式为:[b,a]=butter(n,Wn,?s?)

例1:采样频率为1Hz ,通带临界频率f p =0.2Hz ,通带内衰减小于1dB (αp=1);阻带临界频率f s =0.3Hz ,阻带内衰减大于25dB (αs =25)。设计一个数字滤波器满足以上参数。

[n,Wn]=buttord(0.2,0.3,1,25); [b,a]=butter(n,Wn); freqz(b,a,512,1); 2、Chebyshev 模拟和数字滤波器

(1)cheb1ord 函数:Chebyshev 型滤波器阶数计算。

调用格式:[n,Wn]=cheb1ord(Wp,Ws,Rp,Rs),在给定滤波器性能的情况下(通带临界频率Wp 、阻带临界频率Ws 、通带内波纹Rp 和阻带内衰减Rs ),选择Chebyshev Ⅰ型滤波器的最小阶n 和截止频率Wn 。

(2)cheby1 函数:Chebyshev Ⅰ型滤波器设计。

调用格式:[b,a]= cheby1(n,Rp,Wn),根据阶数n 、通带内波纹Rp 和截止频率Wn 计算ButterWorth 滤波器分子分母系数(b 为分子系数的矢量形式,a 为分母系数的矢量形式)。

注:Chebyshev Ⅱ型滤波器所用函数和Ⅰ型类似,分别是cheb2ord 、cheby2。 实现上例中的滤波器:

[n,Wn]=cheb1ord(0.2,0.3,1,25); [b,a]=cheby1(n,1,Wn); freqz(b,a,512,1);

3、滤波器设计

(1)脉冲响应不变法设计数字ButterWorth 滤波器

调用格式:[bz,az]=impinvar(b,a,Fs),再给定模拟滤波器参数b,a 和取样频率Fs 的前提下,计算数字滤波器的参数。两者的冲激响应不变,即模拟滤波器的冲激响应按Fs 取样后等同于数字滤波器的冲激响应。

(2)利用双线性变换法设计数字ButterWorth 滤波器

调用格式:[bz,az]=bilinear[b,a,Fs],根据给定的分子b、分母系数a 和取样频率Fs,根据双线性变换将模拟滤波器变换成离散滤波器,具有分子系数向量bz 和分母系数向量az。模拟域的butter 函数说明与数字域的函数说明相同[b,a]=butter(n,Wn,?s?)可以得到模拟域的Butterworth滤波器。三.实验内容

采样频率为1Hz,通带临界频率f p =0.2Hz,通带内衰减小于1dB(αp=1);阻带临界频率f s=0.3Hz,阻带内衰减大于25dB(αs=25)。设计一个数字滤波器满足以上参数。

附程序:

实验五 FIR 滤波器设计

一.实验目的

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

2.掌握用窗函数设计FIR 数字滤波器的原理与方法,熟悉相应的计算机高级语言编程。 3.熟悉线性相位FIR 滤波器的幅频特性和相位特性。 4.了解各种不同窗函数对滤波器性能的影响。

二.实验原理与方法

(一)FIR 滤波器的设计

在前面的实验中,我们介绍了IIR 滤波器的设计方法并实践了其中的双线性变换法,IIR 具有许多诱人的特性;但如此同时,也具有一些缺点。例如:若想利用快速傅立叶变换技术进行快速卷积实现滤波器,则要求单位脉冲响应是有限长的。此外,IIR 滤波器的优异幅度响应,一般是以相位的非线性为代价的,非线性相位会引起频率色散。FIR 滤波器具有严格的相位特性,这对于语音信号处理和数据传输是很重要的。目前FIR 滤波器的设计方法主要有三种:窗函数法、频率取样法和切比雪夫等波纹逼近的最优化设计方法。常用的是窗函数法和切比雪夫等波纹逼近的最优化设计方法。本实验中的窗函数法比较简单,可应用现成的窗函数公式,在技术指标要求不高的时候是比较灵活方便的。它是从时域出发,用一个窗函数截取理想的)(n h d 得到)(n h ,以有限长序列)(n h 近似理想的)(n h d ;如果从频域出发,用理想的)(ω

j d e

H 在单位圆上等角度取样得到)(k H ,根据)

(k H 得到)(z H 将逼近理想的)(z H d ,这就是频率取样法。 (二)窗函数设计法

同其它的数字滤波器的设计方法一样,用窗函数设计滤波器也是首先要对滤波器提出性能指标。一般是给定一个理想的频率响应)(ω

j d e

H ,使所设计的FIR 滤波器的频率响应)(ωj e H 去逼近

所要求的理想的滤波器的响应

)(ω

j d e H 。窗函数法设计的任务在于寻找一个可实现(有限长单位脉冲响应)的传递函数n

j N n j e n h e H ωω

--=∑=10

)()(去逼近)(ω

j d e

H 。一个理想的频率响应)(ωj d e H 的傅立

叶反变换

ω

π

ωπ

ωd e e H n h n j j d d ?

=

20

)(21)(

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

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

由此可见,窗函数的形状就决定了滤波器的性质。例如:窗函数的主瓣宽度决定了滤波器的过渡带宽;窗函数的旁瓣大小决定了滤波器的阻带衰减。 1、几种常见的窗函数:

(1)矩形窗(Rectangle Window )

调用格式:w=boxcar(n),根据长度n 产生一个矩形窗w 。 (2)三角窗(Triangular Window )

调用格式:w=triang(n) ,根据长度n 产生一个三角窗w 。 (3)汉宁窗(Hanning Window )

调用格式:w=hanning(n) ,根据长度n 产生一个汉宁窗w 。 (4)海明窗(Hamming Window )

调用格式:w=hamming(n) ,根据长度n 产生一个海明窗w 。 (5)布拉克曼窗(Blackman Window )

调用格式:w=blackman(n) ,根据长度n 产生一个布拉克曼窗w 。 (6)恺撒窗(Kaiser Window )

调用格式:w=kaiser(n,beta) ,根据长度n 和影响窗函数旁瓣的β参数产生一个恺撒窗w 。 2、基于窗函数的FIR 滤波器设计

利用MATLAB 提供的函数firl 来实现。

调用格式:firl (n,Wn,?ftype?,Window),n 为阶数、Wn 是截止频率(如果输入是形如[W1W2]的矢量时,本函数将设计带通滤波器,其通带为W1<ω

例1:设计一个长度为8 的线性相位FIR 滤波器。其理想幅频特性满足:

??

?≤≤=esle e H j d 04.001)(π

ωω

Window=boxcar(8); %根据长度为8 的矩形窗Window

b=fir1(7,0.4,Window); freqz(b,1);

Window=blackman(8); %根据长度为8 的布拉克曼窗Window

b=fir1(7,0.4,Window); freqz(b,1);

例2:设计线性相位带通滤波器,设计指标:长度N=16,上下边带截止频率分别为W1= 0.3π,w2=0.5π。

Window=blackman(16);b=fir1(15,[0.3 0.5],Window); freqz(b,1);

三.实验内容及步骤

设计指标为ωp=0.2π,Rp=0.25dB,ωs=0.3π,As=50dB 的低通数字FIR 滤波器。

附程序:

wp=0.2*pi; ws=0.3*pi; wc=(ws+wp)/2; tr_width=ws-wp;

M=ceil(6.6*pi/tr_width)+1; N=[0:1:M-1];

alpha=(M-1)/2;

n=[0:1:(M-1)];

%n=[0,(M-1)];

m=n-alpha + eps;

hd=sin(wc*m)./(pi*m);

w_ham=(boxcar(M))';

h=hd.*w_ham;

[H,w]=freqz(h,[1],1000,'whole');

H=(H(1:501))';

w=(w(1:501))';

mag=abs(H);

db=20*log10((mag+eps)/max(mag));

pha=angle(H);

grd=grpdelay(h,[1],w);

delta_w=2*pi/1000;

Rp=-(min(db(1:1:wp/delta_w+1)));

As=-round(max(db(ws/delta_w+1:1:501)));

Close all;

subplot(2,2,1);stem(hd);title('理想冲击响应')

axis([0 M-1 -0.1 0.3]);ylabel('hd[n]'); subplot(2,2,2);stem(w_ham);title('汉明窗'); axis([0 M-1 0 1.1]);ylabel('w[n]');

subplot(2,2,3);stem(h);title('实际冲击响应'); axis([0 M-1 -0.1 0.3]);ylabel('h[n]');

subplot(2,2,4);plot(w/pi,db); title('衰减幅度'); axis([0 1 -100 10]);ylabel('Decibles');

附录MATLAB在信号处理中的应用简介

第1章MATLAB的信号表示和处理

一.MATLAB绘图简介

MATLAB提供了强大的绘图功能,有独立的图形窗口,在执行画图命令时自动新建一个图形窗口。图形是由一系列点(离散的)构成,因此,调用绘图函数时,必须已经生成了一系列的点。1、基本绘图函数plot与stem函数

plot是绘制一维曲线的基本函数,但在使用此函数之前,我们需先定义曲线上每一点的x及y 座标,这两个坐标都是以数组形式出现的。下例可画出一条正弦曲线:

close all; x=linspace(0, 2*pi, 100); % 100个点的x座标

y=sin(x); % 对应的y座标

plot(x,y);

%采用hold on语句也可以实现在同一窗口画多个图

plot(t,sin(t));

hold on;

plot(t,cos(t)); %上3语句在同一窗口画sin(t)和cos(t)的图形

plot(x, sin(x), x, cos(x));

若要改变颜色,在座标对后面加上相关字串即可:

plot(x, sin(x), 'c', x, cos(x), 'g');

若要同时改变颜色及图线型态(Line style),也是在座标对后面加上相关字串即可:

plot(x, sin(x), 'co', x, cos(x), 'g*');

2、绘图坐标轴范围axis函数

图形完成后,我们可用axis([xmin,xmax,ymin,ymax])函数来调整图轴的范围:

axis([0, 6, -1.2, 1.2]);

3、图形注解与处理函数

xlabel('Input Value'); % x轴注解

ylabel('Function Value'); % y轴注解

title('Two Trigonometric Functions'); % 图形标题

legend('y = sin(x)','y = cos(x)'); % 图形注解

grid on; % 显示格线

4.Subplot函数,它可以同时画出数个小图形于同一个视窗之中:

subplot(2,2,1); plot(x, sin(x)); subplot(2,2,2); plot(x, cos(x));

subplot(2,2,3); plot(x, sinh(x)); subplot(2,2,4); plot(x, cosh(x));

MATLAB还有其他各种二维绘图函数,以适合不同的应用。

二、MATLAB信号与系统表示

例1-1:用MATLAB计算序列{-2 0 1 –1 3}和序列{1 2 0 -1}的离散卷积。

解MATLAB程序如下:

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('幅度');

图1.1给出了卷积结果的图形,求得的结果存放在数组c中为:{-2 -4 1 3 1 5 1 -3}。

例1-2 :用MATLAB计算差分方程

当输入序列为时的输出结果。

解MATLAB程序如下:

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('幅度');

图 1.2 给出了该差分方程的前41个样点的输出,即该系统的单位脉冲响应。

例1-3: 用MATLAB 计算例1-2差分方程

所对应的系统函数的DTFT 。

解 例1-2差分方程所对应的系统函数为:

123

123

0.80.440.360.02()10.70.450.6z z z H z z z z -------++=

+--

其DTFT 为

23230.80.440.360.02()10.70.450.6j j j j j j j e e e H e

e e e ωωωω

ωωω--------++=

+--

用MATLAB 计算的程序如下:

k=256;

num=[0.8 -0.44 0.36 0.02]; den=[1 0.7 -0.45 -0.6]; w=0:pi/k:pi; h=freqz(num,den,w); subplot(2,2,1); plot(w/pi,real(h));grid; title('实部');

xlabel('\omega/\pi');ylabel('幅度'); subplot(2,2,2);plot(w/pi,imag(h));grid;

title('虚部');

xlabel('\omega/\pi');ylabel('Amplitude') subplot(2,2,3); plot(w/pi,abs(h));grid; title('幅度谱');

xlabel('\omega/\pi');ylabel('幅值'); subplot(2,2,4); plot(w/pi,angle(h));grid; title('相位谱')

xlabel('\omega/\pi');ylabel('弧度');

第2章离散傅里叶变换及其快速算法

例2-1对连续的单一频率周期信号按采样频率采样,截取长度N分别选N =20和N =16,观察其DFT结果的幅度谱。

解此时离散序列,即k=8。用MATLAB计算并作图,函数fft用于计算离散傅里叶变换DFT,程序如下:

k=8;

n1=[0:1:19];

xa1=sin(2*pi*n1/k); subplot(2,2,1);

plot(n1,xa1);

xlabel('t/T');ylabel('x(n)'); xk1=fft(xa1);xk1=abs(xk1); subplot(2,2,2);

stem(n1,xk1);

xlabel('k');ylabel('X(k)'); n2=[0:1:15];

xa2=sin(2*pi*n2/k); subplot(2,2,3);

plot(n2,xa2);

xlabel('t/T');ylabel('x(n)'); xk2=fft(xa2);xk2=abs(xk2); subplot(2,2,4);

stem(n2,xk2);

xlabel('k');ylabel('X(k)');

数字信号处理基础实验指导书

《数字信号处理》实验指导书 光电工程学院二○○九年十月

实验一离散时间信号分析 一、实验目的 1.掌握各种常用的序列,理解其数学表达式和波形表示。 2.掌握在计算机中生成及绘制数字信号波形的方法。 3.掌握序列的相加、相乘、移位、反转等基本运算及计算机实现与作用。 4.掌握线性卷积软件实现的方法。 5.掌握计算机的使用方法和常用系统软件及应用软件的使用。 6.通过编程,上机调试程序,进一步增强使用计算机解决问题的能力。 二、实验原理 1.序列的基本概念 离散时间信号在数学上可用时间序列来表示,其中代表序列的第n个数字,n代表时间的序列,n的取值范围为的整数,n取其它值没有意义。离散时间信号可以是由模拟信号通过采样得到,例如对模拟信号进行等间隔采样,采样间隔为T,得到一个有序的数字序列就是离散时间信号,简称序列。 2.常用序列 常用序列有:单位脉冲序列(单位抽样)、单位阶跃序列、矩形序列、实指数序列、复指数序列、正弦型序列等。 3.序列的基本运算 序列的运算包括移位、反转、和、积、标乘、累加、差分运算等。 4.序列的卷积运算 上式的运算关系称为卷积运算,式中代表两个序列卷积运算。两个序列的卷积是一个序列与另一个序列反褶后逐次移位乘积之和,故称为离散卷积,也称两序列的线性卷积。其计算的过程包括以下4个步骤。 (1)反褶:先将和的变量换成,变成和,再将以纵轴为对称轴反褶成。 (2)移位:将移位,得。当为正数时,右移位;当为负数时,左

移位。 (3)相乘:将和的对应点值相乘。 (4)求和:将以上所有对应点的乘积累加起来,即得。 三、主要实验仪器及材料 微型计算机、Matlab软件6.5或更高版本。 四、实验内容 1.知识准备 认真复习以上基础理论,理解本实验所用到的实验原理。 2.离散时间信号(序列)的产生 利用MATLAB或C语言编程产生和绘制下列有限长序列: (1)单位脉冲序列 (2)单位阶跃序列 (3)矩形序列 (4)正弦型序列 (5)任意序列 3.序列的运算 利用MATLAB编程完成上述两序列的移位、反转、加法、乘法等运算,并绘制运算后序列的波形。 4.卷积运算 利用MATLAB编制一个计算两个序列线性卷积的通用程序,计算上述两序列,并绘制卷积后序列的波形。 5.上机调试并打印或记录实验结果。 6.完成实验报告。 五、实验报告要求 1. 简述实验原理及目的。 2. 给出上述序列的实验结果。 3. 列出计算卷积的公式,画出程序框图,并列出实验程序清单 (可略)(包括必要的程序说明)。 4. 记录调试运行情况及所遇问题的解决方法。 5. 给出实验结果,并对结果做出分析。 6. 简要回答思考题。 1 如何产生方波信号序列和锯齿波信号序列? 2 实验中所产生的正弦序列的频率是多少?是否是周期序列?

数字信号处理实验一

实验一 离散时间信号分析 班级 信息131班 学号 201312030103 姓名 陈娇 日期 一、实验目的 掌握两个序列的相加、相乘、移位、反褶、卷积等基本运算。 二、实验原理 1.序列的基本概念 离散时间信号在数学上可用时间序列)}({n x 来表示,其中)(n x 代表序列的第n 个数字,n 代表时间的序列,n 的取值范围为+∞<<∞-n 的整数,n 取其它值)(n x 没有意义。离散时间信号可以是由模拟信号通过采样得到,例如对模拟信号)(t x a 进行等间隔采样,采样间隔为T ,得到)}({nT x a 一个有序的数字序列就是离散时间信号,简称序列。 2.常用序列 常用序列有:单位脉冲序列(单位抽样)) (n δ、单位阶跃序列)(n u 、矩形序列)(n R N 、实指数序列、复指数序列、正弦型序列等。 3.序列的基本运算 序列的运算包括移位、反褶、和、积、标乘、累加、差分运算等。 4.序列的卷积运算 ∑∞ -∞==-= m n h n x m n h m x n y )(*)()()()( 上式的运算关系称为卷积运算,式中代表两个序列卷积运算。两个序列的卷积是一个序列与另一个序列反褶后逐次移位乘积之和,故称为离散卷积,也称两序列的线性卷积。其计算的过程包括以下4个步骤。 (1)反褶:先将)(n x 和)(n h 的变量n 换成m ,变成)(m x 和)(m h ,再将)(m h 以纵轴为对称轴反褶成)(m h -。

(2)移位:将)(m h -移位n ,得)(m n h -。当n 为正数时,右移n 位;当n 为负数时,左移n 位。 (3)相乘:将)(m n h -和)(m x 的对应点值相乘。 (4)求和:将以上所有对应点的乘积累加起来,即得)(n y 。 三、主要实验仪器及材料 微型计算机、Matlab6.5 教学版、TC 编程环境。 四、实验内容 (1)用Matlab 或C 语言编制两个序列的相加、相乘、移位、反褶、卷积等的程序; (2)画出两个序列运算以后的图形; (3)对结果进行分析; (4)完成实验报告。 五、实验结果 六、实验总结

数字信号处理期末重点复习资料

1、对模拟信号(一维信号,是时间的函数)进行采样后,就是 离散 信号,再进行幅度量化后就是 数字信号。 2、若线性时不变系统是有因果性,则该系统的单位取样响应序列h(n)应满足的充分必要条件是 当n<0时,h(n)=0 。 3、序列)(n x 的N 点DFT 是)(n x 的Z 变换在 单位圆 的N 点等间隔采样。 4、)()(5241n R x n R x ==,只有当循环卷积长度L ≥8 时,二者的循环卷积等于线性 卷积。 5、已知系统的单位抽样响应为h(n),则系统稳定的充要条件是 ()n h n ∞ =-∞ <∞∑ 6、用来计算N =16点DFT ,直接计算需要(N 2)16*16=256_次复乘法,采用基2FFT 算法,需要__(N/2 )×log 2N =8×4=32 次复乘法。 7、无限长单位冲激响应(IIR )滤波器的基本结构有直接Ⅰ型,直接Ⅱ型,_级联型_和 并联型_四种。 8、IIR 系统的系统函数为)(z H ,分别用直接型,级联型,并联型结构实现,其中 并联型的运算速度最高。 9、数字信号处理的三种基本运算是:延时、乘法、加法 10、两个有限长序列 和 长度分别是 和 ,在做线性卷积后结果长度是 __N 1+N 2-1_。 11、N=2M 点基2FFT ,共有 M 列蝶形,每列有N/2 个蝶形。 12、线性相位FIR 滤波器的零点分布特点是 互为倒数的共轭对 13、数字信号处理的三种基本运算是: 延时、乘法、加法 14、在利用窗函数法设计FIR 滤波器时,窗函数的窗谱性能指标中最重要的是___过渡带宽___与__阻带最小衰减__。 16、_脉冲响应不变法_设计IIR 滤波器不会产生畸变。 17、用窗口法设计FIR 滤波器时影响滤波器幅频特性质量的主要原因是主瓣使数字滤波器存在过渡带,旁瓣使数字滤波器存在波动,减少阻带衰减。 18、单位脉冲响应分别为 和 的两线性系统相串联,其等效系统函数时域及频域表 达式分别是h(n)=h1(n)*h2(n), =H1(ej ω)×H2(ej ω)。 19、稳定系统的系统函数H(z)的收敛域包括 单位圆 。 20、对于M 点的有限长序列x(n),频域采样不失真的条件是 频域采样点数N 要大于时域采样点数M 。

数字信号处理实验

实验一 离散傅里叶变换(DFT )对确定信号进行谱分析 一.实验目的 1.加深对DFT 算法原理和基本性质的理解。 2.熟悉DFT 算法和原理的编程方法。 3.学习用DFT 对信号进行谱分析的方法,了解可能出现的误差及其原因,以便在实际中正确利用。 二.实验原理 一个连续信号)(t x a 的频谱可以用其傅里叶变换表示,即 dt e t x j X t j a a Ω-∞ ∞ -? = Ω)()( 若对)(t x a 进行理想采样可得采样序列 )(|)()(nT x t x n x a nT t a === 对)(n x 进行DTFT ,可得其频谱为: ∑∞ -∞ =-= n n j j e n x e X ωω )()( 其中数字频率ω与模拟频率Ω的关系为: s f T Ω = Ω=ω )(n x 的DFT 为∑∞ -∞ =-= n nk N j e n x k X π 2)()( 若)(t x a 是限带信号,且在满足采样定理的条件下,)(ω j e X 是)(Ωj X a 的周期延拓, )(k X 是)(ωj e X 在单位圆上的等间隔采样值,即k N j e X k X πωω2| )()(= =。 为在计算机上分析计算方便,常用)(k X 来近似)(ω j e X ,这样对于长度为N 的有限 长序列(无限长序列也可用有限长序列来逼近),便可通过DFT 求其离散频谱。 三.实验内容 1.用DFT 对下列序列进行谱分析。 (1))()04.0sin(3)(100n R n n x π=

1 (2)]0,0,0,0,0,0,0,0,1,1,1,1[)(=n x 2.为了说明高密度频谱和高分辨率频谱之间的区别,考察序列 )52.0cos()48.0cos()(n n n x ππ+= (1)当0≤n ≤10时,确定并画出x(n)的离散傅里叶变换。 (2)当0≤n ≤100时,确定并画出x(n)的离散傅里叶变换。 四.实验结果 1. (1) (2)

数字信号处理实验讲义

实验一 序列的产生及绘图 一、实验目的 1.熟悉信号处理软件MATLAB 的使用。 2.离散信号的基本运算实现。 3.了解基本序列及复杂序列的产生方法。 4.运用卷积方法观察系统的时域特性。 5.掌握线性时不变系统的频域表示方法。 二、实验内容 1.熟悉扩展函数 2.运行例题程序 3.编程实现下列内容 (1)利用扩展函数产生序列并画图 (a) )4()2(*2)(--+=n n n x δδ -5<=n<=5 (b) )04.0cos()(n n x π=和)(2.0)04.0cos()(n w n n y +=π 0<=n<=50 w(n)为白噪声 函数为 w=randn(size(n)) (2)设线性移不变系统的抽样响应为 )()9.0()(n u n h n = 输入序列为 )10()()(--=n u n u n x 求系统输出 y(n)并画图 提示: 输出为输入和抽样响应的卷积 三、实验报告要求 1.记录例题程序的实验结果、图形。 2.写出自己编写的程序并记录结果、图形。 注:以下程序中所有以 % 开头的行均为注释, 所有汉字均为注释,%后的内容不用写入程序 %如果要了解哪个函数的应用方法请用help 命令 如help zreos %本软件中 * 表示乘法, 卷积用函数 conv 或修改后的卷积 conv_m %以下是7个扩展函数 %扩展函数1~7的用法和该软件自带函数用法一致,即在调用时要将实参代入 %例:应用扩展函数3需要输入x1(n),x2(n)的值。 %在Command Window (命令窗口)中输入 % n1=1:5; % n2=2:6; % x1=[1 3 5 7 9]; % x2=[2 4 6 8 10]; % [y,n]=sigadd(x1,n1,x2,n2) 即可得两序列相加的结果 %7个扩展函数要分别存到不同的文件中,并且文件名要和该扩展函数的函数名一致 %如产生单位取样序列的函数所存文件的文件名必须为 impseq %1.单位取样序列 x(n)=delta(n-n0) 要求n1<=n0<=n2 function[x,n]=impseq(n0,n1,n2) n=[n1:n2]; x=[(n-n0)==0]; %2.单位阶跃序列 x(n)=u(n-n0) 要求n1<=n0<=n2 function[x,n]=stepseq(n0,n1,n2) n=[n1:n2]; x=[(n-n0)>=0]; %3.信号加 y(n)=x1(n)+x2(n) %find 函数:找出非零元素的索引号 %x1:第一个序列的值,n1:序列x1的索引号 %x2:第二个序列的值,n2:序列x2的索引号 function[y,n]=sigadd(x1,n1,x2,n2) n=min(min(n1),min(n2)):max(max(n1),max(n2));

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

数字信号处理实验答案 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),绘出四个周期。

数字信号处理实验三

实验三:离散LSI 系统的频域分析 一、实验内容 2、求以下各序列的z 变换: 12030() ()sin() ()sin()n an x n na x n n x n e n ωω-=== 程序清单如下: syms w0 n z a; x1=n*a^n;X1=ztrans(x1) x2=sin(w0*n);X2=ztrans(x2) x3= exp(-a*n)*sin(w0*n);X3=ztrans(x3) 程序运行结果如下: X1 =z/(a*(z/a - 1)^2) X2 =(z*sin(w0))/(z^2 - 2*cos(w0)*z + 1) X3 =(z*exp(a)*sin(w0))/(exp(2*a)*z^2 - 2*exp(a)*cos(w0)*z + 1) 3、求下列函数的逆z 变换 0 312342 1 1() () () ()() 1j z z z z X z X z X z X z z a z a z e z ω---= = = = ---- 程序清单如下: syms w0 n z a; X1=z/(z-a);x1=iztrans(X1) X2= z/(a-z)^2;x2=iztrans(X2) X3=z/ z-exp(j*w0);x3=iztrans(X3) X4=(1-z^-3)/(1-z^-1);x4=iztrans(X4) 程序运行结果如下: x1 =a^n x2 =n*a^n/a 课程名称 数字信号 实验成绩 指导教师 实 验 报 告 院系 信息工程学院 班级 学号 姓名 日期

x3 =charfcn[0](n)-iztrans(exp(i*w0),w0,n) x4 =charfcn[2](n)+charfcn[1](n)+charfcn[0](n) 4、求一下系统函数所描述的离散系统的零极点分布图,并判断系统的稳定性 (1) (0.3)()(1)(1) z z H z z j z j -= +-++ z1=[0,0.3]';p1=[-1+j,-1-j]';k=1; [b1,a1]=zp2tf(z1,p1,k); subplot(1,2,1);zplane(z1,p1); title('极点在单位圆外); subplot(1,2,2);impz(b1,a1,20); 由图可见:当极点位于单位圆内,系统的单位序列响应随着频率的增大而收敛;当极点位于单位圆上,系统的单位序列响应为等幅振荡;当极点位于单位圆外,系统的单位序列响应随着频率的增大而发散。由此可知系统为不稳定系统。 -1 -0.5 00.51 -2 -1.5-1-0.500.511.5 2Real Part I m a g i n a r y P a r t 极点在单位圆外 n (samples) A m p l i t u d e Impulse Response

数字信号处理自编实验讲义

贵州师范大学 数字信号处理实验讲义 陈世国编

实验一 离散时间信号的产生及信号的卷积和运算 一、实验室名称:数字信号处理实验室 二、实验项目名称:离散时间信号的产生及信号的卷积和运算 三、实验原理: (一)常见的离散时间信号: 1. 单位抽样序列,或称为离散时间冲激,单位冲激: ???=0 1)(n δ ≠=n n 如果)(n δ在时间轴上延迟了k 个单位,得到)(k n -δ即: ? ??=-01)(k n δ 0≠=n k n 2.单位阶跃序列 ?? ?=0 1)(n u 00<≥n n 如果)(n u 在时间轴上延迟了k 个单位,得到)(k n u -即: ? ??=01 )(n u k n k n <≥ 3.正弦序列 0()cos()x n A n ω?=+ 这里, ,,0ωA 和φ都是实数,它们分别称为正弦信号()x n 的振幅,角频率和初始相位。 πω200=f 为频率。 4.复正弦序列 n j e n x ω=)( 5.实指数序列 n A n x α=)( (二)、信号的卷积和运算

)(*)()()()(n h n x m n h m x n y m =-= ∑∞ -∞ = (三)MATLAB 编程介绍: MATLAB 是一套功能强大,但使用方便的工程计算及数据处理软件。其编程风格很简洁,没有太多的语法限制,所以使用起来非常方便,尤其对初学者来说,可以避免去阅读大量的指令系统,以便很快上手编程。值得注意得就是,MATLAB 中把所有参与处理的数据都视为矩阵,并且其函数众多,希望同学注意查看帮助,经过一段时间的训练就会慢慢熟练使用本软件了。关于更多的MATLAB 介绍,请大家查阅MATLAB 有关书籍及MATLAB 软件中的帮助。 本实验中使用到一些MATLAB 的基本函数,其中包括对矩阵操作的函数ones( )、pi 、rand( )、randn( )、zeros( ),基本函数 cos( ), exp( ), imag( ), real( ),数据分析函数sum( ),二维图形处理函数axis 、grid 、legend 、plot 、stem 、title 、xlabel 、ylabel 及通用功能图形函数clf 、subplot 等。 1. 单位脉冲序列 长度为N 的单位脉冲序列)(n δ可以通过下面的MATLAB 命令获得: n=-(N-1):N-1 delt=[)1,1(-N zeros 1 )1,1(-N zeros ]; stem(n,delt) 延迟M 个采样点的长度为N 的单位脉冲序列)(M n -δ(M

实验一 基于Matlab的数字信号处理基本

实验一 基于Matlab 的数字信号处理基本操作 一、 实验目的:学会运用MA TLAB 表示的常用离散时间信号;学会运用MA TLAB 实现离 散时间信号的基本运算。 二、 实验仪器:电脑一台,MATLAB6.5或更高级版本软件一套。 三、 实验内容: (一) 离散时间信号在MATLAB 中的表示 离散时间信号是指在离散时刻才有定义的信号,简称离散信号,或者序列。离散序列通常用)(n x 来表示,自变量必须是整数。 离散时间信号的波形绘制在MATLAB 中一般用stem 函数。stem 函数的基本用法和plot 函数一样,它绘制的波形图的每个样本点上有一个小圆圈,默认是空心的。如果要实心,需使用参数“fill ”、“filled ”,或者参数“.”。由于MATLAB 中矩阵元素的个数有限,所以MA TLAB 只能表示一定时间范围内有限长度的序列;而对于无限序列,也只能在一定时间范围内表示出来。类似于连续时间信号,离散时间信号也有一些典型的离散时间信号。 1. 单位取样序列 单位取样序列)(n δ,也称为单位冲激序列,定义为 ) 0() 0(0 1)(≠=?? ?=n n n δ 要注意,单位冲激序列不是单位冲激函数的简单离散抽样,它在n =0处是取确定的值1。在MATLAB 中,冲激序列可以通过编写以下的impDT .m 文件来实现,即 function y=impDT(n) y=(n==0); %当参数为0时冲激为1,否则为0 调用该函数时n 必须为整数或整数向量。 【实例1-1】 利用MATLAB 的impDT 函数绘出单位冲激序列的波形图。 解:MATLAB 源程序为 >>n=-3:3; >>x=impDT(n); >>stem(n,x,'fill'),xlabel('n'),grid on >>title('单位冲激序列') >>axis([-3 3 -0.1 1.1]) 程序运行结果如图1-1所示。 图1-1 单位冲激序列

数字信号处理实验4

数字信号处理实验四 第一题结果: (1)没有增加过渡点 源码如下: N = 15; H = [1 1 1 0.5 zeros(1,7) 0.5 1 1 1]; %确定抽样点的幅度大小 %H(3,13) = 0.75;H(5,11) = 0.25; %设置过渡点 k = 0:N-1; A = exp(-j*pi*k*(N-1)/N); %抽样点相位大小 HK = H.*A; %求抽样点的H(k) hn = ifft(HK,N); %求出FIR的单位冲激响应h(n) freqz(hn,1,256); %画出幅频相频曲线figure(2); stem(real(hn),'.'); %绘制单位冲激响应的实部 line([0,35],[0,0]);xlabel('n');ylabel('Real(h(n))'); 单位脉冲响应曲线 幅频和相频特性曲线

(2)增加过渡点 源码如下: N = 15; H = [1 1 1 0.5 zeros(1,7) 0.5 1 1 1]; %确定抽样点的幅度大小 H(3) = 0.75;H(13) = 0.75;H(5) = 0.25;H(11) = 0.25; %设置过渡点 k = 0:N-1; A = exp(-j*pi*k*(N-1)/N); %抽样点相位大小 HK = H.*A; %求抽样点的H(k) hn = ifft(HK,N); %求出FIR的单位冲激响应h(n) freqz(hn,1,256); %画出幅频相频曲线figure(2); stem(real(hn),'.'); %绘制单位冲激响应的实部 line([0,35],[0,0]);xlabel('n');ylabel('Real(h(n))'); 单位脉冲响应曲线 幅频和相频特性曲线 第二题结果:

副本-数字信号处理实验讲义_2013(1)

数字信号处理实验讲义 电气与自动化工程学院 DSP实验室 2013年1月

前言 (2) 实验一MATLAB简介 (3) 实验二用FFT实现信号的谱分析 (5) 实验三IIR数字巴特沃思滤波器的设计 (9) 实验四FIR数字滤波器的设计 (10) 存在的问题: 1. Matlab 不熟悉,很多同学都是第一次使用,软件一定要自己多动手,程序要自己编写,学会找错。 2. 程序的路径保存问题:最好不要出现在中文目录下。M文件首字母不要为数字或者下划线,或者其它专用的英文名称,如sin 3. 函数的编写问题和调用问题:函数只是表达一种自变量和应变量间的关系,不要在函数中定义x的取值。在同一个文件夹底下调用,弄清楚函数和变量(向量)的不同 4. 括号的使用,运算中都使用小括号,不要使用大括号或者中括号 5. 向量之间的运算要用点乘,分清是否使用向量函数还是标量函数。 6. 运行下一个程序前,要对前一个程序所遗留下来的变量进行清空。

前言 信号处理与计算机的应用紧密结合。目前广泛应用的MA TLAB工具软件包,以其强大的分析、开发及扩展功能为信号处理提供了强有力的支持。在数字信号处理实验中,我们主要应用MA TLAB的信号处理工具箱及其灵活、便捷的编程工具,通过上机实验,帮助学生学习、掌握和应用MA TLAB软件对信号处理所学的内容加以分析、计算,加深对信号处理基本算法的理解。

实验一MATLAB简介 实验目的 1.熟悉MATLAB软件的使用方法; 2.MA TLAB的绘图功能; 3.用MA TLAB语句实现信号的描述及变换。 实验原理 1.在MA TLAB下编辑和运行程序 在MA TLAB中,对于简单问题可以在命令窗(command windows)直接输入命令,得到结果;对于比较复杂的问题则可以将多个命令放在一个脚本文件中,这个脚本文件是以m 为扩展名的,所以称之为M文件。用M文件进行程序的编辑和运行步骤如下:(1)打开MA TLAB,进入其基本界面; (2)在菜单栏的File项中选择新建一个M文件; (3)在M文件编辑窗口编写程序; (4)完成之后,可以在编辑窗口利用Debug工具调试运行程序,在命令窗口查看输出结果;也可以将此文件保存在某个目录中,在MATLAB的基本窗口中的File项中选择Run The Script,然后选择你所要运行的脚本文件及其路径,即可得出结果;也可以将此文件保存在当前目录中,在MA TLAB命令窗口,“>>”提示符后直接输入文件名。 2.MA TLAB的绘图功能 plot(x,y) 基本绘图函数,绘制x和y之间的坐标图。 figure(n ) 开设一个图形窗口n subplot(m,n,N) 分割图形窗口的MATLAB函数,用于在一个窗口中显示多个图形,将图形窗口分为m行n列,在第N个窗口内绘制图形。 axis([a0,b0,a1,b1] ) 调整坐标轴状态 title(‘’) 给图形加题注 xlabel (‘‘) 给x轴加标注 ylabel (‘‘) 给y轴加标注 grid 给图形加网格线 3.信号描述及变换 信号描述及变换包括连续时间信号和离散时间信号内容,详细内容请见课本第1章、第2章。

数字信号处理基础实验报告_

本科生实验报告 实验课程数字信号处理基础 学院名称地球物理学院 专业名称地球物理学 学生姓名 学生学号 指导教师王山山 实验地点5417 实验成绩 二〇一四年十一月二〇一四年十二月

填写说明 1、适用于本科生所有的实验报告(印制实验报告册除外); 2、专业填写为专业全称,有专业方向的用小括号标明; 3、格式要求: ①用A4纸双面打印(封面双面打印)或在A4大小纸上用蓝黑色水笔书写。 ②打印排版:正文用宋体小四号,1.5倍行距,页边距采取默认形式(上下2.54cm, 左右2.54cm,页眉1.5cm,页脚1.75cm)。字符间距为默认值(缩放100%,间距:标准);页码用小五号字底端居中。 ③具体要求: 题目(二号黑体居中); 摘要(“摘要”二字用小二号黑体居中,隔行书写摘要的文字部分,小4号宋体); 关键词(隔行顶格书写“关键词”三字,提炼3-5个关键词,用分号隔开,小4号黑体); 正文部分采用三级标题; 第1章××(小二号黑体居中,段前0.5行) 1.1 ×××××小三号黑体×××××(段前、段后0.5行) 1.1.1小四号黑体(段前、段后0.5行) 参考文献(黑体小二号居中,段前0.5行),参考文献用五号宋体,参照《参考文献著录规则(GB/T 7714-2005)》。

实验一生成离散信号并计算其振幅谱 并将信号进行奇偶分解 一、实验原理 单位脉冲响应h(t)=exp(-a*t*t)*sin(2*3.14*f*t)进行离散抽样,分别得到t=0.002s,0.009s,0.011s采样的结果。用Excel软件绘图显示计算结果。并将信号进行奇偶分解,分别得到奇对称信号h(n)-h(-n)与偶对称信号h(n)+h(-n)。用Excel 软件绘图显示计算结果。 二、实验程序代码 (1)离散抽样 double a,t; a=2*f*f*log(m); int i; for(i=0;i

数字信号处理实验指导书

本科数字信号处理实验指导书 基于EXP-III(TMS320F2812)实验教学平台 编写:姚晓通 兰州交通大学电工电子实验中心

第一章实验系统介绍 一、系统概述 EL-DSP-EXP III 教学系统是一种综合的教学实验系统,采用模块化分离式结构,使用灵活,方便用户二次开发。通过“E_LAB”和“TECH_V”扩展总线,可以扩展声、光、机、电等不同领域的控制对象。客户可根据自己的需求选用不同类型的CPU适配板,我公司所有CPU适配板是完全兼容的,用户在不需要改变任何配置情况下,更换CPU 适配板即可做TI公司的不同类型的DSP的相关试验。现已开发的CPU板类型有’C5000系列的:5402、5409、5410、5416,’C2000系列的2407、2812。 注:我公司将陆续推出VC5509、ARM系列CPU板,最新产品信息请向总公司或各地分公司咨询。 系统组成框图

实验箱 仿真器

第二章算法实验指导 实验一快速傅立叶变换(FFT)算法实验 一.实验目的 1.加深对DFT算法原理和基本性质的理解; 2.熟悉FFT算法原理和FFT子程序的应用; 3.学习用FFT对连续信号和时域信号进行谱分析的方法,了解可能出现的分析误差及其原因,以便在实际中正确应用FFT。 二.实验设备 计算机,CCS 2.0 版软件,EXP3实验箱,DSP仿真器,导线 三.基本原理 1.离散傅立叶变换DFT的定义:将时域的采样变换成频域的周期性离散函数,频域的采样也可以变换成时域的周期性离散函数,这样的变换称为离散傅立叶变换,简称DFT。 2.FFT是DFT的一种快速算法,将DFT的N2步运算减少为(N/2)log2N步,极大的提高了运算的速度。 3.旋转因子的变化规律。 4.蝶形运算规律。 5.基2FFT算法。 四.实验步骤 1.复习DFT的定义、性质和用DFT作谱分析的有关内容; 2.复习FFT算法原理与编程思想,并对照DIT-FFT运算流程图和程序框图,了解本实验提供的FFT子程序; 3.阅读本实验所提供的样例子程序; 4.运行CCS软件,对样例程序进行跟踪,分析结果;记录必要的参数。 5.填写实验报告。 6.提供样例程序实验操作说明 A.实验前准备 用导线连接“模拟信号源单元”中2号孔接口“信号源1”和“A/D单元”的2号孔接口“ADIN2”;信号源1选择正弦波,并适当调节波形的频率和幅值,“A/D单元”JP3中的4打到“ON”。S23全部置OFF; B.实验

数字信号处理基础实验报告 (2)

成都理工大学 《信号处理基础》实验 开设时间:2013—2014学年第2学期

题目1:信号的产生和显示 一、实验目的: 认识基本信号 通过使用MATLAB 设计简单程序, 掌握对MATLAB 的基本使用方法 二、实验原理: 找出下列表达式的信号与:正弦信号、最小相位信号、最大相位信号、零相位信号的对应关系。 1、sin60t 2、e-60t sin60t 3、(1- e-60t)sin60t 4、e60t sin60t 三、实验内容: 产生上述信号的信号并显示 (1)t=[-pi/30:0.001:pi/30]; f=sin(60*t); plot(t,f) 产生图形如下:

(2)t=[0:0.001:pi/30]; f=exp(-60*t).*sin(60*t); plot(t,f) 产生图形如下:

(3)t=[-5*pi/30:0.001:5*pi/30]; f=(1-exp(-60*t)).*sin(60*t); plot(t,f) 产生图形如下: (4) t=[-pi/30:0.001:pi/30]; f=exp(6*t).*sin(60*t); plot(t,f) 产生如下波形:

四、实验结果与讨论: 讨论上述信号的特点 从第一个波形图可以看出,它的波形与正弦函数sin(t)的相像,只是相位上有改变,是一个正弦信号。最大相位信号的能量集中在后面,最小相位能量集中在前面,所以第二个是一个最小相位,第四个是一个最大相位信号。第三个由于波形在t>0时没有,所以是一个零相位信号。 题目2:频谱分析与显示 一、实验目的 初步认识频谱分析

数字信号处理实验资料

实验一 自适应滤波器 一、实验目的 1、掌握功率谱估计方法 2、会用matlab 对功率谱进行仿真 二、实验原理 功率谱估计方法有很多种,一般分成两大类,一类是经典谱估计;另一类是现代谱估计。经典谱估计可以分成两种,一种是BT 法,另一种是周期法;BT 法是先估计自相关函数,然后将相关函数进行傅里叶变换得到功率谱函数。相应公式如下所示: ||1 *0 1 ?()()()(11) ??()(12) N m xx n jwn BT xx m r m x n x n m N P r m e --=∞ -=-∞ =+-=-∑ ∑ 周期图法是采用功率谱的另一种定义,但与BT 法是等价的,相应的功率谱估计如下所示: 21 1? ()()01 (13)N jw jwn xx n P e x n e n N N --== ≤≤--∑ 其计算框图如下所示: ) (jw xx e ∧ 图1.1周期图法计算用功率谱框图

由于观测数据有限,所以周期图法估计分辨率低,估计误差大。针对经典谱估计的缺点,一般有三种改进方法:平均周期图法、窗函数法和修正的周期图平均法。 三、实验要求 信号是正弦波加正态零均值白噪声,信噪比为10dB,信号频率为2kHZ,取样频率为100kHZ。 四、实验程序与实验结果 (1)用周期图法进行谱估计 A、实验程序: %用周期法进行谱估计 clear all; N1=128;%数据长度 N2=256; N3=512; N4=1024; f=2;%正弦波频率,单位为kHZ fs=100;%抽样频率,单位为kHZ n1=0:N1-1; n2=0:N2-1; n3=0:N3-1; n4=0:N4-1; a=sqrt(20);%由信噪比为10dB计算正弦信号的幅度

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

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

第十章上机实验 数字信号处理是一门理论和实际密切结合的课程,为深入掌握课程内容,最好在学习理论的同时,做习题和上机实验。上机实验不仅可以帮助读者深入的理解和消化基本理论,而且能锻炼初学者的独立解决问题的能力。本章在第二版的基础上编写了六个实验,前五个实验属基础理论实验,第六个属应用综合实验。 实验一系统响应及系统稳定性。 实验二时域采样与频域采样。 实验三用FFT对信号作频谱分析。 实验四 IIR数字滤波器设计及软件实现。 实验五 FIR数字滤波器设计与软件实现 实验六应用实验——数字信号处理在双音多频拨号系统中的应用 任课教师根据教学进度,安排学生上机进行实验。建议自学的读者在学习完第一章后作实验一;在学习完第三、四章后作实验二和实验三;实验四IIR数字滤波器设计及软件实现在。学习完第六章进行;实验五在学习完第七章后进行。实验六综合实验在学习完第七章或者再后些进行;实验六为综合实验,在学习完本课程后再进行。 functiontstem(xn,yn) %时域序列绘图函数 %xn:信号数据序列,yn:绘图信号的纵坐标名称(字符串) n=0:length(xn)-1; stem(n,xn,'.');boxon xlabel('n');ylabel(yn); axis([0,n(end),min(xn),*max(xn)]) 实验一: 系统响应及系统稳定性 1.实验目的 (1)掌握求系统响应的方法。 (2)掌握时域离散系统的时域特性。 (3)分析、观察及检验系统的稳定性。 2.实验原理与方法 在时域中,描写系统特性的方法是差分方程和单位脉冲响应,在频域可以用系统函数描述系统特性。已知输入信号可以由差分方程、单位脉冲响应或系统函数求出系统对于该输入信号的响应,本实验仅在时域求解。在计算机上适合用递推法求差分方程的解,最简单的方法是采用MATLAB语言的工具箱函数filter函数。也可

数字信号处理实验八

实验报告 实验名称:FIR数字滤波器设计及应用 课程名称____数字信号处理________ 院系部:电气与电子工程专业班级:信息1002 学生姓名:王萌学号: 11012000219同组人:实验台号: 指导教师:范杰清成绩: 实验日期: 华北电力大学

一、实验目的 加深理解 FIR 数字滤波器的时域特性和频域特性,掌握FIR 数字 滤波器的设计原理与设计方法,以及FIR 数字滤波器的应用。 二、 实验原理 FIR 数字滤波器可以设计成具有线性相位,在数据通信、图像处理、 语音信号处理等实际应用领域得到广泛应用。 M 阶FIR 数字滤波器的系统函数为: FIR 数字滤波器的单位脉冲响应h [k ]是长度为M +1的有限长因果序列。当满足对称条件时,该FIR 数字滤波器具有线性相位。FIR 数字滤波器设计方法主要有窗口法、频率取样法及优化设计法。 MATLAB 中提供的常用FIR 数字滤波器设计函数有: fir1 窗函数法设计FIR 数字滤波器(低通、高通、带通、 带阻、多频带滤波器) fir2 频率取样法设计FIR 数字滤波器:任意频率响应 firls FIR 数字滤波器设计:指定频率响应 firrcos 升余弦型 FIR 数字滤波器设计 intfilt 内插FIR 数字滤波器设计 kaiserord 凯塞(Kaiser)窗函数设计法的阶数估计 firpm Parks-McClellan 算法实现FIR 数字滤波器优化设计 firpmord Parks-McClellan 数字滤波器的阶数选择 cremez 复系数非线性相位FIR 等波纹滤波器设计 1、 窗口法设计FIR 数字滤波器 fir1函数可以很容易地实现FIR 数字滤波器窗口法设计。 可设计低通、高通、带通、带阻滤波器、多频带滤波器。 k M k z k h z H -=∑=][)(0

数字信号处理MATLAB实验1

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

(3)x(n)=[1,-1,3,5],产生并绘出下列序列的样本。 a)x 1(n)=2x(n+2)-x(n-1)-2x(n) b)∑=-=5 1k 2) k n (nx (n) x (4)绘出下列时间函数的图形,对x轴、y轴以及图形上方均须加上适当的标注。 a)x(t)=sin(2πt)0≤t≤10s b)x(t)=cos(100πt)sin(πt) 0≤t≤4s (5)编写函数stepshift(n0,n1,n2)实现u(n-n0),n1

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