1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
| % Example of use of the new Field II program running under Matlab
%
% This example shows how a phased array B-mode system scans an image
%
% This script assumes that the field_init procedure has been called
%
% Example by Joergen Arendt Jensen, Nov. 28, 1995.
% Generate the transducer apertures for send and receive
%path(path, '/chum.rtss.qc.ca/UserHome/Grp7/u228267/Fatma_ouertani_stage/Field_II_m_files')
clear all;
close all;
clc;
field_init(0);
f0=3e6; % Transducer center frequency [Hz]
fs=4*f0; % Sampling frequency [Hz]
c=1540; % Speed of sound [m/s]
lambda=c/f0; % Wavelength
element_height=5/1000;% Height of element [m]
kerf=0.1/1000; % Kerf [m] distance entre les elements
focus=[10 0 70]/1000; % Fixed focal point [m] point focal electronique initial
% Generate aperture for emission
emit_aperture = xdc_linear_array (128, lambda/2, element_height, kerf, 1,1,focus);
% Set the impulse response and excitation of the emit aperture
impulse_response=sin(2*pi*f0*(0:1/fs:2/f0));
impulse_response=impulse_response.*hanning(max(size(impulse_response)))';
xdc_impulse (emit_aperture,impulse_response);
excitation=sin(2*pi*f0*(0:1/fs:2/f0));
plot(impulse_response);
hold on; plot(excitation,'r');hold off;
xdc_excitation (emit_aperture, excitation);
% Generate aperture for reception
receive_aperture = xdc_linear_array (128, lambda/2, element_height, kerf, 3, 3,focus);
% Set the impulse response for the receive aperture
xdc_impulse (receive_aperture, impulse_response);
% Do phased array imaging
point_position=[10 0 70]/1000; % Position of the point to be imaged
%point_positions=[0 0 800 ]/1000;
%la mm position du point focal initial
no_lines=50; % Number of A-lines in image
sector=10* pi/180; % Size of image sector
d_theta=sector/no_lines; % Increment in angle for 90 deg. image
% Pre-allocate some storage
image_data=zeros(400,no_lines);
theta= -sector/2;
for i=1:no_lines
% Set the focus for this direction
xdc_focus (emit_aperture, 0, [70*sin(theta) 0 70*cos(theta)]/1000);
xdc_focus (receive_aperture, 0, [70*sin(theta) 0 70*cos(theta)]/1000);
% Calculate the received response
[v, t1]=calc_scat(emit_aperture, receive_aperture, point_position, -5);
% Store the result
image_data(1:max(size(v)),i)=v';
times(i) = t1;
% Steer in another angle
theta = theta + d_theta;
end
min_sample=min(times(i))*fs;
for i=1:no_lines
env=abs(hilbert([zeros(round(times(i)*fs-min_sample),1); image_data(:,i)]))
end
% Here the display of the data is inserted
figure(2);image(image_data)
figure(3);imagesc(env)
colormap(gray(128)) |
Partager