实验一、数字信号处理基础Word文档格式.doc

上传人:聆听****声音 文档编号:3742858 上传时间:2023-05-02 格式:DOC 页数:14 大小:367.50KB
下载 相关 举报
实验一、数字信号处理基础Word文档格式.doc_第1页
第1页 / 共14页
实验一、数字信号处理基础Word文档格式.doc_第2页
第2页 / 共14页
实验一、数字信号处理基础Word文档格式.doc_第3页
第3页 / 共14页
实验一、数字信号处理基础Word文档格式.doc_第4页
第4页 / 共14页
实验一、数字信号处理基础Word文档格式.doc_第5页
第5页 / 共14页
实验一、数字信号处理基础Word文档格式.doc_第6页
第6页 / 共14页
实验一、数字信号处理基础Word文档格式.doc_第7页
第7页 / 共14页
实验一、数字信号处理基础Word文档格式.doc_第8页
第8页 / 共14页
实验一、数字信号处理基础Word文档格式.doc_第9页
第9页 / 共14页
实验一、数字信号处理基础Word文档格式.doc_第10页
第10页 / 共14页
实验一、数字信号处理基础Word文档格式.doc_第11页
第11页 / 共14页
实验一、数字信号处理基础Word文档格式.doc_第12页
第12页 / 共14页
实验一、数字信号处理基础Word文档格式.doc_第13页
第13页 / 共14页
实验一、数字信号处理基础Word文档格式.doc_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

实验一、数字信号处理基础Word文档格式.doc

《实验一、数字信号处理基础Word文档格式.doc》由会员分享,可在线阅读,更多相关《实验一、数字信号处理基础Word文档格式.doc(14页珍藏版)》请在冰点文库上搜索。

实验一、数字信号处理基础Word文档格式.doc

1、在MATLAB中,熟悉利用函数y=filter(b,a,x)实现差分方程的使用方法;

2、在MATLAB中,熟悉用函数y=conv(x,h)计算卷积的使用方法;

3、在MATLAB中,熟悉用函数y=impz(b,a)求系统冲激响应的使用方法。

4、在MATLAB中,熟悉用函数y=stepz(b,a)求系统冲激响应的使用方法。

5、在MATLAB中,函数和计算N点序列的DFT正、反变换的使用方法。

6、在MATLAB中,熟悉函数tf2zp、zplane、freqz、residuez、zp2sos的使用。

函数的使用方法:

1、filter:

这是一个一维数字滤波器;

也可以用作卷积运算,结果与conv函数一样。

y=filter(A,B,X),x为待处理序列,H=B/A为一个系统函数,y的结果是H与X相乘后作傅氏反变换的结果,如果A=1,则y为两个序列的卷积。

2、conv:

求卷积函数,y=conv(x,h),y是x与h卷积的结果。

3、impz:

求系统的冲激响应。

[h,t]=impz(b,a):

b、a分别为系统的传递函数的分子和分母系数向量。

返回系统(b,a)的冲激响应h和相应的时间轴向量。

4、stepz:

求系统的单位阶跃响应。

[s,n]=stepz(b,a):

求解离散系统的单位阶跃响应,其中b、a为向量,n为时间序列

[s,n]=stepz(b,a,N):

求解离散系统的单位阶跃响应,N为采样点数

stepz(b,a):

在当前窗口,用stem(n,s)绘出图形。

5、求离散时间序列的傅立叶变换和反变换:

X=fft(x,N),x=ifft(X,N)

其中,X为x的DFT变换,而x则是X的傅立叶反变换,N为计算的点数,可以能过上面两个函数实现DFT。

6、tf2ss:

由传递函数到状态空间的转换。

[A,B,C,D]=tf2ss(NUM,DEN),NUM,DEM为向量

H(s)=NUM(s)/DEN(s)到x=Ax+Bu,y=Cx+Du

7、zplane(b,a):

绘制由行向量b和a构成的系统函数的零极点分布图;

zplane(z,p):

绘制由列向量z确定的零点、列向量p确定的极点构成的零极点分布图。

8、freqz:

求离散时间系统的频率响应函数;

[h,w]=freqz(b,a,n)。

可以得到数字滤波器的n点复频响应值,这n个点均匀地分布这[0,pi]上,并将这n个频点的频率记录在w中,相应的频响值记录在h中,n缺省时取512点。

[h,f]=freqz(b,a,n,Fs),用于对H(jw)在[0,Fs/2]上等间隔采样n点,采样点频率及相应频响值分别记录在f和h中,由用户指定Fs(以Hz为单位)的值。

9、[r,p,c]=residuez(b,a):

把b(z)/a(z)展开成部分分式;

 

[b,a]=residuez(r,p,c):

根据部分分式的r、p、c数组,返回有理多项式。

10、zp2sos:

变系统零极点形式为二阶分割形式

[SOS,G]=ZP2SOS(Z,P,K);

SOS为矩阵形式,G为增益。

………………………………………………………………………………………………..

四、实验内容

1.Matlab函数conv和filter的使用

1.1实验要求

以下程序中分别使用conv和filter函数计算h和x的卷积y和y1,运行程序,并分析y和y1是否有差别,为什么要使用x[n]补零后的x1来产生y1;

具体分析当h[n]有M个值,x[n]有M个值,使用filter完成卷积功能,需要如何补零?

%ProgramP2_7

clf;

h=[321-210-403];

%impulseresponse

x=[1-23-4321];

%inputsequence

y=conv(h,x);

n=0:

14;

subplot(2,1,1);

stem(n,y);

xlabel('

Timeindexn'

);

ylabel('

Amplitude'

title('

OutputObtainedbyConvolution'

grid;

x1=[xzeros(1,8)];

y1=filter(h,1,x1);

subplot(2,1,2);

stem(n,y1);

OutputGeneratedbyFiltering'

1.2实验结果与分析

上面程序的运行结果如下:

将程序作如下改动:

y=conv(h,x)

y1=filter(h,1,x)

y2=filter(x,1,h)

结果输出如下:

y=

Columns1through10

3-46-1090172-910

Columns11through15

-2-20563

y1=

3-46-109017

y2=

3-46-1090172-9

从结果分析可知,conv(h,x)是专门用来做卷积运算的,得出的结果长度为(nh+nx-1),而对于filter(h,1,x),得出的结果长度与第三个参数x相同,而对于前面的运算结果与conv的结果一致,所以,用filter函数进行卷积运算时要对x进行补0操作。

当h[n]有M个值,x[n]有M个值时,需要令x=[xzeros(M-1,1)]。

2.Matlab函数impz和stepz的使用

2.1实验要求

编制程序用impz和stepz分别求解下列两个系统的单位冲激响应和阶跃响应:

y[n]+0.75y[n-1]+0.125y[n-2]=x[n]–x[n-1]

y[n]=0.25*(x[n-1]+x[n-2]+x[n-3]+x[n-4])

给出理论计算结果和程序计算结果并讨论。

2.2程序代码

N=16;

n=0:

N-1;

y1=[1,.75,0.125];

x1=[1,-1];

y2=1;

x2=[0.25,0.25,0.25,0.25];

h1=6*(-0.5).^n.*(n>

=0)-5*(-0.25).^n.*(n>

=0);

%式1的单位冲激响应理论计算值

h2=2*(-0.5).^n.*(n>

=0)-(-0.25).^n.*(n>

%式1的单位阶跃响应理论计算值

h3=[0,0.25,0.25,0.25,0.25,zeros(1,11)];

h4=0.25*((n>

=1)+(n>

=2)+(n>

=3)+(n>

=4));

subplot(4,2,1);

impz(x1,y1,N);

%求系统的冲激响应

式1的冲激响应matlab结果'

subplot(4,2,2);

stem(n,h1);

式1的冲激响应理论计算结果'

n(samples)'

ylabel('

subplot(4,2,3);

stepz(x1,y1,N);

%求系统的阶跃响应

式1的阶跃响应matlab结果'

subplot(4,2,4);

stem(n,h2);

式1的阶跃响应理论计算结果'

subplot(4,2,5);

impz(x2,y2,N);

式2的冲激响应matlab结果'

subplot(4,2,6);

stem(n,h3);

式2的冲激响应理论计算结果'

subplot(4,2,7);

stepz(x2,y2,N);

式2的阶跃响应matlab结果'

subplot(4,2,8);

stem(n,h4);

式2的阶跃响应理论计算结果'

2.3实验结果与分析

理论计算:

对式1:

单位冲击响应为:

阶跃响应为:

对式2:

由结果图像可得,通过impz和stepz计算的单位冲激响应和阶跃响应与理论计算结果基本一致。

3.用N点DFT计算2N点实数的DFT

3.1实验要求

2N点实数序列

N=64。

用一个64点的复数FFT程序,一次算出,并绘出的图形。

3.2实现原理

v[n]是长度为2N的实序列,V[k]表示该实序列的2N点DFT。

定义两个长度均为N的实序列g[n]和h[n]为g[n]=v[2n],h[n]=v[2n+1],。

G[k]和H[k]表示它们的N点DFT。

通过下式可以算出v[n]的2N点傅立叶变换。

在matlab中,可以运用函数X=fft(x,N)直接计算出x[n]的N点傅立叶变换。

3.3实现代码

N=64;

k=0:

2*N-1;

x=cos(14*pi*k/N)+0.5*cos(38*pi*k/N);

g=cos(14*pi*2*n/N)+0.5*cos(38*pi*2*n/N);

%g[n]=v[2n]

h=cos(14*pi*(2*n+1)/N)+0.5*cos(38*pi*(2*n+1)/N);

%h[n]=v[2n+1]

G=fft(g,N);

H=fft(h,N);

form=1:

N%利用G,K求X,2N点的傅氏变换

X(m)=G(m)+exp(-j*2*pi*(m-1)/(2*N))*H(m);

end

form=(N+1):

2*N

X(m)=G(m-N)+exp(-j*2*pi*(m-1)/(2*N))*H(m-N);

X1=fft(x,2*N);

%直接计算2N点傅区变换

dX=X1-X;

%作差看两种算法的区别

subplot(3,1,1);

stem(k,abs(X));

利用N点DFT求2N点DFT'

k'

|X|'

subplot(3,1,2);

stem(k,abs(X1));

直接求2N点DFT'

|X1|'

subplot(3,1,3);

stem(k,abs(dX));

两种算法的差值'

|cX|'

3.4实验结果与分析

从结果图像可以看出,运用N点DFT求2N点DFT的方法求得的结果与直接求2N点DFT的结果基乎一样,虽然其中存在一定的差别,但是从工程上讲,这种差别可以忽略不计。

4.用DFT验证Z变换

4.1实验要求

已知某序列x(n)的Z变换在单位圆上的N=64等分样点为:

用N点IFFT程序计算出和。

4.2实现原理

在matlab中,可以运用函数x=ifft(X,N)来计算频域函数X的N点傅立叶反变换IDFT。

而对于理论计算,可以运用傅立叶变换对进行变换:

由于DFT相当于无限长序列的傅立叶变换的一个抽样,所以对于理论值的DFT只要取DTFT的有限个点即可。

4.3实现代码

X=1./(1-0.8*exp(-j*2*pi*k/N));

%原系统函数

x1=ifft(X,N);

%运用matlab求解傅立叶反变换

x2=0.8.^k;

%理论计算结果

dx=x2-x1;

%理论结果与数值计算结果作差对比

stem(k,x1);

axis([07001.01]);

%对图像的x轴修正

matlab计算结果'

n'

x1'

stem(k,x2);

理论计算结果'

x2'

stem(k,dx);

matlab计算结果与理论结果的差值'

dx'

4.4实验结果与分析

理论计算结果为:

从结果图中可以看出,matlab计算结果与理论计算结果基本一致,但是,从误差分析来看,matlab计算结果比理论计算结果要大一些,不过,这个误差非常小,所以,从工程上说,这种误差应该是可以忽略不计的。

5离散时间系统的变换域分析

5.1实验要求

用matlab函数,求系统

的零、极点和幅度频率响应和相位响应。

5.2实现代码

b=[0.05280.07970.12950.12950.7970.0528];

a=[1-1.81072.4947-1.88010.9537-0.2336];

[z,p]=tf2zp(b,a);

%求系统的零、极点

disp('

零点'

disp(z);

%列出系统的零点计算结果

极点'

disp(p);

%列出系统的极点计算结果

[h,w]=freqz(b,a);

%求系统函数

t=w/pi;

%将w对pi进行归一化

zplane(b,a);

系统的零极点图'

plot(t,abs(h));

系统的幅频特性曲线'

\omega/\pi'

Magnitude'

plot(t,angle(h));

系统的相频特性曲线'

Phase'

5.3实验结果与分析

零点

-1.5870+1.4470i

-1.5870-1.4470i

0.8657+1.5779i

0.8657-1.5779i

-0.0669

极点

0.2788+0.8973i

0.2788-0.8973i

0.3811+0.6274i

0.3811-0.6274i

0.4910

从实验结果可以看出,通过函数tf2zp计算的系统零、极点与用函数zplane画出的系统的零、极点图一到。

通过函数freqz可以得出系统函数h,并可以求出系统幅频特性曲线和相频特性曲线。

13

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2