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提出了要求,以保證頻譜分析的精準度。