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


Yaesu FT-60R
руб.

Yaesu VX-3R
руб.

Yaesu VX-6R
руб.

Yaesu VX-8DR
руб.

Yaesu FT-1D
руб.
 Страница:  ««  1  2  ...  9  10  11  12  13  ...  34  35  »»Поиск в теме
Автор Сообщение
mikasa76
Участник
Offline1.8
с сен 2008
USSR
Сообщений: 305

Дата: 18 Дек 2011 19:07:24 · Поправил: mikasa76 (18 Дек 2011 19:10:03) #  

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

Дата: 18 Дек 2011 19:13:54 · Поправил: Sinus (18 Дек 2011 23:02:59) #  

Вы хотите сказать что развёртывая каку либо I/Q запись в реал вы никуда ни каких нулей не добовляете? :) Ответьте плз, эт важно.

Mesh, да, дык уже я говорил раньше:

Массив A(m) есть S(0), -S(2), S(4), -S(6), ...
Массив B(m) есть -S(1), S(3), -S(5), S(7), ...

Обратное пр-е суть расстановка этих A и B с изменением знаков, чтобы получить массив S(n), т.е. S(0), S(1), ... S(N-1)

-----------------
"Вывод" кратко таков. Центр полосы сигнала S(n) сдвинем влево на Fdiscr / 4 умножением на комплексную экспоненту. Т.е. возьмём комплексный сигнал U(n) = S(n)*(-i)n. Его действит. и мнимая части имеют вид:

S(0), 0, -S(2), 0, S(4), 0, -S(6), 0, ...
0, -S(1), 0, S(3), 0, -S(5), 0, S(7), ...

Далее замечаю, что имеющиеся здесь нулевые значения не дают вклада в ДПФ, т.е. спектры этих посл-тей будут такими же, как если вычеркнуть нули и в роли N брать N/2. Вот я их и вычёркиваю, а получившиеся укороченные вдвое массивы сохраняю в 2-канальный вав с вдвое меньшей частотой дискр.

Канеш, чувствую тут какой-то подвох, но пока не получается его себе ясно сформулировать... :)
Реклама
Google
Mesh
Участник
Offline4.0
с мая 2006
Сообщений: 6169

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

Sinus Я пардоне, но вопрос мой касался развёртывания I/Q в реал. А то что вы написали, имхо малька другое, чи нет? А и в старом посте я дописал об частных случаях и общих, тож как бы знать б нуно.

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

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

Дата: 18 Дек 2011 19:34:44 · Поправил: Programmist (18 Дек 2011 20:09:18) #  

RadioKoteg
Ухудшение сигнала/шума не обнаружил. Долго возился с вводом-выводом, сейчас кушает wav файлы до 375 метров, пришлось временно ограничить размер, зато нормализация амплитуды такого "кусочка", если отключена опция Undo, происходит за 1 секунду.
Вернулся к старому списку размеров. Для открытия больших файлов, достаточно включить опцию Auto Image Size.
В общем, работать стало быстрей, доступ к файлам низкоуровневый. Обновил до версии 14.
Все полностью не проверял, на это уходит основная часть времени.

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

Дата: 18 Дек 2011 19:37:02 · Поправил: Sinus (18 Дек 2011 19:39:13) #  

mikasa76
частота дискретизации это ключевой параметр и от нее, точнее сказать от соотношения между частотой дискретизации и полосой сигнала зависит вся обработка и как это все можно заменить таблицами?

Если нельзя заменить таблицами, то должна быть ошибка в следующем рассуждении:

a) Массив S(n) взаимно-однозначно представляется суммой своих ДПФ-амплитуд SДПФ(k), умноженных на компл. экспоненту с аргументом 2пи*f(k)*t(n), где:

б) f(k) = k / T есть частоты гармоник; здесь Т - длительность сигнала, k - целые числа (номера бинов),

в) t(n) = n*T / N; здесь N - количество сэмплов в массиве S(n), а величина T/N есть квант времени.

г) Частота дискретизации = обратный квант времени = N/T.

д) Видно, что 2пи*f(k)*t(n) = 2пи*k*n / N, т.е. фактически в описание спектра на языке ДПФ не входит ни частота дискретизации ни длительность сигнала. Поэтому все вычислительные процедуры в комп. программах сводятся к работе с таблицами безразмерных чисел exp(i2пи*k*n / N), S(n), SДПФ(k).

Мне не известно другое определение понятия "спектр частот" для дискретного сигнала, кроме как через ДПФ.
Sinus
Участник
Offline3.0
с авг 2010
Санкт-Петербург
Сообщений: 1049

Дата: 18 Дек 2011 19:51:08 · Поправил: Sinus (18 Дек 2011 19:53:41) #  

Mesh
Дык при развёртывании нули добовляете чи нет? :-)

А что это за процедура такая, развёртывание? :-)

Просто числа из двух последовательностей A, B в цикле заношу в элементы массива S. Или наоборот, при обратном пр-и. "Псевдокод" алгоритма цикла могу выложить сюда, но он вроде как очевиден. Массивы пишу в файлы, как уже говорилось (или читаю из файлов). Что есть "развёртывание" - без понятия...

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

Дата: 18 Дек 2011 20:23:37 #  

Sinus
Programmistу предлагал проверить, но в его проверке пропущено нужное чередование знаков...
А где пропущено, это я опять ошибся, или формула нужна другая? Что-то даже не верится, что простой перестановкой отсчетов можно получить реальный сигнал. Это же скорость света :)
Mesh
Участник
Offline4.0
с мая 2006
Сообщений: 6169

Дата: 18 Дек 2011 20:33:59 #  

Sinus Так-с, мне нуна паУза. Подумкать как лучше вас загнать в угол. Ну чи признатся что вы не загоняемы, то бишь всё прально грите. :-)
Programmist
Участник
Offline4.0
с ноя 2008
Москва
Сообщений: 3826

Дата: 18 Дек 2011 20:37:56 · Поправил: Programmist (18 Дек 2011 20:45:10) #  

Если это окажется правильно, тогда точно выброшу компилятор...
Подозрения у меня на этот счет были, но всегда получалось Unreal.
DVE
Участник
Offline3.8
с ноя 2006
EU
Сообщений: 5098

Дата: 18 Дек 2011 20:41:55 #  

Кстати о файлах. Попробовал открыть 14й версией вот этот файл записанный с Funcube: http://ifolder.ru/27659764

Что-то имхо не то показывает.
Programmist
Участник
Offline4.0
с ноя 2008
Москва
Сообщений: 3826

Дата: 18 Дек 2011 20:53:15 · Поправил: Programmist (18 Дек 2011 21:17:28) #  

DVE
Может в настройках размера что не то, у меня все нормально:
http://www.radioscanner.ru/uploader/2011/hdsdr_rf.jpg
Могло от старой версии что-то остаться, там есть файл для чистки реестра, имхо список с размерами по X я изменил.
А может оно и действительно, что-то не то, до конца никто эту штуку не проверял.
Полоса в середине должна быть, она есть в исходнике, просто другие конвертеры ее режут.
А так, вполне себе приличный сигналик, имхо.
DVE
Участник
Offline3.8
с ноя 2006
EU
Сообщений: 5098

Дата: 18 Дек 2011 21:07:56 · Поправил: DVE (18 Дек 2011 21:13:50) #  

У меня так: http://www.radioscanner.ru/uploader/2011/coolplus.gif
Reg-файл не помог.

Правка: В программе нажал I/Q2R, стало похоже но перевернуто каким-то хитрым образом

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

Дата: 18 Дек 2011 21:16:48 · Поправил: Programmist (18 Дек 2011 21:19:16) #  

Сразу послушать не получится, демодулятора нет, вот там что: http://files.mail.ru/GDC7SS
А если перевернуто, так это может быть, там кнопка Invert есть, она без потери качества работает.
Sinus
Участник
Offline3.0
с авг 2010
Санкт-Петербург
Сообщений: 1049

Дата: 18 Дек 2011 21:17:35 #  

Programmist, если есть желание, испытайте, плз, следующий алгоритм (только, плз, максимально внимательно пишите код ))

1) Преобразование Real-->A/B (не называю это R --> I/Q, ибо не уверен, что прав; скорее не прав :)

Входные данные:
Вещественный массив ArrayS - это данные из 1-канального вав-файла (Real-сигнал).
SizeS - кол-во сэмплов в массиве ArrayS, но оно должно быть кратно четырём (см. ниже).
C := SizeS / 4

Ниже цикл будет написан для случая, когда число SizeS кратно четырём (других случаев ещё не делал). Т.е. надо размер массива, прочитанного из Real-файла, разделить на 4 и посмотреть: если вышло целое число L, то положить SizeS :=4*L, а если вышло дробное, то взять от него целую часть L и положить SizeS :=4*L (при этом несколько последних сэмплов теряются. Либо можно положить SizeS :=4*L + 4, и дописать в конец массива несколько нулей, доведя его размер до этого SizeS)

Выходными данными будут два вещественных массива, размером SizeS / 2:
ArrayA - это как бы наш сигнал I,
ArrayB - это как бы наш сигнал Q.
Их надо будет записать в 2-канальный вав-файл, указав в нём вдвое меньшую частоту дискретизации, чем была во входном вав-файле с Real-сигналом.

Псевдокод алгоритма:

Для n от 0 до C-1 c шагом 1
ArrayA(2n) := ArrayS(4n)
ArrayA(2n+1) := - ArrayS(4n+2)
ArrayB(2n) := - ArrayS(4n+1)
ArrayB(2n+1) := ArrayS(4n+3)
конец цикла

2) Обратное преобразование, т.е. A/B --> Real (как бы I/Q --> Real, но м.б. это чушь, "заскок" мозгов. Только не вижу пока, где собсно заскок :)). Все обозначения, размеры, и смысл массивов те же, что выше. Поэтому пишу только собсно псевдокод:

Для n от 0 до C-1 c шагом 1
ArrayS(4n) := ArrayA(2n)
ArrayS(4n+2) := - ArrayA(2n+1)
ArrayS(4n+1) := - ArrayB(2n)
ArrayS(4n+3) := ArrayB(2n+1)
конец цикла

Никакого FFT здесь не делается. Оно остаётся только в Вашей смотрелке, чтобы видеть водопад в Real-сигнале.
Sinus
Участник
Offline3.0
с авг 2010
Санкт-Петербург
Сообщений: 1049

Дата: 18 Дек 2011 21:20:34 #  

Mesh
Так-с, мне нуна паУза.

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

Дата: 18 Дек 2011 21:21:19 · Поправил: Programmist (18 Дек 2011 21:24:10) #  

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

Дата: 18 Дек 2011 22:03:47 #  

Sinus Так эта... вопрос так сказать на засыпку, вы хоть одну запись с форума реал отконвертили из I/Q в реал по томй методе про которую грите? Сделайте доброе дело, возьмите какой либо фалик I/Q, ессно скажите какой, отконвертите своей методой и резалты кинте. Гы, я пардоне за смешок, чёто у мя сильнейшие подозрения, что всё это работает только в рамках туды сюды не отходя от кассы так сказать. И так друг друга не понять. Эти ловушки я проходил в детстве, оно реально крышу снести может. :-)

Короче нуна, взять любой, но не свой слепленый тут же i/q фалик, отконвертить его в реал, так как вы просите Programmist и резалты сюда. Ничё что файл будет короче или там кратен 4, фигня, главное что б он был не короче 4 кило.
Mesh
Участник
Offline4.0
с мая 2006
Сообщений: 6169

Дата: 18 Дек 2011 22:12:18 #  

DVE Зеркало у вашего кубика прёт неслабо. Это не айс.
Programmist
Участник
Offline4.0
с ноя 2008
Москва
Сообщений: 3826

Дата: 18 Дек 2011 22:15:03 · Поправил: Programmist (18 Дек 2011 22:17:55) #  

Sinus
Не, не выходит, результат тут: http://www.radioscanner.ru/uploader/2011/iq2ral_result.rar
Это IQ2Real, вторую (первую часть) завтра испытаю. На слух оно похоже очень, а на спектру сразу видно - зеркало.
Sinus
Участник
Offline3.0
с авг 2010
Санкт-Петербург
Сообщений: 1049

Дата: 18 Дек 2011 22:20:50 · Поправил: Sinus (18 Дек 2011 22:22:58) #  

Mesh
Короче нуна, взять любой, но не свой слепленый тут же i/q фалик

Вот-вот-вот! Поэтому-то и толкую о необходимости иметь тест-файлики, так сказать, стороннего производителя!! :)))

Лан, попробую тот файл 111_000 с двумя тётями перевести в якобы Real (ссылку не помню, позже найду).

Собсно уже, вроде бы пробовал... Там, насколько помню, ваш конвертер с незажжёнными галками давал инвертированный результат (если я правильно понял комментарии RadioKotega) Поэтому, буду считать, что AB=iq (а до этого я делал всё как BA=iq, но mikasa76 заметил, что тогда у меня идёт инверсия спектра)

И кроме того, я заметил, что сдвиг массива B на 1 сэмпл заметно влияет на результат: в старом алгоритме у меня не было сдвига, и вроде бы зеркалок не было, а в новом вроде бы зеркалки появляются. Т.е. я не понимаю толком роль этого сдвига (и хотел давно у Вас спросить - зачем у Вас в конветоре есть такая опция - скип сэмпл?) Мож, и мне надо такой опцией поиграться...

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

Дата: 18 Дек 2011 22:31:56 · Поправил: Programmist (18 Дек 2011 22:36:25) #  

Sinus
сделаю снова тёть точь в точь по тому алгоритму, какой выше написал, а тогда бум думать, что к чему
Получится вот это:


Увеличить

Тетям теперь точно плохо спится :)
Mesh
Участник
Offline4.0
с мая 2006
Сообщений: 6169

Дата: 18 Дек 2011 22:35:29 · Поправил: Mesh (18 Дек 2011 22:42:38) #  

Sinus Да полный форум этих "тестовых записей". Я ж честно гря думал вы реал уже сигналики конвертите, а у вас пока стадия синтетик. Понятно, акуратней там, граблей немеряно. :-)

Скип я вводил, потому как были записи где i/q начинался не "с полной ноги" так сказать, то бишь должно быть два байта i два байта q и так дале, а было один байт хз чего и дальше всё как надо, какое-то железо таку пургу гнало.

з.ы. Суть сермяжна граблей на какие вы наступили такова. Вы делаете всё сшенно сшенно абсолютно зеркально и точно!, кроме того у вас 0 частота точно равно дискрет/4. В реале, когда пишут i/q не аналитикал, это ну совсем никто не гарантирует и прально делает, других проблем хватает.

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

Дата: 18 Дек 2011 22:41:25 #  

Programmist, да, вроде у меня так и выходило - 500 кГц зеркалило с 1500 кГц, а на самодельных, ессно, нет такого эффекту. Ну ладно, всё же сделаю ещё раз, а потом надо скипом сэмплов поиграть, и ... всё же понять как-то, отчего бред. Когда пойму, где бред, тогда пойму и как его изгнать.

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

Дата: 18 Дек 2011 22:45:25 #  

Sinus Не не, не делайте глупостей. Все тёти и дяди записаны так как это будет всегда. :-) Есь сшенно нормал записи на форуме без зеркал, ну бывает с зеркалом как последняя у DVE, дык просто её не берите в чекит.
Programmist
Участник
Offline4.0
с ноя 2008
Москва
Сообщений: 3826

Дата: 18 Дек 2011 22:49:25 · Поправил: Programmist (18 Дек 2011 22:58:46) #  

Sinus
Нужны твердяк 100%-эталонные сигналы.
Да, я уже "накрутился" вдоволь, а где верх, где низ - не знаю :) Первый Ваш алгоритм с ФФТ работает очень хорошо, и то нужны более серьезные тесты.

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

Дата: 18 Дек 2011 22:51:36 · Поправил: Sinus (18 Дек 2011 23:01:58) #  

Mesh
Да полный форум этих "тестовых записей"

Дык много - тоже плохо, как выбрать оптимальную?

думал вы реал уже сигналики конвертите,

Какое там... Мне ж приходится в маткаде вручную все размеры вгонять, да формулы печатать, да на графиках масштабы отлавливать... Лишь смотрю постепенно действие алгоритмов... Вот Programmist реал конвертит - нажал кнопку и готово. Ну, лан, откланяюсь. Пишите, если чего ещё выяснится.

ps. Так что когда вы реал сигналики отшурупите своим методом всё станет на места имхо. :-) И нули появятся, и фильтры, а так мы ессно вобще про разное грим. Ну, вот да, как бы чувствую, но математически ещё не осознал... Тугодум я, лан, ушёл на ликбез...
Mesh
Участник
Offline4.0
с мая 2006
Сообщений: 6169

Дата: 18 Дек 2011 22:55:43 · Поправил: Mesh (18 Дек 2011 22:57:49) #  

Sinus На сам деле эт не грабли, эт они щас грабли. ;-) Эт известный частный случай, который оченно ловко применяют во внутренних алгоритмах, но внешние сигналики i/q так нельзя конвертить бо просто невыйдет.

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

Дата: 18 Дек 2011 23:00:03 · Поправил: Sinus (18 Дек 2011 23:00:54) #  

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

Дата: 18 Дек 2011 23:07:36 #  

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

Дата: 18 Дек 2011 23:12:07 #  

Mesh, ок, понял, заранее спасибо. Не торопитесь, и извините, плз, что со своими дурными заботами и Вас невольно напрягаю ... ))
Реклама
Google
 Страница:  ««  1  2  ...  9  10  11  12  13  ...  34  35  »» 

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