信号与系统课设笔记


MatLab在线

MATLAB (mathworks.com)

参考资料

利用MATLAB实现常用非周期时间信号的频谱和FT的性质(微分特性和卷积定理).doc (book118.com)

希腊字母Typora格式 - 知乎 (zhihu.com)

LaTeX——使用Typora编写基于LaTeX的数学公式_guikunchen的博客-CSDN博客

MatLab笔记

常用函数

rectpuls

生成一个矩形脉冲。

官方文档:

This MATLAB function returns a continuous, aperiodic, unity-height rectangular  pulse at the sample times indicated in array t, centered about t = 0 and with a   default width of 1.
y = rectpuls(t)
y = rectpuls(t,w)
即:此MATLAB函数在数组 t 所指示的采样时间处返回一个连续的,非周期的,单位高度的矩形脉冲,该脉冲以t = 0为中心,默认宽度为1。

Matlab中的rectpuls函数解析_wshwc的博客-CSDN博客

heaviside

阶跃函数

语法

H = heaviside(x)

说明

$$
H(x)=\left{\begin{aligned}
0,x<0\
\frac{1}{2},x=0\
1,x>0
\end{aligned}\right.
$$

exp

生成指数函数。

语法

Y = exp(X)

说明

Y = exp(X) 为数组 X 中的每个元素返回指数 e^X。对于复数元素 z= x+ iy,它返回以下复指数
$$
e^z=e^x(cos y+i sin y)
$$

sinc

生成抽样信号。

语法

Sat = sinc(t)

sawtooth

生成锯齿波或三角波

语法:

x = sawtooth(t)
x = sawtooth(t,width)

说明:

第一种调用方式,将产生周期为2π的锯齿波。以02π这个周期内为例,当t=0时,x=-1,当t=2π时,x=1。由此可见,在02π这个周期内,x(t)是关于t的以1/π为斜率的线段。

第二种调用方式中,width是0到1之间的标量。在0到2π×width区间内,x的值从-1线性变化到1;在2π×width~2π区间内,x的值又从1线性变化到-1。sawtooth(t,1)和sawtooth(t)是等价的。

fourier

语法:

fourier(f)
fourier(f,transVar)
fourier(f,var,transVar)

f-输入,可以是表达式、函数、向量或矩阵等
var-变量,一般为时间变量或空间变量,如果不设置该变量,一般使用函数中的符号变量作为默认值

transVar-转换变量,可以是符号变量,表达式,向量或矩阵,该变量通常称为“频率变量”,默认情况下,傅立叶使用ω,如果ω是f的自变量,则傅立叶使用ν。
$$
\mathcal{F}(\omega)=\int_{-\infty}^{+\infty}{f(x)e^{-i\omega x}dx}
$$

diff

求近似导数或求差分

语法:

Y = diff(X)
Y = diff(X,n)
Y = diff(X,n,dim)

说明

Y = diff(X) 计算沿大小不等于 1 的第一个数组维度的 X 相邻元素之间的差分:

  • 如果 X 是长度为 m 的向量,则 Y = diff(X) 返回长度为 m-1 的向量。Y 的元素是 X 相邻元素之间的差分。

    Y = [X(2)-X(1) X(3)-X(2) ... X(m)-X(m-1)]
  • 如果 X 是不为空的非向量 p×m 矩阵,则 Y = diff(X) 返回大小为 (p-1)×m 的矩阵,其元素是 X 的行之间的差分。

    Y = [X(2,:)-X(1,:); X(3,:)-X(2,:); ... X(p,:)-X(p-1,:)]
  • 如果 X 是 0×0 的空矩阵,则 Y = diff(X) 返回 0×0 的空矩阵。

Y = diff(X,n) 通过递归应用 diff(X) 运算符 n 次来计算第 n 个差分。在实际操作中,这表示 diff(X,2)diff(diff(X)) 相同。

Y = diff(X,n,dim) 是沿 dim 指定的维计算的第 n 个差分。dim 输入是一个正整数标量。

差分和近似导数 - MATLAB diff - MathWorks 中国

conv

卷积和多项式乘法

语法

w = conv(u,v)
w = conv(u,v,shape)

说明

w = conv(u,v) 返回向量 uv 的卷积。如果 uv 是多项式系数的向量,对其卷积与将这两个多项式相乘等效。

w = conv(u,v,shape) 返回如 shape 指定的卷积的分段。例如,conv(u,v,'same') 仅返回与 u 等大小的卷积的中心部分,而 conv(u,v,'valid') 仅返回计算的没有补零边缘的卷积部分。

卷积和多项式乘法 - MATLAB conv - MathWorks 中国

plot

绘制二维图像:

plot函数的基本调用格式为:
1、plot(y)
当y为向量时,是以y的分量为纵坐标,以元素序号为横坐标,用直线依次连接数据点,绘制曲线。若y为实矩阵,则按列绘制每列对应的曲线。
2、plot(x,y)
若y和x为同维向量,则以x为横坐标,y为纵坐标绘制连线图。若x是向量,y是行数或列数与x长度相等的矩阵,则绘制多条不同色彩的连线图,x被作为这些曲线的共同横坐标。若x和y为同型矩阵,则以x,y对应元素分别绘制曲线,曲线条数等于矩阵列数。
3、plot(x1,y1,x2,y2,……)
在此格式中,每对x,y必须符合plot(x,y)中的要求,不同对之间没有影响,命令将对每一对x,y绘制曲线。
以上三种格式中的x,y都可以是表达式。plot是绘制一维曲线的基本函数,但在使用此函数之前,须先定义曲线上每一点的x以及y坐标。

axis

控制坐标轴范围与样式

axis([XMIN XMAX YMIN YMAX ZMIN ZMAX]) 设置当前所绘图像的x轴、y轴和z轴的范围。

语法\功能

创建函数

Matlab程序设计(六)—-创建函数(function)_曾经爱过她的回眸的博客-CSDN博客

时域信号图像

常见的时间信号图像

门信号

门宽为2

t=-4:0.001:4;	%横坐标[-4,4],绘图每隔0.001取一点;本质为生成一个数组t[8000]
T=2;	%门宽
ft = rectplus(t,T);	%函数值,记录每个横坐标为t除的函数值
plot(t,ft);	%绘图
axis(-4,4,-0.5,1.5);	%设定坐标轴范围

指数信号

$$
f(t)=e^{at}
$$

例:
$$
f(t)=e^{2t}
$$

t=-1:0.001:5;
a=2;
ft = exp(a*t);
plot(t,ft);

正弦信号(余弦信号同理)

$$
f(t)=Asin(\omega t+\phi)
$$

例:
$$
f(t)=2sin(8\pi t+\frac{\pi}{6})
$$

A=2;
w=8*pi;
phi=pi/6
t=-5:0.001:5;
ft=A*sin(w*t+phi);
plot(t,ft);

看来MATLAB中pi即位常量π

抽样信号

$$
sinc(t)=Sa(t)=\frac{sin(\pi t)}{\pi t}
$$

例:

t=-5:0.001:5;
sat=sinc(t);
plot(t,sat);

三角信号:

例:

t=0:0.01:10*pi;
z=sawtooth(t,0);
plot(t,z);

傅里叶变换:

常见的非周期信号傅里叶变换

单边指数信号:

syms t;
%原函数
ft=exp(-2*t)*sym(heaviside(t));
%原函数图像
subplot(311);
fplot(ft);
%傅里叶变换
Fw=fourier(ft);
%幅度谱
subplot(312);
fplot(abs(Fw));
%相位谱
subplot(313);
fplot(atan(imag(Fw)/real(Fw)));

门信号:

syms t w;
%门信号,门宽为2
ht=sym(heaviside(t+1)-heaviside(t-1));
%信号图像
subplot(211);
fplot(ht);
axis([-2,2,-1,3]);
%傅里叶变换
Fw=fourier(ht,t,w);
%数据类型转换(不懂)
%FFw=maple("convert",Fw,"piecewise");
%门信号频谱图象
subplot(212);
fplot(Fw,[-30,30]);

抽样信号:

syms t;
%原函数
ft=sinc(t);
%原函数图像
subplot(211);
fplot(ft);
%傅里叶变换
Fw=fourier(ft);
%频谱
subplot(212);
fplot(abs(Fw));

FT性质:

常见非周期信号的FT性质举例

展宽:

时域展宽,频域压缩:
$$
f(at)\longleftrightarrow \frac{1}{|a|}\mathcal{F}(\frac{\omega}{a})
$$

syms t;
%原函数
f1t=sym(heaviside(t+1)-heaviside(t-1));
subplot(221);
fplot(f1t);
F1w=fourier(f1t);
subplot(223);
fplot(F1w);
axis([-10,10,-2,5]);
%展宽
f2t=sym(heaviside(t*0.5+1)-heaviside(t*0.5-1));
subplot(222);
fplot(f2t);
F2w=fourier(f2t);
subplot(224);
fplot(F2w);
axis([-10,10,-2,5]);

反褶:

$$
f(t)\longrightarrow f(-t),\mathcal{F}(\omega)\longrightarrow \mathcal{F}(-\omega)=\mathcal{F}^{*}(\omega)
$$

没找到频域函数非偶函数的例子…现象不好看…

syms t;
%原函数时域及其频域图像
f1t=exp(-2*t)*heaviside(t);
F1w=fourier(f1t);
subplot(221);
fplot(f1t);
subplot(223);
fplot(F1w);
%反褶后函数时域及其频域图像
f2t=exp(2*t)*heaviside(-t);
F2w=fourier(f2t);
subplot(222);
fplot(f2t);
subplot(224);
fplot(F2w);

微分:

三角波的时域波形及其微分波形

h=0.01;
t=0:h:10*pi;
%三角波
z=sawtooth(t,0.5);
subplot(211);
plot(t,z);
%三角波微分
d=diff(z)*(1/h);
subplot(212);
plot(t(1:end-1),d)%求微分后数组长度减少一位
axis([0,35,-1,1]);

卷积:

以矩形脉冲与单边指数信号卷积为例:

t=-1:0.01:5;
%矩形脉冲
f1=((t>0)-(t>3));
%单边指数信号
f2=exp(-t).*(t>0);
%卷积
f3=conv(f1,f2);f3=f3*0.01;
%卷积后数组容量翻倍,重新计算画图范围
k=2*length(t)-1;
k3=linspace(2*t(1),2*t(end),k);
%画图
subplot(311)
plot(t,f1);
subplot(312)
plot(t,f2)
subplot(313)
plot(k3,f3);

时域卷积定理:

$$
\mathcal{F}[f(x)*g(x)]=\mathcal{F}[f(x)]\cdot \mathcal{F}[g(x)]
$$

两门宽为2的门信号卷积

dt=0.01;
t=-2:dt:2;
ft=heaviside(t+1)-heaviside(t-1);
%们信号图像
subplot(221);
plot(t,ft);
%门信号卷积图像
y=dt*conv(ft,ft);
n=linspace(t(1)*2 , t(end)*2 , 2*length(t)-1);
subplot(222);
plot(n,y);
%两函数频域图像
W1=2*pi*5;
N=200;
k=linspace(-N,N);
W=k*W1/N;
Fw=ft*exp(-j*t'*W)*dt;
Yw=y*exp(-j*n'*W)*dt;

subplot(223);
plot(W,abs(Fw));

subplot(224);
plot(W,abs(Fw).*abs(Fw));

频域卷积定理:

若有:
$$
\mathcal{F}[f(x)]=F(\omega)\
\mathcal{F}[g(x)]=G(\omega)
$$
则:
$$
\mathcal{F}[f(x)g(x)]=\frac{1}{2\pi}[F(\omega)*G(\omega)]
$$

三角波与余弦函数相乘

dt=0.001;
t=-2:dt:2;
ut=heaviside(t+0.5)-heaviside(t-0.5);
%三角波
fn=dt*conv(ut,ut);
n=linspace(2*t(1) , 2*t(end) , 2*length(t)-1);
%三角波图像
subplot(231);
plot(n,fn);
%余弦信号
gn=cos(10*pi*n);
subplot(232);
plot(n,gn);
axis([-1,1,-1,1])
%余弦调频信号,三角波与余弦信号相乘
hn=fn.*gn;
subplot(233);
plot(n,hn);
%三角波 余弦信号的傅里叶变换
W1=2*pi*10;
N=200;
k=-N:N;
W=k*W1/N;
Fw=fn*exp(-j*n'*W)*dt;
Gw=gn*exp(-j*n'*W)*dt;
%三角波 余弦信号的频域图像
subplot(234);
plot(W/pi,abs(Fw));
subplot(235);
plot(W/pi,abs(Gw));
%Fw与Gw卷积结果乘1/2pi
Hw=conv(Fw,Gw)/(2*pi);
subplot(236);
k1=-2*N:2*N;
W11=2*pi*k1/(N*0.1);
plot(W11/pi,abs(Hw));

文章作者: Cambria
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Cambria !
评论
  目录