===== Cvičení 7 : Simulace ultrazvuku ===== V tomto cvičení prozkoumáme generování ultrazvukových vln, jejich vlastnosti a vliv na charakteristiku signálu. Budeme používat simulátor [[http://field-ii.dk/|Field II]], což je programové prostředí tvořené souborem matlabovských funkcí, které umožňuje numerickou simulaci ultrazvukového signálu. Program je schopen numerické simulace vyslaného a přijatého akustického tlakového pole pro širokou škálu akustických měničů (transducerů). Na základě takto nasnímaných dat jsme schopni zrekonstruovat snímek např. struktury měkké tkáně, jaký bychom získali konvenčním ultrazvukovým přístrojem. {{ :courses:a6m33zsl:us_field.jpg?400 |Simulátor FIELD II}} ==== Zadání ==== - Vytvořte akustický systém se zadanými parametry (viz. [[#Akustický systém]]). [0.5b] - Určeme průběh tlaku (viz. [[#Emitované tlakové vlny]]). Vypočteme a vykreslete simulované tlakové pole. Diskutujte dosažené vlastnosti (axiální, laterální rozlišení) a možné vedlejší efekty v závislosti na konfiguraci akustického systému. [2.5b] (Apodizace - bonus [+1b]) - Simulace vlivu //scattering// prvků na měřenou odezvu (viz. [[#Scattering]]) [2b] Pro vypracování úkolů můžete použít připravenou {{:courses:a6m33zsl:simulate_usound_template.m|šablonu}} === Alternativní zadání === Použijte výstupy simulace z {{ :courses:a6m33zsl:zsl_cviceni7_data.zip | archivu}} a proveďte diskuzi k otázám uvedeným u druhé a třetí části původního zadání [3b] '' **Oprava:** V grafech aktivity detektorů jsou oproti zadání na stránce prohozené pozice bodů, tj. pro //Positions 2// je scatter point umístěný na pozici [0 0 30].'' ==== Instalace ==== FIELD II je distribuován jako balík matlabovských funkcí pro různá operační systémy (Win, Unix, …). - Stáhněte si tento {{courses:a6m33zsl:internal:backups:20160119:field_ii_combined.zip?linkonly|soubor}} obsahující kompletní soubor funkcí simulátoru pro Windows (Matlab 7.10, ale funguje i v Matlabu 7.8). Pokud chcete používat Field v Unixu, nebo narazili na problemy s verzi Matlabu, stáhnete si balík ze [[http://field-ii.dk/?./downloading_7_12.html|stranek]] autora. - Rozbalte jej do vašeho pracovního adresáře, např. ''g:\field''. - Spusťte Matlab a přidejte cestu: //path(path,' g:\field');//. - Proveďte inicializaci: ''field_init''; - Pracujte s funkcemi simulátoru - Ukončete používání simulátoru voláním ''field_end;'' ==== Popis funkcí ==== Výpis a popis [[courses:a6m33zsl:field_functions|funkcí]], které budete potřebovat. ==== Akustický systém ==== Vytvoříme akustický systém s následujícími parametry (dejte pozor, v jakých jednotkách se předávají parametry funkcí). * Prostředí. Rychlost zvuku: //1540m/s//. * Vzorkovací frekvence ultrazvukového přístroje (funkce set_sampling): //100MHz//. * Akustický měnič – vysílač (funkce //xdc_linear_array//). * Počet piezoelektrických elementů: //64//. * Mezera mezi elementy: //0.5 mm//. * šířka elementu: //1.0 mm//. * Výška elementu: //5 mm//. * Souřadnice ohnisko: //[0 0 30] mm//. * Dělení elementu podél šířky zvolte: //1//. * Dělení elementu podél výšky zvolte: //4//. * Impulzní odezva vysílače (funkce xdc_impulse). * Nechť impulzní odezva piezoelektrického elementu má tvar sinusoidy na centrální frekvenci //7,5MHz// modulované Gaussovou křivkou. * Poměrnou šířkou pásma 50% na úrovni //-6dB//. Délku impulzové odezvy zvolte podle čas. okamžiků v nichž obálka signálu klesne pod //-40dB// oproti maximální amplitudě signálu (funkce //gauspuls//). * //cutoff_time = gauspuls('cutoff', f, d, l, k)// * //f// je centrální frekvence sinusoidy [Hz], * //d// je šířka pásma (1 pro 100%), * //l// je zvolená úroveň xx dB, * //k// cutoff až klesne pod xx dB * //odezva = gauspuls(t, f, d, l)//, kde * //t// jsou časy ve kterých je odezva vzorkována (od //-cutoff// time do //cutoff// time a krok je //1/// přístroje), * //f// je centrální frekvence sinusoidy [Hz], * //d// je šířka pásma (1 pro 100%), * //l// je zvolená úroveň xx dB. * Budicí signál transduceru - nastavte pouze pro vysílač (funkce //xdc_excitation//). Prozatím zvolte diskrétní Diracův impuls (odezva je 1). ==== Emitované tlakové vlny ==== Při přivedení budícího signálu na piezoelektrické elementy dojde k jejich rozkmitání a transducer vyšle do prostředí akustický puls, následkem něhož dochází ke změnám tlaku. Simulátor FIELD II nám umožňuje stanovit takovéto tlakové pole pro zvolený transducer a budící signál, tj. jsme schopni zjistit časově proměnný průběh tlaku v libovolném bodě. Analogický případ je, kdy pomocí hydrofonu (snímač tlaku) měříme tlakový puls vysílaný sondou ultrazvukového přístroje. Vysílač sestrojený v [[#Akustický systém]] vyšle ultrazvukový paprsek "rovně" ve směru osy Z. Paprsek je zaostřený na vzdálenost //30mm//. - Určete a zobrazte průběh tlaku přes body rovnoměrně rozložené s krokem //0,02mm// na přímce, která je rovnoběžná s osou x a prochází ohniskem od //-1mm// do //1mm//. Pro tuto přímku platí, že axiální vzdálenost (souřadnice z) je //30mm//, souřadnice y je 0. Souřadný systém, viz. sekce [[#Popis funkcí]]. Proveďte stejnou simulaci také pro přímku ve vzdálenosti //25mm// a //35mm//. - Vypočtěte tlakové pole funkcí ''calc_hp''. Zobrazte pole ''hp'', ve kterém jsou uloženy průběhy tlaků zvolenými body. - Zobrazte průběh maxim tlaků v dB pro všechny přímky a porovnejte s tlaky pro přímku ve vzdálenosti //30 mm//. Co z toho můžeme vyvodit o zaostření? - Pro určení hodnoty laterálního rozlišení systému je důležitá znalost maxim tlaků v laterálním (//x//-ovém) směru. Pro každý bod určete maximum absolutní hodnotu tlaku, který v něm byl zjištěn (pro i-ty bod jej označme //Pm_i//). Zobrazte průběh normalizovaný průběh maxim tlaků v dB. //20*log10[ Pm_i / max(Pm_i) ]// - Pro přímku ve vzdálenosti //30mm// si všimněte postranních laloků. Jakým způsobem negativně ovlivňují parametry ultrazvukového přístroje? - Jaký vliv má změna centrální frekvence na rozlišení a postranní laloky? Vyzkoušejte pro tři různé frekvence a diskutuje. - //BONUS:// pokuste se eliminovat postranní laloky pomocí apodizace (funkce //xdc_apodization//, profil zvolte např. //hanning//, //blackmann//), zobrazte průběh tlaku jako u předchozích nastavené, diskutujte vliv na laterální rozlišení. ==== Scattering ==== Opět použijeme vysílač sestrojený v první části ([[#Akustický systém]]), tentokráte budeme sledovat časový průběh měřeného signálu na poli přijímačů. Ohniskovou vzdálenost ponecháme na //30 mm// a do signálu budeme vkládat bodové prvky, které budou simulovat odraz (přesněji scattering) vysílané vlny. - Definujte souřadnice bodů, ve kterých budeme simulovat scattering - Pomocí funkce ''[V, t] = calc_scat_multi (emitter, receiver, positions, amp);'' nasimulujeme časový průběh měřeného signálu jednotlivých prvků v poli přijímače - Vykreslete normalizované aktivace jednotlivých komponent do jednoho grafu pod sebe (např. postupným vykreslením s přidáváním offsetu pro každou linii: for i = 1:nElements plot(time_axis, V(:,i) + i), hold on end hold off; - Vykreslete také časový průběh součtu (přes prvky ''nElements'') normalizovaných aktivací - Diskutujte naměřené aktivace a následující skupiny bodů: % Skupina (1) positions = [ 0.0 0.0 30; 0.5 0.0 20] / 1000; amp = [1; 0.4]; % Skupina (2) positions = [-0.7 0.0 30; 0.5 0.0 20] / 1000; amp = [1; 0.4]; - Jak se změní aktivita na přijímačích pro druhou skupinu bodů pro centrální frekvence 3 a 6 MHz a proč? (Průběh tlaků pro dané frekvence můžete zobrazit pomocí předchozí podúlohy) - (BONUS) Jak se liší výstup pro druhou skupinu při zapnuté/vypnuté apodizaci?