实验1 MATLAB应用入门和基本信号的产生

目录

MATLAB数据及运算

例1 用Matlab编程实现信号 ,并绘制出相应波形。

例2 用Matlab表示离散序列 ,并绘制图形。

MATLAB绘图

多窗口绘制三个函数的曲线

一个图形窗口分子图绘制

音频文件数据的读取、播放和保存

实验任务

在Matlab平台上编程实现下面的连续信号

在Matlab平台上编程实现下面的离散信号

MATLAB数据及运算

已知a=[1 2 3;4 5 6;7 5 4],b=[3 5 3;6 8 7;9 5 7]。试编程计算a+b、a-b、a*b、a/b、a\b、a.*b、a./b、a.\b。比较并分析结果。

1
2
3
4
5
clc;
close;
close all;
clear;
clear all;
1
2
a=[1 2 3;4 5 6;7 5 4];
b=[3 5 3;6 8 7;9 5 7];
1
2
3
4
5
6
7
8
9
10
11
12
c1=a+b;
c2=a-b;
c3=a*b;
c4=a.*b;
c5=a/b;
c6=a*inv(b);
c8=a\b;
c9=inv(a)*b;
c10=a.\b;
c11=a./b;
c12=a^2;
c13=a.^2;

例1 用Matlab编程实现信号 ,并绘制出相应波形。

1
2
3
t = -100:1:100;
f = sin(t/(2*pi));
plot(t,f)
figure_0.png

例2 用Matlab表示离散序列 ,并绘制图形。

1
2
3
k = 0:4;
x = [1 1 1 1 1];
stem(k,x)
figure_1.png

MATLAB绘图

多窗口绘制三个函数的曲线

1
2
3
4
5
6
7
8
9
10
11
12
13
t=0:pi/100:2*pi; % 定义自变量

y1=exp(-0.5*t); % 定义函数

y2=sin(2*pi*t);

y3=y1.*y2; % 定义函数 exp(-0.5t)*sin(2pi*t)

figure(1); % 建立图形窗口1

plot(t/pi,y1) % 画图

title('exp(-0.5t)'); % 标注图形名称
figure_2.png
1
2
3
4
5
6

figure(2); % 建立图形窗口2

plot(t/pi,y2);

title('sin(2pi*t)');
figure_3.png
1
2
3
4
5
6

figure(3);

plot(t/pi,y3);

title('exp(-0.5t)*sin(2pi*t)');
figure_4.png

一个图形窗口分子图绘制

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
t=0:pi/100:2*pi; % 定义自变量

y1=exp(-0.5*t); % 定义函数

y2=sin(2*pi*t);

y3=y1.*y2; % 定义函数 exp(-0.5t)*sin(2pi*t)

subplot(3,1,1); % 把图形窗口分成3*1个绘图区,绘制第一张子图
plot(t/pi,y1); % 画图
title('指数函数'); % 标注图形名称
xlabel('时间');
ylabel('exp(-0.5t)');

subplot(3,1,2); % 绘制第二张子图
plot(t/pi,y2);
title('正弦函数');
xlabel('时间');
ylabel('sin(2pi*t)');

subplot(3,1,3) % 绘制第三张子图
plot(t/pi,y3);
title('衰减振荡');
xlabel('时间');
ylabel('exp(-0.5t)*sin(2pi*t)');

grid on; % 加网格线
figure_5.png

音频文件数据的读取、播放和保存

![](".\2024-2025(1)《信号处理实验》资料(请拷贝到u盘中,每次试验带到实验室)\实验中用到的一些函数和音频图像文件\motherland.wav")

1
2
3
4
5
6
7
clear;
%%matlab2024%%
%文件读取的音频数据放在xn中,fs为filename.wav的采样频率
[xn,fs] = audioread(".\2024-2025(1)《信号处理实验》资料(请拷贝到u盘中,每次试验带到实验室)\实验中用到的一些函数和音频图像文件\motherland.wav");
%将xn中的数据变成声音播放,fs为采样频率,不写fs,默认的采样频率为8192Hz。
% audiowrite('motherland.wav', xn, fs)

实验任务

在Matlab平台上编程实现下面的连续信号

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
clear;

t1 = -10:0.01:10;
t2 = -3 :0.01: 3;
y1 = sinc(t1);
y2 = heaviside(t2+1)-heaviside(t2-1);
%y2 = rectpuls(t2,2);

y3 = 0.5*exp(0.5*t1);
y4 = sin(2*pi*t1);
y5 = y3.*y4;

subplot(3,1,1); % 把图形窗口分成3*1个绘图区,绘制第一张子图
plot(t1,y1); % 画图
title('函数1'); % 标注图形名称
xlabel('时间');
ylabel('Sa(t)');

subplot(3,1,2); % 绘制第二张子图
plot(t2,y2);
title('函数2');
xlabel('时间');
ylabel('g_2(t)');

subplot(3,1,3) % 绘制第三张子图
plot(t1,y5);
title('函数3');
xlabel('时间');
ylabel('0.5*exp(0.5*t)*sin(2*pi*t)');

grid on; % 加网格线
figure_6.png

在Matlab平台上编程实现下面的离散信号

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
clc;
clear;
k1 = -2:2;
k2 = 0:5;
k3 = 0:59;
y1 = [0 0 1 0 0];
%y2 = heaviside(k2+2)-heaviside(k2-2);
y2 = [1 1 1 1 0 0];
y3 = 1.1.^(k3).*sin(0.05*pi*k3);
subplot(3,1,1);
stem(k1,y1); % 画图
title('函数1'); % 标注图形名称
xlabel('时间');
ylabel('δ(k)');

subplot(3,1,2); % 绘制第二张子图
stem(k2,y2);
title('函数2');
xlabel('时间');
ylabel('g_2(k)');

subplot(3,1,3) % 绘制第三张子图
stem(k3,y3);
title('函数3');
xlabel('时间');
ylabel('1.1^k*sin(0.05*pi*k)');

grid on; % 加网格线

figure_7.png