<?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>Nederlands &#8211; ASN Home</title>
	<atom:link href="https://www.advsolned.com/category/nederlands-ne/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.advsolned.com</link>
	<description>ASN home site</description>
	<lastBuildDate>Mon, 05 Oct 2020 15:15:16 +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>A-weging equalisatie: Ontwerp en implementatie naar Arm Cortex-M devices</title>
		<link>https://www.advsolned.com/a-weging-equalisatie/</link>
					<comments>https://www.advsolned.com/a-weging-equalisatie/#respond</comments>
		
		<dc:creator><![CDATA[ASN consultancy team]]></dc:creator>
		<pubDate>Fri, 02 Oct 2020 15:19:14 +0000</pubDate>
				<category><![CDATA[Nederlands]]></category>
		<category><![CDATA[Arm Cortex-M]]></category>
		<category><![CDATA[Aweging]]></category>
		<category><![CDATA[CMSIS-DSP]]></category>
		<category><![CDATA[equalisatie]]></category>
		<category><![CDATA[magnitude]]></category>
		<guid isPermaLink="false">https://www.advsolned.com/?p=14646</guid>

					<description><![CDATA[<p>Ingenieurs zijn tegenwoordig in staat met behulp van moderne embedded processors, softwareframeworks en design tooling geavanceerde meetconcepten toe te passen. Een van deze toepassingen zijn slimme fabrieken als onderdeel van de I4.0 revolutie. De laatste jaren heeft PM (predictief onderhoud) van machines veel aandacht gekregen, waarbij fabrieken hun productie-efficiëntie willen maximaliseren. Tegelijkertijd willen zij de [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://www.advsolned.com/a-weging-equalisatie/">A-weging equalisatie: Ontwerp en implementatie naar Arm Cortex-M devices</a> appeared first on <a rel="nofollow" href="https://www.advsolned.com">ASN Home</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Ingenieurs zijn tegenwoordig in staat met behulp van moderne embedded processors, softwareframeworks en design tooling geavanceerde meetconcepten toe te passen. Een van deze toepassingen zijn slimme fabrieken als onderdeel van de I4.0 revolutie.</p>



<figure class="wp-block-image"><img decoding="async" src="https://www.advsolned.com/wp-content/uploads/2020/04/Industry-4.png" alt="This image has an empty alt attribute; its file name is Industry-4.png"/></figure>



<p>De laatste jaren heeft PM (predictief onderhoud) van machines veel aandacht gekregen, waarbij fabrieken hun productie-efficiëntie willen maximaliseren. Tegelijkertijd willen zij de waardevolle vaardigheden van ervaren voormannen en productiemedewerkers behouden.</p>



<p>Traditioneel liep een voorman rond op de werkvloer en luisterde naar de geluiden die een machine maakte. Zo kreeg hij een idee waar mogelijk een verstoring zou plaats vinden. Met de komst van I4.0 technologie kunnen nu microfoons, edge DSP-algoritmes en ML worden ingezet. Deze &#8216;luisteren&#8217; naar de geluiden die een machine maakt en maken vervolgens een classificatie en voorspelling.</p>



<p><em>Een van de grootste uitdagingen is hoe je een computer kunt laten horen als een mens.</em></p>



<h2 class="wp-block-heading">Fysica van het menselijk oor</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">
<p>Een illustratie van het menselijk oor staat hiernaast weergegeven. Zoals te zien, is de basistaak van het oor het vertalen van geluid (luchttrilling) naar elektrische zenuwimpulsen die de hersenen kunnen interpreteren.</p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image"><img decoding="async" src="https://www.advsolned.com/wp-content/uploads/2020/04/humanear-638x430-1.png" alt="This image has an empty alt attribute; its file name is humanear-638x430-1.png"/></figure>



<p></p>
</div>
</div>



<h2 class="wp-block-heading"><strong>Hoe werkt het oor?</strong></h2>



<p>Het oor verwezenlijkt dit via drie botten (Stapes, Incus en Malleus) die fungeren als een mechanische versterker voor trillingen die worden ontvangen op het trommelvlies. Deze versterkte geluiden worden vervolgens via het Ovale venster (niet afgebeeld) naar het Cochlea gestuurd. De Cochlea (in paars weergegeven) is gevuld met een vloeistof die beweegt als reactie op de trillingen van het ovale venster. Als de vloeistof beweegt, worden duizenden zenuwuiteinden in beweging gezet. Deze zenuwuiteinden zetten geluidstrillingen om in elektrische impulsen die langs de auditieve zenuwvezels naar de hersenen gaan voor analyse.</p>



<h2 class="wp-block-heading"><strong>Het modelleren van waargenomen geluid</strong></h2>



<p>Door de complexiteit van de vloeiende mechanische constructie van het menselijke auditieve systeem zijn lage en hoge frequenties doorgaans niet waarneembaar. Onderzoekers hebben in de loop der jaren ontdekt dat de mens het meest gevoelig is voor geluiden die in het 1-6kHz-bereik liggen. Daarbij varieert dit bereik, afhankelijk van de fysieke gezondheid van de proefpersoon.</p>



<p>Dit onderzoek heeft geleid tot de definitie van een set weighting curves (weegkrommes): de zogenaamde A-, B-, C- en D-weging curves, die de frequentierespons van een microfoon egaliseert. Deze weging curves hebben als doel de digitale en fysieke wereld dichter bij elkaar te brengen door een geautomatiseerd microfoonsysteem te laten horen als een mens.</p>



<p>De A-weging curve is de meest gebruikte, omdat deze volgens IEC-61672 op alle geluidsniveaumeters moet worden gemonteerd. De B- en D-curves worden nauwelijks gebruikt, maar de C-weging kan worden gebruikt voor het testen van de impact van geluid in telecomsystemen.</p>



<div class="wp-block-image"><figure class="aligncenter"><img decoding="async" src="https://www.advsolned.com/wp-content/uploads/2019/10/aweightingcurve-1.png" alt="This image has an empty alt attribute; its file name is aweightingcurve-1.png"/></figure></div>



<p>In bovenste grafiek is de frequentierespons van de A-weging curve weergegeven. De geluiden die onze oren onder<strong> 500Hz binnenkomen zijn gedefragmenteerd. Het best waarneembaar is tussen de 0.5-6kHz</strong>. Merk op dat de curve niet gespecificeerd is boven 20kHz, omdat dit het menselijke gehoorbereik overschrijdt.</p>



<h2 class="wp-block-heading">ASN FilterScript</h2>



<p>Met ASN’s <a href="http://www.advsolned.com/asn-filterscript-gsg/">FilterScript</a> symbolische wiskunde scripttaal kunnen ontwerpers analoge filtertransferfuncties met slechts enkele regels code omzetten naar het digitale equivalent.</p>



<p>De analoge overdrachtsfuncties van de A- en C-weging curves staan hieronder vermeld:<span class="" style="display:block;clear:both;height: 0px;padding-top: 10px;border-top-width:0px;border-bottom-width:0px;"></span></p>



<p>\(H_A(s) \approx \displaystyle{7.39705×10^9 \cdot s^4 \over (s + 129.4)^2\quad(s + 676.7)\quad (s + 4636)\quad (s + 76655)^2}\)<span class="" style="display:block;clear:both;height: 0px;padding-top: 20px;border-top-width:0px;border-bottom-width:0px;"></span></p>



<p>\(H_C(s) \approx \displaystyle{5.91797×10^9 \cdot s^2\over(s + 129.4)^2\quad (s + 76655)^2}\)<span class="" style="display:block;clear:both;height: 0px;padding-top: 20px;border-top-width:0px;border-bottom-width:0px;"></span></p>



<p>Deze analoge transfer functies kunnen worden getransformeerd naar hun digitale equivalent door de <code>bilinear()</code> functie. Merk daarbij echter op dat \(H_A(s) \) een aanzienlijke hoeveelheid algebraïsche manipulatie vereist om de noemer van de coëfficiënten in machten van \(s\) te kunnen extraheren.</p>



<h3 class="wp-block-heading"><strong>Convolutie</strong></h3>



<p>Een eenvoudige truc om polynomiale vermenigvuldiging uit te voeren is het gebruik van lineaire convolutie, wat dezelfde algebraïsche operatie is als het vermenigvuldigen van twee polynomialen samen. Dit kan eenvoudig worden uitgevoerd via Filterscript’s <code>conv()</code> functie:</p>


<pre class="brush: java; light: true; title: ; notranslate">
y=conv(a,b);
</pre>



<p>Als eenvoudig voorbeeld:  de vermenigvuldiging van \((s^2+2s+10)\) met \((s+5)\), wordt met 3 regels of FilterScript code gedefinieerd:</p>


<pre class="brush: java; title: ; notranslate">
a={1,2,10};
b={1,5};
y=conv(a,b);
</pre>



<p>Dit geeft de volgende opbrengsten: <code> 1 7 20 50</code> of \((s^3+7s^2+20s+50)\)</p>



<p>Voor de A-weging curve Laplace-transferfunctie wordt hieronder de volledige FilterScript-code gegeven:</p>


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

Main() // main loop

a={1, 129.4};
b={1, 676.7};
c={1, 4636};
d={1, 76655};

aa=conv(a,a); // polynomial multiplication
dd=conv(d,d);

aab=conv(aa,b);
aabc=conv(aab,c);

Na=conv(aabc,dd);
Nb = {0 ,0 , 1 ,0 ,0 , 0, 0}; // define numerator coefficients
G = 7.397e+09; // define gain

Ha = analogtf(Nb, Na, G, &quot;symbolic&quot;);
Hd = bilinear(Ha,0, &quot;symbolic&quot;);

Num = getnum(Hd);
Den = getden(Hd);
Gain = getgain(Hd)/computegain(Hd,1e3); // set gain to 0dB@1kHz

</pre>



<div class="wp-block-image"><figure class="aligncenter"><img decoding="async" src="https://www.advsolned.com/wp-content/uploads/2019/10/aweightingcomp-1.png" alt="This image has an empty alt attribute; its file name is aweightingcomp-1.png"/></figure></div>



<p>Zoals te zien is, komt de digitale equivalente magnitudereactie zeer nauw overeen met de ideale analoge magnitudereactie tot \(6kHz\).</p>



<h3 class="wp-block-heading"><strong>De ITU-R 486–4 weging curve</strong></h3>



<p>Een andere belangrijke wegingcurve is de ITU-R 486–4 weighting curve. Deze is ontwikkeld door de BBC. In tegenstelling tot het A-weging curve filter beschrijft de ITU-R 468-4-curve de subjectieve luidheid voor breedbandstimuli. Het belangrijkste nadeel van de A-weging curve is dat deze de luidheidsevaluatie van reële stimuli onderschat, met name in de frequentieband van ongeveer 1-9 kHz.</p>



<p>Door de precieze definitie van de 486-4 wegingscurve is er geen analoge transfer functie beschikbaar. In plaats daarvan biedt de standaard een tabel met amplitudes en frequenties – <a href="https://en.wikipedia.org/wiki/ITU-R_468_noise_weighting">hier weergegeven</a>. Deze specificatie kan rechtstreeks worden ingevoerd in Filterscript’s <code>firarb()</code> functie om een geschikt FIR filter te ontwerpen, zie hieronder:</p>


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

interface L = {10,400,10,250}; // filter order

Main()

// ITU-R 468 Weighting
A={-29.9,-23.9,-19.8,-13.8,-7.8,-1.9,0,5.6,9,10.5,11.7,12.2,12,11.4,10.1,8.1,0,-5.3,-11.7,-22.2};
F={63,100,200,400,800,1e3,2e3,3.15e3,4e3,5e3,6.3e3,7.1e3,8e3,9e3,1e4,1.25e4,1.4e4,1.6e4,2e4};

A={-30,A};  //  specify arb response
F={0,F,fs/2};   //

Hd=firarb(L,A,F,&quot;blackman&quot;,&quot;numeric&quot;);

Num=getnum(Hd);
Den={1};
Gain=getgain(Hd);

</pre>



<div class="wp-block-image"><figure class="aligncenter"><img decoding="async" src="https://www.advsolned.com/wp-content/uploads/2019/10/it468firfr-1.png" alt="This image has an empty alt attribute; its file name is it468firfr-1.png"/></figure></div>



<p><span class="" style="display:block;clear:both;height: 0px;padding-top: 10px;border-top-width:0px;border-bottom-width:0px;"></span><br>Frequentierespons van een ITU-R 468-4 FIR-filter ontworpen met Filterscript&#8217;s <code>firarb()</code> functie voor \(f_s=48kHz\)</p>



<p><span class="" style="display:block;clear:both;height: 0px;padding-top: 20px;border-top-width:0px;border-bottom-width:0px;"></span>Zoals te zien, biedt FilterScript de ontwerper een zeer krachtige symbolische scripttaal voor het ontwerpen van weeg curve filters. Nu volgt een bespreking van de implementatie van een A-weeg curve filter op een Arm gebaseerde processor via de automatische codegenerator van de tool. De concepten en stappen die hieronder worden gedemonstreerd gelden ook voor FIR-filters.</p>



<h3 class="wp-block-heading"><strong>Automatische code generatie naar Arm processor cores via CMSIS-DSP</strong></h3>



<p>Het filter ontwerp kan nu met de automatische codegeneratie-engine van de ASN Filter Designer nu geexporteerd worden naar een Cortex-M Arm-gebaseerde processor via het CMSIS-DSP software raamwerk. De ingebouwde analyse- en helpfuncties van de tool helpen de ontwerper bij het succesvol configureren van het ontwerp voor implementatie.</p>



<p>Voordat de code wordt gegenereerd, moet het <strong>H2-filter</strong> (d.w.z. het filter dat in FilterScript is ontworpen) eerst opnieuw worden geoptimaliseerd (getransformeerd) naar een H1-filter (hoofdfilter) structuur voor gebruik. Het <strong>optiemenu</strong> is te vinden onder de <strong>P-Z</strong> tab in de hoofd UI.</p>



<div class="wp-block-image"><figure class="aligncenter"><img decoding="async" src="https://www.advsolned.com/wp-content/uploads/2019/10/reopt_preemp.png" alt="This image has an empty alt attribute; its file name is reopt_preemp.png"/></figure></div>



<p>Alle ontwerpen van IIR-filters met floating point moeten gebaseerd zijn op <strong>Single Precision</strong> arithmetic en ofwel een <strong>Direct Form I</strong> of <strong>Direct Form II getransponeerde</strong> filterstructuur hebben. De <strong>Direct Form II getransponeerde</strong> structuur wordt geadviseerd voor floating point implementatie vanwege de hogere numerieke nauwkeurigheid.<span class="" style="display:block;clear:both;height: 0px;padding-top: 10px;border-top-width:0px;border-bottom-width:0px;"></span></p>



<div class="wp-block-image"><figure class="aligncenter"><img decoding="async" src="https://www.advsolned.com/wp-content/uploads/2019/10/preempQoptions.png" alt="This image has an empty alt attribute; its file name is preempQoptions.png"/></figure></div>



<p>De instellingen voor kwantisatie en de filterstructuur zijn te vinden onder het tabblad <strong>Q</strong> (zoals links afgebeeld). Door <strong>Arithmetic</strong> op <strong>Single Precision</strong> te zetten en <strong>Structure</strong> op <strong>Direct Form II Transposed</strong> en vervolgens op <strong>Apply</strong> te klikken, wordt de IIR voor het CMSIS-DSP software raamwerk geconfigureerd.</p>



<p><span class="" style="display:block;clear:both;height: 0px;padding-top: 20px;border-top-width:0px;border-bottom-width:0px;"></span>Selecteer het <strong>Arm CMSIS-DSP</strong> raamwerk in het selectievakje in het filteroverzichtsvenster:</p>



<div class="wp-block-image"><figure class="aligncenter"><img decoding="async" src="https://www.advsolned.com/wp-content/uploads/2019/10/arm_code_selection.png" alt="This image has an empty alt attribute; its file name is arm_code_selection.png"/></figure></div>



<p>De automatisch gegenereerde C-code op basis van het CMSIS-DSP framework voor directe implementatie op een Arm-gebaseerde Cortex-M processor staat hieronder weergegeven:</p>



<div class="wp-block-image"><figure class="aligncenter"><img decoding="async" src="https://www.advsolned.com/wp-content/uploads/2019/10/asn25_armcode.png" alt="This image has an empty alt attribute; its file name is asn25_armcode.png"/></figure></div>



<p>Zoals weergegeven, genereert de automatische codegenerator van de ASN Filter Designer alle initialisatiecode, schaling en datastructuren die nodig is om het A-weighting IIR-filter te implementeren via de CMSIS-DSP-bibliotheek van Arm.</p>



<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">
<figure class="wp-block-image"><a href="https://www.advsolned.com/asn-filter-designer-digitale-signaalbewerking/"><img decoding="async" src="https://www.advsolned.com/wp-content/uploads/2019/12/Softwareboxshadow-verkleind-495x400_verleind.jpg" alt="ASN Filter Designer box"/></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/">Prijzen en licenties</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="14646"
					data-ulike-nonce="c6cb5c480e"
					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_14646"></button><span class="count-box wp_ulike_counter_up" data-ulike-counter-value="+1"></span>			</div></div>
	<p>The post <a rel="nofollow" href="https://www.advsolned.com/a-weging-equalisatie/">A-weging equalisatie: Ontwerp en implementatie naar Arm Cortex-M devices</a> appeared first on <a rel="nofollow" href="https://www.advsolned.com">ASN Home</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.advsolned.com/a-weging-equalisatie/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
