На главную страницу сайта
· Наш магазин · Объявления · Рейтинг · Статьи · Частоты · Копилка · Аэродромы · Live!
· Файлы · Диапазоны · Сигналы · Музей · Mods · LPD-форум · Клуб · Радиостанции
На сайте: гостей - 52,
участников - 3 [ RZ4AZ, Greenland, sasha555]
 · Начало · Опросы · События · Статистика · Поиск · Регистрация · Правила · FAQ · Галерея ·
 Форум —› Прочее —› Спектральные игры. FFT, I/Q и прочие забавы. 
Портативные любительские радиостанции Yaesu


Yaesu FT-60R
руб.

Yaesu VX-3R
руб.

Yaesu VX-6R
руб.

Yaesu VX-8DR
руб.

Yaesu FT-1D
руб.
 Страница:  ««  1  2  3  4  5  ...  31  32  33  34  35  »»Поиск в теме
Автор Сообщение
Mesh
Участник
Offline4.0
с мая 2006
Сообщений: 6169

Дата: 01 Дек 2011 01:30:35 · Поправил: Mesh (01 Дек 2011 01:31:22) #  

Sinus Но Вы ведь прекрасно понимаете, что нормальный чел не будет здесь бить себя в грудь и клятвенно обещать сделать вещь. А этого никто и не требует. :-) Но между делом тут не забывают ударить себя в грудь, типо как хреново всё везде! Какой поганый дрогой софт, какая гадкая база сигналиков, я там не нашёл то чего хотел, какой Кул противный всё делает не так, какое ФФТ мерзкое и всё такое. :-) Хз что получится. Ага, пока получается хз что, эт точно. :-) Нет уж спасибки, ненароком это пусть делают те кто ненароком за это берутся. Вот ж люди, раз уж так близко принимаете всё к сердцу... ну что за манера, так между делом диагноз влепить. Да фиолетово мне на сам деле, уже давно. :-)

Да лана, не партесь, эт так всё чухня, вы хорошие разбиралки пишете примеров, эт класно тем кому интересно, собсно и вся выжимка из этого грандиозного действа под назавнием COOL+. Пока во всяком разе. Ну и ладно, а там глядишь ненароком кто и разбиратся начнёт в чём, хотя этих ненароков тут в каждой теме почти, ну да понятно это не те ненароки. ;)
Sinus
Участник
Offline3.0
с авг 2010
Санкт-Петербург
Сообщений: 1049

Дата: 01 Дек 2011 01:37:50 · Поправил: Sinus (01 Дек 2011 01:45:28) #  

Ответ на вопрос Meshа, зачем кроме вав хорошо бы иметь числовые данные в txt.

Чтобы иметь неквантованные по уровню сигналы, исходно синтезированные математически с высокой точностью. Вот, смотрите, что меня уже напрягло в этом деле:

http://s61.radikal.ru/i172/1111/f3/3415e06cac59.jpg
Это исходный спектр сигнала "сумма 5 синусоид точно в бинах". Чистота спектра не хуже -250 дБ
(этот рис., сигнал, и его описание есть в указанном выше архиве)

http://s017.radikal.ru/i405/1111/eb/46d253d57b55.jpg
А таким стал спектр после того, как этот сигнал был записан в вав 48000/16 и прочитан обратно в маткад из вав. Чистота спектра явно ухудшилась. В этом примере - вроде бы до -90 дБ. Я не специалист, и хотел бы понять, что стряслось? Пока предполагаю, что это - ожидаемый результат 16-битного квантования.

Вот, чтобы изучать алгоритмы спектральных преобразований без нюансов, вносимых квантованием, и нужны исходные высокоточные числовые массивы тест-сигналов. Альтернатива - записывть вавы с 24 или 32 битным квантованием, но не все умеют их правильно считывать (маткад не умеет).

Если есть соображения на этот счёт, заранее спасибо.
Реклама
Google
Mesh
Участник
Offline4.0
с мая 2006
Сообщений: 6169

Дата: 01 Дек 2011 01:54:53 #  

Sinus Альтернатива - записывть вавы с 24 или 32 битным квантованием, но не все умеют их правильно считывать (маткад не умеет). Не все? Или конкретно Маткад? :-) Выход, пишите разработчикам Маткада и грите, мне позарез нужно поддержка 32 битов. Но я знаю, что будет ответом с вашей стороны. :)

Толку от числовых даных в тхт? Вопрос на засыпку. Что в реале вобще рассматирватся будет? Реал сигналики или стерильные модели? Если стерильные моделки, то можно даже и не продолжать, успех будет гарантирован почти всегда и везде, в любых виртуальных задачах, на практике тока это работать не будет. :-)

Я не специалист, и хотел бы понять, что стряслось? Это называется добро пожаловать в реальный мир в реальные задачи. :-)

Я понимаю, когда в космонавтике pi вычисляют с миллионами знаков после запятой, тут, в реал сигналиках оно вам зачем это -250 дб? Где такие сигналики брать-то?
Programmist
Участник
Offline4.0
с ноя 2008
Москва
Сообщений: 3826

Дата: 01 Дек 2011 09:08:36 · Поправил: Programmist (01 Дек 2011 13:53:50) #  

Вот оно, куда переехало, ну и хорошо.
Зачем все это надо?
Не знаю, наверно не надо, но интересно.
Зачем спектры по 500 метров?
Странный вопрос, если на этих спектрах видно то, что не видно в других редакторах и можно определить частоту с высокой точностью, значит тоже не надо.
Зачем резать сигналы, когда полно программ, которые это делают?
Нет, не делают, или делают плохо.
Зачем стирать шумы резинкой и рисовать на спектре кисточкой?
Согласен, не надо, это вообще бред какой-то :)
Много может быть разных зачем. Основная цель – иметь все свое, а не использовать чужие достижения.

К стати, уровень Кула в обработке сигналов уже достигнут, но это не предел, ну а качество спектров смотрите сами.
Экспериментальным путем было обнаружено, что в Куле, помимо FFT-фильтра есть слабенький LPF, 1го-2го порядку, чтобы скрыть все баги, только получается это не всегда хорошо.

Sinus
Все эти "разноцветнтые кибитки" - как раз результат SFT.
Нет, все эти "кибитки", записанные в битмап, могут быть восстановлены обратно в сигнал, с абсолютной точностью, если не было превышения уровня. Никакие это не "кибитки", а реал то, что есть на самом деле, просто не хватает времени сделать хорошие линейки.
Ваши сигналики? :


Увеличить


А вот так, с другим размером блока? :


Увеличить

Отсутствие линеек и вносит непотятки, здесь ось X - всегда время, а Y - частота.
Ну да, размер спектра – 252 Мегабайта, а попробуйте рассмотреть этот сигнал во времени по-другому. Кул его видит, на то он и Кул, чтобы видеть многое, но это предел его разрешения и сигнал отображен не совсем корректно, не видно начала и конца:


Увеличить

При попытке рассмотреть сигнал в Adobe Audition CS5.5, было предложено отправить куда-то сообщение об ошибке, в прочем, я уже говорил, что рассматривать здесь этот "редактор" больше не буду.

Динамическая линейка - вещь хотя и простая, но достаточно трудоемкая в реализации. Нужно точно подобрать размер шрифта, а еще лучше сделать свой, чтобы на разных машинах цифры не налезали друг на друга и не портили внешний вид. Обычно, это делается в последнюю очередь.

Или берем Ваш пример, со смещенным спектром, загружаем в программу, выставляем частоту 12кГц (частота ловится кликом мышки на картинке), нажимаем кнопочку "Sin" и кнопочку "Play", есть еще пункт в меню "Save As..." :)
Точно так можно поступить с "тетями", поднять амплитуду, развернуть сигнал в реальный вид (кнопка "I/Q2R). Частота "теть" ловится мышкой на том файле с точностью до 7-ми Гц (при максимально возможном размере блока FFT-524288), не забываем про то, что там частота дискрета 39980000. Размер блока теперь может быть любым, сделал наконец-то. Единственное, что нет FM-демодулятора, но это дело наживное.
Если нужен исходный текст, напишите почтовый адрес в личку. Вышлю весь комплект. Дальше разобраться в нем будет сложно, там использован сторонний компонент, с многослойной графикой, который будет переписан под задачу и связан всеми веревками с обработкой сигналов и многоканальными wav-ами.

з.ы.
Ну, а если честно, то я и сам не знаю что это такое и зачем оно надо. Знаю только то, что эта штука может делать все, а основной элемент управления к ней - Delphi7.
То, что это просто "демка", с красивыми картинками - глубокое заблуждение. Сигналы выглядят красиво, здесь все сделано, так, как оно есть на самом деле. Нет никаких "улучшайзеров" и "размазывателей" графики.
Антиалайзинговый фильтр - не в счет. Это опция, и нужна она редко, для удобства работы.

з.ы.ы.
Если получается похоже на SA - в том не моя вина. Специально я этого не делал и отношусь с уважением к создателям подобного рода программ, так что заранее прошу извинения, если что не так. Основное направление здесь будет не анализ, а работа со спектром и совмещение графических возможностей с возможностями обработки сигналов, если оно, конечно, будет :)
Sinus
Участник
Offline3.0
с авг 2010
Санкт-Петербург
Сообщений: 1049

Дата: 01 Дек 2011 14:19:34 · Поправил: Sinus (02 Дек 2011 01:16:21) #  

Programmist, рад что Вы нашлись. :)

Прошу извинить, сейчас убегаю, вечером появлюсь, но вопрос уже задаю: всё-таки не понимаю, КАК из Ваших битмапов можно восстановить исходный сигнал? И почему они такие огромные по объёму?

Точно знаю, что фурье-спектр (т.е. пара вещественных числовых массивов X(k), Y(k), где k - номер бина) содержит не больше информации, чем исходный дискретный во времени сигнал S(t). Сигнал "5 синусоид" в текстовом исходно точном числовом файле занимает около 1.5 Мегабайт. Значит и его фурье-спектр занимает примерно того же порядка объём (вечером пришлю). А в квантованном по уровню виде (вав-файл 48кГц/16) сигнал занял вообще порядка 130 килобайт, так что и в фурье-спектре не может быть больше полезной инфы, чем 130 килобайт. Что за инфа в Ваших 500 метрах - для меня (да, м.б. пока я ещё дурак в этих вопросах) - полная загадка....

В общем, пока Вы не разъясните Ваши алгоритмы получения таких картинок, остаётся непонятным - какую они несут информацию, и как её из картинок извлекать? Ответ типа "нажимайте такие-то кнопки и получите то-то и то-то", как Вы сами понимаете, не добавляет ясности...

(Плз, без обид. И сходство с SA или ещё с чем-то тут не играет никакой роли. Главное - каковы формулы обработки сигналов? Хотя бы словами опишите, а иначе всё превращается в кота в мешке...))
Programmist
Участник
Offline4.0
с ноя 2008
Москва
Сообщений: 3826

Дата: 01 Дек 2011 15:15:57 · Поправил: Programmist (01 Дек 2011 19:02:59) #  

Sinus
КАК из Ваших битмапов можно восстановить исходный сигнал?
Так все очень просто. Битмапы, это не что иное, как Фурье-амплитуды, записанные в формате RGB. Если к битмапу применить функцию, обратную той, которая раскрашивает его в цвет, приемлемый для восприятия глазом, амплитуды вернутся на свое место и из них можно восстановить сигнал. Здесь только нельзя забывать про оконную функцию, если она была включена – полное восстановление не возможно.

И почему они такие огромные по объёму?
Это, чтобы сразу вычислить частоту, на которой сидят тетки (клик на картинке вписывает частоту в окошко, для сносу спкетру) и хорошо было видно сигналы, типа Вашего примера. При маленьком разрешении 5 синусоид сольются в одну и будет не понятно, что реально есть в сигнале. Пример, с картинками, приведенный выше очень хорошо это показывает. Для восстановления сигнала из битмапа, такое огромное разрешение не нужно. Разрешение можно сделать бесконечно высоким, как по времени, так и по частоте.
Размер битмапа немного завышен еще и потому, что он 32-х битный, взят с расчетом на будущее, где планируется использовать альфа-слой и формат CYMK.
Программа же здесь лежит, посмотрите и все будет понятно. http://www.radioscanner.ru/uploader/2011/ceplusdemo01.rar
Настройка размера блока FFT и Image X, задают размер битмапа (X-время), масштабы X и Y, влияют только на просмотр (при включенном режиме увеличения - линза на нижней панели).
На инженерной панели LPF, это и так понятно, пусть будет, а кнопки Sin и Cos - умножение всего файла на них самих, с частотой, выставленной рядом в окошке (сдвиг спектра вверх или вниз). Естественно, получаются зеркалки, можно резать их LPF-ом, переворачивая спектр, короче нужен опыт работы.
Сдвигать спектр, используя FFT, здесь нельзя, т.к. важно точное задание частоты.

На самом деле, алгоритм работы родился не сразу. Получается так, что при открытии файла, чем меньше его размер, тем выше получается разрешение (за счет скользящего окна). Сделано это было специально, чтобы быстро открывать файлы огромного размера, как оно работает в двух словах объяснить сложно. Головняк это, однако, но работает :)

Главное - каковы формулы обработки сигналов?

Начнем с простого, Инверсия спектру:

for i:= 0 to Length(AudioArray16) do
if i and 1 = 0 then AudioArray16[i]:= -AudioArray16[i];


Сдвиг спектру:

for i:= 0 to Length(AudioArray16) do
AudioArray16[i]:= Round( (AudioArray16[i] * SinArray[i]) / srcamp );

Где AudioArray16 - массив исходных 16-ти битных данных.
SinArray - синусоида с амплитудой srcamp.
srcamp - заранее вычисленное максимальное значение амплитуды массива AudioArray16.

Точно так и с умножением на косинус, только там массив CosArray.
Конечно, массив SinArray генерится не сразу на весь массив данных, а добавляется динамически, в целях экономии памяти, но суть дела от этого нисколько не меняется. Ну и контроль амплитуды там есть, если исходная была максимальной, то идет понижение, потом восстановление до прежнего уровня, это тоже не столь важно.
petr0v
Участник
Offline2.3
с мая 2010
Balakhna
Сообщений: 412

Дата: 01 Дек 2011 16:21:31 #  

Programmist

Битмапы, это не что иное, как Фурье-амплитуды, записанные в формате RGB. Если к битмапу применить функцию, обратную той, которая раскрашивает его в цвет, приемлемый для восприятия глазом, амплитуды вернутся на свое место и из них можно восстановить сигнал.

А фазу где берёте?

Здесь только нельзя забывать про оконную функцию, если она была включена – полное восстановление не возможно.

Это конечно же не так :)


Вы блоки FFT с каким перекрытием берёте?
Programmist
Участник
Offline4.0
с ноя 2008
Москва
Сообщений: 3826

Дата: 01 Дек 2011 16:41:47 · Поправил: Programmist (01 Дек 2011 18:32:55) #  

petr0v
А фазу где берёте?
Ну, если речь идет о полном восстановлении, фазу можно записать в альфа-слой.
Это конечно же не так :)
Зависит от оконной функции, те, что у меня, усаживают амплитуду на стыках блоков в нуль.
Вы блоки FFT с каким перекрытием берёте?
Сейчас, в данной реализации работает скользящее окно, с соответственно скользящим перекрытием, которое зависит от размера исходного файла и подстраивается автоматически под заданный размер FFT и масштаб X. Поэтому размер картинки немного уходит от заданного, в зависимости от объема данных.
Пока задача точного восстановления сигнала из картинки не стоит, такое решение оказалось самым быстрым и качественным.
Функция точного расчета всех размеров еще не готова, поэтому временно работает не очень хороший расчет, можно сказать, метод проб и ошибок :)
Исправлять ее имеет смысл в последнюю очередь, когда будут готовы все линейки и масштабы.

Вот для фильтрации взял блоки с двойным перекрытием и окном Hann-a, получив при этом результат, похожий, как в Куле, даже немного лучше. Если, конечно, это можно назвать лучше :))


Увеличить

На картинке хорошо видна линия среза частот.
Моя, по крайней мере, режет честно, а в Куле остаток завален LPF-ом, здесь этого не видно, сигнал длинный, но это так :)
Конечно, для измерений выбран критический режим, срез делался на половине максимальной частоты сигналика, но тем не менее это факт.
Поставлю-ка я туда (на частоту среза) режектор, пусть немного завалит АЧХ-у, зато все будет чисто.

з.ы.
Забыл написать, кнопка ASR (Adjust Sample Rate) не делает ничего, кроме, как меняет заголовок даты, ну и соответственно передает его проигрывателю, при прослушивании сигнала.

з.ы.ы.
petr0v
Это конечно же не так :)
Да, конечно, ошибся маленько :) Возможно восстановление, если окна были с перекрытием или известен шаг скользящего окна, что, впрочем, элементарно вычисляется.
petr0v
Участник
Offline2.3
с мая 2010
Balakhna
Сообщений: 412

Дата: 01 Дек 2011 19:39:29 #  

Programmist

Вот для фильтрации взял блоки с двойным перекрытием и окном Hann-a

Если не фильтровать то восстановление должно быть идеальным для Ханна с 50% перекрытием, а вот с фильтрацией плохо, боковики у Ханна большие и медленно спадают, будет большой уровень спектральных наложений.
https://ccrma.stanford.edu/~jos/sasp/Hann_Hanning_Raised_Cosine.html

Вот для примера банк фильтров с фильтром прототипом с маленькими боковиками.

Увеличить



Увеличить
Programmist
Участник
Offline4.0
с ноя 2008
Москва
Сообщений: 3826

Дата: 01 Дек 2011 22:19:39 · Поправил: Programmist (01 Дек 2011 23:13:59) #  

petr0v
Да, с Ханном восстанавливается на все 100, проверял. Еще треугольник и Blackman работают, а с фильтрацией буду разбираться. Скорее всего поставлю режектор, но все нужно 100 раз проверять.
Про то, куда девать фазу Вы напомнили очень вовремя. Как куда?! Уже придумал! Буду записывать в битмап, через один пиксель, опционально. Получаем вот такого монстра:


Увеличить

Увеличиваем разрешение:
http://files.mail.ru/QYR6H8 (тут 3-х метровый 4000х4000 jpg кусочек от гигабайтной картины).
Не знаю, правда, зачем это нужно, но сигналы битмапы с записанной фазой выглядят очень забавно :)
Да и по большому счету, в запасе есть 65535 графических слоев - ровно столько, сколько и каналов в wav-файле :)

з.ы.
Да, это нечто! Осталось теперь найти этому достойное применение :)

Sinus
Вот здесь функция, как Фурье-амплитуды преобразуются в RGB Color:
http://www.radioscanner.ru/uploader/2011/ugamma.pas.txt
Sinus
Участник
Offline3.0
с авг 2010
Санкт-Петербург
Сообщений: 1049

Дата: 02 Дек 2011 01:15:28 · Поправил: Sinus (02 Дек 2011 01:20:34) #  

Programmist, petr0v, ребята, умоляю - если вам не трудно, плз, поясняйте подробно, что за сигналы Вы анализируете, с какой точностью, сколько в них было отсчётов, какова Fdiscr, и за что шла борьба?

А так, если не владеть телепатией, видна лишь опять "цветная кибитка" - ни амплитуда ваших фурье гармоник на крестах не приведена, ни частоты, ни шкала времени. Дык без чисел любой шутник может крест нарисовать - например в Paint-е , - а затем стереть резинкой любую его часть и радоваться. Или, например, вспомним фракталы - жуть какие красивые картинки можно извлечь из простого квадратного уравненья, но пользы-то от них, как от погремушки...

Всё, больше не буду вмешиваться в цветные диалоги. Вот только сформулирую снова факты, которые, как мне кажется, должны быть общеизвестными, и должны служить основой любой работы с сигналами в частотном представлении. Поправьте, плз, если ошибаюсь:

а) Любой вещественный сигнал S(t) с конечной длительностью Т равен сумме косинусных и синусных гармоник с вещественными амплитудами X(k) и Y(k), где k = 0,1,2,... - номер гармоники.

Термин "восстановить сигнал" означает вычислить эту сумму по известным X(k) и Y(k). В мат. пакетах операция восстановления массива S(t) по двум массивам X(k) и Y(k) символически записывается так S := IFFT(X+iY) и называется обратным FFT.

Вычисление же фурье-амплитуд X(k) и Y(k) по заданному сигналу записывается так Z :=FFT(S) и называется прямым FFT; здесь Z есть массив комплексных чисел X+iY. Массивы X и Y отделяются из Z операциями Re и Im, т.е. X := Re(Z), Y :=Im(Z).

б) На графиках спектра изображают "модуль" фурье-гармоник (в линейном или в логарифмич. масштабе), т.е. массив положительных чисел |Z|. Это есть значения корня квадратного из X2+Y2. Зная только модуль, невозможно отделить из него X и Y, и поэтому невозможно восстановить сигнал только по |Z|. Значит, если картинки несут информацию только о |Z|, то часть информации о сигнале в них уже безнадёжно потеряна, и всякое "вырезание частотных полос" на таких картинках бесполезно - оно не равноценно работе с двумя массивами X и Y поотдельности.

в) На картинках, где есть шкала частот и шкала времени, изображаются модули |Z| для ОТРЕЗКОВ сигнала. Т.е. сигнал нарезают на отрезки (окна) длительностью T, а затем в каждом отрезке делают FFT, как рассказано выше. Окна можно брать перекрывающимися. Цель - проследить, изменяется ли спектр во времени, т.е. от окна к окну. Но такая работа с сигналом не равноценна взятию FFT(S) для всего сигнала целиком. И вот почему:

г) Частоты гармоник f(k) не произвольны, а заранее предопределены длительностью Т сигнала (или его отрезка, если речь об отрезке!). Эти частоты всегда дискретны и кратны величине 1/T, т.е. f(k) := k/T, они называются бинами. Например, для сигнала длиной T = 1 сек все бины идут с шагом 1 Гц. Значит, выискивание на картинках каких-то новых гармоник между бинами - полный бесполезняк. Повторю: спектральное разрешение FFT определяется длительностью T и равно 1/T. Т.е. чем меньше T, тем хуже спектральное разрешение.

Отсюда ясно, что нарезка сигнала на окна ведёт к потере частотного разрешения. Например, если сигнал длиной 1 сек нарезать на 100 окон (длиной по 0.01 сек), то фурье-гармоники X(k) и Y(k) для каждого окна расположатся по оси частот с шагом 100 Гц. А если какие-то приёмы обработки изображений выявят на этой картине новые гармоники с шагом меньше 100 Гц, то это самообман.

г) И наконец, вот простая "бухгалтерия" отсчётов. При известной частоте Fdiscr количество отсчётов в дискретизованном по времени массиве сигнала S(t) длиной T есть N = T*Fdiscr. Фурье амплитуды по информативности своей равноценны сигналу, поэтому в двух массивах X(k) и Y(k) суммарное количество элементов тоже равно N. То есть, максимальный номер у частот f(k) это N/2 (так что максимальная f = Fdiscr/2), массивы X и Y содержат по N/2 чисел.

Пусть в вав-файле сигнал S(t) записан с точностью 2 байта на отсчёт. Тогда объём файла будет 2*N (плюс какие-то мелочи на заголовок и прочую служебную инфу). Значит, файл, содержащий два массива фурье-амплитуд X(k) и Y(k), взятых с той же точностью, тоже будет объёмом 2*N байт. Если все массивы чисел записывать с высокой точностью, например по 20 байт на отсчёт, то будут получаться файлы объёмом порядка 20*N.

Пример: пусть Fdiscr=48000 Гц, число отсчётов N = 65536 = 64 килобайт. Тогда сигнал будет звучать примерно T=1.36 сек (для моего файла "5 синусоид" плеер именно это и показывает :). При разрядности записи 16 бит объём вав-файла получается порядка 120 килобайт. А объём текcтового файла с десятичным форматом массивов - более чем в 10 раз больше, порядка 1.5 мегабайт (там наверное байт на символ). Всё! Если не добавлять в файл какой-то "левой" инфы или не дублировть одну и ту же инфу много раз, то 1.5 мегабайт невозможно превратить в 500 мегабайт. Да и незачем.
petr0v
Участник
Offline2.3
с мая 2010
Balakhna
Сообщений: 412

Дата: 02 Дек 2011 09:59:54 #  

Sinus

Отсюда ясно, что нарезка сигнала на окна ведёт к потере частотного разрешения. Например, если сигнал длиной 1 сек нарезать на 100 окон (длиной по 0.01 сек), то фурье-гармоники X(k) и Y(k) для каждого окна расположатся по оси частот с шагом 100 Гц. А если какие-то приёмы обработки изображений выявят на этой картине новые гармоники с шагом меньше 100 Гц, то это самообман.

Анализируются как правило не синусоиды, а модулированные сигналы, имеющие определённую длительность и полосу, необходимо разрешение как по частоте так и по времени.

г) И наконец, вот простая "бухгалтерия" отсчётов.

Интересно не только FFT само по себе, а также возможность простой корректной фильтрации в рамках одного преобразования, для этого нужна некоторая передискретизация, конечно не такая гигантская как у Programmistа, в два раза вполне достаточно.
Programmist
Участник
Offline4.0
с ноя 2008
Москва
Сообщений: 3826

Дата: 02 Дек 2011 10:23:03 · Поправил: Programmist (02 Дек 2011 12:48:36) #  

Sinus
плз, поясняйте подробно, что за сигналы Вы анализируете
Это не анализ, задача гораздо более проста - собрать ФНЧ или ФВЧ (без разницы), для вырезания части спектра, с последующим сдвигом (в данном случае - вниз). petr0v предлагает подключить банк фильтров, а я хочу использовать FFT. Известно, что просто так взять и обнулить частоты не получится, поэтому нужны дополнительные фокусы с перекрытием окон и соответственно, правильным выбором самой оконной функции, размера блока FFT, шага перекрытия и количества проходов всей этой конструкции по сигналу.
При такой фильтрации, возникает неприятное явление, называемое эффектом Гиббса, так как блок Фурье не может быть равен длине сигнала и фрагментация обязательна.

сколько в них было отсчётов, какова Fdiscr
Не имеет абсолютно никакого значения. Фильтр должен работать идеально, при любых значениях Fdiscr и заданных параметров среза. В данном случае, рассматривался срез вот этого сигнала: http://files.mail.ru/O4GXOF на половине его граничной частоты.

По остальным пунктам - полностью согласен, за исключением последнего.
Большие файлы нужны не для восстановления исходного сигнала из картинки. Это обыкновенный "микроскоп" и нужен только для того, чтобы без проблем рассмотреть, что в сигнале. Конечно, для этого вовсе не обязательно обрабатывать весь файл, достаточно увеличить нужную часть, как это делает SA, но в данном случае, для просмотра реальных записей эфира, такой алгоритм оказался более удобен.

Еще раз попробую объяснить зачем все это надо. Давайте возьмем за основу задачу, поставленную RadioKoteg. Хорошая визуализация и качественный генератор синуса уже есть. Теперь нужен фильтр, соответствующего качества, для отсечения зеркалок и доработки конвертера из I/Q. Децимация и демодуляция будут потом :)

Sinus
Вот тут картинку нарисовал, как картинка строится:


Увеличить

A, B и C здесь - это блоки FFT.
Это в случае двойного 50% перекрытия окон. С плавающим окном, перекрытие может быть любым, отсюда такое высокое разрешение :)
Как известно, функция всегда возвращает в 2 раза меньше значений по частоте, чем размер ее блока, поэтому размер картинки в пикселях по Y, всегда в два раза меньше размера заданного блока. Размер по X, зависит от шага окна и размера исходных данных, т.е. величина строго не определенная, да там еще нули добавляются, в начале и в конце, чтобы дать функции "разгон", только их на картинке не видно.

Самое высокое разрешение будет, при шаге окна, равном единичке, дальше функцию можно развернуть и пойдет интерполяция и так до бесконечности, но это здесь уже точно лишнее и в программе не используется.
Никаких других функций, кроме указанных, в программе нет. Все честно отрисовывает FFT.

Зная только модуль, невозможно отделить из него X и Y, и поэтому невозможно восстановить сигнал
К сожалению, это так. Поэтому будет опция полного сохранения с возможностью последующего восстановления. Здесь еще надо 10 раз подумать, как это реализовать, может быть послойно, а может просто через один пиксель, как было показано выше.
Mesh
Участник
Offline4.0
с мая 2006
Сообщений: 6169

Дата: 02 Дек 2011 13:33:32 · Поправил: Mesh (02 Дек 2011 14:19:44) #  

Programmist Да я просто в восторге от ваших описаний этой софтины, не, реально круто! Давайте возьмем за основу задачу, поставленную RadioKoteg. А только его задачи берутся за основу? :-)

Помогите плз и мне, вот сигналик http://www.radioscanner.ru/uploader/2011/coolplus.wav
или вот http://www.radioscanner.ru/uploader/2011/coolplus1.wav
или вот http://www.radioscanner.ru/uploader/2011/coolplus2.wav

Раскажите плз с максимальной точностью какую вы тут так разрисовали, что это, какие частоты заюзаны, с каким шагом, что там вобще, ну и всё такое. Чем бла-бла делать, може просто показать как оно в реале всё ништяк, а не на словесах? Как сотнимегабайтные картинки рулят. :-)

Сшенно реальные задачи, не высосаные из пальца бабочки, крестики, синусойды в сетке или нет, а реал задачи. Велкам так сказать из думок розовых, в действительность.

А то много писанины, а делов в реале, реал примеров, что-то как не было так и нет, имхо хороший шанс так сказать проявить софтину во всей красе и мощи, о которой тут стока уже понаписно. И плавающее, и скользящее самонастраивающеся ФФТ, и лучше разраешения нет в природе, и частоты с точностью охрененной мерять можно, и то что есь то и показывает ничего типо не врёт, ну просто чудо волшебное.

Хотся посмотреть на резалты однако, и время затраченое на их, тож не плохо б озвучить.
Programmist
Участник
Offline4.0
с ноя 2008
Москва
Сообщений: 3826

Дата: 02 Дек 2011 15:53:48 · Поправил: Programmist (02 Дек 2011 15:59:59) #  

Mesh
Помогите плз и мне, вот сигналик http://www.radioscanner.ru/uploader/2011/coolplus.wav
Ну вижу я все частоты в этом файле, только толку от этого нет. Это не стандартный режим, точность черт знает сколько знаков после запятой. Этот файл я Вам даже в jpg сохранить не могу, т.к. фотошоп его не жрет. И как эти частоты считать? Мышкой по картинке кликать - целый день уйдет, это о времени :)
В стандартном варианте режим с такой точностью забанен, даже и не предполагал, что это может быть кому-то нужно. Если нужно, буду расчитывать и работу в таком режиме.


Увеличить

Размер блока FFT здесь пришлось увеличить до 1048576, имхо вообще Unreal значение, к файлу было добавлено много нулей, в начале и в конце, иначе не запустить функцию, сигнал короткий.
Mesh
Участник
Offline4.0
с мая 2006
Сообщений: 6169

Дата: 02 Дек 2011 16:06:57 #  

Programmist Этот файл я Вам даже в jpg сохранить не могу А зачем оно мне? ;0)

Вопрос, что в записях. Не какие чудные картинки можно из них сделать, а что в этих записях, чуете задачу?

У вас с ваших слов прога делает чудеса недоступные никому другому, ну дык и собсно вопрос, где резалты? В 750 мегабайтах картинки? Мне нужна конкретика, а не радуга. Нах мне эта радуга если нет ни какой конкретики? Или она есть эта конкретика? Тады цифры в студию, типо вот фалик 1 это то то и то, с такими параметрами там модой и ещё чего там в записях бывает. Вот другой файлик там то и то и то, вот третий. На всё про всё ушло там скажем 1 час. Ну оки, понятно, наглядно, доходчиво.

Но дык где оно всё это? Скока частот? Шаг какой? Что это вобще? Разумное, неразумное, сигналики, чи вобще хрень какая, где ответы? :)
Programmist
Участник
Offline4.0
с ноя 2008
Москва
Сообщений: 3826

Дата: 02 Дек 2011 16:17:50 #  

Mesh
Разумное, неразумное, сигналики, чи вобще хрень какая, где ответы?
Так я в этих модах - полный лох :) Частоты посчитать могу, а что это такое - понятия не имею. Эт же простой спектрометр и для сносу спектру, не более того. Может быть потом добавлю, чтобы из Кир...ва сделать Карузо, при помощи резинки и кисточки, а до анализу тут дело не дойдет, однозначно :)
Mesh
Участник
Offline4.0
с мая 2006
Сообщений: 6169

Дата: 02 Дек 2011 16:31:09 · Поправил: Mesh (02 Дек 2011 16:34:17) #  

Programmist Так я в этих модах - полный лох :) Нет уж простите, вы вобще чего делаете-то? Инстрамент? Какой? Кому? Для чего? Эт же простой спектрометр , ну дык и раскажите мне что я должен умного получить в этом простом спектрометре чего не могу получить в других инстраментах? Что я получу такого сильно точного от того что допустим не могу получить в другом? Где разалты, опять ж сакраментальный вопрос. Вот была реал задача. Резалт Это не стандартный режим, точность черт знает сколько знаков после запятой. Этот файл я Вам даже в jpg сохранить не могу, т.к. фотошоп его не жрет. извините меня я вобще не понимаю. Нужна конкретика.

У вас как я понимаю есть резалт, это 750 мег картинки, дальше что? Если вы как создатель ничего внятного сказать не можете, то что это вобще тогда такое? :-)

для сносу спектру Да? Для сносу спектру нужно заюзать резиновую память у компа под 500 мегабайт?! А не жирно ли для простых действ? И не мелко ли для такой супер пупер уникальной софтины, котора и така и сяка, да вот только нихрена не делающая ничего толком? :-)

Не ахти какие проблемные примеры предложены, а что будет в реал сложных случаях?
Programmist
Участник
Offline4.0
с ноя 2008
Москва
Сообщений: 3826

Дата: 02 Дек 2011 16:54:54 #  

Mesh
Где разалты, опять ж сакраментальный вопрос.
Так спектр она сносит? Сносит. Теток видно? Видно. Ну нет фильтра хорошего пока и децимации, а так все работает. Об анализе сигналов, имхо, здесь речи и не было. А что разрешение высокое, так это и отключить не сложно, оставить 1024 точки, чем плохо? Ломать то оно не делать :)
Когда фильтр с дециматором соберу, тогда и будет законченная утилита, под конкретную задачу.
Вот была реал задача.
Да не знаком я с такими сигналами и не работал никогда, зачем лишний раз народ смешить. Если не знаю, что это такое, значит - не знаю.
Mesh
Участник
Offline4.0
с мая 2006
Сообщений: 6169

Дата: 02 Дек 2011 17:00:30 · Поправил: Mesh (02 Дек 2011 17:07:26) #  

Programmist Что она делает?! Так спектр она сносит? Сносит. Ну снесите мне плз спектр в первом файлике на 500 герц вниз, и резалты положите. Може и сносит, заодно и видно будет.

И таки обьясните, что делать с высочайшим разрешением в виде картинки в 750 мегов, на том примере который вы привели? Что из этого я должен какие выводы сделать о том что есь в записи? Вот что мне лицизрение этого счастия даёт конкретно?
Programmist
Участник
Offline4.0
с ноя 2008
Москва
Сообщений: 3826

Дата: 02 Дек 2011 17:25:37 #  

Mesh
Ну снесите мне плз спектр в первом файлике на 500 герц вниз
Не получится. Ширина спектра сигнала больше, чем 500 Герц, сигнал "размажет".

что делать с высочайшим разрешением в виде картинки в 750 мегов
Понятия не имею, можно только точно подсчитать количество и значение частот в сигнале, и то, надо сильно постараться.

А как быть с зеркалками, при сносе, я не знаю. Другого способа, кроме как умножение на синусоиду у меня нет. Можно сделать сдвиг на FFT, но тогда пропадет возможность точно установить частоту, а файл может быть и 500 МГц и выше.
Mesh
Участник
Offline4.0
с мая 2006
Сообщений: 6169

Дата: 02 Дек 2011 17:28:41 #  

Programmist Понятно. Сенькс. Успехов. :) Ничего толком COOL+ не делает выходит так значится. Ну и ладно.
Programmist
Участник
Offline4.0
с ноя 2008
Москва
Сообщений: 3826

Дата: 02 Дек 2011 17:42:34 #  

Mesh
Сенькс. Успехов.
Спасибо, если бы я знал, какая прога это делает и она у меня была, то было бы проще, а так даже не с чем сравнивать.
Mesh
Участник
Offline4.0
с мая 2006
Сообщений: 6169

Дата: 02 Дек 2011 18:05:59 · Поправил: Mesh (02 Дек 2011 18:19:12) #  

Programmist если бы я знал, какая прога это делает и она у меня была да и не говорите, страшное дело. :-) Нет таких прог, вот ж ужас какой. А ну да, ну да, если б кто подарил такую, да ещё б разжевал как там оно всё сделано, то да, то да, тогда ессно. :) Да я б вам подарил, да вот создатели той проги такой вариант не предусмотрели.

А вот прикидуете как мне прикольно и сравнивать есть с чем, и проги такие оказуется есть. :-) Скрины положить, или и так тут уже бесят картинки SA честный трудовой народ не подецки? Тот самый народ который тут на власть наглую обижен? :-) Эх блин, кино и только.

Одни тут годами расказуют что и как нужно делать, какой инстрамент должон быть, другие типо Sinus ликбез какой ни какой проводят. К ста очень так даже ничего, для тех кому нужен очередной тысяча первый ненарок для пинка под зад, что б в тему начать вьезжать хоть как-то.

Другие грят нах нам чужое, своё сделаем, типо так очередным ненароком, ага ага. :)

Тут ушла в туман темка, где Маткад должен был рулить в анализу и обработке, типо для всех в очередной раз кто Маткад легальный имеет, а ясный пень он у каждого второго :-).
Типо выведем графики стрелочки на экран у усё будет понятно. :-) Вот она Простой пример модели SDR I/Q в Mathcad

У вас такой ж подход где-то, вот вам мегабайты картинок трахайтесь типо, а вы как бы и не в теме даже что вобще нужно людЯм, и посмотреть то реал негде! Вот ж как оно однако! Ну никто до вас эти проблемы не решал типо. Нет ни по анализу, ни по спектрасмотрелкам, ну нифига матерьялу на сайте. Ни вобще чего со спектром делают, нах на него смотрют, что ещё нужно б кроме галимых картинок, ну нигде ни одного примеру. Тайна веков!

Лана... всё это уже было помойму где-то. :)
Programmist
Участник
Offline4.0
с ноя 2008
Москва
Сообщений: 3826

Дата: 02 Дек 2011 18:51:40 #  

Mesh
Ничего, не все так плохо. Теперь есть хорошая смотрелка, а без нее вообще подходить к ЦОС было бессмысленно. Ежу понятно, что нужно еще сделать линейки, а потом браться за обработку. Что такое дата - массив с числами, как он им был, так и останется, а когда можно посмотреть, что в том массиве, после обработки происходит, это совсем другое дело, чем тащить каждый раз результат в Кул, или еще куда, для просмотру. Так можно и дыру в столе мышкой протереть :)
Модели - моделями, а это уже реал рабочий инструмент.
Mesh
Участник
Offline4.0
с мая 2006
Сообщений: 6169

Дата: 02 Дек 2011 18:55:59 #  

Programmist Ничего, не все так плохо. Да всё просто чудесно! Не сдвигает, не определяет, нах картинки из которых вы сами ничего толком сказать не можете, неизвестно. Всё шикарно! И я ж про то.
Programmist
Участник
Offline4.0
с ноя 2008
Москва
Сообщений: 3826

Дата: 02 Дек 2011 19:15:38 · Поправил: Programmist (02 Дек 2011 19:18:46) #  

Mesh
Не сдвигает, не определяет
Сдвигает, только через пень-колоду, с кучей зеркалок. Теперь и сам не понимаю, зачем ушел от FFT и стал умножать все на синус. Вернусь обратно, тем более, что размером блока я уже не ограничен. Надо будет двигать 10 или 100 ГГц, на 1 или на 0.01 Герц - сдвину. Машина поскрипит, но сдвинет.
Mesh
Участник
Offline4.0
с мая 2006
Сообщений: 6169

Дата: 02 Дек 2011 19:35:16 #  

Programmist Сдвигает, только Да, спасибо я уже видел пример сдвига. :-)

Ну снесите мне плз спектр в первом файлике на 500 герц вниз
Не получится. Ширина спектра сигнала больше, чем 500 Герц, сигнал "размажет".


Да собсно, я ж сказал, всё шикрано. Всё равно эту прогу в том виде как она есть юзать не буду, это для мазохистов находка. Я и так ловлю себя на том, что ваш проект чекю и проверяю, а чего ради собсно? Оно мне надо или вам? :) Ну было интересно, уже надоедать начинает, да и без меня вы обойдётесь имхо замечательно.
Programmist
Участник
Offline4.0
с ноя 2008
Москва
Сообщений: 3826

Дата: 02 Дек 2011 19:42:20 #  

Mesh
да и без меня вы обойдётесь имхо замечательно.
Сомневаюсь, потому как, похоже на то, что это вообще больше никому не интересно. Мне оно тоже надоесть может, а может туда ему и дорога. Да и ладно, не первый "проект".
Sinus
Участник
Offline3.0
с авг 2010
Санкт-Петербург
Сообщений: 1049

Дата: 02 Дек 2011 20:21:04 #  

Mesh, вот за ссылку на тему Простой пример модели SDR I/Q в Mathcad - большое спасибо. Прозевал я наличие такой темы... теперь об этом жалею, там есть чего поизучать (имхо ессно)!

Programmist
похоже на то, что это вообще больше никому не интересно

Это не так! Всё интересно, но не всё понятно. Имхо, очень важно превратить смотрелку в измерительный прибор. Красота и чёткость картинок, имхо, - дело второстепенное, а гораздо важнее чтобы принцип построения этих визуализаций сигнала был правильным.

А в этом сейчас есть сомнение, оттого и критика. Вот конкретно: Вы пишете Как известно, функция всегда возвращает в 2 раза меньше значений по частоте, чем размер ее блока, поэтому размер картинки в пикселях по Y, всегда в два раза меньше размера заданного блока.

Или я не правильно понял эту фразу, или здесь принципиальная ошибка. Ведь по Y идёт шкала частоты, и на ней должны умещаться частоты из заранее фиксированного диапазона: от 0 до Fdiscr/2. Этим диапазоном и определяется размер всех блоков по вертикали.

То, что чем короче блок по X, тем меньше возвращает FFT фурье-амплитуд, вызвано тем, что с укороченим блока во времени ухудшается разрешение по частоте - бины f(k) располагаются по Y реже друг от друга.

Т.е. картинка более короткого (во времени) блока должна размазываться по частоте, терять чёткость вдоль Y, но при этом занимать прежнее количество пикселей по Y.
Реклама
Google
 Страница:  ««  1  2  3  4  5  ...  31  32  33  34  35  »» 

Создавать сообщения могут только зарегистрированные участники форума.
Войти в форум :: » Логин » Пароль
Начало
Средства связи, рации. Купить радиостанции Motorola, Yaesu, Vertex, приемники, антенны.
Время загрузки страницы (сек.): 0.025; miniBB ®