基于MATLAB的数字信号处理实验指导书Word格式.doc

上传人:聆听****声音 文档编号:3637550 上传时间:2023-05-02 格式:DOC 页数:38 大小:1.20MB
下载 相关 举报
基于MATLAB的数字信号处理实验指导书Word格式.doc_第1页
第1页 / 共38页
基于MATLAB的数字信号处理实验指导书Word格式.doc_第2页
第2页 / 共38页
基于MATLAB的数字信号处理实验指导书Word格式.doc_第3页
第3页 / 共38页
基于MATLAB的数字信号处理实验指导书Word格式.doc_第4页
第4页 / 共38页
基于MATLAB的数字信号处理实验指导书Word格式.doc_第5页
第5页 / 共38页
基于MATLAB的数字信号处理实验指导书Word格式.doc_第6页
第6页 / 共38页
基于MATLAB的数字信号处理实验指导书Word格式.doc_第7页
第7页 / 共38页
基于MATLAB的数字信号处理实验指导书Word格式.doc_第8页
第8页 / 共38页
基于MATLAB的数字信号处理实验指导书Word格式.doc_第9页
第9页 / 共38页
基于MATLAB的数字信号处理实验指导书Word格式.doc_第10页
第10页 / 共38页
基于MATLAB的数字信号处理实验指导书Word格式.doc_第11页
第11页 / 共38页
基于MATLAB的数字信号处理实验指导书Word格式.doc_第12页
第12页 / 共38页
基于MATLAB的数字信号处理实验指导书Word格式.doc_第13页
第13页 / 共38页
基于MATLAB的数字信号处理实验指导书Word格式.doc_第14页
第14页 / 共38页
基于MATLAB的数字信号处理实验指导书Word格式.doc_第15页
第15页 / 共38页
基于MATLAB的数字信号处理实验指导书Word格式.doc_第16页
第16页 / 共38页
基于MATLAB的数字信号处理实验指导书Word格式.doc_第17页
第17页 / 共38页
基于MATLAB的数字信号处理实验指导书Word格式.doc_第18页
第18页 / 共38页
基于MATLAB的数字信号处理实验指导书Word格式.doc_第19页
第19页 / 共38页
基于MATLAB的数字信号处理实验指导书Word格式.doc_第20页
第20页 / 共38页
亲,该文档总共38页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于MATLAB的数字信号处理实验指导书Word格式.doc

《基于MATLAB的数字信号处理实验指导书Word格式.doc》由会员分享,可在线阅读,更多相关《基于MATLAB的数字信号处理实验指导书Word格式.doc(38页珍藏版)》请在冰点文库上搜索。

基于MATLAB的数字信号处理实验指导书Word格式.doc

为克服上述困难,美国Mathwork公司于1967年推出“MatrixLaboratory”(缩写为MATLAB)软件包,并不断更新和扩充。

MATLAB软件包现已成为国际公认的最优秀的科技界应用软件,是一种面向科学和工程计算的高级语言,它强大的计算功能、计算结果的可视化以及极高的编程效率,是其它语言无与伦比的。

MATLAB包含的几十个工具箱,覆盖了通讯、自动控制、信号处理、图象处理等科学领域,汲取了当今世界这些领域的最新研究成果,已经成为从事科学研究和工程设计不可缺少的工具软件。

MATLAB作为一种计算机语言,要想运用自如,充分发挥它的威力,也需要先系统地学习它。

但由于使用MATLAB编程运算与人进行科学计算的思路和表达方完全一致,所以不象学习其他高级语言那样难于掌握。

实践证明,你可以在一个多小时的时间学会MATLAB的基础知识,在短短的几小时的使用中就能初步掌握它。

从而使你可以在短时间内高效地、出色地完成复杂的科学计算、能迅速地测试他们的构想、综合评测系统性能。

所以,在欧美高等院校中,MATLAB已成为大学生、研究生、教师的必备的基本技能。

近年来,国内高校也在大力推广应用MATLAB软件。

1.2MATLAB的基本操作

一、启动与退出

二、命令窗口与M文件编辑窗口

1.命令窗口:

输入一条MATLAB语句,就立即执行。

【例】

a=[1.51.11.3;

2.12.32.5;

3.33.53.1]

a=

1.50001.10001.3000

2.10002.30002.5000

3.30003.50003.1000

inv(a)%矩阵求逆

ans=

1.9565-1.37680.2899

-2.1014-0.43481.2319

0.28991.9565-1.3768

a'

%转置

1.50002.10003.3000

1.10002.30003.5000

1.30002.50003.1000

b=a*a%矩阵相乘

b=

8.85008.73008.7300

16.230016.350016.2300

22.530022.530022.6500

det(a)%a的行列式

-0.8280

eig(a)%a的特征值

6.9000

0.3464

-0.3464

rank(a)%a的秩

3

[LU]=lu(a)%a做KU分解

L=

0.45451.00000

0.6364-0.14811.0000

1.000000

U=

0-0.4909-0.1091

000.5111

但仅靠一条一条输入MATLAB语句,难以实现复杂功能。

为了设计诸如循环、条件分支等功能,MATLAB利用了M文件。

2.M文件的编辑、路径的设定

CommandWindow——File——New——mfile,打开MATLABEditor/DebuggerWindow,编辑m文件。

a=[123;

456;

789];

b=a'

c=a*a

第二章信号的生成和信号的变换

2.1序列的表示及基本序列的生成

MATLAB是用向量表示序列的。

MATLAB向量的第一个元素位置是x

(1),不是x(0)。

为了清楚表示序列{x(n)};

要用两个向量,其中一个向量n表示序列的位置,而另一个向量x表示序列值。

如:

n=[-2,-1,0,1,2,3];

x=[0,1,2,3,2,1];

stem(n,x);

1.单位取样序列

%CREATEDELTASEQUENCE

n0=0;

n1=-10;

n2=10;

n=[n1:

n2];

nc=length(n);

x=zeros(1,nc);

fori=1:

nc

ifn(i)==n0

x(i)=1;

end

end

stem(n,x)

xlabel('

n'

);

ylabel('

x(n)'

title('

DeltaSequence'

grid

2.单位阶跃序列

%CREATESTEPSEQUENCE

x=[(n-n0)>

=0];

stepSequence'

3.正弦序列

%CREATESINESEQUENCE

n=[0:

100];

x=2*sin(0.05*pi*n+pi/4);

SineSequence'

4.复指数序列

%CREATEAComplexPowerSEQUENCE

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=(180/pi)*angle(x);

subplot(221)

stem(n,Real_x);

RealPart'

subplot(222)

stem(n,Image_x);

ImaginaryPart'

subplot(223)

stem(n,Mag_x);

Magnitude'

subplot(224)

stem(n,Phase_x);

Phase'

5.随机序列

rand(1,n)——产生[0,1]上均匀分布的随机序列,长度为n。

randn(1,n)——产生N(0,1)高斯随机序列,即白噪声,长度n。

6.序列的线性卷积

y(n)=x(n)*h(n)

h(n)

y(n)

x(n)

y=conv(x,h)

conv——一维卷积

con2——二维卷积

%MATLABPROGRAMofconvolution

b=0.15;

a=[1-0.8];

%Creatinputoffilter

x1=2*sin(0.05*pi*n)

x=x1+0.4*randn(1,101);

%Calculateresponseaccordingtoconvolution

imp=[1;

zeros(100,1)];

h=filter(b,a,imp'

yc=conv(h,x);

y=yc(1:

101);

%Calculateresponseaccordingtomatlabfunction

y1=filter(b,a,x);

subplot(311),plot(n,x1);

x'

subplot(312),plot(n,x);

x+noise'

subplot(313),plot(n,y);

y'

2.2序列的DFT、FFT

有限长序列x(n)

离散傅里叶变换X(k)也是一个长度为N的序列,所对应的离散频率在0~之间,且频率间隔相等,为。

可用函数fft和ifft实现离散傅里叶正变换和反变换。

调用格式为:

【例】已知序列x(n)=cos(0.4n)+cos(0.6n),,试绘制x(n)波形及其傅里叶变换的波形。

【注:

(,,)

%CalculateDFTofx(n)

N=120;

n=0:

N-1;

xn1=cos(0.4*pi*n)+cos(0.5*pi*n);

xn=xn1+rand(1,N);

Xk=fft(xn,N);

magXk=abs(Xk);

subplot(211),plot(n,xn);

x(n)N=100'

f=n/N;

subplot(212);

plot(f,magXk);

frequency'

|X(k)|'

|X(k)|N=100'

2.3用FFT法求线性卷积

对于有限长序列,存在两种卷积方法:

线性卷积和循环卷积。

若x(n)是长度为nx的有限长序列,h(n)是长度为nh的有限长序列,要使N点循环卷积和线性卷积相等,且不发生混叠失真的条件是:

而循环卷积可以采用FFT求取。

【例】求序列x1与x2线性卷积

x1=[122];

x2=[1234];

disp('

LinearConvolution'

yl=conv(x1,x2)

CircularConvolutionusingFFTN=4'

N=4;

x1=[x1,zeros(1,N-length(x1))];

x2=[x2,zeros(1,N-length(x2))];

Xk1=fft(x1,N);

Xk2=fft(x2,N);

Yk=Xk1.*Xk2;

y=ifft(Yk,N)

CircularConvolutionusingFFTN=6'

N=6;

在CommandWindow中显示的结果如下:

LinearConvolution

yl=14914148

CircularConvolutionusingFFTN=4

y=15.000012.0000-0.0000i9.000014.0000+0.0000i

CircularConvolutionusingFFTN=6

y=1.0000-0.0000i4.0000-0.0000i9.0000-0.0000i14.0000+0.0000i

14.0000+0.0000i8.0000+0.0000i

第三章数字滤波器的结构

3.1直接型——传递函数形式

用分子和分母多项式的系数两个向量来表示。

Num=[b

(1)b

(2)……b(nb+1)]

Den=[a

(1)a

(2)……a(na+1)]

num=[1-311-2718];

den=[16122-4-1];

3.2零极点增益形式

用零点向量z、极点向量p以及增益K表示

[z,p,k]=tf2zp(num,den)

z=0.0000+3.0000i

0.0000-3.0000i

2.0000

1.0000

p=-0.5000+0.5000i

-0.5000-0.5000i

0.5000

-0.2500

k=0.0625

3.3级联型——二阶因子级联形式

用的数组SOS表示

sos=zp2sos(z,p,k)

sos=0.0625-0.18750.12501.0000-0.2500-0.1250

1.0000-0.00009.00001.00001.00000.5000

3.4并联型——部分分式展开式形式

用函数residuez()把传递函数形式转换为部分分式形式。

[r,p,c]=residuez(num,den)

r=

-5.0250-1.0750i

-5.0250+1.0750i

0.9250

27.1875

p=

-0.5000+0.5000i

-0.5000-0.5000i

0.5000

-0.2500

c=-18

然后将共轭极点两两合并成如下的一阶节和二阶节的并联。

MATLABSignalProcessingToolbox中的系统模型之间的相互转换函数有:

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

[b,a]=zp2tf(z,p,k)

[z,p,k]=sos2zp(sos)

[b,a]=sos2tf(sos)

[r,p,k]=residuez(b,a)

[b,a]=residuz(r,p,k)

第四章IIR数字滤波器设计

4.1MATLAB中模拟滤波器设计函数介绍

设计流程图:

给定模拟滤波器的技术指标

采用真实角频率

(弧度/秒)

计算模拟滤波器的阶次N和截止频率Wc。

(利用buttord,cheb1ord,cheb2ord,ellipord等)

设计模拟低通滤波器原型G(p)。

(利用buttap,cheb1ap,cheb2ap,ellipap等)

模拟滤波器完全设计函数H(s)

(butter,cheby1,cheby2,ellip)

由模拟低通原型经频率变换获得所需要的低通、高通、带通和带阻滤波器H(s)。

(利用lp2lp,lp2hp,lp2bp,lp2bs)

1.阶次计算函数;

(1)Butterworth模拟滤波器

[N,Wn]=buttord(Wp,Ws,Rp,Rs,’s’);

(2)ChebyshevI型模拟滤波器

[N,Wn]=cheb1ord(Wp,Ws,Rp,Rs,’s’)

(3)ChebyshevII型模拟滤波器

[N,Wn]=cheb2ord(Wp,Ws,Rp,Rs,’s’)

(4)椭圆滤波器

[N,Wn]=ellipord(Wp,Ws,Rp,Rs,’s’)

其中:

Wp,Ws分别是通带和阻带的截止频率,单位为弧度/秒。

对低通和高通,Wp,Ws都是标量,对带通和带阻,Wp,Ws是1×

2的向量。

Rp,Rs分别是通带和阻带的衰减(dB)。

N是求出的相应低通滤波器的阶次,Wn是求出的3dB频率,它和Wp稍有不同。

2.模拟低通原型滤波器设计函数(注意:

得到的是归一化的传递函数)

[z,p,k]=buttap(N);

滤波器传递函数具有如下形式:

[z,p,k]=cheb1ap(N,Rp)

[z,p,k]=cheb2ap(N,Rs)

[z,p,k]=ellipap(N,Rp,Rs)

其中,N是欲设计的低通原型滤波器的阶次,z,p,k是设计出的极点、零点及增益。

3.频率变换函数

将模拟低通原型转换为实际的低通、高通、带通及带阻滤波器。

(1)[B,A]=lp2lp(b,a,wo),

(2)[B,A]=lp2hp(b,a,wo)

(3)[B,A]=lp2bp(b,a,wo,Bw),

(4)[B,A]=lp2bs(b,a,wo,Bw)

b,a是AFLP的分子、分母的系数向量,B,A是转换后的的分子、分母的系数向量;

(1)、

(2)中,wo是低通或高通滤波器的截止频率;

在(3)、(4)中,wo是带通或带阻滤波器的中心频率,Bw是其带宽。

4.模拟滤波器完全设计函数(=2+3)

[b,a]=butter(N,Wn,’s’)%低通或带通滤波器

[b,a]=butter(N,Wn,’high’,’s’)%高通滤波器

[b,a]=butter(N,Wn,’stop’,’s’)%带阻滤波器

(2)ChebyshevI型模拟滤波器

[b,a]=cheby1(N,Rp,Wn,’s’)%低通或带通滤波器

[b,a]=cheby1(N,Rp,Wn,’high’,’s’)%高通滤波器

[b,a]=cheby1(N,Rp,Wn,’stop’,’s’)%带阻滤波器

[b,a]=cheby2(N,Rs,Wn,’s’)%低通或带通滤波

[b,a]=cheby2(N,Rs,Wn,’high’,’s’)%高通滤波器

[b,a]=cheby2(N,Rs,Wn,’stop’,’s’)%带阻滤波器

(4)椭圆滤波器

[b,a]=ellip(N,Rp,Rs,Wn,’s’)%低通或带通滤波器

[b,a]=ellip(N,Rp,Rs,Wn,’high’,’s’)%高通滤波器

[b,a]=ellip(N,Rp,Rs,Wn,’stop’,’s’)%带阻滤波器

【例1】设计一个Butterworth模拟低通滤波器,通带截至频率fp=5KHz,阻带截至频率fs=10KHz;

通带最大衰减Ap=3,阻带最小衰减As=30。

画出该滤波器的频率响应。

%DesignaButterworthAnaloglowpassfilter

%Specifications

Wp=5000*2*pi;

Ws=10000*2*pi;

Ap=3;

As=30;

%ComputeorderandCutofffrequency

[N,Wc]=buttord(Wp,Ws,Ap,As,'

s'

%designanaloglowpassfilterprototype

[z,p,k]=buttap(N)%归一化的传递函数G(p)

[b,a]=zp2tf(z,p,k);

%frequencytransform,得到反归一化传递函数G(s)

[bt,at]=lp2lp(b,a,Wp);

w=0:

20*2*pi:

20000*2*pi;

H=freqs(bt,at,w);

subplot(211),plot(w/(2*pi),abs(H));

Frequency(Hz)'

ButterworthAnaloglowpassfilter'

%Usingfilterwholedesignfuction

[bb,aa]=butter(N,Wc,'

HH=freqs(bb,aa,w);

subplot(212),plot(w/(2*pi),abs(HH));

【例2】设计一个Chebyshev模拟带通滤波器,通带截至频率分别为1000Hz和2000Hz,阻带截至频率分别为500Hz和2500Hz;

通带最大衰减Ap=1,阻带最小衰减As=100。

%DesignaChebyshevAnalogbandpassfilter

Wp=[10002000]*2*pi;

Ws=[50

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

当前位置:首页 > 外语学习 > 英语考试

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

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