{"id":5703,"date":"2026-10-15T02:48:40","date_gmt":"2026-10-14T23:48:40","guid":{"rendered":"https:\/\/vahamartti.fi\/blog\/?p=5703"},"modified":"2026-10-15T02:48:40","modified_gmt":"2026-10-14T23:48:40","slug":"genelec-glm-vaylan-datan-dekoodaus-osa-3","status":"publish","type":"post","link":"https:\/\/vahamartti.fi\/blog\/?p=5703","title":{"rendered":"Genelec GLM v\u00e4yl\u00e4n datan dekoodaus \u2013 osa 3"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Aiemmin selvittelin fyysisen rajapinnan <a href=\"https:\/\/vahamartti.fi\/blog\/?p=5696\" data-type=\"post\" data-id=\"5696\">toteutusta<\/a>, sek\u00e4 liikenteen kaappaamista. Seuraava askel on saada \u00e4\u00e4nenvoimakkuustieto esille, jotta saan projektin alkuper\u00e4isen tavoitteen t\u00e4ytetty\u00e4. Mutta, homma l\u00e4hti <em>v\u00e4h\u00e4n<\/em> lapasesta. N\u00e4ist\u00e4 lis\u00e4\u00e4 tulevissa julkaisuissa.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Datan dekoodaus<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Kehysten alku mietitytti. \u00c4\u00e4nenvoimakkuuskehykset alkoivat aina samalla tavalla, 1F0 01F, mutta ensimm\u00e4inen sana vaihtui sen mukaan, ohjasinko \u00e4\u00e4nenvoimakkuutta analogis\u00e4\u00e4timell\u00e4 vai GLM-sovelluksella. Toinen sana pysyi koko ajan samana.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">P\u00e4\u00e4ttelin, ett\u00e4 ensimm\u00e4inen on osoite tai l\u00e4hett\u00e4j\u00e4n tunniste ja toinen \u00e4\u00e4nenvoimakkuuskomento. Kolme seuraavaa sanaa muuttuivat asetusarvon mukana, joten niiss\u00e4 kulki itse \u00e4\u00e4nenvoimakkuus. Lopussa oli viel\u00e4 kaksi sanaa, jotka n\u00e4yttiv\u00e4t tarkisteelta, ja viimeisen\u00e4 p\u00e4\u00e4ttymismerkki.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">T\u00e4ss\u00e4 kohdassa teko\u00e4lyst\u00e4 oli hy\u00f6ty\u00e4. Annoin sille joitain eri \u00e4\u00e4nenvoimakkuusasetuksia ja v\u00e4yl\u00e4lt\u00e4 luetut arvot, ja se l\u00f6ysi niiden v\u00e4lisen korrelaation. Pian laskentakaava putkahtikin ulos:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><math display=\"block\"><semantics><mrow><mi>d<\/mi><mi>B<\/mi><mo>=<\/mo><mn>20<\/mn><mo>\u00d7<\/mo><mi>l<\/mi><mi>o<\/mi><mi>g<\/mi><mn>10<\/mn><mo form=\"prefix\" stretchy=\"false\">(<\/mo><mi>r<\/mi><mi>a<\/mi><mi>w<\/mi><mo form=\"postfix\" stretchy=\"false\">)<\/mo><mo>\u2212<\/mo><mn>138.4738<\/mn><\/mrow><\/semantics><\/math><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">T\u00e4ss\u00e4 raw on 24-bittinen arvo, joka muodostuu kolmesta datasanasta. Esimerkiksi:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>07F 0FF 0FF<\/code>: 0,0 dB<\/li>\n\n\n\n<li><code>000 000 008<\/code>: \u2212120,4 dB (t\u00e4m\u00e4 on hieman harhaanjohtava, sill\u00e4 GLM-ohjelma n\u00e4ytt\u00e4\u00e4 t\u00e4ss\u00e4 \u2212100,0 dB)<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Sanat, joita tarkisteeksi ep\u00e4ilin, olivat aluksi Claudelle t\u00e4ysi mysteeri. Kun annoin sille vihjeen, ett\u00e4 kyseess\u00e4 voisi olla CRC, korrelaatio l\u00f6ytyi taas. Kyseess\u00e4 on CRC-16\/GSM, jonka parametrit ovat:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Polynomial: <code>0x1021<\/code><\/li>\n\n\n\n<li>Initial value: <code>0x0000<\/code><\/li>\n\n\n\n<li>RefIn \/ RefOut: <code>False<\/code> (no bit-reversal of input bytes or final result)<\/li>\n\n\n\n<li>XorOut: <code>0xFFFF<\/code> (the raw CRC is inverted at the end)<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">CRC lasketaan osoitesanan alatavusta (esimerkiksi 0xF0) ja sen j\u00e4lkeisest\u00e4 datasta, eli p\u00e4\u00e4tt\u00e4v\u00e4\u00e4 07E-merkki\u00e4 ei oteta mukaan. Claude kirjoitti my\u00f6s esimerkkikoodin CRC:n laskemiseksi.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00c4\u00e4nenvoimakkuuden lukeminen onnistuu ilman CRC:t\u00e4kin. Sen tarkistaminen on silti kannattavaa, sill\u00e4 v\u00e4yl\u00e4ll\u00e4 voi tulla bittivirheit\u00e4. N\u00e4yt\u00f6ll\u00e4 v\u00e4\u00e4r\u00e4 arvo vilahtaa vain hetken, mutta jos virheellinen arvo p\u00e4\u00e4tyisi vahvistimeen asti, korvat voisivat joutua koville \ud83d\ude09<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Yksi kokonainen \u00e4\u00e4nifreimi<\/strong><br>Katsotaan lopuksi yksi kehys sana kerrallaan. \u00c4\u00e4nenvoimakkuus on \u221245,0 dB, ja sit\u00e4 s\u00e4\u00e4det\u00e4\u00e4n GLM-sovelluksella:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>1FF 01F 000 0B8 044 0F5 0FD 07E<\/code><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Sana<\/th><th>Arvo<\/th><th>Merkitys<\/th><\/tr><\/thead><tbody><tr><td>1<\/td><td><code>1FF<\/code><\/td><td>Osoite, broadcast<\/td><\/tr><tr><td>2<\/td><td><code>01F<\/code><\/td><td>\u00c4\u00e4nenvoimakkuuskomento<\/td><\/tr><tr><td>3\u20135<\/td><td><code>000 0B8 044<\/code><\/td><td>raw = 0x00B844 = 47172, josta 20 \u00d7 log10(47172) \u2212 138,4738 = \u221245,0 dB<\/td><\/tr><tr><td>6\u20137<\/td><td><code>0F5 0FD<\/code><\/td><td>CRC-16\/GSM<\/td><\/tr><tr><td>8<\/td><td><code>07E<\/code><\/td><td>Kehyksen p\u00e4\u00e4tt\u00e4v\u00e4 merkki<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Sama \u00e4\u00e4nenvoimakkuus, kun sit\u00e4 s\u00e4\u00e4det\u00e4\u00e4n kaukos\u00e4\u00e4timell\u00e4 tai analogis\u00e4\u00e4timell\u00e4, n\u00e4ytt\u00e4\u00e4 t\u00e4lt\u00e4:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>1F0 01F 000 0B8 044 090 004 07E<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Eroja on kaksi. Osoite on <code>1F0<\/code>, eli l\u00e4hett\u00e4j\u00e4n\u00e4 on hubi, ja CRC on eri (<code>090 004<\/code>). \u00c4\u00e4nenvoimakkuuden arvo ei muutu. CRC vaihtuu, koska se lasketaan osoitteen alatavusta alkaen, joten eri osoite antaa eri CRC:n, vaikka muu sis\u00e4lt\u00f6 olisi sama.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nyt kaikki on selvill\u00e4 n\u00e4ytt\u00f6projektin toteuttamiseksi, joka on ensikerran aihe.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Aiemmin selvittelin fyysisen rajapinnan toteutusta, sek\u00e4 liikenteen kaappaamista. Seuraava askel on saada \u00e4\u00e4nenvoimakkuustieto esille, jotta saan projektin alkuper\u00e4isen tavoitteen t\u00e4ytetty\u00e4. Mutta, homma l\u00e4hti v\u00e4h\u00e4n lapasesta. N\u00e4ist\u00e4 lis\u00e4\u00e4 tulevissa julkaisuissa. Datan dekoodaus Kehysten alku mietitytti. \u00c4\u00e4nenvoimakkuuskehykset alkoivat aina samalla tavalla, 1F0 01F, mutta ensimm\u00e4inen sana vaihtui sen mukaan, ohjasinko \u00e4\u00e4nenvoimakkuutta analogis\u00e4\u00e4timell\u00e4 vai GLM-sovelluksella. Toinen sana pysyi &hellip; <a href=\"https:\/\/vahamartti.fi\/blog\/?p=5703\" class=\"more-link\">Jatka lukemista <span class=\"screen-reader-text\">Genelec GLM v\u00e4yl\u00e4n datan dekoodaus \u2013 osa 3<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[80,132,30],"tags":[385,440,397],"class_list":["post-5703","post","type-post","status-publish","format-standard","hentry","category-kotiteatteri","category-ohjelmointi","category-saatoa","tag-genelec","tag-genelec-loudspeaker-manager","tag-glm"],"jetpack_publicize_connections":[],"jetpack_shortlink":"https:\/\/wp.me\/p1fteB-1tZ","jetpack_sharing_enabled":true,"jetpack-related-posts":[],"jetpack_likes_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/vahamartti.fi\/blog\/index.php?rest_route=\/wp\/v2\/posts\/5703","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vahamartti.fi\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vahamartti.fi\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vahamartti.fi\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vahamartti.fi\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=5703"}],"version-history":[{"count":6,"href":"https:\/\/vahamartti.fi\/blog\/index.php?rest_route=\/wp\/v2\/posts\/5703\/revisions"}],"predecessor-version":[{"id":5739,"href":"https:\/\/vahamartti.fi\/blog\/index.php?rest_route=\/wp\/v2\/posts\/5703\/revisions\/5739"}],"wp:attachment":[{"href":"https:\/\/vahamartti.fi\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=5703"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vahamartti.fi\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=5703"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vahamartti.fi\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=5703"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}