<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>#biomedisch &#8211; ASN Home</title>
	<atom:link href="https://www.advsolned.com/tag/biomedisch/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.advsolned.com</link>
	<description>ASN home site</description>
	<lastBuildDate>Mon, 05 Oct 2020 15:05:06 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
	<item>
		<title>Ruis onderdrukking ECG data</title>
		<link>https://www.advsolned.com/ruis-onderdrukking-ecg-data/</link>
					<comments>https://www.advsolned.com/ruis-onderdrukking-ecg-data/#respond</comments>
		
		<dc:creator><![CDATA[ASN consultancy team]]></dc:creator>
		<pubDate>Thu, 24 Sep 2020 13:15:47 +0000</pubDate>
				<category><![CDATA[Nederlands]]></category>
		<category><![CDATA[#biomedisch]]></category>
		<category><![CDATA[#ECG]]></category>
		<category><![CDATA[#EMG]]></category>
		<category><![CDATA[#notchfilter]]></category>
		<category><![CDATA[#ruisonderdrukking]]></category>
		<category><![CDATA[#savitzkygolay]]></category>
		<guid isPermaLink="false">https://www.advsolned.com/?p=14331</guid>

					<description><![CDATA[<p>Praktische tips voor ruis onderdrukking ECG data waarbij de centrumfrequentie regelt, van de notch, en de bandbreedte (-3dB point) van de notch controleert. Wat is de uitdaging? Zoals hierboven beschreven, is makkelijk te implementeren. De moeilijkheid ligt echter in het vinden van een optimale waarde van r, aangezien een gewenste scherpe notch betekent dat de [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://www.advsolned.com/ruis-onderdrukking-ecg-data/">Ruis onderdrukking ECG data</a> appeared first on <a rel="nofollow" href="https://www.advsolned.com">ASN Home</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p></p>



<h2 class="wp-block-heading">Praktische tips voor ruis onderdrukking ECG data</h2>


<p>Bij ECG-signaalverwerking is het verwijderen van 50/60Hz powerline interferentie is een grote uitdaging! De informatie voorkomend uit de ECG biomedische golfvormen is erg gevoelig voor verstoringen. De uitdaging wordt verder gecompliceerd door het aanpassen aan de effecten van EMG, zoals een beweging van de patiënt in de ledematen of de romp of zelfs de ademhaling. Hiervoor wordt vaak een 2e orde IIR notch filter gebruikt:</p>



<p class="has-text-align-center">\(\displaystyle H(z)=\frac{1-2cosw_oz^{-1}+z^{-2}}{1-2rcosw_oz^{-1}+r^2z^{-2}}\)</p>



<p>waarbij \(w_o=\frac{2\pi f_o}{fs}\) de centrumfrequentie regelt, \(f_o\) van de notch, en \(r=1-\frac{\pi BW}{fs}\) de bandbreedte (-3dB point) van de notch controleert.</p>



<h2 class="wp-block-heading">Wat is de uitdaging?</h2>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-1 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<p>Zoals hierboven beschreven, is \(H(z) \) makkelijk te implementeren. De moeilijkheid ligt echter in het vinden van een optimale waarde van r, aangezien een gewenste scherpe notch betekent dat de polen dicht bij de eenheidscirkel ligt (zie rechts).</p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="286" height="264" src="https://www.advsolned.com/wp-content/uploads/2019/05/biomedical_ex_iir_pz.png" alt="ECG biomedical 2nd order IIR notch filter H(z) is simple to implement, but the difficulty lies in finding an optimal value of r, as a desirable sharp notch means that the poles are close to unit circle." class="wp-image-8591"/></figure>
</div>
</div>



<p>Bij stationaire interferentie, bijvoorbeeld wanneer de patiënt absoluut stil ligt en de effecten van de ademhaling op de sensorgegevens minimaal zijn, hoeft dit geen probleem te zijn.</p>



<p>Echter, wanneer men de effecten van EMG op de golfvorm (een veel realistischer situatie) bekijkt, veroorzaakt de terugkoppeling van het IIR-filter (polen) ringen op de gefilterde golfvorm, zoals hieronder wordt weergegeven:</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" width="723" height="426" src="https://www.advsolned.com/wp-content/uploads/2020/04/biomedical_ex_iir_td.png" alt="biomedical ex iir td Contaminated ECG with non-stationary 50Hz powerline interference (FIR filtering), ECG sigal processing, ECG DSP, ECG" class="wp-image-12201" srcset="https://www.advsolned.com/wp-content/uploads/2020/04/biomedical_ex_iir_td.png 723w, https://www.advsolned.com/wp-content/uploads/2020/04/biomedical_ex_iir_td-300x177.png 300w, https://www.advsolned.com/wp-content/uploads/2020/04/biomedical_ex_iir_td-705x415.png 705w, https://www.advsolned.com/wp-content/uploads/2020/04/biomedical_ex_iir_td-450x265.png 450w" sizes="(max-width: 723px) 100vw, 723px" /><figcaption><em>Vervuilde ECG met niet-stationaire 50Hz stroomlijninterferentie (IIR-filtering)</em></figcaption></figure></div>



<p>Zoals hierboven te zien is, is het grootste deel van de 50Hz-storing verwijderd. Er is echter nog steeds sprake van aanzienlijke ringen rond de belangrijkste pieken (gefilterde output in het rood weergegeven). Deze ringing is ongewenst voor veel biomedische toepassingen, omdat vitale cardiale informatie zoals het ST-segment daardoor niet duidelijk kan worden geanalyseerd.</p>



<p>De frequentierespons van het IIR dat wordt gebruikt om de bovenstaande ECG-gegevens te filteren, staat hieronder weergegeven.</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" width="434" height="535" src="https://www.advsolned.com/wp-content/uploads/2019/05/biomedical_ex_iir_fr.png" alt="biomedical ex iir fr IIR notch filter frequency response, ECG signal processing, ECG DSP, ECG  measurement" class="wp-image-8585" srcset="https://www.advsolned.com/wp-content/uploads/2019/05/biomedical_ex_iir_fr.png 434w, https://www.advsolned.com/wp-content/uploads/2019/05/biomedical_ex_iir_fr-243x300.png 243w" sizes="(max-width: 434px) 100vw, 434px" /><figcaption><em>IIR notch filter frequentierespons</em></figcaption></figure></div>



<p>Bij het analyseren van de grafiek is te zien dat de groepsvertraging (of gemiddelde vertraging) van het filter niet-lineair is, maar bijna nul in de passbands. Dit betekent dat er geen vervorming is. De groepsvertraging bij 50Hz loopt op tot 15 samples, wat de bron is van de ringing &#8211; waar hoe dichter bij de polen de eenheidscirkel is, hoe groter de groepsvertraging.</p>



<p><a href="https://www.advsolned.com/asn-filterscript-gsg/">ASN FilterScript</a> biedt ontwerpers de notch() functie, die een directe uitvoering is van H(z), zoals hieronder getoond:</p>



<pre class="brush: java; title: ; notranslate">
ClearH1;  // clear primary filter from cascade
ShowH2DM;   // show DM on chart

interface BW={0.1,10,.1,1};

Main()

F=50;
Hd=notch(F,BW,&quot;symbolic&quot;);
Num = getnum(Hd); // define numerator coefficients
Den = getden(Hd); // define denominator coefficients
Gain = getgain(Hd); // define gain
</pre>



<h2 class="wp-block-heading">Savitzky-Golay FIR-filters</h2>



<p>Een oplossing voor het bovengenoemde ringing en geluidsreductie kan worden bereikt door middel van een Savitzky-Golay lowpass smoothing filter. Deze filters zijn FIR-filters en hebben dus geen terugmeldingscoëfficiënten en geen ringing!</p>



<p>Savitzky-Golay (polynomiaal) smoothing filters of least-squares smoothing filters zijn generalisaties van het FIR gemiddelde filter die het hoogfrequent gehalte van het gewenste signaal beter kunnen behouden, ten koste van het niet verwijderen van zoveel ruis als een FIR gemiddelde. De specifieke formulering van de Savitzky-Golay filters behoudt verschillende moment orders beter dan andere afvlakmethodes, die de neiging hebben om piekbreedten en -hoogten beter te behouden dan Savitzky-Golay. Als zodanig zijn Savitzky-Golay filters zeer geschikt voor biomedische gegevens, zoals ECG-datasets.</p>



<h3 class="wp-block-heading">Het elimineren van de 50Hz powerline component</h3>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-2 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<p>Door het ontwerpen van een 18e orde Savitzky-Golay filter met een 4e orde polynomiale pasvorm (zie de voorbeeldcode hieronder), verkrijgen we een FIR filter met een nul-verdeling zoals hiernaast getoond. Echter, omdat we de 50Hz component volledig willen elimineren, kan de P-Z editor van de tool gebruikt worden om een nulpaar (in het groen weergegeven) tot precies 50Hz te brengen.</p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="251" height="238" src="https://www.advsolned.com/wp-content/uploads/2019/05/biomedical_ex_fir_pz.png" alt="biomedical ex fir pole zero. Designing an 18th order Savitzky-Golay filter with a 4th order polynomial fit, , we obtain an FIR filter with a zero  distribution" class="wp-image-8583"/></figure>
</div>
</div>



<p>De resulterende frequentierespons is hieronder weergegeven, waar te zien is dat er een notch is op precies 50Hz, en de groepsvertraging van 9 samples (in paars weergegeven) is constant over de hele frequentieband.</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="446" height="524" src="https://www.advsolned.com/wp-content/uploads/2019/05/biomedical_ex_fir_fr.png" alt="biomedical ex fir fr FIR  Savitzky-Golay filter frequency response, ECG signal processing, ECG DSP, ECG measurement" class="wp-image-8588" srcset="https://www.advsolned.com/wp-content/uploads/2019/05/biomedical_ex_fir_fr.png 446w, https://www.advsolned.com/wp-content/uploads/2019/05/biomedical_ex_fir_fr-255x300.png 255w" sizes="auto, (max-width: 446px) 100vw, 446px" /><figcaption><em>FIR Savitzky-Golay-filter-frequentierespons</em></figcaption></figure></div>



<p>Wanneer we de vervuilde ECG-dataset door onze aangepaste Savitzky-Golay-filter laten gaan, en met de aanpassing voor de groepsvertraging krijgen we:</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="746" height="407" src="https://www.advsolned.com/wp-content/uploads/2019/05/biomedical_ex_fir_td.png" alt="biomedical ex fir td Passing the tainted ECG dataset through our tweaked Savitzky-Golay filter, and adjusting for the group delay" class="wp-image-8584" srcset="https://www.advsolned.com/wp-content/uploads/2019/05/biomedical_ex_fir_td.png 746w, https://www.advsolned.com/wp-content/uploads/2019/05/biomedical_ex_fir_td-300x164.png 300w, https://www.advsolned.com/wp-content/uploads/2019/05/biomedical_ex_fir_td-705x385.png 705w, https://www.advsolned.com/wp-content/uploads/2019/05/biomedical_ex_fir_td-450x246.png 450w" sizes="auto, (max-width: 746px) 100vw, 746px" /><figcaption><em>Verontreinigde ECG met niet-stationaire 50Hz stroomlijninterferentie (FIR-filtering)</em></figcaption></figure></div>



<p>Zoals te zien, is er geen sprake van ringing en zijn de ST-segmenten nu duidelijk zichtbaar voor analyse. Merk ook op hoe het filter (weergegeven in rood) de meetruis heeft gereduceerd. Dit toont de bruikbaarheid van de Savitzky-Golay filters voor biomedische signaalverwerking aan.</p>



<p>Een Savitzky-Golay kan als volgt worden ontworpen en geoptimaliseerd in <a href="https://www.advsolned.com/asn-filterscript-gsg/">ASN FilterScript</a> via de savgolay() functie:</p>



<pre class="brush: java; title: ; notranslate">
ClearH1;  // clear primary filter from cascade

interface L = {2, 50,2,24};
interface P = {2, 10,1,4};

Main()

Hd=savgolay(L,P,&quot;numeric&quot;);  // Design Savitzky-Golay lowpass
Num=getnum(Hd);
Den={1};
Gain=getgain(Hd);
</pre>



<h2 class="wp-block-heading">Implementatie</h2>



<p>Dit filter kan nu worden geimplementeerd via de automatische codegenerator van de tool, waardoor het snel kan worden geimplementeerd in Matlab, Python en ingebedde Arm Cortex-M apparaten.</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-3 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-large"><a href="https://www.advsolned.com/asn-filter-designer-digtiale-signaalbewerking/"><img loading="lazy" decoding="async" width="325" height="263" src="https://www.advsolned.com/wp-content/uploads/2019/12/Softwareboxshadow-325.jpg" alt="ASN Filter Designer Powerful DSP Platform" class="wp-image-10759" srcset="https://www.advsolned.com/wp-content/uploads/2019/12/Softwareboxshadow-325.jpg 325w, https://www.advsolned.com/wp-content/uploads/2019/12/Softwareboxshadow-325-300x243.jpg 300w" sizes="auto, (max-width: 325px) 100vw, 325px" /></a><figcaption>ASN Filter Designer Powerful DSP Platform</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<div class="wp-block-button is-style-fill"><a class="wp-block-button__link has-text-color has-very-light-gray-color has-background has-vivid-cyan-blue-background-color no-border-radius" href="https://www.advsolned.com/request-form-asn-filter-designer-demo/">Download Demo</a></div>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<div class="wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex">
<div class="wp-block-button"><a class="wp-block-button__link has-background has-vivid-cyan-blue-background-color no-border-radius" href="https://www.advsolned.com/pricing-and-licencing/">Pricing and Licencing</a></div>
</div>
</div>
</div>
		<div class="wpulike wpulike-default " ><div class="wp_ulike_general_class wp_ulike_is_not_liked"><button type="button"
					aria-label="Like Button"
					data-ulike-id="14331"
					data-ulike-nonce="4e002aeec3"
					data-ulike-type="post"
					data-ulike-template="wpulike-default"
					data-ulike-display-likers=""
					data-ulike-likers-style="popover"
					class="wp_ulike_btn wp_ulike_put_image wp_post_btn_14331"></button><span class="count-box wp_ulike_counter_up" data-ulike-counter-value="0"></span>			</div></div>
	<p>The post <a rel="nofollow" href="https://www.advsolned.com/ruis-onderdrukking-ecg-data/">Ruis onderdrukking ECG data</a> appeared first on <a rel="nofollow" href="https://www.advsolned.com">ASN Home</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.advsolned.com/ruis-onderdrukking-ecg-data/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
