MATLAB實驗簡單記錄

2021-08-28 14:01:36 字數 1292 閱讀 1243

從cheng那裡得到乙份github的spotfi**,遇到

解決:

linux-80211n-csitool-supplementary/matlab
缺少該.c檔案,可從github上獲得,mex重新生成mexw64檔案,即可呼叫執行程式。

matlab命令列執行mex read_bfee.c

如果以前沒有用過mex的話需要mex -setup選擇編譯器

之所以這樣是因為這時matlab和c混編而成,windows或者linux平台下可能不需要這一步,因為他自帶的有一些生成過的檔案,不能用的話就要重新混編生成,macos就是這樣。

步驟2下為何最後還是生成了乙個訊號的矩陣?

2018-10-08 09:31:39解答:本身輸入csi內容就是乙個天線30個感測器的測量結果,最終當然也只有乙個訊號的矩陣。

2023年11月16日19:10:19不到位,應該是乙個訊號矩陣在30個子載波上的測量結果,這最後合成為乙個矩陣

由陣列的接收資料得到資料協方差矩陣;

對協方差矩陣進行特徵分解;

由協方差矩陣的特徵值進行訊號源數判斷;

確定訊號子空間和雜訊子空間;

根據訊號引數範圍進行譜峰搜尋;

找出極大值點對應的角度就是訊號入射方向。

**閱讀暫時告一段落

2023年11月24日14:56:41

我們使用linux csi tool所對應的5300網絡卡,其timestamp是1mhz時鐘的低32位,約4300秒迴圈一次。

32位1的二進位制對應為4294967295。10位,每998830/s,每0.05s變化接近49941約五萬。

如果是31位1,對應也是10位,也有2.5萬

實際傳送0.05s頻率發包,變化約2萬,同時matlab觀察顯示timestamp對應十進位制資料最大也就9位,臨界變化為835543243(9位)到5713136。86400000毫秒是1天。

理論計算835543243+5713136)/4300=195640.,約20萬/s,0.05s應該為1萬

實際上應該是

timestamp_low = inbytes[0] + (inbytes[1] << 8) +(inbytes[2] << 16) + (inbytes[3] << 24)

2023年11月25日15:21:11我想我明白了,網絡卡時鐘設計還是有點巧妙的,32位就是只儲存4300秒的變化,轉化為10進製也就是86400000,對應每秒2萬。20093.0233。

matlab:

datestr()可以時間轉時間戳,也可以時間戳轉時間,可以精確到毫秒,是取當前系統時間。

matlab 語言入門簡單記錄

matlab是弱型別。也就是變數賦值什麼就是什麼型別了。強型別的語言比如說c 這些,需要事先定義型別,定義之後才能使用。matlab可以直接使用賦值的變數。matlab的所有的值的儲存,都是以矩陣為基本單位的。比如說乙個變數的話就是乙個1 1的矩陣。常量 i or j 虛數單位,i 2 j 2 1 ...

關於MATLAB入門的簡單記錄1

陣列裡空陣列直接使用類似於 a 完成操作 魔方陣列有內建函式,a magic i i為需要的行列數 matlab可以支援生成子陣列 例如child a 3,取a陣列的第三行為child作為子陣列 child a 3,2,4 取a陣列的第三行的第二列和第四列為child作為子陣列 child a 3,...

Matlab運用 Matlab簡單使用

plot u ifffinal,k linewidth 3 k代表黑色,還可以更換別的顏色,linewidth 3 設定所畫線條寬度為3磅 xlabel 待定位節點 設定x座標軸名稱 ylabel 誤差 m 設定y座標軸名稱 set gca,linewidth 2.5 設定座標軸寬度 a x 10 ...