Китайчатинка

Купил китай­ский тестер TACKLife DM01M. Потом почи­тал тема­ти­че­ских фору­мов и побе­жал рас­кру­чи­вать кор­пус, и смот­реть, что у него внут­ри.

Про­бле­ма у дешё­вых тесте­ров, соб­ствен­но, ров­но одна — без­опас­ность поль­зо­ва­те­ля. В тесте­рах она обыч­но обес­пе­чи­ва­ет­ся как мини­мум плав­ки­ми предо­хра­ни­те­ля­ми. Беда в том, что изго­то­ви­те­ли дешё­вой китай­ча­ти­ны часто ста­вят в тесте­ры обык­но­вен­ные стек­лян­ные полые предо­хра­ни­те­ли. Тон­кий момент тут в том, что если поль­зо­ва­тель по ошиб­ке решит вме­сто напря­же­ния в сети поме­рять, напри­мер, сколь­ко в сети ампер, или какое у неё сопро­тив­ле­ние (для непо­свя­щён­ных — это даёт корот­кое замы­ка­ние), то внут­ри поло­го стек­лян­но­го предо­хра­ни­те­ля во вре­мя раз­ры­ва цепи может воз­ник­нуть элек­три­че­ская дуга, кото­рая там будет до выго­ра­ния щупов тесте­ра. Вход­ной авто­мат сред­не­ста­ти­сти­че­ско­го аме­ри­кан­ско­го дома име­ет номи­нал в две­сти ампер — что будет с ваши­ми рука­ми, в кото­рых зажат кусок пла­сти­ка, внут­ри кото­ро­го бушу­ют две­сти ампер, пред­ла­гаю пред­ста­вить само­сто­я­тель­но.

Как пра­виль­но? Пра­виль­но ста­вить кера­ми­че­ские предо­хра­ни­те­ли. Внут­ри них не воз­дух, а песок, кото­рый не даёт воз­ник­нуть элек­три­че­ской дуге.

Ещё пра­виль­нее — допол­нять защи­ту тер­ми­сто­ра­ми и вари­сто­ра­ми. Они будут гасить воз­мож­ные всплес­ки напря­же­ния, на кото­рые не успе­ет сре­а­ги­ро­вать плав­кий предо­хра­ни­тель.

Ито­го, внут­ри мое­го тесте­ра ока­за­лось вот что:

Это стан­дарт­ней­ший тестер на кон­трол­ле­ре DTM0660, кото­рых раз­ве­лось как у соба­ки блох. Пер­вым делом отме­чу нали­чие доволь­но круп­ных кера­ми­че­ских предо­хра­ни­те­лей (поме­че­ны лило­вым) — это очень хоро­ший знак. Тут, прав­да, сто­ит безы­мян­ная китай­ча­ти­на, а не бренд типа Лит­тел­фу­за или Бас­сма­на, но никто не запре­ща­ет, в прин­ци­пе, купить пра­виль­ные предо­хра­ни­те­ли и поме­нять их само­му (это и полых стек­лян­ных каса­ет­ся — выки­нуть их КЕМ, и воткнуть нор­маль­ные). Вто­рым отме­чу при­сут­ствие тер­ми­сто­ров (зелё­нень­кое). Ещё бы вари­сто­ров доста­ви­ли, было бы совсем хоро­шо.

Един­ствен­ное, что немно­го напряг­ло — так это как близ­ко дорож­ка, куда вты­ка­ет­ся щуп, под­хо­дит к дру­гой дорож­ке на пла­те (крас­нень­кое). Там от силы 2mm. По нор­ма­тив­но­му доку­мен­ту UL-840 (рос­сий­ский ана­лог — ГОСТ 23751–86) это при­мер­но 500–600 вольт, поверх­ность неза­гряз­ня­е­мая. Но тестер по пас­пор­ту может изме­рять до 1000 вольт (посто­ян­но­го тока). В такую цепь я бы уже совать этот тестер не стал. Но учи­ты­вая, что я соби­ра­юсь исполь­зо­вать этот тестер мак­си­мум до 480 вольт, будет норм. Не заго­рим­ся 🙂

Заказ плат у китайцев

Я обыч­но зака­зы­ваю изго­тов­ле­ние плат в США, у ком­па­нии OSH Park. Изго­тав­ли­ва­ют они шуст­ро, и у них бес­плат­ная достав­ка внут­ри США. Пла­ты при этом исклю­чи­тель­но каче­ствен­ные, и все поса­доч­ные пло­щад­ки обра­бо­та­ны иммер­си­он­ным золо­том (ENIG, вай-вай, доро­хо-боха­то), паять одно удо­воль­ствие. А ещё пла­ты не зелё­ные, а такие кра­си­вые тём­но-фио­ле­то­вые (Perfect Purple PCBs).

Одно толь­ко пло­хо — OSH Park берёт по 5 дол­ла­ров за квад­рат­ный дюйм двух­слой­но­го тек­сто­ли­та (6.5 cm2). В эту цены вхо­дит три экзем­пля­ра плат. Поэто­му любой про­ект, кото­рый я у них зака­зы­ваю — это все­гда борь­ба за пло­щадь. В резуль­та­те, конеч­но, всё полу­ча­ет­ся кру­то и ком­пакт­но (осо­бен­но помо­га­ет исполь­зо­ва­ние дета­лей для поверх­ност­но­го мон­та­жа), но плот­ность мон­та­жа пла­ты доволь­но высо­кая — иной раз раз­ве­де­ние доро­жек ста­но­вит­ся насто­я­щей голо­во­лом­кой (мне, прав­да, нра­вит­ся этим зани­мать­ся).

Попро­бо­вал зака­зать у китай­цев, JCLPCB (им дал поло­жи­тель­ный отзыв DI HALT). И какая-то фиг­ня полу­ча­ет­ся, вот что я вам ска­жу. Пла­та у меня была малень­кая, 19x48mm (0.75×1.9 дюй­мов). OSH Park заря­дил 7 дол­ла­ров 20 цен­тов за три экзем­пля­ра. JLCPCB берёт все­го два дол­ла­ра за десять экзем­пля­ров плат раз­ме­ром менее 100x100mm (15.5 дюй­ма), но при этом самая дешё­вая достав­ка у них сто­ит 18 руб­лей с копей­ка­ми! Ито­го полу­ча­ет­ся два­дцат­ка с лихе­ром, и при этом пла­ты там хуже — ника­ко­го иммер­си­он­но­го золо­та, а обыч­ное луже­ние (HASL). Не ска­зать, конеч­но, что иммер­си­он­ное золо­то мне прям НАДО, но оно удоб­нее тем, что пла­та может про­ле­жать без дела год, и нихе­ра с ней не будет — пло­щад­ки не окис­лят­ся — она будет паять­ся как све­жая. А если рас­щед­рить­ся и зака­зать иммер­си­он­ное золо­то у JLCPCB, это при­бав­ля­ет 18 дол­ла­ров к цене самой пла­ты. Ито­го полу­ча­ем вооб­ще какую-то пор­но­гра­фию в 20 дол­ла­ров за 10 штук без учё­та достав­ки — дык это уже вполне срав­ни­мо по цене с аме­ри­кан­ским OSH Park в пере­счё­те на штуч­ку. А достав­ка за 18 дол­ла­ров окон­ча­тель­но уби­ва­ет всю идею на кор­ню.

В‑общем, не полу­чи­лось у меня «импор­то­за­ме­ще­ния наобо­рот». ВНЕЗАПНО, про­из­вод­ство в США ока­за­лось тупо дешев­ле. Может быть, для каких-то спе­ци­аль­ных слу­ча­ев, типа боль­шо­го зака­за или осо­бо круп­ных плат, это себя оправ­ды­ва­ет. А для домаш­не­го хоб­би — нахер не надо. Да и у OSH Park для круп­ных зака­зов от 100 квад­рат­ных дюй­мов двух­слой­но­го тек­сто­ли­та (~650cm2) и выше есть скид­ки до цены в 1 дол­лар за дюйм. При этом всё опять же, с иммер­си­он­ным золо­том и бес­плат­ной достав­кой. Китай­цам тупо не угнать­ся.

Ремня бы всыпать

Вот совер­шен­но непо­нят­но, как так мог­ло полу­чить­ся, что ИС линей­но­го ста­би­ли­за­то­ра тока для +15 вольт и ИС линей­но­го ста­би­ли­за­то­ра тока для ‑15 вольт, одно­го и того же про­из­во­ди­те­ля!, раз­ли­ча­ю­щи­е­ся ОДНОЙ ЦИФРОЙ в наиме­но­ва­нии!! — име­ют РАЗНУЮ рас­пай­ку.

L7815 (+15V):

L7915 (-15V):

Их что, два совер­шен­но незна­ко­мых друг с дру­гом инже­не­ра дела­ли?

KiCad

Ой, блин… жут­кое гов­но. Жут­кое. Начи­ная с кри­во­го интер­фей­са дела­ния самой схе­мо­тех­ни­ки, до иди­от­ских про­блем с отоб­ра­же­ни­ем. Опен­сорс­ный софт, кибе­не­мат! В нём хоро­ши толь­ко две вещи — для него есть туе­ва хуча биб­лио­тек сто­рон­них про­из­во­ди­те­лей, и есть 3D-рен­де­ринг для полу­чен­ной пла­ты. Стис­нув зубы, таки дораз­вёл все дорож­ки и доде­лал пла­ту под уси­ли­тель:

Но в сле­ду­ю­щий раз боль­ше им поль­зо­вать­ся не буду — посто­ян­ные матю­ги того не сто­ят.

Похоже, доломал

Дори­со­вал схе­му уси­ли­те­ля для науш­ни­ков. Схе­ма, в‑общем, самая клас­си­че­ская — опе­ра­ци­он­ный уси­ли­тель и двух­такт­ный выход­ной кас­кад на рабо­че-кре­стьян­ских сило­вых тран­зи­сто­рах TIP29/TIP30. Берём любую книж­ку по элек­тро­ни­ке, напри­мер, того же Горо­ви­ца-Хил­ла, и там всё мож­но най­ти.

Схе­ма пита­ет­ся от бло­ка пита­ния ±15V, и её мож­но исполь­зо­вать не толь­ко для науш­ни­ков. Если немно­го пере­счи­тать выход­ной кас­кад, она вполне может потя­нуть неболь­шой гром­ко­го­во­ри­тель, жела­тель­но, импе­дан­сом повы­ше (от 16 ом), и может в таком режи­ме выда­вать око­ло 2 ватт. Это, кста­ти, толь­ко кажет­ся, что мало. При гром­ко­го­во­ри­те­ле с нор­маль­ной чув­стви­тель­но­стью это­го вполне доста­точ­но, что­бы домаш­ние нача­ли орать, что­бы сде­лал поти­ше =)

В конеч­ном счё­те мак­си­маль­ная выда­ва­е­мая дан­ным уси­ли­те­лем мощ­ность упи­ра­ет­ся в основ­ном в огра­ни­че­ния опе­ра­ци­он­но­го уси­ли­те­ля OPA134 и про­сто­го выход­но­го кас­ка­да — пита­ние мак­си­мум от ±18 вольт, выход­ное напря­же­ние на ±2 воль­та мень­ше напря­же­ния пита­ния, мак­си­маль­ный выда­ва­е­мый ОУ ток — 34 мил­ли­ам­пе­ра, плюс паде­ние в 0.7 вольт на каж­дом выход­ном тран­зи­сто­ре — и полу­ча­ет­ся, что силь­но боль­ше этих самых двух ватт не выжмешь. Ну, если речь о том, что­бы слу­шать каче­ствен­ный сиг­нал.

Немно­го о самой схе­ме (это, ско­рее, замет­ки для себя, что­бы не забыть, как это всё рас­счи­ты­вать). Коэф­фи­ци­ент уси­ле­ния обу­слав­ли­ва­ет­ся соот­но­ше­ни­ем номи­на­лов рези­сто­ров R2 и R1 в цепи отри­ца­тель­ной обрат­ной свя­зи и равен 1 + R2/R1, т.е. при дан­ных номи­на­лах он состав­ля­ет око­ло 10. Рези­стор R2 я сде­лаю пере­мен­ным, кру­тил­ку выве­ду нару­жу и поме­чу как Gain. Кон­ден­са­то­ры C1 и C2 допол­ни­тель­но ста­би­ли­зи­ру­ют пита­ние (в окон­ча­тель­ной схе­ме я их ещё допол­ни­тель­но шун­ти­рую мел­ки­ми кера­ми­че­ски­ми или поли­эс­те­ро­вы­ми кон­ден­са­то­ра­ми). Кон­ден­са­тор C3 зако­ра­чи­ва­ет навод­ки радио­ча­стот на зем­лю, что­бы не уси­ли­вать посто­рон­ние сиг­на­лы. Выход­ной тракт самый обыч­ный — дио­ды D1 и D2 прак­ти­че­ски любые мало­мощ­ные крем­ни­е­вые, их зада­ча толь­ко в том, что­бы загнать тран­зи­сто­ры Q1 и Q2 в линей­ный режим, ина­че при пере­хо­де сиг­на­ла через ноль будут иска­же­ния. Не надо исполь­зо­вать мощ­ные выпря­ми­тель­ные, гер­ма­ни­е­вые или дио­ды Шотт­ки — у них паде­ние напря­же­ния будет дру­гим, чем на базе у крем­ни­е­вых тран­зи­сто­ров. Вдо­ба­вок их надо мон­ти­ро­вать в кон­так­те с сами­ми тран­зи­сто­ра­ми, на теп­ло­про­во­дя­щей пасте — таким обра­зом будет обес­пе­че­на ста­биль­ность при нагре­ве. Зна­че­ния рези­сто­ров R3 и R4 рас­счи­ты­ва­ют­ся исхо­дя из мак­си­маль­но­го тока, кото­рый будет выда­вать­ся тран­зи­сто­ра­ми. Я исхо­дил из мак­си­маль­ной мощ­но­сти в 1 ватт, для нагруз­ки в 32 ома (пред­став­лен­ной рези­сто­ром R5). По зако­ну Ома это ток око­ло 32 мил­ли­ам­пер. Делим это на коэф­фи­ци­ент уси­ле­ния по току тран­зи­сто­ров в 30 (мыс­лим кон­сер­ва­тив­но). Полу­ча­ем око­ло 9k ом. Мыс­лим, опять же, кон­сер­ва­тив­но, и ста­вим 8k2. Выход­ные рези­сто­ры R6 и R7 опять же, для допол­ни­тель­ной ста­биль­но­сти. Ну, и кон­ден­са­тор C4 при­во­дит коэф­фи­ци­ент уси­ле­ния схе­мы к нулю для сиг­на­лов посто­ян­но­го тока.

При симу­ля­ции уси­ли­те­ля пара­мет­ры КНИ очень впе­чат­ля­ю­щие:

А теперь попро­буй­те повто­рить это же самое на лам­пах, ага. Всё чисто лам­по­вое (не гибрид­ное) с КНИ менее 0.1% есть либо наг­лое вра­ньё, либо заме­ря­но в каких-то спе­цусло­ви­ях, не име­ю­щих ниче­го обще­го с реаль­ным миром.

Конеч­но, понят­но, что это толь­ко симу­ля­ция, и она не учи­ты­ва­ет, напри­мер, теп­ло­вой шум от рези­сто­ров (что тоже корё­жит сиг­нал). Но по край­ней мере, это слу­жит хоро­шей атте­ста­ци­ей того, что дизайн как мини­мум, неплох.

Одно мне непо­нят­но в про­грам­ме LTSpice — её очень стран­ный под­ход к рас­чё­ту теп­ло­вы­де­ле­ния. Она про­дол­жа­ет упор­но счи­тать, что при мак­си­маль­ной гром­ко­сти тран­зи­стор Q1 будет рас­се­и­вать более 8 ватт. При этом напря­же­ние, выда­ва­е­мое уси­ли­те­лем на нагруз­ку, состав­ля­ет 20 вольт от греб­ня до греб­ня, или око­ло 7 вольт сред­не­квад­ра­тич­ных. Соот­вет­ствен­но, это ток в 220 мил­ли­ам­пер или 110 мил­ли­ам­пер на каж­дый тран­зи­стор. На тран­зи­сто­ре выса­жи­ва­ет­ся око­ло 11.5 вольт, и его теп­ло­вы­де­ле­ние будет око­ло 1.3 ватт (ток в базе я не буду учи­ты­вать — там копей­ки). Отку­да восемь ватт — непо­нят­но.

В заклю­че­ние ска­жу, что для науш­ни­ков дан­ный уси­ли­тель — мяг­ко гово­ря, очень избы­то­чен. Чув­стви­тель­ность моих 950х Сонек состав­ля­ет 106 деци­бел на мил­ли­ватт. Т.е. выдав на них 10 мил­ли­ватт я полу­чу гром­кость как на кон­цер­те мон­стров рока, а с мощ­но­стью в 1 ватт я почти с гаран­ти­ей оглох­ну =)))

Оста­лось запи­лить схе­му в том же Eagle, запу­лить печат­ную пла­ту, собрать, и впе­рёд. Наде­юсь, най­ду вре­мя.

Операционный усилитель с однополярным питанием

Что-то у меня кро­ко­дил не ловит­ся. Пыта­юсь про­си­му­ли­ро­вать схе­му с пита­ни­ем опе­ра­ци­он­ни­ка от 12 вольт. Если делать схе­му с вир­ту­аль­ной зем­лёй на дели­те­ле напря­же­ния — то всё рабо­та­ет. А вот схе­ма со сме­ще­ни­ем (как хочет­ся мне) не полу­ча­ет­ся хоть ты трес­ни. В луч­шем слу­чае полу­ча­ет­ся усла­би­тель вме­сто уси­ли­те­ля =)

Ни у кого нет под рукой схе­мы с кон­крет­ны­ми номи­на­ла­ми под опре­де­лён­ное напря­же­ние? Мне дума­ет­ся, у меня не рабо­та­ет пото­му что при схе­ме со сме­ще­ни­ем рас­чёт коэф­фи­ци­ен­та уси­ле­ния допол­ни­тель­но услож­ня­ет­ся, и отсю­да полу­ча­ет­ся ерун­да.

Строительство усилителей

При­па­даю опять к тихим хоб­би, типа элек­тро­ни­ки. В оче­ред­ной раз инте­ре­су­юсь зву­ко­вы­ми схе­ма­ми, в том чис­ле уси­ли­те­ля­ми. Если рань­ше меня боль­ше инте­ре­со­ва­ло изго­тов­ле­ние схем вооб­ще (и тот самый преду­си­ли­тель для мик­ро­фо­на я таки собрал, и он про­слу­жил мне верой и прав­дой мно­го лет) и овла­де­ва­ние общей тео­ри­ей, в этот раз меня инте­ре­су­ет изго­тов­ле­ние схем КАЧЕСТВЕННЫХ. В поня­тие каче­ства вкла­ды­ва­ет­ся понят­но какой смысл — низ­кие пара­мет­ры КНИ. Ну, хотя бы ниже 0.5% полу­чить бы для нача­ла.

Так вот, что архи­удоб­но, так это бес­плат­ная про­грам­ма LTSpice. Поми­мо того, что в ней мож­но нари­со­вать саму схе­му, её мож­но про­си­му­ли­ро­вать, и ана­ли­зи­ро­вать полу­чен­ное через обрат­ное пре­об­ра­зо­ва­ние Фурье, рас­счи­тав КНИ и пока­зав нагляд­но гар­мо­ни­ки.

Симу­ли­ру­ет­ся, понят­ное дело, тео­ре­ти­че­ский мак­си­мум. Реаль­ные ком­по­нен­ты хуже вир­ту­аль­ных. Но это и полез­но — что­бы понять, чего мож­но выжать из схе­мы в тео­рии.

Вот та самая схе­ма преду­си­ли­те­ля, что я спа­ял ранее, по сути сво­ей ока­за­лась гов­ном. Вот она:

Это рабо­че-кре­стьян­ский уси­ли­тель с общим эмит­те­ром плюс эмит­тер­ный повто­ри­тель. Ну, любую книж­ку по элек­тро­ни­ке мож­но рас­крыть, и там эта схе­ма будет.

Так вот если её про­си­му­ли­ро­вать, подав на вход сиг­нал 1 кило­герц, то FFT полу­чен­но­го сиг­на­ла выгля­дит доволь­но пор­но­гра­фич­но:

Этих вот иго­лок на 2, 3, 4 и далее кило­герц (гар­мо­ник) быть не долж­но в хоро­шем уси­ли­те­ле.

Если доба­вить SPICE-дирек­ти­ву .four, LTSpice любез­но посчи­та­ет КНИ. И циф­ры отра­жа­ют, в‑общем, то, что вид­но на кар­тин­ке:

КНИ аж три про­цен­та с гаком, почти как у луч­ших лам­по­вых уси­ли­те­лей =)) Шучу, конеч­но, но вооб­ще-то фак­ты дей­стви­тель­но тако­вы, что КНИ 0.5% явля­ет­ся для лам­по­вой тех­ни­ки очень хоро­шим пока­за­те­лем, а уж КНИ 0.08%, до кото­ро­го тран­зи­стор­ная тех­ни­ка дошла ещё в 1970х, как, напри­мер, в уси­ли­те­ле Тех­никс SE-9600, для лам­по­вой тех­ни­ки оста­ёт­ся недо­сти­жи­мой вер­ши­ной. Нет, ну, дости­жи­мой, конеч­но. Но за очень кон­ские день­ги. В недо­ро­гой совет­ской лам­по­вой тех­ни­ке КНИ в 3% был обыч­ным делом. Слу­шать это, тем не менее, было мож­но, так как харак­тер иска­же­ний у лам­по­вой тех­ни­ки обыч­но немно­го дру­гой, не такой замет­ный.

Одна­ко, вер­нём­ся к тупо­му уси­ли­те­лю. Поче­му дан­ная схе­ма иска­жа­ет? В первую оче­редь из-за нели­ней­но­сти тран­зи­сто­ра Q1. Дело в том, что у тран­зи­сто­ра есть соб­ствен­ное сопро­тив­ле­ние, и оно состав­ля­ет при­мер­но 25 / Ic в мил­ли­ам­пе­рах. Т.е. если ток в цепи кол­лек­то­ра (Ic) состав­ля­ет 1 мил­ли­ам­пер, сопро­тив­ле­ние тран­зи­сто­ра будет рав­но 25 омам. С воз­рас­та­ни­ем тока оно пада­ет, с умень­ше­ни­ем — рас­тёт. Таким обра­зом, коэф­фи­ци­ент уси­ле­ния тран­зи­сто­ра полу­ча­ет­ся раз­ным про­сто на уси­ле­нии баналь­ной сину­со­и­ды: в тот момент, когда сину­со­и­да про­хо­дит через ноль, коэф­фи­ци­ент уси­ле­ния мини­ма­лен, а на гребне сину­со­и­ды — мак­си­ма­лен. Полу­ча­ет­ся ерун­да. Имен­но поэто­му в книж­ках по элек­тро­ни­ке гово­рят «не делай­те схе­му с зазем­лён­ным эмит­те­ром», пото­му что это пере­мен­ное сопро­тив­ле­ние таким обра­зом ста­но­вит­ся наи­бо­лее замет­ным. С дан­ным эффек­том мож­но бороть­ся, вкря­чив в цепь эмит­те­ра рези­стор, срав­ни­тель­но боль­шой по срав­не­нию с внут­рен­ним сопро­тив­ле­ни­ем тран­зи­сто­ра. Ну, как на схе­ме, соб­ствен­но, и сде­ла­но. Явля­ет­ся ли при этом такая схе­ма отри­ца­тель­ной обрат­ной свя­зью или мы про­сто исправ­ля­ем одну кри­виз­ну дру­гой кри­виз­ной — мне­ния рас­хо­дят­ся. Горо­виц-Хилл гово­рят, что да, это таки отри­ца­тель­ная обрат­ная связь. Но в любом слу­чае, помо­га­ет это не силь­но.

В‑общем, схе­му надо будет дора­бо­тать, до пол­но­цен­ной схе­мы с отри­ца­тель­ной обрат­ной свя­зью. В резуль­та­те я бы хотел сде­лать уси­ли­тель для науш­ни­ков. Это про­ще, так как уси­ли­тель не надо делать очень мощ­ным, 1 ватт для науш­ни­ков — это OVERДОХРЕНА. И такое у меня подо­зре­ние, что ско­рее все­го саму уси­ли­тель­ную часть я сде­лаю на баналь­ном опе­ра­ци­он­ни­ке Бурр-Бра­ун, а выход­ной кас­кад — клас­си­че­ский тяни-тол­кай на парах инже­не­ра Шиклаи.

Порекомендую блог

Това­рищ пишет на близ­кие мне темы — элек­тро­ни­ка, радио­тех­ни­ка, радио­лю­би­тель­ство.

Phase Noise

Встре­ча­ют­ся очень инте­рес­ные мате­ри­а­лы, и мно­го из них мое­го люби­мо­го направ­ле­ния — как сде­лать что-то обал­ден­ное из гов­на и палок. Вот, напри­мер, как в домаш­них усло­ви­ях при­нять кар­тин­ку с рус­ско­го метео­ро­ло­ги­че­ско­го спут­ни­ка «Метеор-2М».

На выхо­де полу­ча­ет­ся вот так:

Если у меня не окон­ча­тель­но отшиб­ло гео­гра­фи­че­скую память, на сним­ке вид­но Кубу, фло­рид­ский полу­ост­ров (и немнож­ко Ала­ба­мы, Джор­джии, Луи­зи­а­ны), полу­ост­ров Юка­тан, Ямай­ку, и Багам­ские ост­ро­ва.

Това­рищ пишет по-англий­ски, но судя по харак­тер­ным для ESL ошиб­кам и сти­лю, англий­ский язык у него не род­ной. Пред­по­ло­жи­тель­но, один из «наших».

Дорисовал

Таки доде­лал про­грам­ку на Питоне, рису­ю­щую спектр сиг­на­ла и авто­ма­ти­че­ски счи­та­ю­щую КНИ+шум и ОСШ. Попут­но узнал, как водит­ся, мно­го ново­го. За что люб­лю Питон — так это за то, что про­грам­ма зани­ма­ет менее 40 строк. На тех же Сях я бы усрал­ся это рисо­вать. Даже на Шар­пах бы усрал­ся.

Про­грам­ме скарм­ли­ва­ет­ся зву­ко­вой файл с сиг­на­лом часто­той в 1 kHz, сге­не­ри­ро­ван­ный про­грам­мой Adobe Audition (в деви­че­стве Syntrillium CoolEdit). Но мож­но взять и бес­плат­ный Audacity, резуль­тат будет точ­но такой же. Про­грам­ма чита­ет файл, берёт зна­че­ние с наи­боль­шим пиком и даёт ему обо­зна­че­ние в 0 деци­бел. Осталь­ное, соот­вет­ствен­но, отри­ца­тель­ные вели­чи­ны. Под­счи­ты­ва­ет­ся сред­не­квад­ра­тич­ное зна­че­ние все­го, что не сиг­нал, и делит­ся на уро­вень сиг­на­ла. Полу­ча­ет­ся КНИ+шум (THD+N). Потом счи­та­ем ОСШ (отно­ше­ние сигнал/шум, SNR) в деци­бе­лах: 20log10(сиг­нал / шум)

Вот так выгля­дит ана­лиз зву­ко­во­го фай­ла с сиг­на­лом 1 kHz, раз­ре­ше­ни­ем 16-бит, часто­та дис­кре­ти­за­ции — 48 kHz:

Это весь­ма близ­ко к тео­ре­ти­че­ско­му иде­а­лу — в иде­а­ле, раз­ре­ше­ние 16 бит может дать ОСШ в 96.3 dB. Но у меня не иде­ал, так как я исполь­зую чуть менее, чем 16 бит — ибо если гене­ри­ро­вать сину­со­и­ду с уров­нем в 0 dB (т.е. по-мак­си­му­му), то поче­му-то уже лезут нели­ней­ные иска­же­ния. Так что я создаю её с уров­нем в ‑0.1 dB, мини­маль­ным отступ­ле­ни­ем от мак­си­му­ма, кото­рое мне даёт делать Audition. В любом слу­чае, 94 dB — это дохре­на.

КНИ в 2 тысяч­ных про­цен­та это тоже пре­крас­но. Без при­бо­ров это­го никто нико­гда не уви­дит, иска­же­ния начи­на­ют быть слы­ши­мы­ми, когда уже вплот­ную при­бли­жа­ют­ся к 1%, хотя это силь­но зави­сит от того, что имен­но слу­ша­ем: если чистые сину­со­и­ды, то иска­же­ния начи­на­ют быть замет­ны­ми гораз­до рань­ше, а если в каче­стве тесто­во­го мате­ри­а­ла брать аль­бо­мы фиф­ти­сен­тов и про­чих, то там мож­но и 10% иска­же­ний не услы­шать. Что не озна­ча­ет, что аппа­ра­ту­ра, даю­щая КНИ в 0.05%, ничем не луч­ше аппа­ра­ту­ры, даю­щей 0.1% — она луч­ше; про­сто в реаль­но­сти уша­ми это­го ни один живой чело­век не услы­шит.

А теперь — сно­ва пнём фор­мат MP3 🙂 Никто как-то вот не заду­мы­ва­ет­ся о том, что они слу­ша­ют в тыся­че­дол­ла­ро­вых дере­вян­ных науш­ни­ках, под­клю­чён­ных к внеш­ним уси­ли­те­лям клас­са А за семь­сот дол­ла­ров, обе­ща­ю­щим КНИ в 0.00045%

А меж­ду тем это реа­лии MP3 с бит­рей­том в 192 килобита/сек:

А это — 320 килобит/сек:

Получ­ше, конеч­но, чем 192 kbps, но всё рав­но про­се­да­ние каче­ства очень нали­цо — про­ис­хо­дит серьёз­ное ужи­ма­ние дина­ми­че­ско­го диа­па­зо­на (я в кур­се, что ДД и ОСШ это не вполне одно и то же, но они свя­за­ны). На неко­то­ром мате­ри­а­ле (напри­мер, клас­си­че­ская музы­ка, обла­да­ю­щая боль­шим дина­ми­че­ским диа­па­зо­ном) это может быть очень замет­но. На 192 кило­би­тах так это точ­но замет­но, тихая пар­тия скрип­ки сопро­вож­да­ет­ся скре­же­том арте­фак­тов сжа­тия с поте­ря­ми — соб­ствен­но­уш­но, так ска­зать, слы­шал. Даль­ней­шее уве­ли­че­ние бит­рей­та после 320 килобит/с, кста­ти, уже ниче­го не даёт — ОСШ так и оста­ёт­ся в рай­оне 55 деци­бел.

Ещё надо будет попи­нать вини­ло­филь­ство и про­чее плён­ко­ло­же­ство, но это в дру­гой раз 🙂

Отрицательная частота

Всё же как мно­го я не знаю и не пони­маю. Послед­ний месяц-два изу­чаю мето­ды изме­ре­ния пара­мет­ров каче­ствен­но­сти уси­ле­ния зву­ко­во­го (и не толь­ко) сиг­на­ла.

Мето­дов есть несколь­ко, но про это в дру­гой раз.

Осно­ва в том, что чистый сиг­нал опре­де­лён­ной часто­ты (напри­мер, 1 КГц) пред­став­ля­ет собой сину­со­и­ду. Всё, что немно­го не сину­со­и­да, уже есть не чистый сиг­нал, а сум­ма сиг­на­лов, сум­ма сину­со­ид. Даже меандр мож­но опи­сать сину­со­и­да­ми — как функ­цию y(x) = sin(x) + sin (3x) / 3 + sin (5x) / 5 + .. + sin (nx) / n. Пото­му что меандр — это сум­ма сину­со­ид основ­но­го сиг­на­ла и сину­со­ид нечёт­ных гар­мо­ник — то-есть, сиг­на­лов с часто­той в 3, 5, 7 и так далее до бес­ко­неч­но­сти раз выше основ­ной. Про­сто если речь идёт о зву­ко­вом сиг­на­ле, гар­мо­ни­ки выше 19й слыш­ны (как счи­та­ет­ся) уже не будут, так что меандр там полу­ча­ет­ся не совсем пол­ный, при­бли­зи­тель­ный.

Так вот если есть источ­ник зву­ко­во­го сиг­на­ла, как узнать, насколь­ко чистый там тон? Мож­но запи­сать это в обык­но­вен­ный wav файл, а потом про­ве­сти над полу­чен­ным мас­си­вом дан­ных мате­ма­ти­че­ское изде­ва­тель­ство, назы­ва­е­мое пре­об­ра­зо­ва­ни­ем Фурье. Паке­тов для это­го суще­ству­ет мас­са, мож­но взять бес­плат­ный редак­тор Audacity, в нём есть спек­траль­ный ана­лиз (пре­об­ра­зо­ва­ние Фурье это оно и есть).

Но, во-пер­вых, я не ищу лёг­ко­го пути, а во-вто­рых, мерять гар­мо­ни­ки, дол­го их скла­ды­вать и встав­лять в фор­му­лу для рас­чё­та КНИ я не хочу. Нехай элек­трон­ный бол­ван всё за меня счи­та­ет, он на то и был куп­лен.

Так что нари­со­вал свою про­грам­му. Разу­ме­ет­ся, на Питоне (на чём же ещё, не на Сях же рисо­вать). Бла­го есть модуль SciPy, в кото­ром уже всё при­ду­ма­но, в том чис­ле алго­ритм быст­ро­го пре­об­ра­зо­ва­ния Фурье (сиречь FFT).

Алго­ритм FFT выда­ёт гисто­грам­му. По гори­зон­та­ли — часто­та сиг­на­ла, по вер­ти­ка­ли — его гром­кость. При­мер­но так слы­шит музы­ку чело­ве­че­ское ухо. Так вот выяс­ни­лось, что по умол­ча­нию алго­ритм выда­ёт сим­мет­рич­ную вокруг нуля герц кар­тин­ку, то-есть, есть как поло­жи­тель­ная часто­та, так и отри­ца­тель­ная %) На этом месте я залип — как это, минус один кило­герц?

Ана­лиз фай­ла с сину­со­и­дой 1 КГц выгля­дит так:

В прин­ци­пе оно ведь логич­но — у сину­со­и­ды одна поло­вин­ка име­ет поло­жи­тель­ные зна­че­ния от 0 до 1 (в воен­ное вре­мя — до 4 =)), а дру­гая — отри­ца­тель­ные, от 0 до ‑1. Соот­вет­ствен­но, поло­жи­тель­ная часто­та — для того, что выше нуля, а отри­ца­тель­ная часто­та — для того, что ниже нуля. Прав­да, не совсем понят­но, поче­му имен­но вот так — не было бы логич­нее делать поло­жи­тель­ную и отри­ца­тель­ную ампли­ту­ды (гром­ко­сти)?

Ещё менее понят­ным ста­ло, когда я силой сге­не­ри­ро­вал сину­со­и­ду с отре­зан­ной вер­хуш­кой и сунул её в ана­ли­за­тор. Вот такую:

Я ожи­дал, что ана­ли­за­тор уви­дит туе­ву хучу гар­мо­ник с поло­жи­тель­ны­ми часто­та­ми, и чистей­ший тон с отри­ца­тель­ны­ми. Ан фиг — одни и те же гар­мо­ни­ки были и сле­ва и спра­ва от нуля. Совсем непо­нят­но, поче­му так. Вер­нее, конеч­но, понят­но — сиг­нал это ВСЯ сину­со­и­да, от нуля до двух пи ради­ан, а не толь­ко её часть. Но тогда уже непо­нят­но, зачем вооб­ще горо­дить ого­род с отри­ца­тель­ны­ми и поло­жи­тель­ны­ми часто­та­ми — не всё ли рав­но?

Плю­нул, сме­нил алго­ритм scipy.fftpack.fft на scipy.fftpack.rfft. rfft — это real fft, и отри­ца­тель­ных частот не выда­ёт. Так намно­го понят­нее.

Про­дол­жаю изу­чать.