https://hal.archives-ouvertes.fr/hal-01986160
Raw File
Tip revision: 65861d07c70cc2da4ed82d2e20b66953d56e35e3 authored by Software Heritage on 10 July 2019, 08:41:43 UTC
hal: Deposit 310 in collection hal
Tip revision: 65861d0
En_MakePulse1.m
% function pulse = En_MakePulse( pulse )
% Fonction qui crÈÈ l'impulsion
%
% By SÈbastien MÈnigot (Inserm U930)
% sebastien.menigot@univ-tours.fr

function pulse = En_MakePulse( pulse )

%% Parameters
A0          = pulse.A;
fs          = pulse.fs;
Nc          = pulse.Nc;
Npoints     = length(pulse.bruit);

T_bruit  = 1.15*1e-6;       % length of the excitation
fs_bruit = Npoints/T_bruit; % sampling frequency
%% --- Time ---
dt = 1/fs;                % Sample interval
tp = pulse.ts;

tp_bruit = (tp(1):1/fs_bruit:tp(end));

%% Pulse Ref
fRef = 3e6;
tpRef = (-5000:4999) * 1/fs;
xRef = A0 .* exp(-( (pi*fRef*tpRef/Nc).^2) ) .*sin(2*pi*fRef.*tpRef);
PRef = sum(xRef.*xRef)/(length(xRef)/fs);

Gaussienne = exp(-( (pi*fRef*tp/Nc).^2) );

%% Samples of the signal
signal_bruit = zeros(size(tp_bruit));
l2signal_bruit = fix(length(signal_bruit)/2);
signal_bruit(l2signal_bruit-fix(Npoints/2):l2signal_bruit+fix(Npoints/2)-1) = pulse.bruit;

%% interpolation
signal_bruit_interpole = interp1((0:length(tp_bruit)-1)*(tp_bruit(2)-tp_bruit(1)),signal_bruit,(0:length(tp)-1)*dt,'spline');

%% Apodisation
signal_bruit_apodise = Gaussienne' .* signal_bruit_interpole;

%% Amplitude
A_bruit = sqrt((PRef * (length(signal_bruit_apodise)/fs)) / sum(signal_bruit_apodise.^2)); 
signal_bruit_amplifie = sign(A0) * A_bruit .* signal_bruit_apodise;

%% Transducer
signal_bruit_filtre = En_Transducteur(signal_bruit_amplifie,fs);

%% -- Pulse final ---
pulse.t = (0:length(signal_bruit_interpole)) * dt;
pulse.p = signal_bruit_filtre';

return
back to top