基于MATLAB的数字信号处理实验指导书Word下载.doc
- 文档编号:13046096
- 上传时间:2022-10-03
- 格式:DOC
- 页数:38
- 大小:1.20MB
基于MATLAB的数字信号处理实验指导书Word下载.doc
《基于MATLAB的数字信号处理实验指导书Word下载.doc》由会员分享,可在线阅读,更多相关《基于MATLAB的数字信号处理实验指导书Word下载.doc(38页珍藏版)》请在冰豆网上搜索。
第五章FIR数字滤波器设计 22
5.1MATLAB中有关FIRDF设计的函数 22
5.2参考程序 23
第二部分数字信号处理上机实验 31
实验一、用DFT进行信号的谱分析 31
实验二、DFT和DCT的应用 32
实验三、IIR数字滤波器的设计 34
实验四、FIR数字滤波器的设计 35
第一部分MATLAB信号处理工具箱使用介绍
第一章概述
1.1MATLAB简介
在科学研究与工程应用中,往往要进行大量的数学计算,其中包括矩阵运算。
这些运算一般来说难以用手工精确和快速地进行,而要借助计算机编制相应的程序做近似计算。
目前流行用C、FORTRAN等语言编制计算程序,既需要对相关算法有深刻的了解,还需要熟练地掌握所用语言的编程技巧。
对大多数人而言,同时具备这两方面的才能有一定的困难。
即使有,编程也费时费力,影响工作效率。
为克服上述困难,美国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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 MATLAB 数字信号 处理 实验 指导书
![提示](https://static.bdocx.com/images/bang_tan.gif)