matlab综合实验一二三报告.docx

上传人:b****7 文档编号:23398767 上传时间:2023-05-16 格式:DOCX 页数:20 大小:131.53KB
下载 相关 举报
matlab综合实验一二三报告.docx_第1页
第1页 / 共20页
matlab综合实验一二三报告.docx_第2页
第2页 / 共20页
matlab综合实验一二三报告.docx_第3页
第3页 / 共20页
matlab综合实验一二三报告.docx_第4页
第4页 / 共20页
matlab综合实验一二三报告.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

matlab综合实验一二三报告.docx

《matlab综合实验一二三报告.docx》由会员分享,可在线阅读,更多相关《matlab综合实验一二三报告.docx(20页珍藏版)》请在冰豆网上搜索。

matlab综合实验一二三报告.docx

matlab综合实验一二三报告

《信号与系统分析实习》

实验报告

第三组

组长:

胡佳南

组员

学号

胡佳南

094821529

毛盼盼

094821776

董榕

094821499

何良

094821505

杨样

094821744

 

上海第二工业大学通信与信息系

2012.5

综合实验一matlab基础编程

一、实验目的

1.熟悉Matlab编程环境和编程规范。

2.掌握Matlab语言语法和常见函数的使用。

3.掌握利用MATLAB帮助文件。

4.掌握信号与系统分析matlab基础编程。

二、实验环境

1.WINDOWS2000,WINDOWSXP或WINDOWS98

2.MATLAB6.5以上

三、实验内容和步骤

1.数据的基本处理

1)现有三个城市一个月的每日气温记录表如下,将该表格存为Excel文件:

temps.xls。

上海

北京

厦门

12

8

18

15

9

22

14

5

19

12

8

23

11

6

22

15

9

19

8

9

15

19

10

20

12

7

18

14

7

18

11

10

19

9

8

17

8

7

23

15

8

19

8

8

18

10

9

18

12

7

20

9

7

17

12

8

22

12

8

19

9

8

21

12

9

20

12

12

17

10

10

18

13

6

20

9

7

22

10

5

21

14

7

18

12

10

23

10

11

24

15

12

22

13

11

20

12

9

19

2)编写matlab程序,从Excel文件temps.xls中读取数据,并在同一幅图中绘制每个城市的温度曲线(用不同颜色的连续曲线表示,并进行标注)。

注:

①Excel文件的读入matlab语句:

x=xlsread('文件名',''工作表名','数据范围');

例:

x=xlsread('aa.xls','sheet1','A2:

B2')

②标注:

legend(在matlab命令窗口输入:

helplegend,学习其用法)

程序:

prog11.m

x=xlsread('temps.xls','sheet1','A2:

C34');

plot(x);

legend('上海','北京','厦门',-1);

xlabel('日期/日');title('城市月温度曲线');ylabel('温度/摄氏度');

图形:

3)编制函数function[x_max,x_min,x_avg]=calc_mm(x),该函数能计算一组数据的最高值、最低值和平均值,并将该函数存为calc_mm.m。

注:

求最大、最小、平均的matlab语句分别为:

max(x),min(x),mean(x)(学习这些语句用法)

%函数:

calc_mm.m

function[x_max,x_min,x_avg]=calc_mm(x)

function[x_max,x_min,x_avg]=calc_mm(x)

x_max=max(x);

x_min=min(x);

x_avg=mean(x);

disp([x_max,x_min,x_avg])

4)调用函数calc_mm.m,找出每个城市最高气温、最低气温和平均气温,显示在命令窗口中。

注:

在命令窗口中显示文字的语句为:

disp('文字');

程序:

prog12.m

clear

clc

x=xlsread('temps.xls','sheet1','A2:

A34');

disp('上海的最高、最低和平均气温:

');

disp('y1=')

calc_mm(x);

x=xlsread('temps.xls','sheet1','B2:

B34');

disp('北京的最高、最低和平均气温:

');

disp('y2=')

calc_mm(x);

x=xlsread('temps.xls','sheet1','C2:

C34');

disp('厦门的最高、最低和平均气温:

');

disp('y3=')

calc_mm(x);

显示结果:

(示例)

5)对上海的温度数据进行L点滑动平均,公式为:

y(n)=

(本例设:

L=9)

在同一幅图中分别以不同颜色显示原信号x(n)与滑动平均后的信号y(n)。

注:

相似程序见书p120)例3-41(倒数第2行开始)

实验要求:

%程序:

prog13.m

x=xlsread('temps.xls','sheet1','A2:

A34');

b=[1/3,1/3,1/3];a=1;

y=filter(b,a,x);

plot([x,y]);

legend('平滑前','平滑后');

问:

信号经滑动平均后有何变化?

2.利用Matlab帮助系统学习matlab编程

1)在命令窗口用"helpXXX"格式分别学习下列函数的使用方法:

zeros,ones,linspace,wavread,wavwrite,sound,randn。

描述上述函数的主要功能:

zeros:

产生元素为0的矩阵

ones:

产生元素为1的矩阵

linspace:

产生范围内一定点数的行向量

wavread:

从WAV文件中读取音频

wavwrite:

向WAV中写入音频文件

sound:

播放WAV文件

randn:

产生随机数

2)在同一个文件中编写程序,分别完成以下功能:

1产生1行5个零。

2产生1行5个1。

3产生范围从0到2π,点数为200的行向量x,并画出x的波形。

4读取音乐文件chirp.wav,存入变量x,显示x的波形,并播放。

5给chirp.wav文件加上随机噪声(点数是该文件的长度,幅度为0.1)后显示并播放。

%程序:

prog14.m

clear

clc

%a=zeros(1,5)

%b=ones(1,5)

%t=linspace(0,2*pi,200);

%plot(t);

w=wavread('chirp.wav');

sound(w);

d=0.1*randn(1,length(w));

z=d+w';

figure(3);

plot(z);title('¼ÓÔëÐźŲ¨ÐÎ');

wavwrite(z,'123.wav');

sound(z);

四、实验小结(100~200字)

1.实验过程中遇到的问题和解决的途径

遇到了读声音函数不能正常读取音频文件的问题。

通过helpwavread在matlab中找到了函数的用法,结果是声音文件没有加引号。

2.本次实验心得体会

本次实验掌握了matlab在引用外部数据文件的用法,今后可以很方便的对数据文件的matlab处理。

另外本次试验还完全理解matlab中函数的定义和调用,对于以后进一步使用matlab奠定了基础。

综合实验二信号的时域分析和频域分析

一、实验目的

1.掌握连续和离散信号的时域分析方法

2.掌握连续和离散信号的Matlab仿真方法

3.掌握信号和系统的频域分析方法

二、实验环境

1.WINDOWS2000,WINDOWSXP或WINDOWS98

2.MATLAB6.5以上

三、实验内容和步骤

1.本实验可能用到的函数有exp(),sqrt(),sin(),cos(),real(),image(),abs(),angle(),fft(),ifft(),

用"help"学习这些函数的用法,并简单描述这些函数的功能:

exp:

求指数函数

sqrt:

开平方

sin:

正弦

cos:

余弦

real:

实部

image:

虚部

abs:

幅频

angle:

相频

fft:

傅里叶变换

ifft:

傅里叶逆变换

2.选择适当的时间范围,编程产生下列信号,并显示波形:

(1)

(t=0~1,步长为0.01)

%程序prog21.m

A=5;w0=10*pi;phi=pi/3;

t=0:

0.01:

1;

xt=A*sin(w0*t+phi);

plot(t,abs(xt));

(2)

(t=0~8,步长为0.001),选择适当参数a,ω(举例说明),使该信号成为:

①实指数信号:

a=1;ω=0

②纯虚指数信号:

a=0;ω=1

③直流信号:

a=0;ω=0

④复指数信号:

a=1;ω=1

%程序prog22.m(编程可参考:

《信号与系统分析实训指导书》p1)四1

(1))

clear

clc

A=4;

sig=input('衰减因子sig=');

w=input('角频率w=');

t=0:

0.001:

8;

ft=A*exp((sig+j*w)*t);

subplot(221);plot(t,real(ft));grid on;title('ft的实部');

subplot(212);plot(t,imag(ft));grid on;title('ft的虚部');

分别显示4种情况的实部和虚部波形:

*(3)对x2(t)信号进行奇偶分解(a=-2,ω=0),即x2(t)=x2e(t)+x2o(t),

画出:

奇分量x2o(t)和偶分量x2e(t)。

注:

x2e(t)=0.5*[x2(t)+x2(-t)];x2o(t)=0.5*[x2(t)-x2(-t)]。

%程序prog23.m(编程可参考:

《信号与系统分析实训指导书》p4)三

(1)中加/乘法和翻转函数。

x2=4*exp(-2*t);

x22=4*exp(-2*(-t));

stem(x2);

x2e=0.5*(x2+x22);

figure

(2);stem(x2e);

x2o=0.5*(x2-x22);

figure(3);stem(x2o);

波形:

(4)

(k=0~100),画出该离散波形。

%程序prog24.m

k=0:

1:

100;

x3=5*(0.8.^k).*cos(0.9*pi*k);

stem(x3);

波形:

3.采用fft函数对信号x3(k)进行频谱分析(N=128),在同一幅图中画出其幅频谱、相频谱和功率谱(功率谱=幅频谱平方/N)。

%程序prog25.m

x=0:

1:

20;N=128;

y1=abs(fft(x,N));

y2=angle(fft(x,N));

y3=(abs(fft(x,N))).^2;

subplot(221);stem(y1);

title('幅频谱');

subplot(222);stem(y2);

title('相频谱');

subplot(223);stem(y3);

title('功率谱');

波形:

*4.已知某LTI系统的频响特性如图所示,采用ifft函数求:

该系统的单位冲激响应h(t),并画出h(t)的波形。

1

H(jω)=|H(jω)|ejΦ(ω)=|H(j)|e-jω(-pi/3<ω

%程序prog26.m

w=-pi/3:

0.01*pi:

pi/3;

N1=ceil(200/3);

H=[zeros(1,N1)exp(-j*w)zeros(1,N1)];

h=ifft(H);

plot(fftshift(real(h)));

波形:

四、实验小结

1.

信号的频率是多少?

如果将其频率改成原来的100倍,原程序是否还能用,如果不能,采样频率该如何修正?

Fs=w/2*pi不能用了Fs>2fc

2.在对信号进行fft频谱分析后,其横坐标代表什么?

频率点

3.对本次实验的心得体会。

本次实验最大的收获就是发挥了组员之间的相互合作,在不到两个小时的时间里,做完了本次试验的全部内容。

综合实验三数字滤波器的应用设计

一、实验目的

1.掌握求解离散时间系统响应(滤波)的matlab实现方法。

2.掌握数字陷波器、数字谐振器的设计方法。

二、实验环境

1.WINDOWS2000,WINDOWSXP或WINDOWS98

2.MATLAB6.5以上

三、实验原理

1.一个N阶常系数线性差分方程表达式(见书p993-40式):

2.系统函数H(z)与X(z),Y(z)的关系为:

H(z)=Y(z)/X(z)。

3.H(z)零点定义为:

H(z)=0时的z;H(z)极点定义为:

H(z)分母为零。

4.本实验涉及的Matlab函数

1)求解差分方程(数字滤波):

y=filter(b,a,x)

其中:

x---输入信号;y---差分方程的解(滤波输出);b,a----输入/输出信号前的系数(也是H(z)分子/分母系数)。

2)画零极点图:

zplane(b,a,n)

其中:

b,a----H(z)分子/分母系数;n—点数。

3)求H(z)的频响特性H(ejw):

[H,w]=freqz(b,a,N)

其中:

b,a----H(z)分子/分母系数;N—点数;w---数字频率。

四、实验内容

1.数字陷波器

陷波器是一种简单的二阶IIR滤波器,其幅度响应在某一频率上为零,可用来消除某个频率分量,如:

滤除信号中由电源引起的50Hz工频干扰。

其系统函数为:

<1>

其中:

ω0=2πf0/fs---陷波数字频率(rad);f0---陷波频率(Hz);fs---取样频率(Hz);

r----常数。

实验要求:

编程实现以下功能:

1)设陷波频率f0=50Hz,取样频率fs=600Hz,r=0.9,画H(z)的幅频和相频特性。

2)画H(z)的零极点图,体会陷波原理。

3)利用该陷波器对信号:

x(n)=2*sin(2*pi*50/fs*n)+sin(2*pi*100/fs*n)(n=0~599)进行滤波,画出x(n)及滤波输出y(n)。

f0=50;fs=600;r=0.9;n=0:

599;

w0=2*pi*f0/fs;

b=[1-2*cos(w0)1];a=[1-2*r*cos(w0)r^2];

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

x=2*sin(2*pi*50/fs*n)+sin(2*pi*100/fs*n);

y=filter(b,a,x);

subplot(231);plot(w/pi,abs(H));

title('幅频特性');

subplot(232);plot(w/pi,angle(H));

title('相频特性');

subplot(233);zplane(b,a);

title('零极点图');

subplot(234);plot(y);

title('滤波输出');

subplot(235);plot(abs(fft(x)));

title('滤波前');

subplot(236);plot(abs(fft(y)));

title('滤波之后');

2.数字谐振器

谐振器如同LC并联谐振回路那样,在指定的谐振频率上信号达到最大,而在该频率之外急剧衰减。

其系统函数为:

<2>

其中:

ω0=2πf0/fs---谐振数字频率(rad);f0---谐振频率(Hz);fs---取样频率(Hz);

r----常数;

实验要求:

编程实现以下功能:

1)设ω0=π/3,r=0.99,画H(z)的幅频和相频特性。

2)画H(z)的零极点图,体会谐振原理。

3)利用该谐振器对信号:

x(n)=2*sin(pi/3*n)+sin(pi/6*n)(n=0~599)进行滤波,画出x(n)及滤波输出y(n)。

r=0.99;n=0:

599;

w0=pi/3;

b0=(1-r)*sqrt(1+r^2-2*r*cos(2*w0));

b=[b000];a=[1-2*r*cos(w0)r^2];

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

x=2*sin(pi/3*n)+sin(pi/6*n);

y=filter(b,a,x);

subplot(231);plot(w/pi,abs(H));

title('幅频特性');

subplot(232);plot(w/pi,angle(H));

title('相频特性');

subplot(233);zplane(b,a);

title('零极点图');

subplot(234);plot(y);

title('滤波输出');

subplot(235);plot(abs(fft(x)));

title('滤波前');

subplot(236);plot(abs(fft(y)));

title('滤波之后');

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

当前位置:首页 > 人文社科 > 文学研究

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1