找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 3451|回復: 0
打印 上一主題 下一主題
收起左側(cè)

UWB定位實現(xiàn)Matlab代碼 僅供參考

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:971095 發(fā)表于 2021-10-20 17:05 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
分享一些我在學習UWB過程中手打下來的一些UWB仿真Matlab代碼,具體內(nèi)容參考葛利嘉老師的譯作《超寬帶無線電基礎(chǔ)》這本書
  1. % [rect_A,dt_A]=cp0101_genrect(1e-1,1000,0);
  2. [rect_B,dt_B]=cp0101_genrect(1e-1,1000,1e3);
  3. % cp0101_bandwidth1(rect_A,dt_A,-3);
  4. cp0101_bandwidth1(rect_B,dt_B,-10);
  5. function [ss_E,f_high,f_low,BW]=cp0101_bandwidth1(signal,dt,threshold)
  6. %計算固定取樣周期“dt”的“signal”的帶寬,以及計算帶寬所需的預知threshold

  7. %step1計算輸入數(shù)據(jù)單邊功率密度譜(ESD)
  8. fs=1/dt;                    %采樣頻率
  9. N=length(signal);           %樣本數(shù)量
  10. T=N*dt;                     %窗口時間
  11. df=1/T;                     %基本頻率
  12. X=fft(signal);              %快速傅里葉變換,也叫離散傅里葉變換,轉(zhuǎn)換后為離散的雙邊振幅頻譜
  13. X=X/N;                      %matlab頻譜轉(zhuǎn)換為傅里葉頻譜
  14. ds_E=abs(X).^2/(df^2);      %雙邊ESD//abs(X)對X取絕對值
  15. ss_E=2.*ds_E(1:floor(N/2)); %單邊ESD
  16. %STEP2我們利用迭代算法計算出相對于特定閾值的ESD的最高和最低頻率,
  17. %從而估算出被檢測信號所占用帶寬。這種算法同時適用于基帶信號和已調(diào)制信號
  18. [Epeak,index]=max(ss_E);   %Epeak為單邊ESD的峰值,index是該峰值所在位置
  19. f_peak=index*df;           %頻率峰值
  20. Eth=Epeak*10^(threshold/10);

  21. imax=index;
  22. E0h=ss_E(index);
  23. while (E0h>Eth)&(imax<=(N/2))
  24.     imax=imax+1;
  25.     E0h=ss_E(imax);
  26. end
  27. f_high=(imax-1)*df;
  28. imin=index;
  29. E0l=ss_E(index);
  30. while (E0h>Eth)&(imin>1)&(index>1)
  31.     imin=imin-1;
  32.     E0l=ss_E(imin);
  33. end
  34. f_low=(min(index,imin)-1)*df;
  35. BW=f_high-f_low;
  36. fprintf('\nFrequency Bandwidth = %f [HZ]\n High Frequency= %f [HZ]\nLow Frequency= %f [HZ]\n',BW,f_high,f_low);

  37. %step3 畫圖
  38. figure(2)
  39. frequency=linspace(0,fs/2,length(ss_E));
  40. PF=plot(frequency,ss_E);
  41. set(PF,'LineWidth',[2]);
  42. L1=line([f_high f_high],[min(ss_E) max(ss_E)]);
  43. set(L1,'Color',[0 0 0],'LineStyle',':');
  44. L1=line([f_low f_low],[min(ss_E) max(ss_E)]);
  45. set(L1,'Color',[0 0 0],'LineStyle',':');
  46. L1=line([f_low f_high],[Eth Eth]);
  47. set(L1,'LineWidth',[2],'Color','red','LineStyle',':');
  48. axis([0.8*f_low 1.2*f_high -0.1*Epeak 1.2*Epeak]);
  49. AX=gca;
  50. set(AX,'FontSize',12);
  51. T=title('Frequency domain');
  52. set(T,'FontSize',14);
  53. X=xlabel('頻率  [Hz]');
  54. set(X,'FontSize',14);
  55. Y=ylabel('單邊ESD  [V^2S/Hz]');
  56. set(Y,'FontSize',14);
  57. end
復制代碼




代碼下載,僅供參考如有錯誤 請指出: UWB實現(xiàn).7z (6.39 KB, 下載次數(shù): 21)
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表