⑴ matlab下載方式及地址
this is the matlab of R 2013a ,the seriels number is in the install file
⑵ 求wigner ville 分布的程序,要fortran or c寫的。已附上matlab程序,轉換也成
if (nargin .eq. 0) then
error('At least one parameter required')
end if
xrow = size(x,1)
xcol = size(x,2)
if (nargin .eq. 1) then
t=1:xrow
N=xrow
trace=0
elseif (nargin .eq. 2) then
N=xrow
trace=0
elseif (nargin .eq. 3) then
trace = 0
end if
if (N<0) then
error('N must be greater than zero')
end if
trow = size(t,1)
tcol = size(t,2)
if ((xcol.eq.0).or.(xcol>2)) then
error('X must have one or two columns')
elseif (trow.neq.1) then
error('T must only have one row')
elseif (2^nextpow2(N).neq.N) then
print*,'For a faster computation, N should be a power of two'
end if
tfr= 0
if (trace .neq. 0) then
print*,'Wigner-Ville distribution'
end if
do icol=1,tcol,
ti= t(icol)
taumax=min([ti-1,xrow-ti,round(N/2)-1])
tau=-taumax:taumax
indices= rem(N+tau,N)+1
tfr(indices,icol) = x(ti+tau,1) * conj(x(ti-tau,xcol))
tau=round(N/2)
if (ti<=xrow-tau)&(ti>=tau+1) then
tfr(tau+1,icol) = 0.5 * (x(ti+tau,1) * conj(x(ti-tau,xcol)) + ...
x(ti-tau,1) * conj(x(ti+tau,xcol)))
end if
if (trace .neq. 0) then
disprog(icol,tcol,10)
end if
end do
tfr= fft(tfr)
if (xcol.eq.1) then
tfr=real(tfr)
end if
if (nargout.eq.0) then
tfrqview(tfr,x,t,'tfrwv')
elseif (nargout.eq.3) then
f=(0.5*(0:N-1)/N)'
end if
說明:還有幾個MATLAB自帶的函數我沒有改,比如error, tfrqview,基本都是顯示輸出的函數,你要自己改一下。
⑶ matlab有emd函數嗎
沒有的,但是可以用matlab的時頻工具箱,工具箱下載地址:http://tftb.nongnu.org/
matlab的工具箱的安裝步驟:
1.解壓專下載的文件包,屬將tft/mfile復制到matlab的toolbox文件夾下
2.建立搜索路徑,matlab->file->Set Path->Add Folder
->選擇mfile文件夾復制到matlab的toolbox的路徑->save->close
3.測試是否建立搜索路徑成功,在matlab命令窗口打入:which fmsin
返回的結果是你放mfile的正確路徑說明建立搜索路徑成功,就完成了安裝工具包的工作。
此時EMD的准備工作就完了。