Непонятно ЧТО? Спектр БЕСКОНЕЧНОГО синусоидального сигнала - дельта-функция на частотной оси. То есть "палка" имеющая нулевую ширину. Спектр КОНЕЧНОГО синусоидального сигнала (то есть промодулированного одиночным единичным импульсом) будет спектром ЭТОГО ИМПУЛЬСА перенесенным на частоту синуса. Отсюда и происходит сказанное мной выше. Из этого следует, что ДПФ-БПФ считают в частотной сетке соответствующей времени накопления и частоте дискретизации. А совсем не на частотах сигналов подлежащих анализу. Аналогично при измерении напряжения в АЦП никто не привязывает сетку напряжений (кодов) АЦП к напряжению измеряемого сигнала.
Последний раз редактировалось КРАМ Пт дек 31, 2021 20:42:28, всего редактировалось 2 раз(а).
Осциллограф на 1024 точках с интервалом в 5мкс между точками строит спектрограмму до 300кГц при входном сигнале 1кГц, шаг каждой точки 200Гц.
5 мкс дискретизации (без даунсемплинга) позволяют получить верхнюю частоту не выше 100 кГц (частота дискретизации 200 кГц). Такшта про осциллограф - это ваша фантазия. Вы просто не разобрались в условиях измерений.
Фильтр представляет из себя АЧХ ОКОННОЙ ФУНКЦИИ. Поверхностно можете узнать об этом из Википедии по статье Оконное преобразование Фурье. Там приведены АЧХ нескольких популярных оконных функций. АЧХ будут соответствовать спектру самой оконной функции.
5 мкс дискретизации (без даунсемплинга) позволяют получить верхнюю частоту не выше 100 кГц (частота дискретизации 200 кГц). Такшта про осциллограф - это ваша фантазия. Вы просто не разобрались в условиях измерений.
Мне главное, что он показывает то, что мне хватает.
Просто надо собрать что-то покомпактнее. Вот это моя фантазия. Вот и спрашиваю, как это реализовать это самое. Что есть фильтры, как их реализовывать и применять к данным - это, похоже, тайна.
Про оконные функции знаю только окно Хеннинга, которое есть на этом же осцилле.
Что есть фильтры, как их реализовывать и применять к данным - это, похоже, тайна. Про оконные функции знаю только окно Хеннинга, которое есть на этом же осцилле.
Вы пишите чушь. Нет никакой тайны. Реализовать синусно-косинусный ДПФ вообще элементарно. Только количество умножений будет N в квадрате, где N - число отсчетов. При БПФ количество умножений составит N*log N. Правда это будут КОМПЛЕКСНЫЕ умножения. Про окна я уже написал где посмотреть.
Могу тоже самое написать про чушь. Я написал про конкретный пример - и получил, как реализовывается этот самый синусно-косинусный ДПФ. Сложно, но хоть что-то понятно, как это примерно реализовать.
А вот дальше - ничего не понятно. Я ведь не зря написал, что гугл в вопросе не помог, а значит и википедия. Читал я это всё не раз, и не два, и википедию, и рефераты. Но везде всё написано строгим математическим языком. Как это применить, там увы, не говорится.
Что я хочу увидеть - точки в координатах амплитуда-частота. Как на классическом древнем ламповом С4-27. Только для низких частот.
1. Набираем 1024 отсчета. 2. Умножаем эти отсчеты на оконную функцию. 3. Для КАЖДОГО ФИЛЬТРА: а) считаем сумму произведений каждого отсчета и значения косинуса с частотой этого фильтра в точке отсчета. Делим сумму на число отсчетов (нормируем). б) тоже самое для синуса. в) находим сумму квадратов результатов по пунктам а и б. Извлекаем корень квадратный из результата - получаем амплитуду сигнала в фильтре. Вот и все. Значения синусов и косинусов можно забить таблицами, чтобы не считать. Что тут непонятного?
Оконная функция - понятно, его конкретная реализация - непонятна. На википедии в формулах к окнам не расписано даже, чем является та или иная буква в формуле. Ну ладно, в той же книжке на осцил приведено окно Хеннинга, типа х = cos^2 [(x/1024 - 1/2)*Pi]. Это ещё как-то можно перевести в код.
Для каждого фильтра - я даже не понимаю, для какого фильтра? Частотного? Как он реализуется именно в привязанной к действительности формуле?
В математике я не силён, не скрываю, туда же и тригонометрия. Но всё же был задан конкретный вопрос. И как я понимаю, у вас конкретного примера нет. Конкретно с ДПФ получен ответ, для расчётов по нему мне хватит математических знаний, пускай и со скрипом. Окно Хемминга - тоже, формула привязанная к действительности, а не к высшей математике. Период есть, косинусы-квадраты посчитать можно, подставляй значения и считай. А вот по фильтрам я такой формулы не нашёл. Ладно, это уже после нового года буду думать.
По каким еще фильтрам? Каждый частотный результат ДПФ и есть сигнал в ФИЛЬТРЕ с АЧХ определяемой оконной функцией. АЧХ оконных функции приведены в той же википедии. Это АЧХ НА ЧАСТОТЕ ФИЛЬТРА. Последовательность расчета я вам привел. Что еще вам требуется?
Посмотрим, что в итоге выйдет, вроде отчасти приходит понимание. Просто для кого-то это просто, особенно кто с этим работает. Для меня не так сложно это перевести в машкоды какого-нибудь Z80. Было бы что переводить.
Мне с программированием тоже никто ничего толком не объяснил. "Всё просто, в интернете всё написано"... А сам я нашёл только чёткое, краткое и понятное описание программирования 580ВМ80.
Мне с программированием тоже никто ничего толком не объяснил. "Всё просто, в интернете всё написано"... А сам я нашёл только чёткое, краткое и понятное описание программирования 580ВМ80.
Тоже какая то чушь. Система команд любой платформы доступна, если речь идет об АСМе. Но кроме системы команд нужно знать АРХИТЕКТУРУ процессора, чтобы не заниматься изобретением деревянных велосипедов.
может мне попробовать обьяснить.... ну смотри - оконная функция это абстракция, чтобы перевести абстрактный бесконечный повторяющийся сигнал в анализируемый кусок. У нас есть массив куда мы складываем отсчеты. Величина этого массива - ширина нашего окна. Частота с которой мы берем выборки (то как быстро работает АЦП) накладывает ограничения на максимально возможную анализируемую частоту. Т-е если у нас частота дискретизации 400 кГц, то максимально что мы можем увидеть в спектре - 200 кГц. С другой стороны - нижняя частота зависит он ширины окна. Если у нас в окно не помещается период ниже 1 кГц, то нет смысла анализировать что-то ниже. Вот мы получили два параметра частоты исходя из частоты дискретизации и ширины окна. Шаг с которым мы будем делать анализ - зависит от сетки на которую мы будем проецировать спектр. Допустим там все тоже просто - 200 точек. Отсюда получаем шаг в 1 кГц. Теперь анализ. Нам надо взять некую элементарную гармонику и найти ее корреляцию с исходным массивом. Чтобы найти корреляцию, надо взять эту гармонику, заполнить значениями такой же массив и перемножить их. Но заметьте - есть такая штука как фаза. Нам не известно в какой фазе пребывает гармоника в исходном сигнале. А свой измерительный, пробный массив мы заполнили допустим косинусоидой с начальной фазой ноль. Можем не угадать. Чтобы было наверняка, берут две гармоники - косинусоиду и синусоиду, делаем две свертки, а потом по формуле находим значения амплитуды и фазы найденной гармоники в исходном сигнале. И это все повторяется 200 раз. Довольно затратный вычислительный процесс. Есть упрощения, например фазу обычно не считают. Надеюсь что я верно все вспомнил и описал без ошибок. Если что - поправят.
Речь идёт о машкодах. Я их там упомянул. А с АСМом они идут хоть и рядом, но не совсем. АСМ 8080 и его машкоды это почти одно и то же, а вот дальше уже начинается разница.
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения