MATLAB课程设计报告.docx
- 文档编号:10105739
- 上传时间:2023-05-23
- 格式:DOCX
- 页数:19
- 大小:574.36KB
MATLAB课程设计报告.docx
《MATLAB课程设计报告.docx》由会员分享,可在线阅读,更多相关《MATLAB课程设计报告.docx(19页珍藏版)》请在冰点文库上搜索。
MATLAB课程设计报告
MATLAB
课
程
设
计
报
告
目录
1、MATLAB软件简介……………………………4
2、MATLAB课程设计内容………………………4
3、MATLAB课程设计总结………………………22
4、MATLAB课程设计心得………………………22
一、MATLAB软件简介:
Ⅰ、MATLAB发展历史背景:
MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
MATLAB是矩阵实验室(Matrix Laboratory)的简称,和Mathematica、Maple并称为三大数学软件。
它在数学类科技应用软件中在数值计算方面首屈一指。
MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
Ⅱ、MATLAB的应用:
利用MATLAB可以进行以下各种工作:
◆数值和符号计算
◆工程和科学绘图
◆控制系统的设计与仿真
◆数字信号处理
◆通讯系统设计与仿真
Ⅲ、MATLAB的语言特点和开发环境:
MATLAB作为一种科学计算的高级语言之所以受欢迎,就是因为它有丰富的函数资源和工具箱资源,编程人员可以根据自己的需要选择函数,而无需再去编写大量繁琐的程序代码,从而减轻了编程人员的工作负担。
被称为第四代编程语言的MATLAB最大的特点就是简洁开放的程序代码和直观实用的开发环境。
具体来说MATLAB主要有以下特点:
(1)库函数资源丰富
(2)运算符多而灵活
(3)程序设计自由
(4)图形功能强大
(5)程序的兼容性好
(6)源代码开放
(7)面向对象控制功能优良,使界面编程更方便、自由。
二、MATLAB课程设计内容:
设计Ⅰ、信号的采样与恢复(抽样定理)
(1)
采样原理:
●对连续信号进行等间隔采样形成采样信号,采样信号的频谱是原连续信号的频谱一采样频率为周期进行周期延拓得到的
●对连续信号进行等间隔采样形成采样信号,采样信号的频谱是原连续信号的频谱一采样频率为周期进行周期延拓得到的。
(2)设计内容与步骤:
①用MATLAB产生连续信号y=sin(t)和其对应的频谱:
x1=0:
pi/10:
(8*pi);
w=linspace(0,8*pi,length(x1));
figure
subplot(211)
plot(x1,sin(x1));%原时域连续信号y=sin(t)
xlabel('t');
ylabel('x(t)');
title('原时域连续信号y=sin(t)');
grid;
sin1=sin(x1);
n=0:
(length(x1)-1);
subplot(212)
plot(w,fft1(w,sin1,n);%其对应频域信号Y=FFT(sin(t))
xlabel('w');ylabel('x(w)');
title('其对应频域信号Y=FT(sin(t))');
grid
注:
其中要用到子函数fft1,程序代码如下:
functionresult=fft1(w,hanshu,n)
a=cell(1,length(w));
forhanshu.*((exp(-j*(i-1)*pi/100)).^n);
a{i}=sum(m);end;
fori=1:
length(w)
result(i)=a{i};end
子函数通过控制参数n的取值多少可分别计算离散和近似连续信号的频谱值并作为函数值进行返回。
所得图形如下:
②对连续信号y=sin(t)进行抽样并产生其频谱:
n1=input('请输入采样点数n:
');
n=0:
n1;
zb=size(n);
figure
sinf=sin(8*pi*n/zb
(2));
subplot(211);
stem(n,sinf,'.');
xlabel('n');ylabel('x(n)');
title('采样后的时域信号y=x(n)’);
w=0:
(pi/100):
4*pi;
subplot(212)
plot(w,fft1(w,sinf,n));
xlabel('w');ylabel('x(w)');
title('采样后的频域信号y=FT(sin(n))');
grid
当输入n=10时,所得结果如下:
当输入n=50时,所得结果如下:
总结:
由抽样定理可知,抽样后的信号频谱是原信号频谱以抽样频率为周期进行周期延拓形成的,周期性在上面两个图中都有很好的体现。
但是从10点和50点采样后的结果以及与员连续信号频谱对比可以看出,10点对应的频谱出现了频谱混叠而并非原信号频谱的周期延拓。
这是因为N取值过小导Ωs<2Ωc致采样角频率Ωs<2Ωc,因此经周期延拓出现了频谱混叠。
而N取50时,其采样角频率,从而可以实现原信号频谱以抽样频率为周期进行周期延拓,并不产生混叠,从而为下一步通过低通滤波器滤出其中的一个周期(即不失真的原连续信号)打下了基础。
3.通过低通滤波恢复原连续信号
[B,A]=butter(8,350/500);%设置低通滤波器参数
[H,w]=freqz(B,A,512,2000);
figure;%绘制低通频谱图
plot(w*2000/(2*pi),abs(H));
xlabel('Hz');ylabel('频率响应幅度');
title('低通滤波器');
grid;
figure
y=filter(B,A,sinf);
subplot(2,1,1);plot(y);%恢复后的连续信号
y=sin(t)
xlabel('t');ylabel('x(t)');
title('恢复后的连续信号y=sin(t)');
grid;
Y=fft(y,512);w=(0:
255)/256*500;
subplot(2,1,2);plot(w,abs([Y(1:
256)]));%绘制频谱图
xlabel('Hz');ylabel('频率响应幅度');
title('频谱图');
grid;
n=10时恢复后的信号和频谱:
n=50时恢复后的信号和频谱:
经上面的两个图可以看出,采样50点的恢复波形明显比10点的好。
但是由于滤波器设计的还有待于改进,所以波形并不是显示的很圆滑,但是已经可以基本达到实验目的,将原输入连续信号恢复。
设计Ⅱ、数字滤波器的实现
①滤波器的原理:
滤波器是对输入信号的频率具有选择作用的二端口网络,它允许某些频率(通常是某个频带范围)的信号通过,而其它频率的信号受到衰减或抑制,这些网络可以是由RLC元件或RC元件构成的无源滤波器,也可以是由RC元件和有源器件构成的有源滤波器。
根据幅频特性所表示的通过或阻止信号频率范围的不同,滤波器可分为低通滤波器(LPF)、高通滤波器(HPF)、带通滤波器(BPF)和带阻滤波器(BEF)四种。
把能够通过的信号频率范围定义为通带,把阻止通过或衰减的信号频率范围定义为阻带。
通带与阻带的分界点频率ωc称为截止频率或称转折频率。
图2.1中的|H(jω)|为系统的电压放大倍数,ω0为中心频率,ωcl和ωch分别为低端和高端截止频率。
滤波器的实验线路如下图所示。
四种滤波器的滤波特性:
②设计内容与步骤:
①巴特沃斯低通滤波器设计:
巴特沃斯滤波器拥有最平滑的频率响应,在截止频率以外,频率响应单调下降。
在通带中是理想的单位响应,在阻带中响应为0。
在截止频率处有3dB的衰减。
巴特沃斯滤波器除了具有平滑单调递减的频率响应的优点之外,其过渡带的陡峭程度正比于滤波器的阶数。
高阶巴特沃斯滤波器的频率响应近似于理想低通滤波器。
程序代码如下:
clear all;
n=0:
0.01:
2;
for i=1:
4
switch i
case 1
N=2;
case 2
N=5;
case 3
N=10;
case 4
N=20;
end
[z,p,k]=buttap(N);
%函数buttap--设计巴特沃斯低通滤波器
[b,a]=zp2tf(z,p,k);
%函数zp2tf--零极点增益模型转换为传递函数模型
[H,w]=freqs(b,a,n);
%函数freqs--求解模拟滤波器频率响应
magH2=(abs(H)).^2;
hold on
%函数hold--控制是否保持当前图形
plot(w,magH2)
%函数plot--画二维线性图
axis([0 2 0 1]);
%函数axis--控制坐标轴比例和外观 end
xlabel('w/wc'); ylabel('|H(jw)|^2');
title('巴特沃斯低通模拟滤波器');
gridon
由此得出的巴特沃斯低通模拟滤波器的平方幅度响应曲线如图所示:
由上图可清楚地分析出,巴特沃斯滤波器拥有平滑的频率响应,在截止频率以外,频率响应单调下降。
其过渡带的陡峭程度正比于滤波器的阶数,高阶巴特沃斯滤波器的频率响应近似于理想低通滤波器。
由图2-1所示,对N=2阶滤波器和N=20阶滤波器的平方幅度响应进行比较后,证明了高阶巴特沃斯滤波器有着更好的幅度特性,更接近理想低通滤波器。
②巴特沃斯高通滤波器设计:
clear all;
Wp=0.6*pi;
Ws=0.4*pi; Ap=1; As=15;
[N,wn]=buttord(Wp/pi,Ws/pi,Ap,As)
%计算巴特沃斯滤波器阶次和截至频率
[b,a]=butter(N,wn,'high'); %频率变换法设计巴特沃斯高通滤波器[b0,B,A]=dir2cas(b,a) %数字高通滤波器级联型[db,mag,pha,grd,w]=freqz_m(b,a)
%数字滤波器响应subplot(211); plot(w/pi,mag);
title('高通数字滤波器幅频响)|H(ejOmega)|') subplot(212); plot(w/pi,db);
title('高通数字滤波器幅频响(db)')
其MATLAB运行结果为:
b0=0.0751
B=
1.0000 -2.0000 1.0000
1.0000 -2.0000 1.0000
A = 1.0000 0.1562 0.4488
1.00000.1124 0.0425
③巴特沃斯带通滤波器程序设计:
clear all;
Wp=[0.3*pi,0.4*pi]; Ws=[0.2*pi,0.5*pi];
Ap=3; As=18;
[N,wn]=buttord(Wp/pi,Ws/pi,Ap,As);
%计算巴特沃斯滤波器阶次和截至频率
[b,a]=butter(N,wn,'bandpass'); %频率变换法设计巴特沃斯带通滤波器[b0,B,A]=dir2cas(b,a) %数字带通滤波器[db,mag,pha,grd,w]=freqz_m(b,a); %数字滤波器响应subplot(211);plot(w/pi,mag);
title('带通数字滤波器幅频响)H(ejOmega)|') subplot(212); plot(w/pi,db);
title('带通数字滤波器幅频响(db)')
其MATLAB运行结果为:
b0 =0.0213
B =
1.0000 -2.0000 1.0000
1.0000 2.0000 1.0000
A =
1.0000 -0.6249 0.7840
1.0000 -1.0053 0.8061
MATLAB绘图如下所示:
④巴特沃斯带阻滤波器程序设计:
clear all;
Wp=[0.4*pi,0.7*pi]; Ws=[0.2*pi,0.8*pi];
Ap=1; As=30;
[N,wn]=buttord(Wp/pi,Ws/pi,Ap,As);%计算巴特沃斯滤波器阶次和截止频率
[b,a]=butter(N,wn,'stop'); %频率变换法设计巴特沃斯带阻滤波器[b0,B,A]=dir2cas(b,a) %数字带阻滤波器级联型[db,mag,pha,grd,w]=freqz_m(b,a); %数字滤波器响应subplot(211); plot(w/pi,mag);
title('数字带阻滤波器幅频响H(ejOmega)|') subplot(212); plot(w/pi,db);
title('数字带阻滤波器幅频响(db)')
其MATLAB运行结果为:
b0=0.1054
B =
1.0000 0.3563 1.0021
1.0000 0.3548 0.9968
1.0000 0.3527 1.0053
1.0000 0.3496 0.9948
1.0000 0.3475 1.0032
1.0000 0.3460 0.9979
A =
1.0000 1.1450 0.8087
1.0000 0.8469 0.5087
1.0000 0.4608 0.2943
1.0000 -0.0222 0.2631
1.0000 -0.3959 0.4508
1.0000 -0.6617 0.7750
MATLAB绘图如下所示:
总结:
采用MATLAB设计滤波器,使原来非常繁琐复杂的程序设计变成了简单的函数调用,为滤波器的设和实现开辟了广阔的天地。
MATLAB信号处理工具箱为滤波器设计及分析提供了非常优秀的辅助设计工具,在设计数字滤波器时,善于应用MATLAB进行辅助设计,能够大大提高设计效率。
Ⅲ、方波信号的分解与合成仿真:
①原理:
一个非正弦周期信号可以用一系列幅度、初相不同,频率成整数倍的正弦信号来表示,其中与非正弦信号具有相同频率的成分称为基波或一次谐波,其它成分则根据其频率为基波频率的2、3、4、…、n等倍数分别称二次、三次、四次、…、n次谐波,其幅度将随谐波次数的增加而趋于减小。
反过来,幅度和初相不同的各次谐波(含直流)可以合成一个非正弦周期信号。
非正弦周期信号可用傅里叶级数来表示,各项系数与频率之间的关系叫频谱,不同的非正弦周期信号具有不同的频谱图。
方波周期信号的傅里叶级数表达式为
,信号波形和相对频谱如下图所示。
②仿真设计:
A、方波分解仿真:
下图为周期为T=1的方波信号,经傅立叶级数分解以后而得到的基波到七次谐波的仿真图,左上角为基波图,它是一个非常正规的正弦波,幅值在1到1.5之间,要高于原方波的幅值。
而且它的角频率与原方波信号相同。
右上角为三次谐波图,其也是正弦波,明显,其幅值降到了0.5以下,但是三次谐波的频率是基波的1.5倍。
其它图形依次为五次谐波,七次谐波。
周期为T=1方波信号的分解图
B、方波信号的合成仿真
下图为方波信号分解以后取有限次谐波的合成波形。
左上方图是单独的基波,是正弦波,波身较为平滑,波峰和波谷尖锐。
右上方是基波和三次谐波叠加而成的波,大体仍是正弦的形式,但是波身已经比单独的基波较为陡峭,波峰和波谷出现波动,已经趋向方波,有了方波的雏形。
以下依次叠加起五次谐波,七次谐波的波形。
周期为T=1方波信号的合成图
偶次谐波与奇次谐波的对比
由上可以看出,由于原方波信号经傅立叶级数分解后,偶次谐波不存在,所以在图中只能观察到奇次谐波。
推广:
周期信号的频谱图有以下特点:
(1)离散性。
频谱图中的变量为ω=nω1,由于n只能是整数(单边频谱中是正整数),因而谱线是离散的而非连续的,谱线的间隔是ω1,所以周期信号的频谱是离散频谱。
(2)谐波性。
由于n只取整数,因而谱线在频谱轴上的位置是基频
的整数倍。
(3)收敛性。
幅度谱中各谱线的高度尽管不一定岁随谐波次数的增高作单调的减小,中间有可能有起伏,但总的趋势是随n的增高而减小的,当n为
时,高度趋于零。
三、MATLAB课程设计总结:
这次MATLAB课程设计我主要是从“信号的采样与恢复”、“数字滤波器的实现”、“方波信号的分解与合成仿真”这几个与通信专业紧密衔接的比较常见的的方面进行展开的,为了使课程设计内容翔实准确,脉络清晰,以增强其说服力,我还借鉴、引用了一些比较经典的材料与实例。
比如说,抽样定理、滤波器定理、傅立叶变换等等。
当然,MATLAB的应用还体现在其他许多方面,它在电路分析、数学建模、力学及工程结构等方面也占有一席之地,着实方便实用,涵盖领域广。
四、MATLAB课程设计心得:
诚然,通过这次设计,我对MATLAB有了一个比较基础的了解,在学习MATLAB编程中需要很多的参考书,我们要尽量多的熟悉MATLAB自带的函数及其作用,因为MATLAB的自带函数特别多,基本上能够满足一般的数据和矩阵的计算,所以基本上不用你自己编函数。
这一点对程序非常有帮助,可以使程序简单,运行效率高,可以节省很多时间。
事实上,在编程的过程中学习,程序需要什么知识再去补充,编程是一点一点积累的,所以需要做一些随手笔记什么的。
学习是个循序渐进的过程,如果太急于求成,揠苗助长反而适得其反。
总之,通过这次学习,我了解到了MATLAB这个软件重要一些的功能,以及通过自己编写一些代码也学到了一些用法和知识。
尽管MATLAB学习之路还很长,但我相信“世上无难事只怕有心人”,只要我们肯花时间与心思,没有什么能难倒我们!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 课程设计 报告