На главную страницу сайта
· Наш магазин · Объявления · Рейтинг · Статьи · Частоты · Копилка · Аэродромы · Live!
· Файлы · Диапазоны · Сигналы · Музей · Mods · LPD-форум · Клуб · Радиостанции
На сайте: гостей - 41,
участников - 7 [ avuch, sibirjac, rn9aaa, Несущий свет, georgiy63, DangerAlex, Mayor]
 · Начало · Опросы · События · Статистика · Поиск · Регистрация · Правила · FAQ · Галерея ·
 Форум —› Прочее —› Спектральные игры. FFT, I/Q и прочие забавы. 
Си-Би радиостанции в нашем магазине: Alan и Midland, Alinco, Intek, MegaJet, President, Yosan, Беркут, Таис


Alan 48 Excel
руб.

Alinco DR-135CBA New
руб.

MegaJet MJ-3031M Turbo
руб.

President Harry III ASC
руб.

Yosan Stealth 5
руб.
 Страница:  ««  1  2  ...  26  27  28  29  30  ...  34  35  »»Поиск в теме
Автор Сообщение
RadioKoteg
Участник
Offline4.4
с сен 2006
Киев
Сообщений: 14486

Дата: 26 Фев 2013 01:26:55 · Поправил: RadioKoteg (26 Фев 2013 02:15:14) #  

Хз наверное напутал. Но прикольный сурроунд получился.

Левый: http://doris.kiev.ua/RS/FM/LEFT.wav
Правый: http://doris.kiev.ua/RS/FM/RIGHT.wav
Вот в стерео каналах: http://doris.kiev.ua/RS/FM/L-R.wav
RadioKoteg
Участник
Offline4.4
с сен 2006
Киев
Сообщений: 14486

Дата: 26 Фев 2013 02:43:17 · Поправил: RadioKoteg (26 Фев 2013 03:23:49) #  

вот еще длинней участок слитый в два канала, да крутит по кругу стерео http://doris.kiev.ua/RS/FM/L3-R3.wav

вот дока на стерео вещание на Русском http://doris.kiev.ua/RS/FM/SystemOfStereoRU.zip
, и дока по моделированию стерео вещания на компе картинки прилагаються по которых ясна суть разностных сигналов http://doris.kiev.ua/RS/FM/Komputerny_praktikum_stereo_veschania.pdf


Вот еще несколько записей RF:

http://doris.kiev.ua/RS/FM/HDSDR_20130225_225444Z_18498kHz_RF.wav 18.7M
http://doris.kiev.ua/RS/FM/RF_SAMPLE/HDSDR_20130225_225818Z_18498kHz_RF.wav 13.4M
http://doris.kiev.ua/RS/FM/RF_SAMPLE/HDSDR_20130225_225839Z_18498kHz_RF.wav 20.8M
http://doris.kiev.ua/RS/FM/RF_SAMPLE/HDSDR_20130225_225900Z_18498kHz_RF.wav 14.3M
http://doris.kiev.ua/RS/FM/RF_SAMPLE/HDSDR_20130225_225913Z_18498kHz_RF.wav 18.6M
http://doris.kiev.ua/RS/FM/RF_SAMPLE/HDSDR_20130225_225931Z_18498kHz_RF.wav 22.8M
http://doris.kiev.ua/RS/FM/RF_SAMPLE/HDSDR_20130225_225953Z_18498kHz_RF.wav 34.2M
Реклама
Google
Programmist
Участник
Offline4.0
с ноя 2008
Москва
Сообщений: 3826

Дата: 26 Фев 2013 02:43:24 · Поправил: Programmist (26 Фев 2013 03:54:58) #  

RadioKoteg
Со стерео обязательно будем разбираться, пока тут возникло несколько интересных моментов, которые должны дойти до ума. Спектры HDSDR и Cool+ отличаются, но фаза в норме, в общем, это не самое интересное.
Sinus
Целью здесь был сдвиг спектра, а не разработка преобразователя R 2 I/Q
Получилось все наоборот. Привожу кусок кода:
F:= ( (wfSAMPLERATE/4) / wfSAMPLERATE ) * -1;
a:= DATA32[n] * cos( 2 * pi * F * (n) );
b:= DATA32[n] * sin( 2 * pi * F * (n) );
Далее по тексту... Ничего здесь никуда не двигается. Самое интересное то, что центральную частоту выставлять можно с точностью плюс минус километр, а результат выходит хороший, как для FM, так и для AM. Главное, чтобы в полосу не попали соседние станции, а то получится ремикс.
R 2 I/Q делать надо, без этого картина не полная. А за формулы спасибо, два года не мог разобраться, что на что умножать, чтобы спектр сдвинуть таким образом. :)
RadioKoteg
вот еще длинней участок
Да, спасибо, это сейчас то, что надо. Продолжу разбираться, но уже завтра.

I/Q то они разные бывают (с) Mesh
Пусть будут разные, но этот, несмотря на то, что в два раза больше чем надо, работает без потерь.
Sinus
Участник
Offline3.0
с авг 2010
Санкт-Петербург
Сообщений: 1049

Дата: 26 Фев 2013 04:17:13 · Поправил: Sinus (26 Фев 2013 04:17:51) #  

RadioKoteg
Все таки есть лишний шумовой окрас в вашем демодуляторе ЧМ, тяжело определить но он есть.

Да, я должен признать, что в HDSDR ЧМ-демодуляция делается несколько лучше, шум немного менее "плотный" что-ли... На всякий случай, вот результат такого же теста ("Гайда? Да...") в iq-забаве:
http://yadi.sk/d/KB7tUIx62tAbY

Вроде, спектр похож на спектр из Cool+. Значит, наш простейший ЧМ-демодулятор следует пытаться совершенствать.

Programmist
Ничего здесь никуда не двигается.
Так кажется, потому что Вы взяли частный случай - сдвиг спектра на 1/4 частоты дискретизации. Попробуйте взять в качестве сигнала, например, чистую синусоиду 10 кГц и сдвиньте этим методом спектр, например, на 1 кГц - увидите тогда, что всё прекрасно двигается.

центральную частоту выставлять можно с точностью плюс минус километр, а результат выходит хороший, как для FM, так и для AM
Да это так (в разумных пределах ;)

R 2 I/Q делать надо
Если только для забавы. На самом же деле, в жизни, I/Q-сигнал выдаётся соответствующим радио-приёмником (причём, софт должен как можно меньше его портить, т.е. лишние преобразования надо исключать из анализирующего софта).
RadioKoteg
Участник
Offline4.4
с сен 2006
Киев
Сообщений: 14486

Дата: 26 Фев 2013 05:29:43 · Поправил: RadioKoteg (26 Фев 2013 05:31:01) #  

вот результат такого же теста Одинаковый результат что в cool что ваш в забаве, аж странно как то..

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

Дата: 26 Фев 2013 13:46:12 · Поправил: Programmist (27 Фев 2013 06:13:21) #  

Sinus
Так кажется, потому что Вы взяли частный случай - сдвиг спектра на 1/4 частоты дискретизации.
Нет, там все нормально двигается, а частный случай я использую специально, для получения реальной и мнимой части, иначе не работает демодуляция. Сдвиг происходит до разделения на I и Q, старым способом, через FFT, далее идет фильтрация, где отрезаются верхняя и нижняя четверти сигнала, потом демодуляция, децимация и фильтрация постоянной составляющей, в случае с AM.
Оба способа сдвига спектра имеют свои достоинства и недостатки, что требует некоторого времени на изучение и проверку. Проверяю на сигнале, сформированном из большой телевизионной испытательной таблицы. Там сразу все видно, есть потери или нет.

По быстродействию такого разделения: sin( 2 * pi * F * n ).
Работает достаточно быстро, пока n не превысит несколько десятков тысяч (при большом файле). Нужна оптимизация кода. Табличные значения брать смысла нет. Это мы уже проходили, с год назад, когда был сделан генератор синуса-косинуса. Где-то он даже тут лежит, с исходным текстом.
Попробую еще через преобразование Гильберта, но это действительно ради забавы, т. к. по предварительному умозаключению, качество от этого не улучшится.

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

В случае с амплитудой, правило такое:
100% - это всегда максимальное значение для формата 16 бит. Если сделать больше, то в файле 16 бит, после сохранения окажется мусор, меньше - потеряем слабые сигналы. 24 и 32 бита позволяют записать больший ДД. В 32 бита можно записать и амплитуду в 1000%, но без необходимости это делать не стоит, точно так, как и рассматривать формат 8 бит.
Проигрыватель всегда играет в формате 16 бит, идет постоянное реал-тайм преобразование, не зависимо от того, с каким форматом работаем. 100% для него и есть тот максимум, который превышать нельзя.

з.ы.
Сложный цикл получился, однако. Обращение к диску, для сохранения "Undo", обращение к диску, для удвоения массива данных (самое плохое из всего), ну и соответственно выполнение всех операций, включая фильтрацию и децимацию (всегда ровно в 2 раза). Оптимизировать смог только генератор синусов-косинусов, который обсуждали год назад. В остальном успехов нет.
Демодуляция и обсуждение после этого "Гайды? Да...", занятие, конечно забавное, но бесперспективное. :)
Чтобы усовершенствовать ЧМ, надо собрать ЧМ-модулятор, загнать туда таблицу, потом смотреть результат.
Как его сделать не знаю, в чем собственно и вопрос.

з.ы.ы.
На сегодняшний день версия 57.
Оптимизирована работа генератора, добавлена Real to IQ, децимация после декодирования выброшена в топку. Полностью автоматизировать процесс нельзя, ручная работа дает больше возможностей.
Programmist
Участник
Offline4.0
с ноя 2008
Москва
Сообщений: 3826

Дата: 28 Фев 2013 06:08:52 · Поправил: Programmist (28 Фев 2013 22:11:43) #  

Наконец-то нормально сделана "трах-тибидох" кнопка, то есть конвертация из IQ в Real и обратно.


Увеличить


Проблем с модуляцией-демодуляцией теперь должно быть несколько меньше. Увеличения размера данных не происходит, видимых потерь и полосатых зверей при этой операции больше не наблюдается.
Временно оставлен старый режим FM демодуляции (кнопка FMR на панели функций). Может показаться, что он работает лучше, меньше шумов, но это не так. Вместе с шумами пропадает часть гармоник, которые есть в исходном сигнале. Шумоподавление - тема отдельная.
Версия 59.
RadioKoteg
Участник
Offline4.4
с сен 2006
Киев
Сообщений: 14486

Дата: 01 Мар 2013 03:44:20 · Поправил: RadioKoteg (01 Мар 2013 03:44:33) #  

Проверил ЧМ не наблюдаю сильных изъянов. Действительно надо модуляторы для проверки.
Вижу что если все сложиться появятся скоро модуляторы.

Programmist
куда делась "copy to new" или я что не так нажимаю? Она всегда серая.
Programmist
Участник
Offline4.0
с ноя 2008
Москва
Сообщений: 3826

Дата: 01 Мар 2013 04:02:59 · Поправил: Programmist (01 Мар 2013 04:28:17) #  

Выбросил, случайно. Хотел сделать "copy to new file" и не успел. Сейчас верну.
Вернул.
Там начал делать FM-модулятор, только им пока пользоваться нельзя. Такие картины рисует, аж самому страшно. 8-)
Какая-то смесь АМ-ЧМ на выходе, хотя кое-что и восстанавливается обратно.
Формулы из умных книжек врут. Не знаю, для кого пишут, переписывают друг у друга, никто никогда на деле не проверял.
Вот что получается. Это далеко не ЧМ, несмотря на то, что демодулируется.
Programmist
Участник
Offline4.0
с ноя 2008
Москва
Сообщений: 3826

Дата: 02 Мар 2013 02:51:14 · Поправил: Programmist (02 Мар 2013 02:56:38) #  

Ошибочка выходит, с размером массива.


Увеличить


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

Дата: 02 Мар 2013 03:15:57 · Поправил: Sinus (02 Мар 2013 03:57:53) #  

Programmist
Формулы из умных книжек врут. Не знаю, для кого пишут, переписывают друг у друга, никто никогда на деле не проверял.

Ну, Вы даёте! Хоть бы смайлик поставили :) Имхо, у Вас в "ЧМ-модуляторе" не сделано интегрирование модулироющего аудио-сигнала (а оно необходимо - об этом как раз написано в книжках). Поэтому после ЧМ-демода вашего Вот что получается получаются одни высокие.

Вот, на скорую руку сделал в маткаде простеший ЧМ-модулятор (с интегрированием "методом прямоугольников"). Выдаёт тест-сигналы, которые вроде неплохо демодятся - во всяком случае на слух нормально. (Хотя, наверное, далеко от идеала, ввиду примитивности метода):

тест-файл ЧМ, несущая=12 кГц, дискрет=48 кГц (сначала в спешке не ту версию закачал, но уже исправил огрех))
тест-файл ЧМ, несущая=24 кГц, дискрет=96 кГц
Programmist
Участник
Offline4.0
с ноя 2008
Москва
Сообщений: 3826

Дата: 02 Мар 2013 03:26:55 · Поправил: Programmist (02 Мар 2013 04:05:20) #  

Sinus
Спасибо, там же подсказка, под кнопкой: "Modulation of Unknown Origin". :)
Хочу сам разобраться, без этого дальше дорога закрыта.
А у Вас все прекрасно демодулируется, не знаю, какой был исходный сигнал, на первый взгляд дополнительных шумов не наблюдаю. Интегратор значит нужен, ладно, буду смотреть, что за зверь такой, а я-то не мог понять чего не хватает, пытался решить проблему при помощи ФНЧ, а получился из коня тигр.
Зато теперь понятно, чем эти два зверя отличаются, это кто-то забыл про интегрирование, ну а потом эволюция ошибку доработала. :))

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

Дата: 02 Мар 2013 04:07:59 #  

Programmist
это кто-то забыл про интегрирование

Всяко это был не Гоноровский.))

В горячо любимой народом, и мною, книжке Гоноровского "Радиотехнические цепи и сигналы" чётко написано, что такое ЧМ. Взял я оттуда формулу для ЧМ в непрерывном времени и лишь заменил интегрирование по времени суммированием по номерам сэмплов (это и есть метод "прямоугольников" - самый примитивный способ интегрирования); результат вроде более-менее приемлем.
Programmist
Участник
Offline4.0
с ноя 2008
Москва
Сообщений: 3826

Дата: 02 Мар 2013 04:16:49 · Поправил: Programmist (02 Мар 2013 04:35:05) #  

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

Дата: 02 Мар 2013 05:06:41 · Поправил: Sinus (02 Мар 2013 05:11:20) #  

Вот ещё аналогичный тест-ЧМ-файл, на этот раз музыкальный - красивое старинное электро-пианино "Вурлитцер":

ЧМ, несущая=12 кГц, дискрет=48кГц

а это исходный аудио-файл, дискрет=48 кГц (для проверки демода)

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

Чтобы сделать ЧМ с высоким дискретом, нужно сначала сделать ресамплинг к такому же дискрету в исходном аудио-сигнале (сейчас у меня нет такого средства, я только сумел быстро повысить дискрет от 48 кГц до 96 кГц. Потом займусь этим вопросом глубже.)

Имхо, одновременно с частотной присутствует и амплитудная модуляция, а этого быть не должно.
Имхо, нет там АМ (и как АМ эти тест-файлы не демодятся - одна постоянка там получается после АМ-демода, что и говорит об отсутствии АМ). А то, что на осциллограмме видны как бы "биения" амплитуды - так это опять же результат того, что у нас несущая лишь в 4 раза меньше частоты дискрета.

Мы же эту хохму проходили ещё в "мурзилкиных уроках" (в ветке, где б/к медь :)) - про котельниковское восстановление синусов из дискретных синусоид. Т.е., если частота даже чистейшей синусоиды не сильно меньше частоты дискретизации, то такая дискретная синусоида вовсе не похожа на непрерывную синусоиду, а может иметь вид "биений" - получаются импульсы с переменной амплитудой.

Вот, как раз из-за ЧМ у нас и появляются биения, т.к. частота "гуляет" вблизи одной четвёртой частоты дискрета.
Programmist
Участник
Offline4.0
с ноя 2008
Москва
Сообщений: 3826

Дата: 02 Мар 2013 07:12:37 · Поправил: Programmist (02 Мар 2013 22:31:00) #  

для проверки демода
Ну, что могу сказать: Шумы, конечно, добавляются, если хорошо поискать. На слух это практически незаметно, а вот усовершенствование "простейшего" демодулятора может оказаться делом не простым. 16 бит для теста явно мало, все надо делать в 32, иначе попадаем на шумы квантования. У меня обработка делается в 32 бита, но после сохранения в 16, могли быть потеряны малые уровни, которые важны для восстановления сигнала.


Увеличить


Jpeg компрессия внесла в результат больше искажений, чем операции, проделанные с записью. Большие спектры не помещаются в копилку, да и особой необходимости пока в этом нет. Буду делать модулятор. :)
А мысли пока такие: Демодуляция должна возвращать размер данных, равный размеру данных в файле RF, потому, как может быть неизвестно каким образом был записан и сформирован сигнал. Нужно исключить все возможные потери информации.
Может быть, я ошибаюсь, а может и нет, ведь с конвертером IQ наконец-то все получилось ровно, имхо. Точно так должно быть и со всем остальным.

з.ы.
Вот как-то так. Чем не АМ? Чистейший АМ, имхо.)

AM(x) = [1+mq(x)]s(x)
где q(x) – информационный (модулирующий) сигнал, s(x) – сигнал-переносчик, m – коэффициент модуляции.

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

Дата: 03 Мар 2013 03:56:53 · Поправил: Programmist (03 Мар 2013 04:09:18) #  

Сделал АМ-модуляцию.
Роботает неплохо, если не считать завал в области верхних частот:


Увеличить


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

Дата: 03 Мар 2013 04:21:05 #  

Вот как-то так. Чем не АМ? Чистейший АМ, имхо.)

Похоже на АМ с частично подавленной несущей: амплитуда несущей здесь меньше, чем амплитуды боковых частот, это чётко видно на графике спектра (красной стрелкой указал несущую):


Увеличить


Поэтому обычным АМ-детектором (как у нас в прогах - АМ-детектор типа выпрямителя) такой сигнал неправильно демодится, появляются дикие нелинейные искажения.

В формуле AM(x) = [1+mq(x)]s(x) подразумевается, что пиковые значения q(x) не превышают единицу, и коэффициент модуляции m тоже не больше единицы. Другими словами, скобка, на которую умножается s(x), не должна обращаться в ноль и менять знак.
Programmist
Участник
Offline4.0
с ноя 2008
Москва
Сообщений: 3826

Дата: 03 Мар 2013 04:35:50 · Поправил: Programmist (03 Мар 2013 05:17:38) #  

Sinus
Похоже на АМ с частично подавленной несущей
Наверно так и есть. Не смотря на то, что это АМ, сигнал записан не верно, имеет меньший в 2 раза размер, чем надо, но информация в нем присутствует полная, без потерь. Здесь легко запутаться, буду еще раз проверять. Сейчас в версии 63 все должно работать правильно, так на первый взгляд. )
значения q(x) не превышают единицу
Да, перед модуляцией все значения массива нормализуются к единице (по пику в исходном сигнале), значение m (AM Modulation Index) и амплитуду несущей (Carrier Amplitude) можно выставить руками. Значение "Carrier" выставить нельзя, пока не знаю, как это сделать без нехороших последствий в данном варианте программы. Поэтому оно всегда половина дискрета.
з.ы.
частично подавленной несущей SSB?
RadioKoteg
Участник
Offline4.4
с сен 2006
Киев
Сообщений: 14486

Дата: 03 Мар 2013 06:02:48 #  

частично подавленной несущей SSB?

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

Дата: 03 Мар 2013 08:47:14 · Поправил: Programmist (03 Мар 2013 23:36:11) #  

Да, чертовски занимательная игрушка. Еще пару лет работы и реально Cool получится. )

з.ы.
Добавлена кнопка «Auto Image Size»:



Несколько расширены опции модуляции, если сигнал подготовить заранее и выбрать опцию «Unchanged», тогда разницы в исходном и модулированном-демодулированном сигнале практически нет. По крайней мере, на спектре найти не смог, надо делать распечатку массива в текст, а это лень. Работает такая процедура, как децимация вниз в два раза.
Programmist
Участник
Offline4.0
с ноя 2008
Москва
Сообщений: 3826

Дата: 07 Мар 2013 11:41:01 · Поправил: Programmist (07 Мар 2013 14:54:02) #  

Частотную модуляцию добавил. В качестве примера, с "кривоватой" АЧХ-ой (-0.5 дБ) в середине. Интегрирование делать не стал, не получается у меня, шумит сильно. FFT решает все проблемы.) Если девиацию не выкручивать больше чем 0.5, тогда на слух более-менее прилично, при больших значениях на спектр выползают артефакты неизвестного происхождения, в виде дождя, снега, облаков и прочей ереси. Сравнивать не с чем, нужно делать таблицы и смотреть что лучше, если оно это лучше где-то есть. Пока АМ работает чище. Наиболее заметны искажения в ЧМ по изменению структуры шумов, так же имеются некоторые потери в ДД.
Может быть, так оно и должно быть.
Programmist
Участник
Offline4.0
с ноя 2008
Москва
Сообщений: 3826

Дата: 16 Мар 2013 14:10:14 · Поправил: Programmist (16 Мар 2013 15:06:42) #  

Возник интересный вопрос. В умных книжках пишут, что спектр сигнала RF (до демодуляции) всегда в два раза шире, чем исходный сигнал. Отсюда следует, что он содержит в два раза больше данных, половина из которых лишняя. Следовательно, демодуляция всегда должна уменьшить размер данных в 2 раза. На деле выходит несколько иначе. Здесь пример демодуляции сигнала разными программами. Сигнал взят отсюда. В первом случае объем данных не уменьшался (двойная FM демодуляция), имхо на выходе качество получается несколько выше.
Вообще с этим FM все как-то мутно. Для передачи всяких треугольников и квадратов лучше подходит интегрирование, а для более сложных сигналов - коррекция АЧХ или PM. В текущей версии Cool+ пока все это не реализовано, но скоро будет, может быть.)
YuriVR
Участник
Offline5.0
с ноя 2008
Омск
Сообщений: 2678

Дата: 17 Мар 2013 08:01:07 #  

Programmist
Возник интересный вопрос. В умных книжках пишут, что спектр сигнала RF (до демодуляции) всегда в два раза
шире, чем исходный сигнал. Отсюда следует, что он содержит в два раза больше данных, половина из которых лишняя. Следовательно, демодуляция всегда должна уменьшить размер данных в 2 раза. На деле выходит несколько иначе. Здесь пример демодуляции сигнала разными программами. Сигнал взят отсюда. В первом случае объем данных не уменьшался (двойная FM демодуляция), имхо на выходе качество получается несколько выше.
Вообще с этим FM все как-то мутно. Для передачи всяких треугольников и квадратов лучше подходит интегрирование, а для более сложных сигналов - коррекция АЧХ или PM. В текущей версии Cool+ пока все это не реализовано, но скоро будет, может быть.)


Либо книжки не умные, либо читатель.
Самый простой контр-пример - режим работы J3E (SSB). Ширина спектра модулированного и исходного сигналов совпадают.
RadioKoteg
Участник
Offline4.4
с сен 2006
Киев
Сообщений: 14486

Дата: 17 Мар 2013 08:17:58 #  

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

Дата: 17 Мар 2013 08:41:10 · Поправил: Programmist (17 Мар 2013 09:30:29) #  

Самый простой контр-пример - режим работы J3E (SSB).
SSB не рассматривался, только AM и FM, а точнее - проблема с FM. SSB можно сделать не удваивая, но таких записей нет, т.к. пишется сразу несколько каналов, грубо говоря, то, что есть на определенном участке эфира, а там может быть все, что угодно.
Проблема скорей всего в выборе типа демодулятора, наверно нужно не отрезать "лишнее", а каким-то хитрым способом использовать эти данные для коррекции выходного сигнала.
Вариантов здесь много, можно сделать с фильтрацией, без фильтрации, просто сложить и т.д. А как правильно - неизвестно, оно все работает, с разным качеством для разных сигналов.
В AM все ровно, а с FM и PM получить исходную АЧХ не могу. Хорошо работает с табличными значениями коррекции, заранее рассчитанными для модулятора и демодулятора, но это частный случай.
Sinus
Участник
Offline3.0
с авг 2010
Санкт-Петербург
Сообщений: 1049

Дата: 18 Мар 2013 02:39:57 · Поправил: Sinus (18 Мар 2013 02:53:23) #  

с этим FM все как-то мутно ... получить исходную АЧХ не могу

Для проверки АЧХ в области звуковых частот, до 15 кГц, сделал простой модулирующий тест-сигнал: "сумма 5 синусоид" с шагом 3 кГц, дискрет 192 кГц. Вот спектр этого исходного сигнала - пять палок одинаковой высоты (сверху с линейной шкалой, снизу - в децибелах по мощности):


Увеличить



Увеличить


Этим сигналом ЧМ-модулировал по самому простому алгоритму (см. пост ниже) несущую 40 кГц, с девиацией 3 кГц; тем самым получился тестовый ЧМ-сигнал. Затем нашим простейшим ЧМ-демодулятором (его алгоритм уже был рассмотрен выше) демодулировал этот тест сигнал (результат никак не фильтровал, только сгладил всплески на концах во времени) и посмотрел, сильно ли полученный спектр отличается от исходного - вот спектр после нашего ЧМ-демода:


Увеличить



Увеличить


Видно, что в целом тракт "ЧМ-модулятор -- ЧМ-демодулятор" получился не зер-гуд, но и не совсем уж плохой. На линейной шкале различий между исходным и результирующим спектром вообще не видно, а на децибельной, да видно появление некоторых помех. Завала АЧХ не вижу - палки сохранили свою одинаковость.

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

Дата: 18 Мар 2013 02:46:24 · Поправил: Sinus (18 Мар 2013 02:56:32) #  

Вот алгоритм протестированного выше ЧМ-модулятора:

Задаются исходные данные:

A - желаемая амплитуда результирующего ЧМ-сигнала,
Fd - частота дискретизации (самая высокая из всех),
Fcar - частота несущей (играет роль RF),
Fdev - частота девиации,
Smax - пиковое значение модулирующего сигнала,
S[n] - массив значений модулирующего сигнала на частоте дискретизации Fd,
N - количество значений в массиве S[n]

По этим данным сначала вычисляются два вспомогательных числа:

C1 = 2пи * Fcar / Fd
C2 = (2пи * Fdev) / (Fd * Smax )

И затем идёт основной цикл:

Integral[0] = 0 (это начальное значение в массиве по имени "интеграл" :)
Для n = 0 до n = N-1 с шагом 1 вычисляем:
Integral[n+1] = Integral[n] + S[n]
Phase[n] = (C1 * n) + (C2 * Integral[n])
R[n] = A * sin(Phase[n])
Конец цикла.

R[n] есть результат, т.е. это массив значений ЧМ-сигнала.

(Этим методом были получены и другие тест-ЧМ-сигналы, которые я уже приводил раньше. Алгоритм очень простой, но не утверждаю, что "самый хороший" :)
petr0v
Участник
Offline2.3
с мая 2010
Balakhna
Сообщений: 412

Дата: 18 Мар 2013 13:10:32 #  

Sinus

Если мне склероз не изменяет то DDS уже обсуждали как-то, с интегралами всё гораздо проще - это всего лишь фазовый аккумулятор по модулю 2pi в генераторе частоты, подавайте модулирующий сигнал на генератор и всё, да и на нулевой частоте сразу можно делать в IQ, вычисляя не только синус но и косинус от фазового аккумулятора.
Programmist
Участник
Offline4.0
с ноя 2008
Москва
Сообщений: 3826

Дата: 18 Мар 2013 16:22:10 · Поправил: Programmist (18 Мар 2013 16:22:30) #  

Sinus
Спасибо! Но, оно не было бы так интересно, если бы было так просто.
Записал Вашу функцию, нажимаю кнопку, а там:


Увеличить


Вот это.
Почему так получается, пока не понял, надо разбираться. Интегрирование таким способом в любом случае не годится, не даром везде в формулах нарисована палка интеграла, а как его правильно вычислить не написано, ведь мы не знаем функции, по которой был сформирован исходный сигнал, а она может оказаться вообще не интегрируемой. Способ работает в случае умножения каналов I и Q на синус и косинус, но после демодуляции все равно есть неравномерность, примерно в 0.5 дБ. По пяти синусоидам неравномерность обнаружить сложно, лучше взять один из этих сигналов. Таблица сразу все покажет на спектре, если что не так, у синусоиды нужно смотреть временной домен.
В Вашем модулированном сигнале нужно уменьшить девиацию, тогда все будет зер-гуд, может быть. Ведь это свойство FM-модуляции широко используется в музыкальных FM-синтезаторах, для определенной окраски тембра звука, путем добавления гармоник.

petr0v
c интегралами всё гораздо проще
Вот пока не разобрался, использую либо корректор АЧХ, либо интегрирование методом Симпсона, ясно только одно, что что-то делаю не так.
Реклама
Google
 Страница:  ««  1  2  ...  26  27  28  29  30  ...  34  35  »» 

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