поскольку и ляпа с оцифровкой более чем достаточно....
Сказано двоичная кодировка цифрового сигнала - значит двоичная кодировка цифрового сигнала, а не почти аналоговый сигнал.
Какой такой ляп с оцифровкой? Викторович wrote:
Потому, что я практик. И это моя работа.
Вот первый шаг оцифровки
Затем каждое значение записывается в двоичной системе.
Была бы троичная, если б наши победили (компьютер Сетунь слышали, или дальше паяльника ничего не видите? )
Записали бы в троичной
Как видно сигнал ПОЧТИ АНАЛОГОВЫЙ после оцифровки. Не видно?
Что с ним происходит дальше, уже вопрос следующий, WAV ли не WAV, MP3 или РСМ ....
Там начинаются алгоритмы сжатия. И т.д.
Не надо тут понты разводить, хорошо?
Небось уже в эру цифровой записи родились, и не можете помнить, что
Учитесь отделять мух от котлет
Что в нынешний век известно о фотонно-временной и фононно-временной кодировках ?
Преобразование Фурье - точное определение частоты сигнала и выделение нот
11 Июнь 2017 17:09 #182
Paumirovith
Очень даже многоничего хотя если записывать спектры в вав формате то и не нужно оправдываться за искажения
А если даже орГОНатор оргонной энергии засунуть в лазер то енто новая 2000$ может стать панацея от всех болезний
Учись мирошниченко как надо бизнес лабать на таких как тЫ
как видно свист это АМ демодуляция ШИМА блока питания
на графике хорошо виден низкочастотный сигнал который идет сразу с фотодиодов без шим модуляции
его и нужно переносить в музыку
только нет звукового редактора который показывает спектр сигнала в виде комплексных чисел и спектр фаз
придется делать программу и использовать алгоритмы БПФ
алгоритм быстрого преобразования Фурье, который минимизирует число математических операций, необходимых для его вычисления. Единственное требование алгоритма состоит в том, чтобы число отсчётов было кратно степени двойки (256, 512, 1024 и так далее).
Ниже его классическая рекурсивная реализация на языке C#.
using System;
using System.Numerics;
namespace Rainbow
{
public static class Butterfly
{
public const double SinglePi = Math.PI;
public const double DoublePi = 2*Math.PI;
public static Complex[] DecimationInTime(Complex[] frame, bool direct)
{
if (frame.Length == 1) return frame;
var frameHalfSize = frame.Length » 1; // frame.Length/2
var frameFullSize = frame.Length;
var frameOdd = new Complex[frameHalfSize];
var frameEven = new Complex[frameHalfSize];
for (var i = 0; i < frameHalfSize; i++)
{
var j = i « 1; // i = 2*j;
frameOdd = frame[j + 1];
frameEven = frame[j];
}
var spectrumOdd = DecimationInTime(frameOdd, direct);
var spectrumEven = DecimationInTime(frameEven, direct);
var arg = direct ? -DoublePi/frameFullSize : DoublePi/frameFullSize;
var omegaPowBase = new Complex(Math.Cos(arg), Math.Sin(arg));
var omega = Complex.One;
var spectrum = new Complex[frameFullSize];
public static Complex[] DecimationInFrequency(Complex[] frame, bool direct)
{
if (frame.Length == 1) return frame;
var halfSampleSize = frame.Length » 1; // frame.Length/2
var fullSampleSize = frame.Length;
var arg = direct ? -DoublePi/fullSampleSize : DoublePi/fullSampleSize;
var omegaPowBase = new Complex(Math.Cos(arg), Math.Sin(arg));
var omega = Complex.One;
var spectrum = new Complex[fullSampleSize];
var yTop = new Complex[halfSampleSize];
var yBottom = new Complex[halfSampleSize];
for (var i = 0; i < halfSampleSize; i++)
{
yTop = spectrum;
yBottom = spectrum;
}
yTop = DecimationInFrequency(yTop, direct);
yBottom = DecimationInFrequency(yBottom, direct);
for (var i = 0; i < halfSampleSize; i++)
{
var j = i « 1; // i = 2*j;
spectrum[j] = yTop;
spectrum[j + 1] = yBottom;
}
return spectrum;
}
}
}
Существует две разновидности алгоритма БПФ — с прореживанием по времени и по частоте, но оба дают идентичный результат. Функции принимают массив комплексных чисел, заполненный реальными значениями амплитуд сигнала во временной области, а после своего выполнения возвращают массив комплексных чисел, содержащий информацию об амплитудном и фазовом спектрах. Стоит помнить, что реальная и мнимая части комплексного числа — это далеко не то же самое, что его амплитуда и фаза!
Результирующий массив комплексных чисел заполнен полезной информацией ровно на половину, другая половина является лишь зеркальным отражением первой и спокойно может быть исключена из рассмотрения. Если вдуматься, то этот момент хорошо иллюстрирует теорему Котельникова-Найквиста-Шеннона, о том, что частота дискретизации должна быть не меньше максимальной удвоенной частоты сигнала…
Также существует разновидность алгоритма БПФ без рекурсии по Кули-Тьюки, которая часто применяется на практике, но она чуть более сложна для восприятия.
Сразу после вычисления преобразования Фурье удобно нормализовать амплитудный спектр:
var spectrum = Butterfly.DecimationInTime(frame, true);
for (var i = 0; i < frameSize; i++)
{
spectrum /= frameSize;
}
Это приведёт к тому, что величина значений амплитуды получится одного порядка не зависимо от размеров сэмпла.
Вычислив амплитудный и частотный спектры, легко производить обработку сигнала, например, применять частотную фильтрацию или производить сжатие. По сути, таким образом можно сделать эквалайзер: выполнив прямое преобразование Фурье, легко увеличить или уменьшить амплитуду определённой области частот, после чего выполнить обратное преобразование Фурье (хотя работа настоящих эквалайзеров обычно основана на другом принципе — фазовом сдвиге сигнала). Да и сжать сигнал очень просто — нужно всего лишь сделать словарь, где ключом является частота, а значением соответствующее комплексное число. В словарь нужно занести лишь те частоты, амплитуда сигнала на которых превышает какой-то минимальный порог. Информация о «тихих» частотах, не слышимых ухом, будет потеряна, но получится ощутимое сжатие при сохранении приемлемого качества звучания. Отчасти этот принцип лежит в основе многих кодеков.
4. Точное определение частоты
Дискретное преобразование Фурье даёт нам дискретный спектр, где каждое значение амплитуды отстоит от соседних на равные промежутки по частоте. И если частота в сигнале кратна шагу равному (частота дискретизации)/(количество отсчётов), то мы получим выраженный остроконечный пик, но если частота сигнала лежит где-то между границами шага ближе к середине у нас выйдет пик со «срезанной» вершиной и нам будет затруднительно сказать, что же там за частота. Очень может быть что в сигнале присутствуют две частоты лежащие рядом друг с другом. В этом и заключается ограничение разрешения по частоте. Так же как на фотоснимке с низким разрешением мелкие предметы склеиваются и становятся неразличимы, так же и тонкие детали спектра могут теряться.
Но частоты музыкальных нот лежат далеко не на сетке шагов преобразования Фурье, а для повседневных задач настройки музыкальных инструментов и распознавания нот необходимо знать именно точную частоту. Более того, на низких октавах при разрешении от 1024 отсчётов и ниже сетка частот Фурье становится настолько редкой, что попросту на одном шаге начинают умещаться несколько нот и определить какая же на самом деле из них играет становится фактически невозможно.
Так вот, вектор на комплесной плоскости определяется действительной координатой a1 и мнимой координатой a2. Или длиной (это у нас амплитуда Am) и углом Пси (фаза).
если сделать спектр матрицы в виде комплексных чисел это будут точки на круге поделенные на 4 сектора
их можно легко перевести в ноты или кодоны днк
например берется круг делится на 12 секторов и в какой сектор попадает комплексное число частоты такой ноте это и отвечает от 1 до 12, а каждая нота отвечает названию кодона и месту его в аминокислоте
таким образом матрицу можно разложить в текстовый файл и прогнать по базе данных днк проверить на совпадение последовательностей
Ниже его классическая рекурсивная реализация на языке C#.
Для кода имеет смысл обратить внимание на тэг code - кнопочка возле цитирования- он сохраняет отступы в тексте программы и делает текст более читабельным.
если сделать спектр матрицы в виде комплексных чисел это будут точки на круге поделенные на 4 сектора
их можно легко перевести в ноты или кодоны днк
например берется круг делится на 12 секторов и в какой сектор попадает комплексное число частоты такой ноте это и отвечает от 1 до 12, а каждая нота отвечает названию кодона и месту его в аминокислоте
таким образом матрицу можно разложить в текстовый файл и прогнать по базе данных днк проверить на совпадение последовательностей
Препарат ДНК, при получении мШЭИ ДНК, считывается ЛГН-303 целиком, а не по отдельным нуклеотидам, растянутым в одну цепочку. В частности, поэтому мы не использовали препараты высокополимерной тотальной ДНК. Там хаос фрагментов ДНК разной длины. Брали кроткие отрезки одной длины, например, 547 пар нуклеотидов известной плазмиды. Но и в таких препаратах расположение отрезков хаотично, они не выстраиваются в одну цепочку. И тем не менее мШЭИ таких отрезков ДНК, введенное в воду даёт точные копии вещественных отрезков ДНК в ПЦР системе. Это тоже пока не объяснимо. Как необъяснимо каким образом вообще ДНК записана в мШЭИ. Это, наверное, главная задача.
Так я не понял - когда состоится первая прямая межконтинентальная спутниковая трансляция МШЭи-спектра кокаина с плантаций в Колумбии ?
как только агент с Бразилии закинет туда квантово запутанный чип и откроется временно пространственный туннель через который будет все телепортироватся.
Препарат ДНК, при получении мШЭИ ДНК, считывается ЛГН-303 целиком, а не по отдельным нуклеотидам, растянутым в одну цепочку. В частности, поэтому мы не использовали препараты высокополимерной тотальной ДНК. Т
биолог сказал что вы использовали немытые пробирки
а что там считывается или нет я сам увижу когда внесу текстовые файлы в поле поиска генома человека
биолог сказал что вы использовали немытые пробирки
а что там считывается или нет я сам увижу когда внесу текстовые файлы в поле поиска генома человека
Мало-ли что "биолог" скажет. Для таких существуют положительные, отрицательные и иные контроли, которые у нас безупречны. Протокол экспериментов выкладывал.
На первой диаграмме не программа, а какая то бня
На второй действительно нечто на Delphi в варианте для лохов. Полный примитив
Это главная форма какой-то проги и скриншот среды разработки с ней же на delphi7. Было бы наверное интересней ее код поглядеть вместо скриншотов.
Кстати я слышал, что delphi7 до сих пор популярен в научных кругах. Вне науки его мало кто использует, т.к. он не работает на операционках после Win XP.