標(biāo)題: UWB定位實(shí)現(xiàn)Matlab代碼 僅供參考 [打印本頁(yè)]

作者: 大盛    時(shí)間: 2021-10-20 17:05
標(biāo)題: UWB定位實(shí)現(xiàn)Matlab代碼 僅供參考
分享一些我在學(xué)習(xí)UWB過(guò)程中手打下來(lái)的一些UWB仿真Matlab代碼,具體內(nèi)容參考葛利嘉老師的譯作《超寬帶無(wú)線(xiàn)電基礎(chǔ)》這本書(shū)
  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. %計(jì)算固定取樣周期“dt”的“signal”的帶寬,以及計(jì)算帶寬所需的預(yù)知threshold

  7. %step1計(jì)算輸入數(shù)據(jù)單邊功率密度譜(ESD)
  8. fs=1/dt;                    %采樣頻率
  9. N=length(signal);           %樣本數(shù)量
  10. T=N*dt;                     %窗口時(shí)間
  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)對(duì)X取絕對(duì)值
  15. ss_E=2.*ds_E(1:floor(N/2)); %單邊ESD
  16. %STEP2我們利用迭代算法計(jì)算出相對(duì)于特定閾值的ESD的最高和最低頻率,
  17. %從而估算出被檢測(cè)信號(hào)所占用帶寬。這種算法同時(shí)適用于基帶信號(hào)和已調(diào)制信號(hà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 畫(huà)圖
  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
復(fù)制代碼




代碼下載,僅供參考如有錯(cuò)誤 請(qǐng)指出: UWB實(shí)現(xiàn).7z (6.39 KB, 下載次數(shù): 21)





歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1