matlab(信号系统)
matlab(信号系统)
matlab的微分
matlab中的求微分格式为diff(f(x))
plot中的矢量长度必须相同(很重要)
解决方法:利用length和linspace函数对原来的自变量长度进行进行变换
关于matlab绘图的一些美化
-
在绘图时,我们使用了Matlab默认的参数,在菜单栏用‘另存为’功能将图保存为PNG格式的图片,相当于对屏幕进行硬拷贝。这张图的质量比较差:一、图像的分辨率很低,只有560x420像素;二、文字太小,看不清楚,Matlab默认的文字大小为10px;三、坐标轴和曲线比较细,整个图看上去相当单薄。好在Matlab提供了灵活、简便的方法,可修改图中各种参数的数值。
通过**set(gca, ‘fontsize’, 14);**,将坐标轴标签的字符大小从8px增加到14px;
通过**set(gca, ‘XMinorTick’, ‘on’);**等,设置X和Y轴的副标记(MinorTick);
通过**set(gca, ‘XGrid’, ‘on’);**等,显示坐标网格;
通过**set(gca, ‘LineWidth’, 1.5);**,将坐标轴的线宽由0.5px增加到1.5px;
通过设置’FontSize’,将标题的字符大小由10px增加到20px;
在plot时,通过设置’LineWidth‘,将线宽由0.5px增加到1.5px。
-
关于plot()
plot(x,y)画图
‘LineWidth’,线条宽度,最小是1
‘color’,线条颜色,同上
‘LineSpec’,这里直接表示线的形状,不用写’LineSpec’
‘MarkerSize’、’MarkerEdgeColor’、 ‘MarkerFaceColor’:如果线形使用Marker,可以调节大小、边界颜色、内部颜色
例如,
x=0:1/pi:2*pi;
y=sin(x);
plot(x,y,’–bo’,’LineWidth’,2,’color’,’blue’,’MarkerSize’,10,’MarkerEdgeColor’,’black’,’MarkerFaceColor’,’red’)
表示画一条如下图所示的正弦函数,’–bo’表示虚线、蓝色、采样点用圆圈标出。线形和点形以及颜色可以自由组合。
关于图注、图例、坐标轴、字体大小
命名横纵坐标
a=xlabel(‘Name of x axis’);b=ylabel(‘Name of y axis’);
设置标题
c=title(‘contents of your title’);
设置图例
d=legend(‘y1’,’y2’);
设置上述内容的位置、字体大小、粗细
set(a,’unit’,’normalized’,’Position’,[x,y],’FontSize’,number_fontsize,’FontName’,name_of_font_style)
set(a,’unit’,’normalized’,’Position’,[x,y,width,height],’FontSize’,number_fontsize,’FontName’,name_of_font_style,’LineWidth’,number_linewidth);
-
修饰代码
subplot(2,2,2) plot(t,f2) title('f2(t)') xlabel('t') ylabel('f2(t)')
-
自创函数实现离散数列卷积
1 |
|
1 |
|
一些函数的运用
linspace是Matlab中的均分计算指令,用于产生x1,x2之间的N点行线性的矢量。y = linspace(x1,x2,n) 生成 n 个点。这些点的间距为 (x2-x1)/(n-1)。
subplot是 MATLAB 中的 函数 ,是将多个图画到一个平面上的工具。 在matlab的命令窗口中输入doc subplot或者help subplot即可获得该函数的帮助信息。 subplot是 MATLAB 中的函数。 使用方法:subplot(m,n,p)或者subplot(m n p)。
dirac()函数,用于δ函数的表示。
heaviside()函数,用于阶跃函数的表示。
function C=convNew(A,B)
C=zeros(1,length(A)+length(B)-1);
i=1:length(A);
C=C+[zeros(1,i-1),A(i)*B,zeros(1,length(A)-i)];
end
单位脉冲impseq(n0,n1,n2);
M文件如下:
function x=impseq(n0,n1,n2)
n=n1:n2;
x=[(n-n0)==0];其中n0为delta=1处横坐标。
阶跃脉冲stepseq(n0,n1,n2);
M文件如下:
function [x,n]=stepseq(n0,n1,n2)
n=n1:n2;
x=[(n-n0)>=0];
傅里叶变换绘图
ft=sym(‘exp(-2*(t-1))*heaviside(t-1)’);
Fw=fourier(ft);
subplot(211),ezplot(abs(Fw)),grid on,title(‘幅度谱’)
phase=atan(imag(Fw)/real(Fw));
subplot(212),ezplot(phase);grid on,title(‘相位谱’)
ft=sym(‘exp(-2*abs(t-1))’);
Fw=fourier(ft);
subplot(211),ezplot(abs(Fw)),grid on,title(‘幅度谱’)
phase=atan(imag(Fw)/real(Fw));
subplot(212),ezplot(phase);grid on,title(‘相位谱’)