信号与系统实验:MATLAB代码部分

笔记部分在知乎,连接放这里https://zhuanlan.zhihu.com/p/669831633?icon-default.png?t=N7T8https://zhuanlan.zhihu.com/p/669831633?

目录

实验1:MATLAB语言上机操作实践

实验2:时域离散信号的产生

实验3:离散序列的基本运算

实验5:卷积的原理及应用

实验11:离散傅里叶级数(DFS)

实验1:MATLAB语言上机操作实践

P4 练习题

请在同一图形窗口用2×2子图轴系描绘下列函数波形:

  1. (1)f(t)=4e^{2t}(0<t<4)
  2. (2)f(t)=e^{-t}\cos(2\pi t)(0<t<3)
  3. (3)f(k)=k(0<k<10)
  4. (4)f(k)=k\sin(k)(-20<k<20)

注意:上述练习题中出现的乘除运算是数组运算还是矩阵运算?应使用什么运算符?

%%% Copyright(C) 2023
%%% Signals and Systems Homework
%%% @test 1:        MATLAB语言上机操作实践
%%% @Institution:   Department of Applied Geophysics, Sgip CSU
%%% @data:          2023/11/25 14:33

% clear
clc;
clear;

% definition
t1 = 0: 0.2: 4;
f1 = 4 .* exp(-2 .* t1);

t2 = 0: 0.05: 3;
f2 = exp(-t2) .* cos(2 .* pi .* t2);

t3 = 0: 1: 10;
f3 = t3;

t4 = 0: 0.2: 10;
f4 = t4 .* sin(t4);
% 应该使用元素乘法

% plot
figure('WindowState','maximized');

subplot(2, 2, 1);
plot(t1, f1);
xlabel('t');ylabel('f1(t)');

subplot(2, 2, 2);
plot(t2, f2);
xlabel('t');ylabel('f2(t)');

subplot(2, 2, 3);
plot(t3, f3);
xlabel('t');ylabel('f3(t)');

subplot(2, 2, 4);
plot(t4, f4);
xlabel('t');ylabel('f4(t)');

实验2:时域离散信号的产生

P17

编写程序,产生下列离散序列(用同一图形窗口):

  1. (1)f[n]=\delta [n](-3<n<4)
  2. (2)f[n]=u[n](-5<n<5)
  3. (3)f[n]=e^{(0.1+j1.6\pi)n}(0<n<16)(分实部和虚部做图)
  4. (4)f[n]=3\sin(\dfrac{n\pi}{4})(0<n<20)
  5. (5)f[n]=\dfrac{\sin(n/5)}{n/5}(-20<n<20)
%%% Copyright(C) 2023
%%% Signals and Systems Homework
%%% @test 2:        时域离散信号的产生
%%% @Institution:   Department of Applied Geophysics, Sgip CSU
%%% @data:          2023/11/29 15:31

% clear
clc;
clear;

% definition
n1 = -3: 4;
f1 = [zeros(1,3) 1 zeros(1,4)];

n2 = -5: 5;
f2 = [zeros(1,5) ones(1,6)];
 
n3 = 0: 16;
f3 = 0.1 .* exp((0.1 + 1i .* 0.6 .* pi) .* n3);

n4 = 0: 20;
f4 = 3 .* sin(1 ./ 4 .* pi .* n4);

n5 = -20: 20;
f5 = sin(n5 ./ 5) ./ n5 .* 5;

% plot
figure('WindowState','maximized');

subplot(2, 3, 1);
stem(n1,f1);
xlabel('n');ylabel('f1[n]');

subplot(2, 3, 2);
stem(n2, f2);
xlabel('n');ylabel('f2[n]');

subplot(2, 3, 3);
stem(n3, real(f3));
xlabel('n');ylabel('real f3[n]');

subplot(2, 3, 4);
stem(n3, imag(f3));
xlabel('n');ylabel('imag f3[n]');

subplot(2, 3, 5);
stem(n4, f4);
xlabel('n');ylabel('f4[n]');

subplot(2, 3, 6);
stem(n5, f5);
xlabel('n');ylabel('f5[n]');

实验3:离散序列的基本运算

P26

 四、实验任务

(2)用MATLAB实现下列信号序列

③已知x(n)=3cos(2πn/10),试显示x(n-3)和x(n+3)在0<n<20区间的波形。
④已知x1=e-n/16,x2(n)=5sin(2πn/10),试显示x1(n)×x2(n)在0<n<24区间的波形。

%%% Copyright(C) 2023
%%% Signals and Systems Homework
%%% @test 3:        离散序列的基本运算
%%% @Institution:   Department of Applied Geophysics, Sgip CSU
%%% @data:          2023/11/29 15:51

% clear
clc;
clear;

% definition
n1 = 0: 20;
x = 3 .* cos(2 .* pi .* n1 ./ 10);     
x1 = 3 .* cos(2 .* pi .* (n1 + 3) ./ 10); 
x2 = 3 .* cos(2 .* pi .* (n1 - 3) ./ 10);

n2 = 0: 24;
x3 = exp(n2 ./ 16);
x4 = 5 .* sin(2 .* pi .* n2 ./ 10);
x5 = x3 .* x4;

% plot
figure('WindowState','maximized');

subplot(2, 3, 1);
stem(n1, x1);
xlabel('n');ylabel('x[n+3]');

subplot(2, 3, 2);
stem(n1, x2);
xlabel('n');ylabel('x[n-3]');

subplot(2, 3, 3);
stem(n2, x5);
xlabel('n');ylabel('x1[n] × x2[n]');

实验5:卷积的原理及应用

P39

四、实验任务

(2)编写MATLAB程序,输出下列信号序列的卷积波形。

①f1(n)=d(n-1),f2(n)=u(n-2),(0≤n<10)
②f1(n)=u(n),f2(n)=e0.2nu(n),(0≤n<10)
③x(n)=sin(n/2),h(n)=(0.5)n,(-3≤n≤4π)

%%% Copyright(C) 2023
%%% Signals and Systems Homework
%%% @test 3:        卷积的原理及应用
%%% @Institution:   Department of Applied Geophysics, Sgip CSU
%%% @data:          2023/11/29 15:51

% clear
clc;
clear;

% definition
n1 = 0: 10;
f1 = [0 1 zeros(1,9)];
f2 = [zeros(1,2) ones(1,8)];
F1 = conv(f1, f2);

n2 = 0: 10;
f3 = [ones(1,11)];
f4 = exp(0.2 .* n2) .* f3;
F2 = conv(f4, f3);

n3 = -3: 4 * pi;
f5 = sin(n3 ./ 2);
h = 0.5 .^ n3;
F3 = conv(f5, h);

% plot
figure('WindowState','maximized');

subplot(2, 3, 1);
stem(F1);
xlabel('n');ylabel('f1[n] * f2[n]');

subplot(2, 3, 2);
stem(F2);
xlabel('n');ylabel('f1[n] * f2[n]');

subplot(2, 3, 3);
stem(F3);
xlabel('n');ylabel('f[n] * h[n]');

实验11:离散傅里叶级数(DFS)

P91

四 实验任务

(2)已知一个信号序列的主值为x(n)=[0,1,2,3,2,1,0],显示2个周期的信号序列波形。要求:
①用傅里叶级数变换求信号的幅度频谱和相位频谱,用图形表示。
②求傅里叶级数逆变换的图形,并与原信号图形进行比较。

(3)已知一个信号序列的主值为x(n)=R2(n),x'[n]=\sum^{\infty}_{r=-\infty}x[n+4r]。要求:
①显示x(n)和x'(n)图形。
②用傅里叶级数变换求x'(n) 的幅度和相位角,并显示图形。

%%% Copyright(C) 2023
%%% Signals and Systems Homework
%%% @test 3:        离散傅里叶级数
%%% @Institution:   Department of Applied Geophysics, Sgip CSU
%%% @data:          2023/12/03 23:43

% clear
clc;
clear;

% definition
    % question 1 %
xn = [0 1 2 3 2 1];
xxn = [xn xn];

X = fft(xxn);
absX = abs(X);
angleX = angle(X);

ix = ifft(X);

    % question 2 %
N2 = 4;

xn2 = [1 1 0 0];
xn2 = [xn2 xn2];

n2 = 0: 2 * N2-1;
k2 = 0: 2 * N2-1;

Xk2 = xn2 .* exp(-1i * 2 * pi ./ N2) .^ (n2 .* k2);
x2 = (Xk2 .* exp(1i * 2 * pi ./ N2) .^ (n2 .* k2)) ./ N2;

% plot
figure('WindowState','maximized');

subplot(2, 4, 1);
stem(xxn);
xlabel('n');ylabel('x[n]');

subplot(2, 4, 2);
plot(absX);
xlabel('omega');ylabel('|X(omega)|');

subplot(2, 4, 3);
plot(angleX);
xlabel('omega');ylabel('∠X(omega)')

subplot(2, 4, 4);
stem(ix);
xlabel('n');ylabel('x[n](IFFT)');

subplot(2, 4, 5);
stem(n2,xn2);
xlabel('n');ylabel('x[n]');

subplot(2, 4, 6);
stem(n2,abs(x2));

subplot(2, 4, 7);
stem(k2,abs(Xk2));
xlabel('omega');ylabel('|X(omega)|');

subplot(2, 4, 8);
stem(k2,angle(Xk2));
xlabel('omega');ylabel('∠X(omega)')

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

PourRevenir

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值