⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bft_user_guide.html

📁 超声仿真软件
💻 HTML
📖 第 1 页 / 共 5 页
字号:
6<tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt><i>%</i></tt><br>7<tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt><i>%&nbsp;&nbsp;&nbsp;&nbsp;The&nbsp;function&nbsp;calls&nbsp;XDC_FOCUS,&nbsp;and&nbsp;BFT_FOCUS&nbsp;in&nbsp;order&nbsp;to&nbsp;set&nbsp;the</i></tt><br>8<tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt><i>%&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;delays.&nbsp;</i></tt><br>9<tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt></tt><br>10<tt>&nbsp;&nbsp;&nbsp;</tt><tt><i>%&nbsp;VERSION&nbsp;1.0,&nbsp;29&nbsp;Feb.&nbsp;2000,&nbsp;Svetoslav&nbsp;Nikolov</i></tt><br>11<tt>&nbsp;&nbsp;&nbsp;</tt><tt></tt><br>12<tt>&nbsp;&nbsp;&nbsp;</tt><tt>f0&nbsp;=&nbsp;4e6;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i>%&nbsp;&nbsp;Central&nbsp;frequency&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[Hz]</i></tt><br>13<tt>&nbsp;&nbsp;&nbsp;</tt><tt>fs&nbsp;=&nbsp;100e6;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i>%&nbsp;&nbsp;Sampling&nbsp;frequency&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[Hz]</i></tt><br>14<tt>&nbsp;&nbsp;&nbsp;</tt><tt>c&nbsp;=&nbsp;1540;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i>%&nbsp;&nbsp;Speed&nbsp;of&nbsp;sound&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[m/s]</i></tt><br>15<tt>&nbsp;&nbsp;&nbsp;</tt><tt>no_elements&nbsp;=&nbsp;64;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i>%&nbsp;&nbsp;Number&nbsp;of&nbsp;elements&nbsp;in&nbsp;the&nbsp;transducer</i></tt><br>16<tt>&nbsp;&nbsp;&nbsp;</tt><tt></tt><br>17<tt>&nbsp;&nbsp;&nbsp;</tt><tt>lambda&nbsp;=&nbsp;c&nbsp;/&nbsp;f0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i>%&nbsp;Wavelength&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[m]</i></tt><br>18<tt>&nbsp;&nbsp;&nbsp;</tt><tt>pitch&nbsp;=&nbsp;lambda&nbsp;/&nbsp;2;&nbsp;&nbsp;&nbsp;&nbsp;<i>%&nbsp;Pitch&nbsp;-&nbsp;center-to-center&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[m]</i></tt><br>19<tt>&nbsp;&nbsp;&nbsp;</tt><tt>width&nbsp;=&nbsp;.95*pitch;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i>%&nbsp;Width&nbsp;of&nbsp;the&nbsp;element&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[m]</i></tt><br>20<tt>&nbsp;&nbsp;&nbsp;</tt><tt>kerf&nbsp;=&nbsp;pitch&nbsp;-&nbsp;width;&nbsp;&nbsp;<i>%&nbsp;Inter-element&nbsp;spacing&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[m]</i></tt><br>21<tt>&nbsp;&nbsp;&nbsp;</tt><tt>height&nbsp;=&nbsp;10/1000;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i>%&nbsp;Size&nbsp;in&nbsp;the&nbsp;Y&nbsp;direction&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[m]</i></tt><br>22<tt>&nbsp;&nbsp;&nbsp;</tt><tt>&nbsp;</tt><br>23<tt>&nbsp;&nbsp;&nbsp;</tt><tt>&nbsp;</tt><br>24<tt>&nbsp;&nbsp;&nbsp;</tt><tt><i>%&nbsp;&nbsp;Define&nbsp;the&nbsp;impulse&nbsp;response&nbsp;of&nbsp;the&nbsp;transducer</i></tt><br>25<tt>&nbsp;&nbsp;&nbsp;</tt><tt>impulse_response&nbsp;=&nbsp;sin(2*pi*f0*(0:1/fs:2/f0));</tt><br>26<tt>&nbsp;&nbsp;&nbsp;</tt><tt>impulse_response&nbsp;=&nbsp;impulse_response.*hanning(length(impulse_response))';</tt><br>27<tt>&nbsp;&nbsp;&nbsp;</tt><tt>excitation&nbsp;=&nbsp;impulse_response;</tt><br>28<tt>&nbsp;&nbsp;&nbsp;</tt><tt></tt><br>29<tt>&nbsp;&nbsp;&nbsp;</tt><tt><i>%&nbsp;&nbsp;Define&nbsp;the&nbsp;phantom</i></tt><br>30<tt>&nbsp;&nbsp;&nbsp;</tt><tt></tt><br>31<tt>&nbsp;&nbsp;&nbsp;</tt><tt>pht_pos&nbsp;=&nbsp;[0&nbsp;0&nbsp;20;</tt><br>32<tt>&nbsp;&nbsp;&nbsp;</tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;0&nbsp;30;</tt><br>33<tt>&nbsp;&nbsp;&nbsp;</tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;0&nbsp;40;</tt><br>34<tt>&nbsp;&nbsp;&nbsp;</tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;0&nbsp;50;</tt><br>35<tt>&nbsp;&nbsp;&nbsp;</tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;0&nbsp;60;</tt><br>36<tt>&nbsp;&nbsp;&nbsp;</tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;0&nbsp;70;</tt><br>37<tt>&nbsp;&nbsp;&nbsp;</tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;0&nbsp;80;</tt><br>38<tt>&nbsp;&nbsp;&nbsp;</tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;0&nbsp;90;</tt><br>39<tt>&nbsp;&nbsp;&nbsp;</tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]&nbsp;/&nbsp;1000;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i>%&nbsp;&nbsp;The&nbsp;position&nbsp;of&nbsp;the&nbsp;phantom</i></tt><br>40<tt>&nbsp;&nbsp;&nbsp;</tt><tt>pht_amp&nbsp;=&nbsp;20*ones(8,1);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i>%&nbsp;&nbsp;The&nbsp;amplitude&nbsp;of&nbsp;the&nbsp;back-scatter</i></tt><br>41<tt>&nbsp;&nbsp;&nbsp;</tt><tt></tt><br>42<tt>&nbsp;&nbsp;&nbsp;</tt><tt></tt><br>43<tt>&nbsp;&nbsp;&nbsp;</tt><tt></tt><br>44<tt>&nbsp;&nbsp;&nbsp;</tt><tt><i>%&nbsp;&nbsp;Define&nbsp;the&nbsp;focus&nbsp;</i></tt><br>45<tt>&nbsp;&nbsp;&nbsp;</tt><tt>focus_r&nbsp;=&nbsp;[20;30;40;50;60;70;80;90]&nbsp;/&nbsp;1000;</tt><br>46<tt>&nbsp;&nbsp;&nbsp;</tt><tt>T&nbsp;=&nbsp;(focus_r-5/1000)/c&nbsp;*2;</tt><br>47<tt>&nbsp;&nbsp;&nbsp;</tt><tt></tt><br>48<tt>&nbsp;&nbsp;&nbsp;</tt><tt></tt><br>49<tt>&nbsp;&nbsp;&nbsp;</tt><tt><i>%&nbsp;&nbsp;Initialize&nbsp;the&nbsp;program</i></tt><br>50<tt>&nbsp;&nbsp;&nbsp;</tt><tt>field_init(0);</tt><br>51<tt>&nbsp;&nbsp;&nbsp;</tt><tt>bft_init;</tt><br>52<tt>&nbsp;&nbsp;&nbsp;</tt><tt></tt><br>53<tt>&nbsp;&nbsp;&nbsp;</tt><tt></tt><br>54<tt>&nbsp;&nbsp;&nbsp;</tt><tt><i>%&nbsp;&nbsp;Set&nbsp;some&nbsp;paramters</i></tt><br>55<tt>&nbsp;&nbsp;&nbsp;</tt><tt>set_field('c',&nbsp;c);</tt><br>56<tt>&nbsp;&nbsp;&nbsp;</tt><tt>bft_param('c',&nbsp;c);</tt><br>57<tt>&nbsp;&nbsp;&nbsp;</tt><tt></tt><br>58<tt>&nbsp;&nbsp;&nbsp;</tt><tt>set_field('fs',&nbsp;fs);</tt><br>59<tt>&nbsp;&nbsp;&nbsp;</tt><tt>bft_param('fs',&nbsp;fs);</tt><br>60<tt>&nbsp;&nbsp;&nbsp;</tt><tt></tt><br>61<tt>&nbsp;&nbsp;&nbsp;</tt><tt></tt><br>62<tt>&nbsp;&nbsp;&nbsp;</tt><tt></tt><br>63<tt>&nbsp;&nbsp;&nbsp;</tt><tt><i>%&nbsp;Create&nbsp;some&nbsp;apertures.</i></tt><br>64<tt>&nbsp;&nbsp;&nbsp;</tt><tt></tt><br>65<tt>&nbsp;&nbsp;&nbsp;</tt><tt>xmt&nbsp;=&nbsp;xdc_linear_array(no_elements,width,height,kerf,1,1,[0&nbsp;0&nbsp;0]);</tt><br>66<tt>&nbsp;&nbsp;&nbsp;</tt><tt>rcv&nbsp;=&nbsp;xdc_linear_array(no_elements,width,height,kerf,1,1,[0&nbsp;0&nbsp;0]);</tt><br>67<tt>&nbsp;&nbsp;&nbsp;</tt><tt></tt><br>68<tt>&nbsp;&nbsp;&nbsp;</tt><tt>xdc&nbsp;=&nbsp;bft_linear_array(no_elements,&nbsp;width,&nbsp;kerf);</tt><br>69<tt>&nbsp;&nbsp;&nbsp;</tt><tt></tt><br>70<tt>&nbsp;&nbsp;&nbsp;</tt><tt></tt><br>71<tt>&nbsp;&nbsp;&nbsp;</tt><tt><i>%&nbsp;Set&nbsp;the&nbsp;impulse&nbsp;responses</i></tt><br>72<tt>&nbsp;&nbsp;&nbsp;</tt><tt>xdc_impulse(rcv,&nbsp;impulse_response);</tt><br>73<tt>&nbsp;&nbsp;&nbsp;</tt><tt>xdc_impulse(xmt,&nbsp;impulse_response);</tt><br>74<tt>&nbsp;&nbsp;&nbsp;</tt><tt></tt><br>75<tt>&nbsp;&nbsp;&nbsp;</tt><tt>xdc_excitation(xmt,&nbsp;excitation);</tt><br>76<tt>&nbsp;&nbsp;&nbsp;</tt><tt></tt><br>77<tt>&nbsp;&nbsp;&nbsp;</tt><tt></tt><br>78<tt>&nbsp;&nbsp;&nbsp;</tt><tt></tt><br>79<tt>&nbsp;&nbsp;&nbsp;</tt><tt><i>%&nbsp;&nbsp;Define&nbsp;and&nbsp;create&nbsp;the&nbsp;image</i></tt><br>80<tt>&nbsp;&nbsp;&nbsp;</tt><tt>sector&nbsp;=&nbsp;30&nbsp;*&nbsp;pi&nbsp;/&nbsp;180;</tt><br>81<tt>&nbsp;&nbsp;&nbsp;</tt><tt>no_lines&nbsp;=&nbsp;32;</tt><br>82<tt>&nbsp;&nbsp;&nbsp;</tt><tt>d_theta&nbsp;=&nbsp;sector&nbsp;/&nbsp;(no_lines-1);</tt><br>83<tt>&nbsp;&nbsp;&nbsp;</tt><tt>theta&nbsp;=&nbsp;-(no_lines-1)&nbsp;/&nbsp;2&nbsp;*&nbsp;d_theta;</tt><br>84<tt>&nbsp;&nbsp;&nbsp;</tt><tt></tt><br>85<tt>&nbsp;&nbsp;&nbsp;</tt><tt>Rmax&nbsp;=&nbsp;max(sqrt(pht_pos(:,1).^&nbsp;2&nbsp;+&nbsp;pht_pos(:,2).^&nbsp;2&nbsp;&nbsp;+&nbsp;pht_pos(:,3).^&nbsp;2))&nbsp;+&nbsp;15/1000;</tt><br>86<tt>&nbsp;&nbsp;&nbsp;</tt><tt></tt><br>87<tt>&nbsp;&nbsp;&nbsp;</tt><tt>no_rf_samples&nbsp;=&nbsp;ceil(2*Rmax/c&nbsp;*&nbsp;fs);</tt><br>88<tt>&nbsp;&nbsp;&nbsp;</tt><tt>rf_line&nbsp;=&nbsp;zeros(no_rf_samples,&nbsp;1);</tt><br>89<tt>&nbsp;&nbsp;&nbsp;</tt><tt>bf_line&nbsp;=&nbsp;zeros(no_rf_samples,&nbsp;1);</tt><br>90<tt>&nbsp;&nbsp;&nbsp;</tt><tt></tt><br>91<tt>&nbsp;&nbsp;&nbsp;</tt><tt>env_line&nbsp;=&nbsp;zeros(no_rf_samples,&nbsp;no_lines);</tt><br>92<tt>&nbsp;&nbsp;&nbsp;</tt><tt>env_bf&nbsp;=&nbsp;&nbsp;zeros(no_rf_samples,&nbsp;no_lines);</tt><br>93<tt>&nbsp;&nbsp;&nbsp;</tt><tt></tt><br>94<tt>&nbsp;&nbsp;&nbsp;</tt><tt></tt><br>95<tt>&nbsp;&nbsp;&nbsp;</tt><tt>xmt_r&nbsp;=&nbsp;(max(focus_r)&nbsp;+&nbsp;min(focus_r)&nbsp;)/2;</tt><br>96<tt>&nbsp;&nbsp;&nbsp;</tt><tt></tt><br>97<tt>&nbsp;&nbsp;&nbsp;</tt><tt>for&nbsp;i&nbsp;=&nbsp;1&nbsp;:&nbsp;no_lines</tt><br>98<tt>&nbsp;&nbsp;&nbsp;</tt><tt>&nbsp;&nbsp;rf_line(:)&nbsp;=&nbsp;0;&nbsp;&nbsp;</tt><br>99<tt>&nbsp;&nbsp;&nbsp;</tt><tt>&nbsp;&nbsp;disp(['Line&nbsp;no&nbsp;'&nbsp;num2str(i)])</tt><br>100<tt>&nbsp;&nbsp;</tt><tt>&nbsp;&nbsp;</tt><br>101<tt>&nbsp;&nbsp;</tt><tt>&nbsp;&nbsp;focus&nbsp;=&nbsp;[sin(theta)*focus_r,&nbsp;zeros(length(focus_r),1),&nbsp;cos(theta)*focus_r];</tt><br>102<tt>&nbsp;&nbsp;</tt><tt>&nbsp;&nbsp;xmt_f&nbsp;=&nbsp;[sin(theta)*xmt_r,&nbsp;zeros(length(xmt_r),1),&nbsp;cos(theta)*xmt_r];</tt><br>103<tt>&nbsp;&nbsp;</tt><tt>&nbsp;&nbsp;xdc_center_focus(xmt,[0&nbsp;0&nbsp;0])</tt><br>104<tt>&nbsp;&nbsp;</tt><tt>&nbsp;&nbsp;xdc_center_focus(rcv,[0&nbsp;0&nbsp;0])</tt><br>105<tt>&nbsp;&nbsp;</tt><tt>&nbsp;&nbsp;bft_center_focus([0&nbsp;0&nbsp;0]);</tt><br>106<tt>&nbsp;&nbsp;</tt><tt>&nbsp;&nbsp;</tt><br>107<tt>&nbsp;&nbsp;</tt><tt>&nbsp;&nbsp;xdc_focus(xmt,&nbsp;0,&nbsp;xmt_f);</tt><br>108<tt>&nbsp;&nbsp;</tt><tt>&nbsp;&nbsp;xdc_focus(rcv,&nbsp;T,&nbsp;focus);</tt><br>109<tt>&nbsp;&nbsp;</tt><tt>&nbsp;&nbsp;bft_focus(xdc,&nbsp;T,&nbsp;focus);</tt><br>110<tt>&nbsp;&nbsp;</tt><tt>&nbsp;&nbsp;</tt><br>111<tt>&nbsp;&nbsp;</tt><tt>&nbsp;&nbsp;<i>%&nbsp;&nbsp;Beamform&nbsp;with&nbsp;Field&nbsp;II</i></tt><br>112<tt>&nbsp;&nbsp;</tt><tt>&nbsp;&nbsp;[rf_temp,&nbsp;t(i)]&nbsp;=&nbsp;calc_scat(xmt,rcv,&nbsp;pht_pos,&nbsp;pht_amp);</tt><br>113<tt>&nbsp;&nbsp;</tt><tt>&nbsp;&nbsp;</tt><br>114<tt>&nbsp;&nbsp;</tt><tt>&nbsp;&nbsp;<i>%&nbsp;&nbsp;Beamform&nbsp;with&nbsp;BFT</i></tt><br>115<tt>&nbsp;&nbsp;</tt><tt>&nbsp;&nbsp;xdc_focus_times(rcv,&nbsp;0,&nbsp;zeros(1,no_elements));</tt><br>116<tt>&nbsp;&nbsp;</tt><tt>&nbsp;&nbsp;[rf_data,&nbsp;start_t]&nbsp;=&nbsp;calc_scat_multi(xmt,rcv,&nbsp;pht_pos,&nbsp;pht_amp);</tt><br>117<tt>&nbsp;&nbsp;</tt><tt>&nbsp;&nbsp;rf_data&nbsp;=&nbsp;[zeros(300,no_elements);&nbsp;rf_data;&nbsp;zeros(300,no_elements)];</tt><br>118<tt>&nbsp;&nbsp;</tt><tt></tt><br>119<tt>&nbsp;&nbsp;</tt><tt>&nbsp;&nbsp;start_t&nbsp;=&nbsp;start_t&nbsp;-&nbsp;300&nbsp;&nbsp;/&nbsp;fs;</tt><br>120<tt>&nbsp;&nbsp;</tt><tt>&nbsp;&nbsp;bf_temp&nbsp;=&nbsp;bft_beamform(start_t,&nbsp;rf_data);</tt><br>121<tt>&nbsp;&nbsp;</tt><tt>&nbsp;&nbsp;</tt><br>122<tt>&nbsp;&nbsp;</tt><tt>&nbsp;&nbsp;start_sample&nbsp;=&nbsp;t(i)*fs;&nbsp;no_temp_samples&nbsp;=&nbsp;length(rf_temp);</tt><br>123<tt>&nbsp;&nbsp;</tt><tt>&nbsp;&nbsp;</tt><br>124<tt>&nbsp;&nbsp;</tt><tt>&nbsp;&nbsp;rf_line(start_sample:start_sample+no_temp_samples-1)&nbsp;=&nbsp;rf_temp(1:no_temp_samples);</tt><br>125<tt>&nbsp;&nbsp;</tt><tt>&nbsp;&nbsp;env_line(:,i)&nbsp;=&nbsp;abs(hilbert(rf_line(:)));</tt><br>126<tt>&nbsp;&nbsp;</tt><tt></tt><br>127<tt>&nbsp;&nbsp;</tt><tt>&nbsp;&nbsp;start_sample&nbsp;=&nbsp;floor(start_t*fs);&nbsp;no_temp_samples&nbsp;=&nbsp;length(bf_temp);</tt><br>128<tt>&nbsp;&nbsp;</tt><tt>&nbsp;&nbsp;bf_line(start_sample:start_sample+no_temp_samples-1)&nbsp;=&nbsp;bf_temp(1:no_temp_samples);</tt><br>129<tt>&nbsp;&nbsp;</tt><tt>&nbsp;&nbsp;env_bf(:,i)&nbsp;=&nbsp;abs(hilbert(bf_line(:)));</tt><br>130<tt>&nbsp;&nbsp;</tt><tt>&nbsp;&nbsp;theta&nbsp;=&nbsp;theta&nbsp;+&nbsp;d_theta;</tt><br>131<tt>&nbsp;&nbsp;</tt><tt></tt><br>132<tt>&nbsp;&nbsp;</tt><tt>end</tt><br>133<tt>&nbsp;&nbsp;</tt><tt></tt><br>134<tt>&nbsp;&nbsp;</tt><tt><i>%&nbsp;&nbsp;Release&nbsp;the&nbsp;allocated&nbsp;memory</i></tt><br>135<tt>&nbsp;&nbsp;</tt><tt></tt><br>136<tt>&nbsp;&nbsp;</tt><tt>field_end</tt><br>137<tt>&nbsp;&nbsp;</tt><tt>bft_end</tt><br>138<tt>&nbsp;&nbsp;</tt><tt></tt><br>139<tt>&nbsp;&nbsp;</tt><tt>env_line&nbsp;=&nbsp;env_line&nbsp;/&nbsp;max(max(abs(env_line)));</tt><br>140<tt>&nbsp;&nbsp;</tt><tt>env_bf&nbsp;=&nbsp;env_bf&nbsp;/&nbsp;max(max(abs(env_bf)));</tt><br>141<tt>&nbsp;&nbsp;</tt><tt></tt><br>142<tt>&nbsp;&nbsp;</tt><tt>figure;</tt><br>143<tt>&nbsp;&nbsp;</tt><tt>subplot(1,2,1)</tt><br>144<tt>&nbsp;&nbsp;</tt><tt>imagesc([-sector/2&nbsp;sector/2]*180/pi,[0&nbsp;Rmax]*1000,20*log10(env_line&nbsp;+&nbsp;0.001))</tt><br>145<tt>&nbsp;&nbsp;</tt><tt>axis('image')</tt><br>146<tt>&nbsp;&nbsp;</tt><tt>xlabel('Angle&nbsp;[deg]');</tt><br>147<tt>&nbsp;&nbsp;</tt><tt>ylabel('Axial&nbsp;distance&nbsp;[mm]')</tt><br>148<tt>&nbsp;&nbsp;</tt><tt>title('Beamformed&nbsp;by&nbsp;Field&nbsp;II&nbsp;');</tt><br>149<tt>&nbsp;&nbsp;</tt><tt></tt><br>150<tt>&nbsp;&nbsp;</tt><tt>subplot(1,2,2)</tt><br>151<tt>&nbsp;&nbsp;</tt><tt>imagesc([-sector/2&nbsp;sector/2]*180/pi,[0&nbsp;Rmax]*1000,20*log10(env_bf&nbsp;+&nbsp;0.001));</tt><br>152<tt>&nbsp;&nbsp;</tt><tt>title('Beamformed&nbsp;by&nbsp;BFT');</tt><br>153<tt>&nbsp;&nbsp;</tt><tt>xlabel('Angle&nbsp;[deg]');</tt><br>154<tt>&nbsp;&nbsp;</tt><tt>ylabel('Axial&nbsp;distance&nbsp;[mm]')</tt><br>155<tt>&nbsp;&nbsp;</tt><tt>axis('image')</tt><br>156<tt>&nbsp;&nbsp;</tt><tt></tt><br>157<tt>&nbsp;&nbsp;</tt><tt>colorbar</tt><br>158<tt>&nbsp;&nbsp;</tt><tt>colormap(gray)</tt><br>159<tt>&nbsp;&nbsp;</tt><tt></tt><br>160<tt>&nbsp;&nbsp;</tt><tt>clc</tt><br>161<tt>&nbsp;&nbsp;</tt><tt>disp(['&nbsp;'&nbsp;10&nbsp;10&nbsp;10&nbsp;10&nbsp;]);</tt><br>162<tt>&nbsp;&nbsp;</tt><tt>disp([9&nbsp;'*****************************************************']);</tt><br>163<tt>&nbsp;&nbsp;</tt><tt>disp([9&nbsp;'*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*']);</tt><br>164<tt>&nbsp;&nbsp;</tt><tt>disp([9&nbsp;'*&nbsp;The&nbsp;image&nbsp;beamformed&nbsp;by&nbsp;Field&nbsp;II&nbsp;is&nbsp;in&nbsp;&#235;nv_line"&nbsp;*']);</tt><br>165<tt>&nbsp;&nbsp;</tt><tt>disp([9&nbsp;'*&nbsp;The&nbsp;image&nbsp;beamformed&nbsp;by&nbsp;BFT&nbsp;is&nbsp;in&nbsp;&#235;nv_bf"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*']);</tt><br>166<tt>&nbsp;&nbsp;</tt><tt>disp([9&nbsp;'*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*'])</tt><br>167<tt>&nbsp;&nbsp;</tt><tt>disp([9&nbsp;'*****************************************************']);</tt><br>168<tt>&nbsp;&nbsp;</tt><tt>disp(['&nbsp;'&nbsp;10&nbsp;10&nbsp;]);</tt><br>169<tt>&nbsp;&nbsp;</tt><tt></tt><br>170<tt>&nbsp;&nbsp;</tt><tt></tt><br></font><p><title> Dynamic focusing</title><br><br><br><br><br><p><hr> <H3>Dynamic focusing</H3><hr>  <A NAME="dynamic_focusing"></A>  <a name="dynamic_focusing"></a><p><font size="-2">1<tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt><i>%PHASED_DYN_IMAGE&nbsp;Create&nbsp;a&nbsp;phased-array&nbsp;B-mode&nbsp;image,&nbsp;using&nbsp;the&nbsp;</i></tt><br>2<tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt><i>%&nbsp;&nbsp;&nbsp;&nbsp;commands&nbsp;for&nbsp;setting&nbsp;a&nbsp;dynamic&nbsp;focusing</i></tt><br>3<tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt></tt><br>4<tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt><i>%VERSION&nbsp;1.0,&nbsp;29&nbsp;Feb&nbsp;2000,&nbsp;Svetoslav&nbsp;Nikolov</i></tt><br>5<tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt></tt><br>6<tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt>f0&nbsp;=&nbsp;4e6;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i>%&nbsp;&nbsp;Central&nbsp;frequency&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[Hz]</i></tt><br>7<tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt>fs&nbsp;=&nbsp;100e6;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i>%&nbsp;&nbsp;Sampling&nbsp;frequency&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[Hz]</i></tt><br>8<tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt>c&nbsp;=&nbsp;1540;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i>%&nbsp;&nbsp;Speed&nbsp;of&nbsp;sound&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[m/s]</i></tt><br>9<tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt>B&nbsp;=&nbsp;.35;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i>%&nbsp;&nbsp;Relative&nbsp;bandwith&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[fraction]</i></tt><br>10<tt>&nbsp;&nbsp;&nbsp;</tt><tt>no_elements&nbsp;=&nbsp;64;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i>%&nbsp;&nbsp;Number&nbsp;of&nbsp;elements&nbsp;in&nbsp;the&nbsp;transducer&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</i></tt><br>11<tt>&nbsp;&nbsp;&nbsp;</tt><tt></tt><br>12<tt>&nbsp;&nbsp;&nbsp;</tt><tt>lambda&nbsp;=&nbsp;c&nbsp;/&nbsp;f0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i>%&nbsp;Wavelength&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[m]</i></tt><br>13<tt>&nbsp;&nbsp;&nbsp;</tt><tt>pitch&nbsp;=&nbsp;lambda&nbsp;/&nbsp;2;&nbsp;&nbsp;&nbsp;&nbsp;<i>%&nbsp;Pitch&nbsp;-&nbsp;center-to-center&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[m]</i></tt><br>14<tt>&nbsp;&nbsp;&nbsp;</tt><tt>width&nbsp;=&nbsp;.95*pitch;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i>%&nbsp;Width&nbsp;of&nbsp;the&nbsp;element&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[m]</i></tt><br>15<tt>&nbsp;&nbsp;&nbsp;</tt><tt>kerf&nbsp;=&nbsp;pitch&nbsp;-&nbsp;width;&nbsp;&nbsp;<i>%&nbsp;Inter-element&nbsp;spacing&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[m]</i></tt><br>16<tt>&nbsp;&nbsp;&nbsp;</tt><tt>height&nbsp;=&nbsp;10/1000;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i>%&nbsp;Size&nbsp;in&nbsp;the&nbsp;Y&nbsp;direction&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[m]</i></tt><br>17<tt>&nbsp;&nbsp;&nbsp;</tt><tt>&nbsp;</tt><br>18<tt>&nbsp;&nbsp;&nbsp;</tt><tt>&nbsp;</tt><br>19<tt>&nbsp;&nbsp;&nbsp;</tt><tt><i>%&nbsp;&nbsp;Define&nbsp;the&nbsp;impulse&nbsp;response&nbsp;of&nbsp;the&nbsp;transducer</i></tt><br>20<tt>&nbsp;&nbsp;&nbsp;</tt><tt>impulse_response&nbsp;=&nbsp;sin(2*pi*f0*(0:1/fs:2/f0));</tt><br>21<tt>&nbsp;&nbsp;&nbsp;</tt><tt>impulse_response&nbsp;=&nbsp;impulse_response.*hanning(length(impulse_response))';</tt><br>22<tt>&nbsp;&nbsp;&nbsp;</tt><tt>excitation&nbsp;=&nbsp;impulse_response;</tt><br>23<tt>&nbsp;&nbsp;&nbsp;</tt><tt></tt><br>24<tt>&nbsp;&nbsp;&nbsp;</tt><tt><i>%&nbsp;&nbsp;Define&nbsp;the&nbsp;phantom</i></tt><br>25<tt>&nbsp;&nbsp;&nbsp;</tt><tt></tt><br>26<tt>&nbsp;&nbsp;&nbsp;</tt><tt>pht_pos&nbsp;=&nbsp;[0&nbsp;0&nbsp;20;</tt><br>27<tt>&nbsp;&nbsp;&nbsp;</tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;0&nbsp;30;</tt><br>28<tt>&nbsp;&nbsp;&nbsp;</tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;0&nbsp;40;</tt><br>29<tt>&nbsp;&nbsp;&nbsp;</tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;0&nbsp;50;</tt><br>30<tt>&nbsp;&nbsp;&nbsp;</tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;0&nbsp;60;</tt><br>31<tt>&nbsp;&nbsp;&nbsp;</tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;0&nbsp;70;</tt><br>32<tt>&nbsp;&nbsp;&nbsp;</tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;0&nbsp;80;]&nbsp;/&nbsp;1000;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i>%&nbsp;&nbsp;The&nbsp;position&nbsp;of&nbsp;the&nbsp;phantom</i></tt><br>33<tt>&nbsp;&nbsp;&nbsp;</tt><tt>pht_amp&nbsp;=&nbsp;20*ones(7,1);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i>%&nbsp;&nbsp;The&nbsp;amplitude&nbsp;of&nbsp;the&nbsp;back-scatter</i></tt><br>34<tt>&nbsp;&nbsp;&nbsp;</tt><tt></tt><br>35<tt>&nbsp;&nbsp;&nbsp;</tt><tt><i>%&nbsp;&nbsp;Define&nbsp;the&nbsp;focus&nbsp;</i></tt><br>36<tt>&nbsp;&nbsp;&nbsp;</tt><tt>focus_r&nbsp;=&nbsp;[20;30;40;50;60;70;80;90]&nbsp;/&nbsp;1000;</tt><br>37<tt>&nbsp;&nbsp;&nbsp;</tt><tt>T&nbsp;=&nbsp;(focus_r-5/1000)/c&nbsp;*2;</tt><br>38<tt>&nbsp;&nbsp;&nbsp;</tt><tt></tt><br>39<tt>&nbsp;&nbsp;&nbsp;</tt><tt><i>%&nbsp;&nbsp;Initialize&nbsp;the&nbsp;program</i></tt><br>40<tt>&nbsp;&nbsp;&nbsp;</tt><tt>field_init(0);</tt><br>41<tt>&nbsp;&nbsp;&nbsp;</tt><tt>bft_init;</tt><br>42<tt>&nbsp;&nbsp;&nbsp;</tt><tt></tt><br>43<tt>&nbsp;&nbsp;&nbsp;</tt><tt><i>%&nbsp;&nbsp;Set&nbsp;some&nbsp;paramters</i></tt><br>44<tt>&nbsp;&nbsp;&nbsp;</tt><tt>set_field('c',&nbsp;c);</tt><br>45<tt>&nbsp;&nbsp;&nbsp;</tt><tt>bft_param('c',&nbsp;c);</tt><br>46<tt>&nbsp;&nbsp;&nbsp;</tt><tt></tt><br>47<tt>&nbsp;&nbsp;&nbsp;</tt><tt>set_field('fs',&nbsp;fs);</tt><br>48<tt>&nbsp;&nbsp;&nbsp;</tt><tt>bft_param('fs',&nbsp;fs);</tt><br>49<tt>&nbsp;&nbsp;&nbsp;</tt><tt></tt><br>50<tt>&nbsp;&nbsp;&nbsp;</tt><tt></tt><br>51<tt>&nbsp;&nbsp;&nbsp;</tt><tt><i>%&nbsp;Create&nbsp;some&nbsp;apertures.</i></tt><br>52<tt>&nbsp;&nbsp;&nbsp;</tt><tt></tt><br>53<tt>&nbsp;&nbsp;&nbsp;</tt><tt>xmt&nbsp;=&nbsp;xdc_linear_array(no_elements,width,height,kerf,1,1,[0&nbsp;0&nbsp;0]);</tt><br>54<tt>&nbsp;&nbsp;&nbsp;</tt><tt>rcv&nbsp;=&nbsp;xdc_linear_array(no_elements,width,height,kerf,1,1,[0&nbsp;0&nbsp;0]);</tt><br>55<tt>&nbsp;&nbsp;&nbsp;</tt><tt></tt><br>56<tt>&nbsp;&nbsp;&nbsp;</tt><tt>xdc&nbsp;=&nbsp;bft_linear_array(no_elements,&nbsp;width,&nbsp;kerf);</tt><br>57<tt>&nbsp;&nbsp;&nbsp;</tt><tt></tt><br>58<tt>&nbsp;&nbsp;&nbsp;</tt><tt></tt><br>59<tt>&nbsp;&nbsp;&nbsp;</tt><tt><i>%&nbsp;Set&nbsp;the&nbsp;impulse&nbsp;responses</i></tt><br>60<tt>&nbsp;&nbsp;&nbsp;</tt><tt>xdc_impulse(rcv,&nbsp;impulse_response);</tt><br>61<tt>&nbsp;&nbsp;&nbsp;</tt><tt>xdc_impulse(xmt,&nbsp;impulse_response);</tt><br>62<tt>&nbsp;&nbsp;&nbsp;</tt><tt></tt><br>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -