利用 Matlab 软件的信号处理工具箱(Signal Processing Toolbox)中的专用函数来实现信号的基本运算。
包括 + - * 时移、翻转、展缩 运算
了解仿真基本的信号。
% sin() 产生正弦信号
% y=sin(x) x 是自变量 可看做时间向量
% plot() 画连续曲线图
% plot(x,y) 其中 x 是横轴 y 是纵轴 x, y 两个向量要求同样长度
% square() 产生 2π 为周期的方波。
% x=square(t) t 为时间向量 x 为输出 长度与 t 相同。
% sinc() 产生类似Sa(t) 其表达式为: sin(π * t) / π * t
% y=sinc(x),x 为自变量 y 为同长度的向量
% syms 定义符号变量
% syms var1,var2,...,varn var 表示变量
% sym 将字符或者数字转换为字符
% var=sym('var'); var 表示变量 为字符或者数字
% 1. 产生正弦波
t=(0:0.001:50); %在区间(0,50)等间隔 0.001 取点。
y= 2 * sin(2*pi*50*t) + 1;
subplot(5,2,1);
plot(t(1:50),y(1:50)) %画出 y 函数的曲线
title("正弦波");
% 2. 产生周期方波
t=0:0.01:10;
y=2 * square(4*pi*t) + 1;
subplot(5,2,3);
plot(t,y)
title("周期方波");
% 3. 产生 Sinc 函数
x=linspace(-5,5);%从-5 到 5 每间隔 1 取值,得到一维矩阵 x。
y=sinc(x);
subplot(5,2,5);
plot(x,y)
title("Sa(t)函数");
% 4. 用 matlab 的符号函数实现信号的时移、翻转、展缩
% 由 f(t)到 f(-at + b) (a > 0)步骤:
% 已知 f(t) = sin(t) / t ,试通过翻转、移位、展缩由 f(t)的波形得到 f(-2t + 3)的波形
syms t;
f=str2sym('sin(t)/t'); %定义符号函数 f(t)=sin(t)/t
f1=subs(f,t,t+3); %对 f 进行移位
f2=subs(f1,t,2*t); %对 f1 进行展缩
f3=subs(f2,t,-t); %对 f2 进行翻转
subplot(5,2,2);
fplot(f,[-8,8]); % fplot 是符号函数绘图命令
title("Sa(t) 函数");
subplot(5,2,4);
fplot(f1,[-8,8]);
title("Sa(t + 3) 函数");
subplot(5,2,6);
fplot(f2,[-8,8]);
title("Sa(2t + 3) 函数");
subplot(5,2,8);
fplot(f3,[-8,8]);
title("Sa(-2t + 3) 函数");
f4 = subs(f,t,-2*t+3);
subplot(5,2,7);
fplot(f3,[-8,8]);
title("Sa(t)一键移位");
% 5. 正弦信号和方波信号运算
t=(0:0.001:0.5); %在区间(0,0.5)等间隔 0.001 取点。
y1= 2 * sin(2*pi*50*t) + 1;
t=0:0.01:5;
y2=2 * square(4*pi*t) + 1;
subplot(5,2,9);
plot(t,y1+y2)
title("正弦信号和方波信号和运算");
t=(0:0.001:0.5); %在区间(0,0.5)等间隔 0.001 取点。
y1= 2 * sin(2*pi*50*t) + 1;
t=0:0.01:5;
y2=2 * square(4*pi*t) + 1;
subplot(5,2,10);
plot(t,y1 -y2)
title("正弦信号和方波信号差运算");