A. matlab软件有哪些常用指令有哪些专用工具箱
matlab命令
一、常用对象操作:除了一般windows窗口的常用功能键外。
1、!dir 可以查看当前工作目录的文件。 !dir& 可以在dos状态下查看。
2、who 可以查看当前工作空间变量名, whos 可以查看变量名细节。
3、功能键:
功能键 快捷键 说明
方向上键 Ctrl+P 返回前一行输入
方向下键 Ctrl+N 返回下一行输入
方向左键 Ctrl+B 光标向后移一个字符
方向右键 Ctrl+F 光标向前移一个字符
Ctrl+方向右键 Ctrl+R 光标向右移一个字符
Ctrl+方向左键 Ctrl+L 光标向左移一个字符
home Ctrl+A 光标移到行首
End Ctrl+E 光标移到行尾
Esc Ctrl+U 清除一行
Del Ctrl+D 清除光标所在的字符
Backspace Ctrl+H 删除光标前一个字符
Ctrl+K 删除到行尾
Ctrl+C 中断正在执行的命令
4、clc可以命令窗口显示的内容,但并不清除工作空间。
二、函数及运算
1、运算符:
+:加, -:减, *:乘, /: 除, \:左除 ^: 幂,‘:复数的共轭转置, ():制定运算顺序。
2、常用函数表:
sin( ) 正弦(变量为弧度)
Cot( ) 余切(变量为弧度)
sind( ) 正弦(变量为度数)
Cotd( ) 余切(变量为度数)
asin( ) 反正弦(返回弧度)
acot( ) 反余切(返回弧度)
Asind( ) 反正弦(返回度数)
acotd( ) 反余切(返回度数)
cos( ) 余弦(变量为弧度)
exp( ) 指数
cosd( ) 余弦(变量为度数)
log( ) 对数
acos( ) 余正弦(返回弧度)
log10( ) 以10为底对数
acosd( ) 余正弦(返回度数)
sqrt( ) 开方
tan( ) 正切(变量为弧度)
realsqrt( ) 返回非负根
tand( ) 正切(变量为度数)
abs( ) 取绝对值
atan( ) 反正切(返回弧度)
angle( ) 返回复数的相位角
atand( ) 反正切(返回度数)
mod(x,y) 返回x/y的余数
sum( ) 向量元素求和
3、其余函数可以用help elfun和help specfun命令获得。
4、常用常数的值:
pi 3.1415926…….
realmin 最小浮点数,2^-1022
i 虚数单位
realmax 最大浮点数,(2-eps)2^1022
j 虚数单位
Inf 无限值
eps 浮点相对经度=2^-52
NaN 空值
三、数组和矩阵:
1、构造数组的方法:增量发和linspace(first,last,num)first和last为起始和终止数,num为需要的数组元素个数。
2、构造矩阵的方法:可以直接用[ ]来输入数组,也可以用以下提供的函数来生成矩阵。
ones( ) 创建一个所有元素都为1的矩阵,其中可以制定维数,1,2….个变量
zeros() 创建一个所有元素都为0的矩阵
eye() 创建对角元素为1,其他元素为0的矩阵
diag() 根据向量创建对角矩阵,即以向量的元素为对角元素
magic() 创建魔方矩阵
rand() 创建随机矩阵,服从均匀分布
randn() 创建随机矩阵,服从正态分布
randperm() 创建随机行向量
horcat C=[A,B],水平聚合矩阵,还可以用cat(1,A,B)
vercat C=[A;B],垂直聚合矩阵, 还可以用cat(2,A,B)
repmat(M,v,h) 将矩阵M在垂直方向上聚合v次,在水平方向上聚合h次
blkdiag(A,B) 以A,和B为块创建块对角矩阵
length 返回矩阵最长维的的长度
ndims 返回维数
numel 返回矩阵元素个数
size 返回每一维的长度,[rows,cols]=size(A)
reshape 重塑矩阵,reshape(A,2,6),将A变为2×6的矩阵,按列排列。
rot90 旋转矩阵90度,逆时针方向
fliplr 沿垂轴翻转矩阵
flipud 沿水平轴翻转矩阵
transpose 沿主对角线翻转矩阵
ctranspose 转置矩阵,也可用A’或A.’,这仅当矩阵为复数矩阵时才有区别
inv 矩阵的逆
det 矩阵的行列式值
trace 矩阵对角元素的和
norm 矩阵或矢量的范数,norm(a,1),norm(a,Inf)…….
normest 估计矩阵的最大范数矢量
chol 矩阵的cholesky分解
cholinc 不完全cholesky分解
lu LU分解
luinc 不完全LU分解
qr 正交分解
kron(A,B) A为m×n,B为p×q,则生成mp×nq的矩阵,A的每一个元素都会乘上B,并占据p×q大小的空间
rank 求出矩阵的刺
pinv 求伪逆矩阵
A^p 对A进行操作
A.^P 对A中的每一个元素进行操作
四、数值计算
1、线性方程组求解
(1)AX=B的解可以用X=A\B求。XA=B的解可以用X= A/B求。如果A是m×n的矩阵,当m=n时可以找到唯一解,m<n,不定解,解中至多有m个非零元素。如果m>n,超定系统,至少找到一组解。如果A是奇异的,且AX=B有解,可以用X=pinv(A)×B返回最小二乘解
(2)AX=b, A=L×U,[L,U]=lu(A), X=U\(L\b),即用LU分解求解。
(3)QR(正交)分解是将一矩阵表示为一正交矩阵和一上三角矩阵之积,A=Q×R[Q,R]=chol(A), X=Q\(U\b)
(4)cholesky分解类似。
2、特征值
D=eig(A)返回A的所有特征值组成的矩阵。[V,D]=eig(A),还返回特征向量矩阵。
3、A=U×S×UT,[U,S]=schur(A).其中S的对角线元素为A的特征值。
4、多项式Matlab里面的多项式是以向量来表示的,其具体操作函数如下:
conv 多项式的乘法
deconv 多项式的除法,【a,b】=deconv(s),返回商和余数
poly 求多项式的系数(由已知根求多项式的系数)
polyeig 求多项式的特征值
Polyfit(x,y,n) 多项式的曲线拟合,x,y为被拟合的向量,n为拟合多项式阶数。
polyder 求多项式的一阶导数,polyder(a,b)返回ab的导数
[a,b]=polyder(a,b)返回a/b的导数。
polyint 多项式的积分
polyval 求多项式的值
polyvalm 以矩阵为变量求多项式的值
resie 部分分式展开式
roots 求多项式的根(返回所有根组成的向量)
注:用ploy(A)求出矩阵的特征多项式,然后再求其根,即为矩阵的特征值。
5、插值常用的插值函数如下:
griddata 数据网格化合曲面拟合
Griddata3 三维数据网格化合超曲面拟合
interp1 一维插值(yi=interp1(x,y,xi,’method’)Method=nearest/linear/spline/pchip/cubic
Interp2 二维插值zi=interp1(x,y,z,xi,yi’method’),bilinear
Interp3 三维插值
interpft 用快速傅立叶变换进行一维插值,help fft。
mkpp 使用分段多项式
spline 三次样条插值
pchip 分段hermit插值
6、函数最值的求解
fminbnd(‘f’,x1,x2,optiset(,))求f在 x1和x2之间的最小值。Optiset选项可以有‘Display’+‘iter’/’off’/’final’,分别表示显示计算过程/不显示/只显示最后结果。fminsearch求多元函数的最小值。fzero(‘f’,x1)求一元函数的零点。X1为起始点。同样可以用上面的选项。
五、图像绘制:
1、基本绘图函数
plot 绘制二维线性图形和两个坐标轴
plot3 绘制三维线性图形和两个坐标轴
fplot 在制定区间绘制某函数的图像。fplot(‘f’,区域,线型,颜色)
loglog 绘制对数图形及两个坐标轴(两个坐标都为对数坐标)semilogx 绘制半对数坐标图形
semilogy 绘制半对数坐标图形
2、线型: 颜色 线型
y 黄色 . 圆点线 v 向下箭头
g 绿色 -. 组合 > 向右箭头
b 蓝色 + 点为加号形 < 向左箭头
m 红紫色 o 空心圆形 p 五角星形
c 蓝紫色 * 星号 h 六角星形
w 白色 . 实心小点 hold on 添加图形
r 红色 x 叉号形状 grid on 添加网格
k 黑色 s 方形 - 实线
d 菱形 -- 虚线 ^ 向上箭头
3、可以用subplot(3,3,1)表示将绘图区域分为三行三列,目前使用第一区域。此时如要画不同的图形在一个窗口里,需要hold on。
B. matlab有什么工具箱可以做快速fft变换的 求
matlab自带fft函数
C. 如何在matlab的powergui里面进行fft分析
1、在命令行窗口,输入如下命令:load sunspot.datyear = sunspot(:,1);relNums =sunspot(:,2);
plot(year,relNums)title('Sunspot Data')。

D. matlab中fft()函数是什么意思
FFT(快速傅里叶变换)是一种实现DFT(离散傅里叶变换)的快速算法,是利用复数形式的离散傅里叶变换来计算实数形式的离散傅里叶变换,matlab中的fft()函数是实现该算法的实现。
MATLAB它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。
快速傅里叶变换, 即利用计算机计算离散傅里叶变换(DFT)的高效、快速计算方法的统称,简称FFT。快速傅里叶变换是1965年由J.W.库利和T.W.图基提出的。采用这种算法能使计算机计算离散傅里叶变换所需要的乘法次数大为减少,特别是被变换的抽样点数N越多,FFT算法计算量的节省就越显著。

(4)matlabfft工具箱扩展阅读:
matlab优势特点:
1、高效的数值计算及符号计算功能,能使用户从繁杂的数学运算分析中解脱出来;
2、具有完备的图形处理功能,实现计算结果和编程的可视化;
3、友好的用户界面及接近数学表达式的自然化语言,使学者易于学习和掌握;
4、功能丰富的应用工具箱(如信号处理工具箱、通信工具箱等) ,为用户提供了大量方便实用的处理工具。
参考资料来源:
网络-快速傅里叶变换
网络-MATLAB
E. matlab中是否有计算分数阶傅里叶变换的工具箱
用MATLAB 实现傅里叶变换: 用户任意输入一个函数,然后,输出函数的傅里叶变换函数,然后输出振幅频率 。 x=sin(2*pi*t); %任意输入一个函数。 y=fft(x); %傅里叶变换函数。 plot(abs(y)); %振幅频率。
F. matlab里有什么工具箱,可以用FFT(快速傅立叶变换)做频谱分析
1、采样数据导入Matlab 。
采样数据的导入至少有三种方法。
第一就是手动将数据整理成Matlab支持的格式,这种方法仅适用于数据量比较小的采样。
第二种方法是使用Matlab的可视化交互操作,具体操作步骤为:File --> Import Data,然后在弹出的对话框中找到保存采样数据的文件,根据提示一步一步即可将数据导入。这种方法适合于数据量较大,但又不是太大的数据。
第三种方法,使用文件读入命令。数据文件读入命令有textread、fscanf、load等,如采样数据保存在txt文件中,则推荐使用 textread命令。如[a,b]=textread('data.txt','%f%*f%f'); 这条命令将data.txt中保存的数据三个三个分组,将每组的第一个数据送给列向量a,第三个数送给列向量b,第二个数据丢弃。命令类似于C语言,详细可查看其帮助文件。文件读入命令录入采样数据可以处理任意大小的数据量,且录入速度相当快,一百多万的数据不到20秒即可录入。
2、对采样数据进行频谱分析 。
频谱分析自然要使用快速傅里叶变换FFT了,对应的命令即 fft ,简单使用方法为:Y=fft(b,N),其中b即是采样数据,N为fft数据采样个数。一般不指定N,即简化为Y=fft(b)。Y即为FFT变换后得到的结果,与b的元素数相等,为复数。以频率为横坐标,Y数组每个元素的幅值为纵坐标,画图即得数据b的幅频特性;以频率为横坐标,Y数组每个元素的角度为纵坐标,画图即得数据b的相频特性。典型频谱分析M程序举例如下: clc fs=100;
t=[0:1/fs:100];
N=length(t)-1;%减1使N为偶数 %频率分辨率F=1/t=fs/N
p=1.3*sin(0.48*2*pi*t)+2.1*sin(0.52*2*pi*t)+1.1*sin(0.53*2*pi*t)... +0.5*sin(1.8*2*pi*t)+0.9*sin(2.2*2*pi*t);
%上面模拟对信号进行采样,得到采样数据p,下面对p进行频谱分析
figure(1) plot(t,p); grid on
title('信号 p(t)'); xlabel('t') ylabel('p') Y=fft(p);
magY=abs(Y(1:1:N/2))*2/N; f=(0:N/2-1)'*fs/N; figure(2)
%plot(f,magY);
h=stem(f,magY,'fill','--');
set(h,'MarkerEdgeColor','red','Marker','*') grid on
title('频谱图 (理想值:[0.48Hz,1.3]、[0.52Hz,2.1]、[0.53Hz,1.1]、[1.8Hz,0.5]、[2.2Hz,0.9]) '); xlabel('f (Hz)') ylabel('幅值')
对于现实中的情况,采样频率fs一般都是由采样仪器决定的,即fs为一个给定的常数;另一方面,为了获得一定精度的频谱,对频率分辨率F有一个人为的规定,一般要求F<0.01,即采样时间ts>100秒;由采样时间ts和采样频率fs即可决定采样数据量,即采样总点数N=fs*ts。这就从理论上对采样时间ts和采样总点数N提出了要求,以保证频谱分析的精准度。
G. matlab中fftshift是什么意思
在matlab中,经过fft变换后,数据的频率范围是从[0,fs]排列的。而一般,我们在画图或者讨论的时候,是从[-fs/2,fs/2]的范围进行分析。因此,需要将经过fft变换后的图像的[fs/2,fs]部分移动到[-fs/2,0]这个范围内。
而fftshift就是完成这个功能。通常,如果想得到所见的中间是0频的图像,经过fft变换后,都要再经过fftshift这个过程。
MATLAB由一系列工具组成。这些工具方便用户使用MATLAB的函数和文件,其中许多工具采用的是图形用户界面。包括MATLAB桌面和命令窗口、历史命令窗口、编辑器和调试器、路径搜索和用于用户浏览帮助、工作空间、文件的浏览器。
随着MATLAB的商业化以及软件本身的不断升级,MATLAB的用户界面也越来越精致,更加接近Windows的标准界面,人机交互性更强,操作更简单。而且新版本的MATLAB提供了完整的联机查询、帮助系统,极大的方便了用户的使用。

(7)matlabfft工具箱扩展阅读
fftshift函数详解:
1)实信号fft的结果前半部分对应[0, fs/2]是正频率的结果,后半部分对应[ -fs/2, 0]是负频率的结果。大于fs/2的部分的频谱实际上是实信号的负频率加fs的结果。故要得到正确的结果,只需将视在频率减去fs即可得到频谱对应的真实负频率;
2)如果实信号fft的绘图频率f从[-fs/2, fs/2],并且没有fftshift,则fft正频谱对应f在[0, fs/2]的结果将混叠到(f - fs/2)的位置;
3)如果要让实信号fft的结果与[-fs/2, fs/2]对应,则要fft后fftshift一下即可,fftshift的操作是将fft结果以fs/2为中心左右互换。
H. Matlab中fft的使用
直接用X1=fft(x1,2048);也是可以的。但是,这两种语句,处理的结果是不同的。
现程序会在-2*pi,0,2*pi三处附近出现信号波形,而X1=fft(x1,2048);语句只在-2*pi,2*pi两处出现波形,你可试试。
另外,把plot(w,abs(X1));改为plot(w,X1);更清楚。
I. matlab中fftshift是什么意思
fftshift的作用正是让正半轴部分和负半轴部分的图像分别关于各自的中心对称。因为直接用fft得出的数据与频率不是对应的,fftshift可以纠正过来
以下是Matlab的帮助文件中对fftshift的说明:
Y = fftshift(X) rearranges the outputs of fft, fft2, and fftn by moving the zero-frequency component to the center of the array. It is useful for visualizing a Fourier transform with the zero-frequency component in the middle of the spectrum. For vectors, fftshift(X) swaps the left and right halves of X.
例子如下:
clear;
clc;
t=0:0.001:2;
n=2001;
Fs=1000;
Fc=200;
x=cos(2*pi*Fc*t);
y1=fft(x);
y2=fftshift(y1);
f=(0:2000)*Fs/n-Fs/2;
hold on;
plot(f,abs(y1),'r')
plot(f,abs(y2),'b')
J. 用matlab进行频谱分析应该用什么工具箱
1、采样数据导入matlab
。
采样数据的导入至少有三种方法。
第一就是手动将数据整理成matlab支持的格式,这种方法仅适用于数据量比较小的采样。
第二种方法是使用matlab的可视化交互操作,具体操作步骤为:file
-->
import
data,然后在弹出的对话框中找到保存采样数据的文件,根据提示一步一步即可将数据导入。这种方法适合于数据量较大,但又不是太大的数据。
第三种方法,使用文件读入命令。数据文件读入命令有textread、fscanf、load等,如采样数据保存在txt文件中,则推荐使用
textread命令。如[a,b]=textread('data.txt','%f%*f%f');
这条命令将data.txt中保存的数据三个三个分组,将每组的第一个数据送给列向量a,第三个数送给列向量b,第二个数据丢弃。命令类似于c语言,详细可查看其帮助文件。文件读入命令录入采样数据可以处理任意大小的数据量,且录入速度相当快,一百多万的数据不到20秒即可录入。
2、对采样数据进行频谱分析
。
频谱分析自然要使用快速傅里叶变换fft了,对应的命令即
fft
,简单使用方法为:y=fft(b,n),其中b即是采样数据,n为fft数据采样个数。一般不指定n,即简化为y=fft(b)。y即为fft变换后得到的结果,与b的元素数相等,为复数。以频率为横坐标,y数组每个元素的幅值为纵坐标,画图即得数据b的幅频特性;以频率为横坐标,y数组每个元素的角度为纵坐标,画图即得数据b的相频特性。典型频谱分析m程序举例如下:
clc
fs=100;
t=[0:1/fs:100];
n=length(t)-1;%减1使n为偶数
%频率分辨率f=1/t=fs/n
p=1.3*sin(0.48*2*pi*t)+2.1*sin(0.52*2*pi*t)+1.1*sin(0.53*2*pi*t)...
+0.5*sin(1.8*2*pi*t)+0.9*sin(2.2*2*pi*t);
%上面模拟对信号进行采样,得到采样数据p,下面对p进行频谱分析
figure(1)
plot(t,p);
grid
on
title('信号
p(t)');
xlabel('t')
ylabel('p')
y=fft(p);
magy=abs(y(1:1:n/2))*2/n;
f=(0:n/2-1)'*fs/n;
figure(2)
%plot(f,magy);
h=stem(f,magy,'fill','--');
set(h,'markeredgecolor','red','marker','*')
grid
on
title('频谱图
(理想值:[0.48hz,1.3]、[0.52hz,2.1]、[0.53hz,1.1]、[1.8hz,0.5]、[2.2hz,0.9])
');
xlabel('f
(hz)')
ylabel('幅值')
对于现实中的情况,采样频率fs一般都是由采样仪器决定的,即fs为一个给定的常数;另一方面,为了获得一定精度的频谱,对频率分辨率f有一个人为的规定,一般要求f<0.01,即采样时间ts>100秒;由采样时间ts和采样频率fs即可决定采样数据量,即采样总点数n=fs*ts。这就从理论上对采样时间ts和采样总点数n提出了要求,以保证频谱分析的精准度。