南京邮电大学matlab软件设计(超详细).doc

更新时间:2023-10-27 04:02:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

南京邮电大学通信学院

软件课程设计 实验报告

模块名称:___MATLAB软件设计 专业班级:__通信工程 姓 名:____ ____ 学 号:___

实验日期:2013年 6 月 17—28日 实验报告日期: 2013 年 7 月 1 日

一、要求练习的实验部分

1.在时间区间 [0,10]中,绘出y?1?e?0.5tcos2t曲线。 程序: t=0:0.1:10;

y=1-exp((-0.5)*t).*cos(2*t); plot(t,y,'r-'); shg 结果:

2. 写出生成如图E2-1所示波形的MATLAB脚本M文件。图中虚线为正弦波,要求它的

负半波被置零,且在程序:

t=linspace(0,3*pi,500); y=sin(t); a=sin(pi/3); z=(y>=0).*y;

z=(y>=a).*a+(y

- 1 -

3处被削顶。 2xlabel('t'),ylabel('z=f(t)'),title('逐段解析函数') legend('y=sin(t)','z=f(t)',4),hold off 结果:

?123???3. 令A?456,运行 [U,S,V]=svd(A);tol=S(1,1)*3*eps; 然后回答以下问题: ????789??(1)

(2) (3) (4) (5) (6) (7) (8)

sum(diag(S)>tol) - rank(A) 是多少 ? S(1,1) - norm(A) = 0 是多少 ?

sqrt(sum(diag(S*S))) - norm(A,'fro') 的结果是什么 ? S(1,1)/S(3,3) - cond(A) 的结果是什么 ?

S(1,1)*S(2,2)*S(3,3) - det(A) < tol 的运行结果是什么? V(:,1)'*null(A) 得到什么结果 ?

abs(A*null(A)) < tol 得到什么结果 ? U(:,1:2) = = orth(A) 的运行结果是什么 ?

程序:

clear; clc;

disp('设 A=[1,2,3;4,5,6;7,8,9],得')

- 2 -

A=[1,2,3;4,5,6;7,8,9] %一个3*3矩阵 disp('设 [U,S,V]=svd(A),得')

[U,S,V]=svd(A) %奇异值分解(SVD)USV:U m*m酉矩阵 V n*n酉矩阵 S 对角阵

disp('设 tol=S(1,1)*3*eps,得') tol=S(1,1)*3*eps

disp('设 a=sum(diag(S)>tol) - rank(A),求 a') a=sum(diag(S)>tol) - rank(A)

disp('设 b=S(1,1) - norm(A),求 b') b=S(1,1) - norm(A)

disp('设 c=sqrt(sum(diag(S*S))) - norm(A, fro ),求 c') c=sqrt(sum(diag(S*S))) - norm(A,'fro') disp('设 d=S(1,1)/S(3,3) - cond(A),求 d') d=S(1,1)/S(3,3) - cond(A)

disp('设 e=S(1,1)*S(2,2)*S(3,3) - det(A) < tol ,求 e') e=S(1,1)*S(2,2)*S(3,3) - det(A) < tol disp('设 f=V(:,1) *null(A),求 f') f=V(:,1)'*null(A)

disp('设 g=abs(A*null(A)) < tol,求 g') g=abs(A*null(A)) < tol

disp('设 h=U(:,1:2) == orth(A),求 h') h=U(:,1:2) == orth(A) 结果:

设 A=[1,2,3;4,5,6;7,8,9],得 A =

1 2 3 4 5 6 7 8 9

设 [U,S,V]=svd(A),得 U =

-0.2148 0.8872 0.4082 -0.5206 0.2496 -0.8165 -0.8263 -0.3879 0.4082 S =

16.8481 0 0 0 1.0684 0

- 3 -

0 0 0.0000 V =

-0.4797 -0.7767 -0.4082 -0.5724 -0.0757 0.8165 -0.6651 0.6253 -0.4082

设 tol=S(1,1)*3*eps,得

tol =

1.1223e-014

设 a=sum(diag(S)>tol) - rank(A),求 a a =

0

设 b=S(1,1) - norm(A),求 b b =

0

设 c=sqrt(sum(diag(S*S))) - norm(A, fro ),求 c c =

3.5527e-015

设 d=S(1,1)/S(3,3) - cond(A),求 d d =

-8

设 e=S(1,1)*S(2,2)*S(3,3) - det(A) < tol ,求 e e =

1

- 4 -

结果 - 10 -

8. 利用 SIMULINK及其标准模块设计一个低通滤波器,从受噪声干扰的多频率混合信号

x(t)中获取10Hz的信号。在此x(t)?sin(2??10?t)?cos(2??100?t)?n(t),而

n(t)~N(0,0.2)

各模块参量设置: [Sine Wave]

Frequency (rad/sec): 10 其他默认 [Sine Wave1]

Frequency (rad/sec): 100

- 11 -

Phase (rad): pi/2 其他默认 [Random Number]

Variance: 0.2 Sample time: 100 其他默认 [Sum]

List of signs: |+++ 其他默认

[Analog Filter Design]

Passband edge frequency (rad/s): 10 其他默认 [其余模块]

默认选项

结果:

- 12 -

2?y?1?y1(1?y2)?y29. 已知系统的状态方程为:?,其中y1(0)?0.25,y2(0)?0.25,请

?y?y1?2构建该系统的仿真模型,并用XY Graph模块观察y1,y2相轨迹。 原理图:

参数配置;

[Sum]

List of signs: |--+ 其他默认

[integrator]

Initial condition:0.2 [integrator1] Initial condition:0.2

- 13 -

结果:

10. CD74HC00仿真(数字电路)

- 14 -

实现方法:

这里就是四个与非门的实现,利用Logical Operator模块做出四个与非门,还要再和Vcc和Gnd相与,再输出。然后用Subsystem封装成子系统即可;

原理图:

(1)、封装前的原理图

- 15 -

(2)、分装后的测试原理图

- 16 -

结果:

分析:前两路分别为产生“1100”和“0101”的脉冲发生器的波形,后四路波形则分别为四个与非门的输出;

可以看到,四路输出信号与输入信号均符合与非逻辑的关系,符合7400的真值表,

- 17 -

设计正确!

11.2FSK信号的生成与接收滤波 要求:

1) 产生二进制[0,1]随机信号波,信号波特率为1000B 2) 对此信号进行2FSK调制,f1=1500Hz, f2=3050Hz 3) 加入高斯白噪声

4) 在接收端进行带通滤波 5) 抽样速率为20KHz.

6) 观察滤波前后信号的波形和频谱。

实现方法:

利用Bernoulli Binary Generator模块产生随机信号;

利用Sine Wave模块产生f1=1500Hz, f2=3050Hz 的载波,结合Switch模块进行2FSK调制;

利用AWGN Channel模块构建高斯白噪声信道,其参数设置为:信噪比:10dB,输入信号功率:1W;

利用Digital Filter Design设计带通滤波器,分别为1500Hz和3050Hz滤波 然后利用相干解调,在将两个载波相加,用符号函数判决出原信号。

原理图:(zoushuSimulink11.mdl、zoushuSimulink11b.mdl) 参数设计: [Sine Wave]: Frequency:1500 Hz 其他:默认 [Sine Wave 1]: Frequency:3050 Hz 其他:默认 [Bernoulli Binary Generator] Sample time:1/1000 其他:默认 [Switch]: Threshoid:1/2 其他:默认 [AWGN Channel] SNR:10 db Power:1W 其他:默认 [Digital Filter Design ] Bandpass; Fs:20kHz Fstop1:0.8KHz Fpass1:1.2KHz: Fstop2:2KHz Fpass:2.2.5KHz: 其他:默认 [Digital Filter Design 1 ]

- 18 -

Bandpass; Fs:20kHz Fstop1:2.5KHz Fpass2:2.8KHz: Fstop2:3.5KHz Fpass2:4KHz: 其他:默认 调制的原理图:

- 19 -

(2)语音信号(自行录制’.wav’文件) 实现方法:

自己录制xy.wav文件放在E盘,用wavread读取语音文件。具体做法为在命

令窗输入:y=wavread('F:\\xy.wav',10001);t=[0:0.001:10]';运行,等到y为[10001*2],t为[10001*1]的数据。在simulink里调用From Workspace模块,将其Data属性设为:[t y]。用一个10KHz的正弦信号相乘去调制和解调。

结果分析:

- 45 -

结果分析:通过录制的声音,进过调制和解调,最后经过滤波,滤出原声音信号,但

是由于录制的声音音量过小,最后滤出的波形没有那么精确,出现一混频。

五、学习心得:

为期两周的软件设计落下帷幕,这两种我从仅仅懂一些matlab皮毛知识到自己能够独立完成设计滤波器与通信系统与数字模块,之间也经历了很多挫折。其中最大的原因是在于自己对所要设计的原理不清楚,为此我重新捡起了数字电路、通信原理的书,从原理一点一滴做起,遇到实在不懂得,就去请教老师同学与百度,在于别人交流的过程中自己的设计思维也更明晰,少走了很多弯路。

例举一个遇到的小问题,在做最后一题通信仿真时,刚开始,在进行WAV格式语音信号处理的时候,程序始终现实如下错误提示: ??? Error using ==> wavread Error using ==> wavread

Data compression format (IMA ADPCM) is not supported.

我在查阅了很多资料,在网上也查阅相关信息,花费了大量时间也没找出结果,最后发现在WAV格式的语音文件有两种格式,即PCM格式和IMA ADPCM格式,而在MATLAB中用wavread函数进行语音处理时,并不能直接处理IMA ADPCM格式的语音信号,经过格式转换之后(选择PCM格式),我们运行出了正确的结果。实验过程中,我很清楚的感觉到初始语音信号和滤波输出后的语音信号在音色上有一定的差别,这说明了信号在处理、传输过程中有损耗。

软件设计的两周使我完成了从纯理论到仿真实践的第一步,这也是走向产品设计的很重要一步,使我对自己所学知识有了很好的巩固,总之,本次软件设计周很有意义。

- 46 -

本文来源:https://www.bwwdw.com/article/kvn2.html

Top