PDA

Просмотр полной версии : Трансивер прямого преобразования с DSP



Страницы : 1 [2] 3

km6z
06.01.2010, 17:04
2 Chepsoft
Посмотрите страницы KK7P, разработчика DSP трансиверов K2 и К3.
Если не найдете исходников, дайте знать, скину.
73, удачи!
http://www.tapr.org/kits_dspx.html

Valery Gusarov
06.01.2010, 17:13
1. ПО написано на ассемблере с вызовом сишных библиотечных функций (напр. функция FIR в данном случае).
2. Вся функциональность выполнена в обработчике прерывания кодека (SPORT).
3. Для проектирования фильтров и получения коэффициентов использовал Матлаб.
4. Использовал только КИХ-фильтры. Для перекодировки в формат 1.15 и обратно написал соответствующие программы.
Есть еще кадры, не все за бугор съехали, мне поздновато программирование изучать, завидую белой завистью, с Рождеством! :)

km6z
06.01.2010, 17:27
Никогда не поздно, в 60 решил пересесть на Verilog, VHDL.
73, удачи!

R0SBD
07.01.2010, 13:00
Chepsoft, это вы все правильно говорите, но автор темы в самом начале просил высказываться о программах , помогающих разрабатывать программы (простите за тавталогию) для dsp. Я просто про такие программы и дал ссылки, т.е. с изучения таких статей и надо начинать свое познание этого дела. Ну а тем кто этот этап уже прошел, как вы например, нужно что-то другое и более углубленное. Этож радиолюбительский сайт, кто-то только начинает осваивание, кто-то ,как вы, ушел дальше. Если бы нашелся такой же товарищ , я думаю он с вами бы развил вашу тему, если найдется... Так что вот как то вот так вот я бы вам ответил, не в обиду. Я вам даже завидую, честно, что вы уже практически это делаете, а не на уровне разговоров...

UR3IQO
07.01.2010, 13:53
автор темы в самом начале просил высказываться о программах , помогающих разрабатывать программы (простите за тавталогию) для dsp. Я просто про такие программы и дал ссылки, т.е. с изучения таких статей и надо начинать свое познание этого дела.
А я бы посоветовал вначале разобраться в математике, используемой в ЦОС. Затем поэкспериментировать в матлабе или скилабе. На этом этапе Вы будете ясно представлять, что Вы хотите сделать, что можете и, главное, какие ресурсы Вам нужны. Вот по этим данным и подбирайте железо+софт для программирования/экспериментирования. А то дальше мигания лампочкой или компиляции двух-трех примеров дело может и не пойти, или когда начнете реализовывать реальный алгоритм Вам не хватит производительности/памяти/разрядности...

Программирование устройств ЦОС довольно специфическое занятие. Ведь самое главное в программировании это алгоритм, а в ЦОС алгоритм=математичес кая модель и здесь на одной логике и здравом смысле никуда "не уедешь".

Я бы посоветовал ознакомиться с http://www.dspguide.com/ - там отличная книга (бесплатная). В которой доходчивым языком изложены практически все необходимые основы по ЦОС (в плане математики и ключевых алгоритмов).

Удачи!

vadim_d
07.01.2010, 14:05
Я бы посоветовал ознакомиться с http://www.dspguide.com/ - там отличная книга (бесплатная). В которой доходчивым языком изложены практически все необходимые основы по ЦОС (в плане математики и ключевых алгоритмов).
Единственный недостаток у книги - она на английском, а так она написана в хорошем смысле "по Задорнову", комплексные числа появляются только в приложении :D

UR3IQO
07.01.2010, 14:22
Единственный недостаток у книги - она на английском
Ну можно и это повернуть на благо :) Работать в области ЦОС, да и вобще серьезно заниматься программированием без английского нереально - вот и можно совместить сразу два дела :super:

Tadas
07.01.2010, 14:30
А там есть возможность скачать книгу одним файлом ?
Никак не нашел :-( Тупой 8O ?

vadim_d
07.01.2010, 14:36
А там есть возможность скачать книгу одним файлом ?
Никак не нашел :-( Тупой 8O ?
Раньше не было.

UR3IQO
07.01.2010, 14:49
По главам можно PDFки скачать - их там не так много... По крайней мере так было в 2002 или 2001 году (когда я ее качал)

Tadas
07.01.2010, 15:01
По главам скачал, их оказалось 34.
Только что склейл.
Получилось 13.8 МБ.

07.01.2010, 20:41
теория и все такое это конечно очень интересно и давно забыто :)
вопрос несколько в другом. как в том многообразии сигнальников выбрать оптимальный.с точки зрения:
- цены чипа (сумлеваюсь что сильно различаются)
- возможности бесплатного или хотя бы почти бесплатного компилятора
- самое главное программатор,и уж совсем не мечтаю об отладчике.

UR3IQO
07.01.2010, 21:41
как в том многообразии сигнальников выбрать оптимальный.с точки зрения:
- цены чипа (сумлеваюсь что сильно различаются)

Я владею 100% достоверной информацией только по Freescale.

Ну тут думаю все просто (забить и отсортировать табличку с ценами в Excel думаю могут все ;) ), важно еще добавить такой момент как "доставабельность" - хотя в последнее время с этим намного лучше и "паябельность" - не думаю, что здесь много поклонников BGA корпусов. Freescale обойдется в $15-$20 если покупать там, но ее не так просто купить даже там (на Украине вобще не продают)...



- возможности бесплатного или хотя бы почти бесплатного компилятора

У Freescale бесплатный ассемблер/компоновщик (это по ядру DSP56300). Но для них придется писать на ассемблере. По отладке - есть gdb в SymphonyStudio, есть варианты отладочного "железа" на FT2232. Cама студия, ИМХО, отстой полный (SymphonyStudio это их среда, основанная на Eclipse).

На С можно писать для DSP от AD и TI, но средства разработки вроде не бесплатные...

Так что здесь тоже нужно определиться готовы ли Вы писать на ассемблере?



- самое главное программатор,и уж совсем не мечтаю об отладчике.
Программатор иногда (в случае с DSP даже чаще всего) совсем не нужен. Флешевых DSP с разрядностью которая могла бы нас интересовать я что-то не припоминаю.

Процессоры которые используются у меня оже не имеют флеш памяти - программа грузится в ОЗУ процессора, поддерживается несколько вариантов загрузки. Для автономной работы используется загрузка из внешней Flash памяти (AT29LV020), а для программирования этой Flash памяти написана маленькая прога на компе которая через простейший "шнурок" (соединяющий LPT порт компа и хост интерфейс DSP) заливает в DSP программу программатор и через нее программирует внешнюю Flash память...

Отладчиком не пользовался, может попробую в новом трансивере (с учетом появления gdb и OpenOCD с поддержкой Freescale)...

08.01.2010, 00:35
2 Олег: ассемблер меня не сильно напрягает тем более что на первых парах самопальный DSP будет немного "уметь" (набор фильтров, да еще кое-чего), писать не много.
Всем: использовал кто-нибудь Silabs-вские С8051F120 и 360 для ЦОС. понятно что фильтры реализуются просто. интересует пробывал ли кто-нибудь реализовать шумоподавление, режектор.

rolin
08.01.2010, 14:17
QTH1t

использовал кто-нибудь Silabs-вские С8051F120 и 360 для ЦОС
Дак он же 8-ми битный, и кроме 16-ти битного МАС из ДСП у него ничего нет. При обработке 16-ти битных данных его 100мипс превратятся в реальные 20.
Вот процессор - dsPIC33FJ256GP710. При цене в 7.6уе (в украине)

DC – 40 MIPS (40 MIPS @ 3.0-3.6V, -40°C to +85°C)
Modified Harvard architecture
C compiler optimized instruction set
16-bit wide data path
24-bit wide instructions
Linear program memory 256к
Linear data memory 30к
83 base instructions: mostly 1 word/1 cycle
Two 40-bit accumulators: - With rounding and saturation options
Flexible and powerful addressing modes: - Indirect, Modulo and Bit-Reversed
Software stack
16 x 16 fractional/integer multiply operations
32/16 and 16/16 divide operations
Single-cycle multiply and accumulate: - Accumulator write back for DSP operations - Dual data fetch
Up to ±16-bit shifts for up to 40-bit data Direct Memory Access (DMA):
8-channel hardware DMA:
2 Kbytes dual ported DMA buffer area (DMA RAM) to store data transferred via DMA: - Allows data transfer between RAM and a peripheral while CPU is executing code (no cycle stealing)
118 interrupt vectors
Up to 67 available interrupt sources
Up to 5 external interrupts
7 programmable priority levels
All digital input pins are 5V tolerant
!!
Data Converter Interface (DCI) module: - Codec interface - Supports I2S and AC’97 protocols - Up to 16-bit data words, up to 16 words per frame - 4-word deep TX and RX buffers
buffers
Аппаратный интерфейс поддерживает кодеки с разрядностью более 16-ти бит.
Подробнее http://kit-e.ru/articles/dsp/2003_6_106.php

rolin
08.01.2010, 15:35
Типовое использование MAC-инструк-
ции dsPIC (ассемблер ASM30):

MACW4*W5, A, [W8]+=2, W4, [W10]-=2, W5, [W13]+=2

Данная запись означает следующее:
• • значение W4 умножается на значение W5,
результат умножения добавляется какку-
мулятору ACCA;
• • регистр W4 загружается значением по ука-
зателю W8 (указатель должен указывать на
адрес всегменте X ОЗУ);
• • указатель W8 увеличивается на 2;
• • регистр W5 загружается значением по ука-
зателю W10 (указатель должен указывать
на адрес всегменте Y ОЗУ);
• • указатель W10 уменьшается на 2;
• • значение аккумулятора ACCB сохраняется
по указателю W13;
• • указатель W13 увеличивается на 2.
Все перечисленные операции с данными вы-
полняются за один командный такт.
И так можно делать 40 миллионов раз в секунду!

UR3IQO
08.01.2010, 16:53
И так можно делать 40 миллионов раз в секунду!
Что тут удивительного? Вы бы лучше посчитали сколько тактов уйдет на аналогичную операцию в случае если 16бит не хватает (а для тех задач, которые планируется решать в теме даже 24бита не везде хватит)...

P.S. 40MMAC это не так уж много...

08.01.2010, 17:01
2 ROLIN:на 120-м Цифровой фильтр ФНЧ 12 порядка с чатотой дискретизации АЦП 10кгц(100мкс) занимает 9мкс. то есть 9% загрузки.

rolin
08.01.2010, 17:58
QTH1t

на 120-м Цифровой фильтр ФНЧ 12 порядка с чатотой дискретизации АЦП 10кгц(100мкс) занимает 9мкс. то есть 9% загрузки.
Это для 8бит данных? А при частоте 48кГц(21мкс) это уже 25%.
Ничего не имею против силаба,хорошие процы, но 8бит крайне мало.
На вкус и цвет - сами знаете, а на PiC я делаю ставку только потому что он мне знаком и у меня есть все необходимые средства разработки и отладки. Так что не осудите строго.
sov1178

а для тех задач, которые планируется решать в теме даже 24бита не везде хватит
32бита считает в 3.75 раза медленнее.
Но ведь реальные конструкции на dsPic уже есть (ссылки выше).
Я, к сожалению, в теме пока очень поверхностно, книги читаю. Обьясните пожалуйста какие операции обработки требуют такую битность?

UR3IQO
08.01.2010, 18:32
Я, к сожалению, в теме пока очень поверхностно, книги читаю. Обьясните пожалуйста какие операции обработки требуют такую битность?
Маленький пример:
Дельта-сигма аудио АЦП средней "паршивости" даст 105дБ С/Ш в полосе 48кГц. После фильтрации фильтром с полосой 100Гц С/Ш улучшится на 10lg(48000/100)=27дБ и получится 132дБ. Даже имея разрядность 24бит обработать нормально такой сигнал не выйдет. У Вас же вобще 16бит.

А ведь есть еще много тонкостей и с разрядностью коэффициентов фильтров, и округлением при обработке и т.п.

rolin
08.01.2010, 20:51
Я извиняюсь, суть примера не понял. Вы имеете в виду то ,что разрядность не позволит реализовать такой С/Ш?
Я ориентируюсь на PCM3008 16бит C/Ш 88дБ.
Расчитывая фильтра в WinFilter, c Fs=48000 и 16бит коэффициентами, приемлемых результатов не получил.

UR3IQO
08.01.2010, 22:11
Я извиняюсь, суть примера не понял. Вы имеете в виду то ,что разрядность не позволит реализовать такой С/Ш?
Я ориентируюсь на PCM3008 16бит C/Ш 88дБ.

Даже 88дБ после фильтрации подрастут (вы же не будете слушать в полосе 48кГц ;) ) и в 16бит результат уже не войдет... Например, после ограничения полосы 48кГц->3кГц С/Ш в полосе 3кГц уже будет 100дБ :!: ...

Пример, как раз показывал, что в процессе обработки могут возникать (более того обязательно возникнут!) ситуации, где даже 24бит недостаточно, а 16бит будет точно мало...

rolin
08.01.2010, 22:46
К сожалению коментариев нет. Мал ещё я .
Зато я с успехом моделирую фильтра в MicroC, все коэффициенты - int, на выходе - готовый код на С для dspic. 8)
Полосовой IIR 20-го порядка 12-15кГц. Затухание на 11кГц - -82дБ.

DV
09.01.2010, 18:06
Немного не по теме. Может уже есть фрагменты (достаточно большие) в железе, похожие на это http://www.electrosnab.ru/silabs/Silabs_2_5.htm или более подходящие?
С уважением DV.

rolin
10.01.2010, 11:11
sov1178

Например, после ограничения полосы 48кГц->3кГц С/Ш в полосе 3кГц уже будет 100дБ
Во-первых, полоса у нас 24 кГц, 48 - частота сэплов.
Во вторых, диапазон 16бит составляет 105дБ.
Читал книгу Рабинер и Гоулд Теория и применение цифровой обработки сигналов. В частности, там сказано , что при фильтрации рекурсивными фильтрами высокого порядка, возможно превышение разрядности внутренней памяти фильтра и как следствие - искажение выходных данных. Простейшее решение проблемы - пропускание сигнала последовательно через фильтра меньшего порядка.
В контексте нашей задачи, можно поступить следующим образом: выделять из общей полосы SSB диапазон 2,6-3,1кГц с пересэплированием до Fs=8кГц, а при необходимости, уже из этой полосы выделять CW 300-500Гц.
К сожалению, ничего про превышение разрядности выходного сигнала по сравнению с входным я не нашёл. Порекомендуйте, пожалуйста, литературу.

UR3IQO
10.01.2010, 12:53
Во-первых, полоса у нас 24 кГц, 48 - частота сэплов.

Во-вторых у Вас ДВА КАНАЛА I/Q, каждый с полосой по 24кГц которые дадут 48кГц спектра в комплексных отсчетах (после преобразования данные на выходе АЦП будут содержать информацию о сигналах в полосе fгет+-24кГц). Так что полоса таки 48кГц - мы ведь про ППП ведем речь?..



Во вторых, диапазон 16бит составляет 105дБ.

Сильное заявление...где Вы про такое прочитали???


В частности, там сказано , что при фильтрации рекурсивными фильтрами высокого порядка, возможно превышение разрядности внутренней памяти фильтра и как следствие - искажение выходных данных.
Рекурсивные фильтры требуют особого внимания (в плане разрядности, о чем Вы как раз и прочитали), так что, учитывая ДД обрабатываемых сигналов и 16бит процессор, я бы не стал с ними связываться...


К сожалению, ничего про превышение разрядности выходного сигнала по сравнению с входным я не нашёл.
А это к цифровой обработки особого отношения и не имеет. Это просто физика - при уменьшении полосы сигнала мощность шума уменьшается пропорционально сужению полосы. Теперь, учитывая, что Вы хотите на выходе фильтра слушать то, что было отфильтровано, а не артефакты округления, придется увеличивать разрядность... Говоря иначе процесс округления можно представить как домешивание шума к исходному сигналу. Если не увеличить разрядность этот шум полностью замаскирует слабый сигнал и шум эфира...


Порекомендуйте, пожалуйста, литературу.
Не могу посоветовать ничего такого, чтобы в одной книге были освещены все вопросы цифровой обработки, применительно к нашим задачам (они ведь достаточно простые по современным меркам). Тот же DSP Guide неплохо описывает основные вопросы цифровой обработки сигналов, есть и много старой (советской) литературы (правда с более "математическим" подходом). Ну а идеи для алгоритмов можно подсмотреть в книге Полякова "Радиолюбителям о технике прямого преобразования".

rolin
10.01.2010, 17:16
Cергиенко . "Цифровая обработка сигналов".381 страница - формула расчёта С/Ш приведена к эмпирическому виду - С/Ш(дБ)=6q+4,77.
Для q=16, :oops: таки да, только 100дб. В другой литературе упоминается 96дБ :)

(после преобразования данные на выходе АЦП будут содержать информацию о сигналах в полосе fгет+-24кГц). Так что полоса таки 48кГц - мы ведь про ППП ведем речь?..
Действительно, пора определиться , о чём идет речь, так как я вижу аж три варианта исполнения и все они подходят под определение "ППП с DSP".
Вариант 1. Самый простой. Вместо полифайзера, устанавливается аналоговый квадратурный демодулятор 4-го порядка на ОУ, например такой . В полосе 10-20кГц обеспечивается подавление зеркалки на 80дБ. DSP использует для обработки именно эту полосу.

Вариант 2.Квадратура подаётся на DSP, зеркальный канал подавляется с помощью преобразования Гильберта в одном канале, и в дальнейшем используется полоса 0-24кГц.

Вариант3. Квадратурные каналы в DSP подвергаются комплексному преобразованию Фурье с высоким разрешением (4096отсчётов) и в дальнейшем имеется возможность использовать диапазон +-24кГц.

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

UR3IQO
10.01.2010, 18:46
Cергиенко . "Цифровая обработка сигналов".381 страница - формула расчёта С/Ш приведена к эмпирическому виду - С/Ш(дБ)=6q+4,77.
Правильно будет S/N=6.02*q+1.76


(после преобразования данные на выходе АЦП будут содержать информацию о сигналах в полосе fгет+-24кГц). Так что полоса таки 48кГц - мы ведь про ППП ведем речь?..
Действительно, пора определиться , о чём идет речь, так как я вижу аж три варианта исполнения и все они подходят под определение "ППП с DSP".
Вариант 1. Самый простой. Вместо полифайзера, устанавливается аналоговый квадратурный демодулятор 4-го порядка на ОУ, например такой . В полосе 10-20кГц обеспечивается подавление зеркалки на 80дБ. DSP использует для обработки именно эту полосу.

Вы большой оптимист, насчет 80дБ :wink: . Хорошо, если получится 60дБ (после регулировки и ненадолго). В реальности же, при перестройке по диапазону, изменении температуры и просто со временем 40-50дБ подавления это более реальные цифры...



Вариант 2.Квадратура подаётся на DSP, зеркальный канал подавляется с помощью преобразования Гильберта в одном канале, и в дальнейшем используется полоса 0-24кГц.
Хоть в дальнейшем и исползуется 0-24кГц данные с АЦП содержат информацио о полосе +-24кГц, так что 3дБ в этом варианте добавится, так же как и в следующем.


Вариант3. Квадратурные каналы в DSP подвергаются комплексному преобразованию Фурье с высоким разрешением (4096отсчётов) и в дальнейшем имеется возможность использовать диапазон +-24кГц.
Если опустить некоторые тонкости это эквивалентно варианту 2. Кстати на некоторых архитектурах такое построение может дать преимущество в быстродействии, кроме того, иногда, БПФ просто необходимо, например, для реализации алгоритмов адаптивной подстройки подавления боковой полосы...


Третий вариант ,на мой взгляд, бессмыслен. Требуется высокая вычислительная мощность, прямая оцифровка радиосигнала тут уже рядом.
Все зависит от того как это реализовывать, но ничего сверхтребовательного к ресурсам там нет. Прямая оцифровка это отдельная тема - никто сигнал "в лоб" там не обрабатывает...

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

rolin
10.01.2010, 19:09
sov1178, спасибо за коментарии. Демодулятор из первого варианта следует реализовать в цифре, иначе - 40дБ реально, Вы абсолютно правы.

Ivan_007
11.01.2010, 22:06
Подарил мне товарищ несколько микросхем: TLV320AIC23B, PCM1804, TLV320DAC23, TMS320VC5402 теперь думаю куда бы их прилепить :)

rolin
12.01.2010, 11:19
Ivan_007
А что тут думать? TLV320AIC23B -кодек, TMS320VC5402 - ДСП, кстати он у Вас на 100 или 160 ММАС?
Опять же, он 16bit fixed point, а по этому поводу есть мнение о непригодности.
Такой же кодек использован здесь http://www.kolumbus.fi/juha.niinikoski/Cheap_dsp/Cheap_dsp.htm

Ivan_007
12.01.2010, 20:18
на нем маркировка TMS320VC5402PGE100 - по идее 100 ММАС

rolin
12.01.2010, 21:22
Рекомендую книгу Солонина "Алгоритмы и процессоры цифровой обработки сигналов" .
К вопросу о необходимой разрядности процессора - выдержка из книги. Возможность "правильного" округления без потерь обеспечивается разрядностью аккумулятора.

maxlab
16.02.2010, 10:40
Здравствуйте! Я, конечно, безнадежно отстал от современных течений р.любительского трансиверостроения.. . но возникает вопрос. А почему достопочтенные коллеги все время заморачиваются на технологию SDR с выделением i/q? А нельзя ли применить для ЦОС Дельта-Сигма модуляцию с соответствующим мат.аппаратом...? Вроде проще, да и AD делает неплохие микросхемы для Д-С.

Neekeetos
27.03.2010, 19:33
Ivan_007
А что тут думать? TLV320AIC23B -кодек, TMS320VC5402 - ДСП, кстати он у Вас на 100 или 160 ММАС?
Опять же, он 16bit fixed point, а по этому поводу есть мнение о непригодности.
По моему тема мертва. Сама идея использовать сигнальный процессор в паре с SDR имхо ущербна. Даже в случае с компьютером и отличной звуковой картой все равно компьютер служит костылями для кривого железа и есть одно достоинство - простота, но оно перечеркивается использованием невменяемых DDS на учетверенную частоту и собственно компьютера. Понятное дело что будет сложно переплюнуть компьютер по вычислительной способности так что конструкции на том же дспик обречены иметь гораздо худшие показатели.
Есть более реальные варианты (и самое главное они реализуемы на МК и в общем то гарантируют стабильное качество), они правда не относятся к приемникам прямого преобразования. Схема там - единственное преобразование вверх, фильтрация и затем оцифровка (действительной) части спектра с одновременным переносом на низкую пч. Тот поток информации который получается в результате оцифровки вполне поддается обсчету и демодуляции, большинство современных чипсетов для цифровых приемников на это рассчитаны. например посмотрите микросхемы AD6620, LM97593, чисто по структурной схеме они совпадают с SDR, разница в том что они работают с фиксированной частотой ПЧ.

rolin
27.03.2010, 21:19
Понятное дело что будет сложно переплюнуть компьютер по вычислительной способности так что конструкции на том же дспик обречены иметь гораздо худшие показатели.
Параметры определяются примененным АЦП. Сервис конечно пострадает но это оправданно.

Схема там - единственное преобразование вверх, фильтрация и затем оцифровка (действительной) части спектра с одновременным переносом на низкую пч.
И как там подавляется зеркалка? Как потом выделять боковую?
Не проще ли сразу на низкую ПЧ.
Смотрел LM97593, не самая простая микросхемка.

Neekeetos
27.03.2010, 23:07
Параметры определяются примененным АЦП. Сервис конечно пострадает но это оправданно.

В том то и дело что только АЦП, а по хорошем от него мало что должно зависеть, даже в тех микросхемах что я привел рекомендуется использовать 12бит АЦП, не потому что плохие а потому что там к ним на схеме нарисована АРУ, которая держит уровень сигнала на входе АЦП на оптимальном уровне (именно поэтому не нужно ни 24битных АЦП ни каких то космических параметров)



Схема там - единственное преобразование вверх, фильтрация и затем оцифровка (действительной) части спектра с одновременным переносом на низкую пч.
И как там подавляется зеркалка? Как потом выделять боковую?
Не проще ли сразу на низкую ПЧ.

Зеркалка там находится на частоте сильно выше ПЧ, она подавляется простым ФНЧ на входе приемника. Если же речь про обработку, то есть два варианта, одинаково нормальных
- та полоса которая есть в пч оцифровывается двумя АЦП с частотой на середине полосы и сдвигом фаз 90 градусов, это ваша схема прямого преобразования в чистом виде, при этом получается сразу 2 IQ компоненты соотв ничего не накладывается
- оцифровка ПЧ ведется одним АЦП на частоте сильно меньше ПЧ, сама частота оцифровки выбрана таким образом чтобы одна из ее гармоник оказалась на нижней границе полосы ПЧ, это перенесет спектр ПЧ на 0 (ессно частота оцифровки должна быть минимум в 2 раза больше чем полоса ПЧ )

Далее в обоих случаях внутри микросхемы происходит умножение оцифрованного сигнала на комплексный тон, в результате независимо от типа входа получаются два компонента IQ и нужный диапазон сигнала оказывается на 0, производится фильтрация (ФНЧ) и понижение частоты оцифровки.

В первом варианте подавление ненужной боковой полосы в конечном итоге зависит от разбаланса каналов оцифровки и неточностей относительных фаз для частот оцифровки IQ. Во втором варианте ухудшение параметров за счет аналоговой части может быть вызвано только плохой фильтрацией ПЧ - уровнем сигналов вне полосы которые при оцифровке наложатся на рабочий спектр.

Смотрел LM97593, не самая простая микросхемка.
Ну она собрала в себе все то что требуется для честного цифрового приемника . Строго говоря на ней можно сделать SSB приемник вообще без особых напряжений, достаточно ей сместить нужный сигнал так чтобы его средняя частота попала на ноль, затем задать узкую полосу, в 2 раза меньше чем рабочая (тк будет присутствовать две половины спектра - положительная и отрицательная). Ее (микросхемы) низкочастотный IQ выход затем можно подать на МК, которому и надо то всего лишь домножить этот вход на комплексный тон равный половине полосы сигнала и сложить компоненты. Это даст на выходе одну боковую полосу. Кстати подавление побочной боковой полосы в таком методе происходит за счет ФНЧ в микросхеме приемника а не за счет фазовращателей и прочих преобразований гилберта, и зависит только от качества фнч (= может быть очень значительным и не зависит от полосы)

Anvar
28.03.2010, 00:02
Построение ППП с цифровой обработкой сигнала можно сделать с помощью ПЛИС и параллельных вычислений фазовращателя (преобразователя Гильберта) и фильтров, однако остаётся аналоговая приёмная и передающая часть с аналоговыми смесителями и малошумящими усилителями. При учёте систематических погрешностей и температурного хода аналоговой части, в случае применения качественных деталей (слюдяных конденсаторов, металлоплёночных и проволочных резисторов и т.п.) можно получить подавление зеркальной (боковой) до 70 дБ. Однако прецизионные аналоговые фазовращатели дают то же самое при меньшем геморрое.

Neekeetos
28.03.2010, 00:11
Построение ППП с цифровой обработкой сигнала можно сделать с помощью ПЛИС и параллельных вычислений фазовращателя (преобразователя Гильберта) и фильтров..
Ну да, так я и написал, стандартная схема SDR тут не очень эффективна, это одинаково относится и к аналоговым(неважно насколько прецизионным) и к цифровым преобразователям, но причина не в фазовращателях а в других вещах вроде разбаланса каналов и неверных фаз гетеродина. И кстати откуда интересно это пошло про Гилберта и тп? есть же более качественные методы формирования однополосного сигнала. Кстати вот ссылка http://www.microtelecom.it/ssbdex/ssbdex-e.htm с описанием процесса, ни одного фазовращателя нету.

Anvar
28.03.2010, 01:46
с описанием процесса, ни одного фазовращателя нету.
Как это нету?
Предлагается цифровая реализация фазофильтрового метода Уивера, при использовании узкополосного фазовращателя интерполяции фазы с помощью фазового полинома вида
atan(2-1) - atan(2-4) - atan(2-7) - atan(2-10) + atan(2-12) = 22.499138...є
а также поворота осей с помощью эрмитовой матрицы вращения, которая хорошо известна в геометрии.
Реализация выполнена на ПЛИС.

Neekeetos
28.03.2010, 08:19
с описанием процесса, ни одного фазовращателя нету.
Как это нету?
Предлагается цифровая реализация фазофильтрового метода Уивера, при использовании узкополосного фазовращателя интерполяции фазы с помощью фазового полинома вида
Не надо мешать в кучу фазофильтровый метод и метод Уивера, последний потому и хорош для цифровой реализации что не использует фазовращатели. Про тангенсы и повороты осей вообще бред :) - Это относится к кордику, который там используется чтобы сделать первое умножение на комплексный тон.

Anvar
28.03.2010, 09:08
Не надо мешать в кучу фазофильтровый метод и метод Уивера, последний потому и хорош для цифровой реализации что не использует фазовращатели. Про тангенсы и повороты осей вообще бред
:lol:

Neekeetos
28.03.2010, 09:21
Не надо мешать в кучу фазофильтровый метод и метод Уивера, последний потому и хорош для цифровой реализации что не использует фазовращатели. Про тангенсы и повороты осей вообще бред
:lol:Ну покажи на схеме приемника Уивера фазовращатель для сигнала, вместе посмеемся :lol:. И не надо кусками цитировать, имел в виду что брать первые попавшиеся формулы и приводить их как доказательство того что там есть фазовращатель это бред, кордик там для реализации первой половины приемника - квадратурного перемножителя.

Neekeetos
28.03.2010, 10:21
а также поворота осей с помощью эрмитовой матрицы вращения, которая хорошо известна в геометрии.Сейчас полюбопытствовал, про матрицу - тоже бред :lol:
Эрмитова матрица — Эрмитова (или самосопряжённая) матрица квадратная матрица, элементы которой являются комплексными числами, и которая, будучи транспонирована, равна комплексно сопряжённой
К матрице поворота эти свойства не относятся, разве что она тоже квадратная.

vadim_d
28.03.2010, 11:03
Ну покажи на схеме приемника Уивера фазовращатель для сигнала
А кто говорил, что в методе Уивера есть фазовращатели для сигнала? Они там в цепях гетеродинов, что упрощает их реализацию но удваивает количество смесителей.

Neekeetos
28.03.2010, 11:13
Ну покажи на схеме приемника Уивера фазовращатель для сигнала
А кто говорил, что в методе Уивера есть фазовращатели для сигнала? Они там в цепях гетеродинов, что упрощает их реализацию но удваивает количество смесителей.
Анвар говорил чуть раньше. А еще раньше я писал что смеситель нужен всего один - остальные реализуются программно, что дает два бонуса
- идеальное согласование квадратурных каналов и как следствие такое же подавление нежелательной боковой полосы.
- требуется всего один канал приема = один ацп и один гетеродин (с реализуемым перекрытием а не DDS), и для него синтезатор с большим шагом порядка полосы фильтра первой ПЧ ( тк точная настройка все равно делается программно).

Anvar
28.03.2010, 11:44
идеальное согласование квадратурных каналов и как следствие такое же подавление нежелательной боковой полосы.
- требуется всего один канал приема = один ацп и один гетеродин (с реализуемым перекрытием а не DDS), и для него синтезатор с большим шагом порядка полосы фильтра первой ПЧ ( тк точная настройка все равно делается программно).
Об этом давно думают, начиная с Уивера (1946 год).
В данном случае предлагается приёмник с низкой переменной первой ПЧ, второе преобразование делается цифровым способом.
Но при реализации первой ПЧ потребуется также избавиться от зеркального канала и побочных каналов приёма, для этого нужен узкополосный входной фильтр, желательно перестраиваемый, или фазовое (аналоговое) подавление зеркального канала, что потребует двух первых смесителей.
Но если уже есть низкая ПЧ, то можно сделать один цифровой перестраиваемый фильтр на ПЛИС и цифровой перемножитель, зачем нужен метод Уивера?

Neekeetos
28.03.2010, 11:57
В данном случае предлагается приёмник с низкой переменной первой ПЧ, второе преобразование делается цифровым способом.
...
зачем нужен метод Уивера?
Ну если речь о том что я предложил так я предполагал высокую ПЧ - 40-50 мегагерц (для КВ). По другому не получится удалить зеркальный канал. А так смысл в том чтобы упростить аналоговую часть и перенести схему Уивера в программу. Просто сейчас оба этих действия вполне реализуемы, преобразователь на ПЧ/гетеродин/синтезатор/фильр ПЧ - стандартные (без особых требований , кроме фильтрации ПЧ), оцифровка с (относительно) низкой частотой, и дальнейшая обработка может быть сделана уже не на сигнальном процессоре а на МК (LPC17хх, AVR32, либо МК/сигнальные процессоры вроде dsp320F28хх). Получается экономная, относительно простая конструкция потенциально имеющая лучшие параметры чем SDR+компьютер.

Anvar
28.03.2010, 12:11
Ну если речь о том что я предложил так я предполагал высокую ПЧ - 40-50 мегагерц (для КВ). По другому не получится удалить зеркальный канал. А так смысл в том чтобы упростить аналоговую часть и перенести схему Уивера в программу.
Тогда можно взять готовый отечественный приёмник (типа Р-...) с широкой первой ПЧ (50 кГц) в районе 45 МГц и второй ПЧ 128 кГц, и вместо фильтра 128 кГц включить цифровую часть.

Fero
28.03.2010, 13:37
дальнейшая обработка может быть сделана уже не на сигнальном процессоре а на МК (LPC17хх, AVR32, либо МК/сигнальные процессоры вроде dsp320F28хх). Получается экономная, относительно простая конструкция потенциально имеющая лучшие параметры чем SDR+компьютер.

Всё-бы хорошо, но посмотрите на порядок цен на DSP-процессоры. Не очень то и дёшевы они.

Neekeetos
28.03.2010, 15:37
дальнейшая обработка может быть сделана уже не на сигнальном процессоре а на МК (LPC17хх, AVR32, либо МК/сигнальные процессоры вроде dsp320F28хх). Получается экономная, относительно простая конструкция потенциально имеющая лучшие параметры чем SDR+компьютер.

Всё-бы хорошо, но посмотрите на порядок цен на DSP-процессоры. Не очень то и дёшевы они.
TMS320F28хх начинаются от 100 рублей, это конечно дорого. Из того что я перечислил все доступно в пределах 10 баксов.

Neekeetos
30.03.2010, 11:38
Возвращаясь к теме именно приемника прямого преобразования, и скрещивания его с DSP/МК, честно говоря не видел тем где обсуждались бы те нюансы которые характерны именно для такого гибрида. Сейчас полистав некоторые статьи могу собрать в кучу те вещи которые по моему являются препятствием, и возможно требуют какого то иного подхода, вот они:
(допустим что граница перехода аналоговой части к цифре находится сразу после НЧ фильтра смесителя)

- В приемнике прямого преобразования если используется смеситель типа Тайлое - то что наиболее распространено - не существует нормальной АРУ по ПЧ(пусть и нулевой) , я так думаю это вызвано стремлением сохранить баланс между квадратурными компонентами выходного сигнала. Для аналогового приемника это не проблема, однако для оцифровки такого сигнала требуется АЦП с очень большим динамическим диапазоном (откуда в компьютерных связках SDR и берутся звуковые карты с 24 битами),а обеспечить ДД даже в 100дб для АЦП это довольно трудная задача, особенно это касается портативной конструкции. Кроме того такой ДД и не требуется при наличии АРУ, думаю СШ в 70дб характерный для 10-12битных АЦП вполне достаточен для любого последующего алгоритма фильтрации и выделения боковой полосы (или демодуляции АМ).

- Для преобразования требуется гетеродин с квадратурным выходом, сейчас наиболее простым способом сделать это является использование DDS чипов с последующим делением, что довольно таки дорого и неэффективно - ведь если сделать оцифровку ПЧ на частоте скажем 1МГц (для большинства 32бит МК допустимо), полоса полезного сигнала попадающего на ПЧ окажется равной тоже 1М, сама перестройка гетеродина следовательно может быть реализована шагами в 500кгц (чтобы исключить сигналы с краев диапазона ПЧ тк они будут частично подавлены ФНЧ), таким образом у нас DDS используется как микроскоп для забивания гвоздей - ведь требуется получить для диапазона 0-30МГц 30/0,5 = 60 частотных каналов для гетеродина. Нужно только найти способ как это сделать относительно просто схемотехнически.

А вот описание приемника прямого преобразования, находящегося практически на границе реализуемого в аналоге:
http://www.norcalqrp.org/files/AustinNC2030Presenta tion.pdf
Если делать его на DSP схемотехника значительно упростится, а поскольку все вещи вроде подавления ненужной боковой полосы будут делаться в цифровой форме то и не потребуется настройки и качество работы будет лучше.

PS Не судите строго за обилие букв :)

rolin
30.03.2010, 14:43
Neekeetos , все это уже обдумано. Делать аппарат с ДСП чтобы принимать какую-то боковую нет смысла. Вот если в нём будет панорама хотя бы в 48 кГц - тогда да. Но при этом АРУ уже не катит, так как становится непонятно к чему её применять, к действительной частоте приема или к сильнейшему сигналу в спектре.
Насчет ДДС вообще можно не заморачиваться - есть SI570. Насчёт дорого - вообще заикаться грешно. Дружно смотрим на цены полностью цифровых приемников и узнаем что такое дорого.

Neekeetos
30.03.2010, 15:18
Neekeetos , все это уже обдумано. Делать аппарат с ДСП чтобы принимать какую-то боковую нет смысла.

Ну как же нету? А качественные фильтры с переменной полосой пропускания? Потом бонус DSP в том что оно возможно упрощает схему заменяя все возможные типы детекторов одной микросхемой.


Вот если в нём будет панорама хотя бы в 48 кГц - тогда да. Но при этом АРУ уже не катит, так как становится непонятно к чему её применять, к действительной частоте приема или к сильнейшему сигналу в спектре.

Смысл АРУ тут в согласовании уровня сигнала с нормальным входным уровнем АЦП, для того чтобы полностью использовать его (АЦП) динамический диапазон. И соотв уровень сигнала АРУ несет информацию о мощности сигнала в полосе ПЧ, это можно адекватно преобразовать к уровням отдельного узкополосного сигнала. На счет панорамы - это все естественно реально, только бы сигнал получить в цифровом виде и не деградировавшим из за преобразований.


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

Anvar
30.03.2010, 15:28
Смысл АРУ тут в согласовании уровня сигнала с нормальным входным уровнем АЦП, для того чтобы полностью использовать его (АЦП) динамический диапазон. И соотв уровень сигнала АРУ несет информацию о мощности сигнала в полосе ПЧ,
Для реализации качественной АРУ необходимо иметь аналоговую линию задержки примерно на 0,5-1 секунду, а также дополнительный приёмник АРУ (лучше аналоговый) с вычислением амплитуды сигнала с помощью среднего квадратичного квадратурных каналов и цифровой потенциометр перед АЦП (ПЦЗ).

Neekeetos
30.03.2010, 15:50
Для реализации качественной АРУ необходимо иметь аналоговую линию задержки примерно на 0,5-1 секунду, а также дополнительный приёмник АРУ (лучше аналоговый)
Ну наверно смысл использования DSP в том чтобы переложить аналоговые функции в цифру, следовательно аналоговые приемники и линии задержки тут неуместны ведь DSP будет иметь представление о входном уровне сигнала и насколько он вписывается в диапазон. Я выделил АРУ не поэтому, а потому что вставив регулировку усиления на вход можно разрушить баланс амплитуд и фаз квадратурных сигналов и соотв. реализация требует внимания.

Anvar
30.03.2010, 15:55
Я выделил АРУ не поэтому, а потому что вставив регулировку усиления на вход можно разрушить баланс амплитуд и фаз квадратурных сигналов и соотв. реализация требует внимания
Изобразите графически и математически, страшно люблю цифру.

Neekeetos
30.03.2010, 16:00
Я выделил АРУ не поэтому, а потому что вставив регулировку усиления на вход можно разрушить баланс амплитуд и фаз квадратурных сигналов и соотв. реализация требует внимания
Изобразите графически и математически, страшно люблю цифру.
Это я заметил, однако речь о практике. Нарисуйте два одинаковых операционных усилителя с одинаковыми электронными резисторами в цепи обратной связи для регулировки усиления, теоретически сигналы на выходе будут идентичны входным умноженным на один и тот же коэффициент , практически будет разница в задержке и усилении между каналами, есть подходящая формула для этого и/или смысл ее использования?

Anvar
30.03.2010, 16:12
Это я заметил, однако речь о практике.
Какие Ваши практические рекомендации? Увеличение динамического диапазона и уменьшение нелинейности требует увеличения разрядности, переходу к плавающей запятой, увеличения разрядности и прецизионности АЦП и соответствующего увеличения точности аналогового! усилителя, смесителя и УВЧ. Таким образом, в первую голову всё упирается снова в точность аналоговой части.

EU1ME
30.03.2010, 16:18
Мне сейчас интересен такой приемник как второй в классический супергетеродин с низкой ПЧ. Было бы заманчиво поставить что-то вроде упомянутых AD6620 LM97593.. и раз уж там есть два канала, то получить второй приемник и панораму (независимую от второго приемника).

Neekeetos
30.03.2010, 16:50
Это я заметил, однако речь о практике. Какие Ваши практические рекомендации?
А какие мои практические рекомендации могут быть? Я же перечислил те вещи которые не знаю как решить, если бы знал то все остальное можно считать сделанным :). Тут правда есть одно но - на все что я написал существует решение что называется грубой силой - тоесть я не исключаю что есть готовые двухканальные АЦП со встроенными PGA/регулировкой усиления, а также квадратурные VCO, однако же это не те варианты которых я ищу - смысл делать какие то смесители на логике чтобы поставить за ними что-то монстрообразное что и само по себе без смесителей может работать с полным входным сигналом?

netdemon
30.03.2010, 17:00
А как на счёт того чтобы использовать ПЛИС для реализации цифровых фильтров?

Neekeetos
30.03.2010, 17:07
А как на счёт того чтобы использовать ПЛИС для реализации цифровых фильтров?Делает народ и на ПЛИС, например так http://websdr.ewi.utwente.n l:8901/ , уже не приемник прямого преобразования - просто спектр КВ оцифровывается :).

rolin
30.03.2010, 20:20
Во-во, к этому опять - же и приходим :) Похоже ТПП с ДСП - мёртвая ветвь эволюции.

rk9uep
30.03.2010, 20:46
А как на счёт того чтобы использовать ПЛИС для реализации цифровых фильтров?
Посмотрите QF1D512 и QF4A512

Александр Вдовенко
31.03.2010, 22:35
Во-во, к этому опять - же и приходим :) Похоже ТПП с ДСП - мёртвая ветвь эволюции.

Может стоит на первых порах заменить полифазер+фнч на связку кодек+производительн ый микроконтроллер? На микроконтроллере реализованы фазовращатель, ФНЧ с изменяемой полосой, калибратор для настройки.

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

rolin
01.04.2010, 13:37
Эт все понятно, вопрос - кто програмить будет. Людей просвященных эта тематика не интересует, а я вот до сих пор не могу вкурить каким образом OH2NLT называет этот фильтр преобразованием Гильберта при такой горбатой фазовой характеристике.
Со всякими там фильтрами и FFT проблем нет, ибо все есть в библиотеках.

vadim_d
01.04.2010, 14:35
каким образом OH2NLT называет этот фильтр преобразованием Гильберта при такой горбатой фазовой характеристике.
Пилообразная х-ка левой половины графика и есть линейная фаза, поскольку ее период равен 2*пи: вертикальные скачки имеют ровно такой размер, поэтому можете считать, что каждый скачок на 2*пи вверх нарисован только для читаемости графика, а фаза продолжает идти в минус с тем же наклоном.

Neekeetos
01.04.2010, 16:44
Эт все понятно, вопрос - кто програмить будет.

А по моему вопрос не в том кто будет програмить а в железе, еслиб была выбрана какая то конкретная платформа то думаю и проблем бы не было ее изучить. Или вот например вопрос доступности - к примеру я бы мог написать код для такой железки но у меня нету ни отладчика ни самой платы под которую писать - выходит вопрос железа первичнее :) (Сейчас делаю плату под tms320f2810, попробую что-то там реализовать, возможностей у нее оч много, кстати если кто есть из Тулы и желает поучаствовать в экспериментах, велкам в личку или асикью).


Людей просвященных эта тематика не интересует, а я вот до сих пор не могу вкурить каким образом OH2NLT называет этот фильтр преобразованием Гильберта при такой горбатой фазовой характеристике.
Со всякими там фильтрами и FFT проблем нет, ибо все есть в библиотеках.
Насколько я могу судить он высчитывает два FIR фильтра, а разница фаз 90 градусов получается не на выходе отдельного фильтра а между выходами этих двух, те наверно надо смотреть разницу ФЧХ между ними.

rolin
01.04.2010, 22:35
vadim_d
Понял! Насчёт горбатости графика. На самом деле он линейный. Но что же это получается, в зависимости от входной частоты, фаза выходного сигнала непрерывно крутится относительно нуля. Ведь нам нужно получить постоянный сдвиг пи/2 вне зависимости от частоты сигнала.
Neekeetos
Железки побоку. Я, если отважусь, возьму топовый dsPic, так как он для меня доступный, дешевый, и у меня для него всё есть. Насчет кодеков вообще проблема, так как что-нибудь уровня PCM уже надо "достать", если повезёт. Так что по железу разнобой будет по-любому , но это не есть проблема. ANSI C нам в помощь.

Neekeetos
01.04.2010, 22:57
Так что по железу разнобой будет по-любому , но это не есть проблема. ANSI C нам в помощь.Не совсем так, у любого мк будет своя библиотека для цифровой обработки, к примеру для 320f28хх такая присутствует как дополнение к родному компилятору. Соотв сам по себе си ничего не даст из за возможно разной логики работы библиотек - вычисления же по разному будут построены.
Второй момент - тексас на который я сейчас делаю отладочную платку вполне способен без всяких кодеков оцифровать и обработать (это важно, тк дспик к примеру не способен справится с таким потоком данных) приличный кусок диапазона КВ, тк частота оцифровки у него 12,5М семплов в секунду, плюс он 32битный а не 16 как дспик. То есть то что я могу задумать и реализовать на тексасе скорей всего не влезет в дспик или еще куда либо,то есть выбраный мк может в конечном итоге ограничить качество обработки из за нехватки ресурсов.
Так что по поводу разнобоя - общим знаменателем тут может быть только схема обработки данных и алгоритмы в виде структурной схемы - не код, а уж как эта схема будет укладываться в тот или иной мк будет зависеть от того кто занимается программой.

rolin
01.04.2010, 23:04
Таки да, разница есть :)

vadim_d
01.04.2010, 23:04
Но что же это получается, в зависимости от входной частоты, фаза выходного сигнала непрерывно крутится относительно нуля. Ведь нам нужно получить постоянный сдвиг пи/2 вне зависимости от частоты сигнала.
Судя по надписям на скриншоте, х-ка построена для одного канала, являющегося КИХ (FIR) фильтром длиной 69. Вроде как КИХ фильтры отличаются линейной фазовой х-кой, от него нельзя ожидать другого поведения. Фазовращатель обычно имеет два канала, разность фаз между которыми в некотором диапазоне частот близка к константе, что было в оригинале у OH2NLT за именем Гильберта мне не угадать. Присылайте ссылку :D

rolin
01.04.2010, 23:30
Вот ссылка на оригинал. Фазовая хар-ка там не представлена, это я уже повторял в Systolix, чтобы глянуть на фазу.
http://www.kolumbus.fi/juha.niinikoski/Cheap_dsp/69_tap_Hilbert.xls

vadim_d
01.04.2010, 23:40
Вот ссылка на оригинал. Фазовая хар-ка там не представлена, это я уже повторял в Systolix, чтобы глянуть на фазу.
Как я понял, надо сделать два фильтра, один с к-тами колонки SIN, другой с COS. Дальше можно смотреть отношение их выходов при одном вхоном сигнале.

Beasty
02.04.2010, 00:29
Очень затронула данная тема. хочется Высказать несколько мыслей в слух. Сам приемник можно сделать с низкой ПЧ порядка 12 KHz. Перенос на ПЧ можно осуществлять как в одно, так и в два преобразования. Затем оцифровываем ПЧ сигнал на частоте порядка 24-48 KHz. Лучше 24 и ненужную полосу давим полу-полосовым фильтром. Затем переносим сигнал на 0 ПЧ получая квадратуры. Их пропускаем через СIC фильтр 3-5 порядка и понижаем частоту дискретизации до 6 KHz. Обеспечиваем дополнительную фильтрацию сигнала с помощью КИХ. Получившийся сигнал можно подавать либо на вход PowerSDR либо используя фазовый метод выделить нужную полосу. Фактически получается цифровой фазо-фильтровый приемный тракт но с ПЧ лежащий за пределами звукового диапазона (т.к в классическом фазо-фильтровом тракте нужен узкополосный режекторный фильтр а фильтры этого типа очень плохо синтезируются в цифре). Самое главное все эти операции с сигналом позволяет проделать Simulink. Ну и в качестве платформы для реализации приведу ссылку на кит TI.
http://www.terraelectronica .ru/news_mir.php?ID=1487&Text=tmdx5505ezdsp&Gde=1&Page=1

Neekeetos
02.04.2010, 07:15
Очень затронула данная тема. хочется Высказать несколько мыслей в слух. Сам приемник можно сделать с низкой ПЧ порядка 12 KHz.
А как при таком переносе планируется удалять зеркальную частоту?

Beasty
02.04.2010, 07:50
По поводу подавления зеркальной частоты я неправильно выразился в первом посте. планировалось иметь не ПЧ=12 KHz а центральную частоту в полосе на 24-48 KHz. Работать же предполагалось в полосе алиаса. Соответственно и ПЧ могла быть выбрана исходя из полосы пропускания кодека и ширины рабочего диапазона.

rolin
02.04.2010, 09:59
Beasty Ну и зачем усложнять топологию ? Можно ж сразу на низкую ПЧ преобразование делать, с тем же успехом.
Neekeetos :) А Вы случаем не собираетесь делать Direct Conversion на встроенном в техас АЦП о 12-ти битах? 150 мипсов точно хватит?

DV
02.04.2010, 12:44
Уважаемые коллеги!
Кто нибудь писал программы для обработки сигнала (звука, потока данных) в реальном масштабе времени через БПФ? Отзовитесь, есть простые практические вопросы !
С уважением DV

Neekeetos
02.04.2010, 15:36
Neekeetos :) А Вы случаем не собираетесь делать Direct Conversion на встроенном в техас АЦП о 12-ти битах? 150 мипсов точно хватит?
:) Это правда, ничего не мешает просто оцифровать встроенным ацп 6 мегагерц произвольно выбранной полосы рч спектра, особенно если поставить диапазонный фильтр - это исключит зеркальные каналы приема. Дури у данного мк хватает и для такого. НО, сама по себе идея довольно плохая, потому что у встроенного АЦП ДД порядка 70дб,в целом у приемника будет такой же или хуже. Планировал пока попробовать оцифровать ПЧ с какого нибудь приемника, 10,7 (или 55,845 не важно) с полосой порядка 200-300кгц и нарисовать спектр на экранчике а потом и демодуляцией заняться, (только плату надо бы доразвести, мелковатая она для лут получается :lol:).

rolin
02.04.2010, 16:33
Neekeetos
Перед тем как броситься в омут, рекомендую ознакомиться с веткой
http://forum.cqham.ru/viewtopic.php?t=1299 3&postdays=0&postorder=asc&&start=0
а после связаться с автором и проконсультироваться по ключевым моментам.

Neekeetos
02.04.2010, 17:35
NeekeetosПеред тем как броситься в омут, рекомендую ознакомиться с веткой
http://forum.cqham.ru/viewtopic.php?t=1299 3&postdays=0&postorder=asc&&start=0а после связаться с автором и проконсультироваться по ключевым моментам.
Немного не понял по какому поводу я был послан в ту ветку, даже из интереса прочитал все - идея железки с самого начала адекватная но это не имеет отношения к тому что я планирую сделать :).

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

Neekeetos
02.04.2010, 19:33
Это реально работающая железка, созданная автором, и это практически то же что Вы задумали, хоть и на другой элементной базе.Все так, но есть два но
- та конструкция мне неинтересна как и сам метод решать задачи грубой силой, тем более что в ней заложено принципиальное ограничение - да можно взять хоть 1битный ацп и получить динамику сравнимую с С/Ш конвертера, но на этом достижения закончатся.
- процентов на 50 мой интерес обусловлен еще и желанием вживую опробовать несколько алгоритмов, на плис понятное дело это тяжеловато.

alldn
30.06.2010, 15:22
Меня так же заинтересовала тема сделать приемник (для начала), в котором все обработка сигнала делается в DSP. Структура видится как преобразование вверх, там керамические фильтры и потом преобразование на частоту 12 кгц, которая подается на кодек и далее в DSP.
Для начала приобрел себе ezDSP TMS320VC5505. Начал с ней играться, пробовать писать фильтры. Ничего не получалось путного, пока не понял, что программа WinFilter работает неправильно. Перешел на МатЛаб, теперь фильтры проектируются и повторяются 100%.
Работа для меня новая, ранее ничего подобного не писал, поэтому больше читаю и пытаюсь вникнуть в суть вопроса. К сожалению так и не увидел единого мнения, как же переносить спектр с ПЧ=12 кгц в область 0-3 кгц.
Делать аналоговую часть с выходами I и Q не хочу. Это усложнит схемотехнику, а мне бы хотелось максимально ее упростить и всю обработку сделать в цифре.
Сейчас видится именно оцифровка сигнала 12 кгц с частотой выборок 48 кгц, фильтрация 12300-14700 (аналог кварцевого фильтра), затем перенос полученного спектра на 12000 вниз.
Фильтр спроектировал, теперь ломаю голову над переносом.

vadim_d
30.06.2010, 19:34
Фильтр спроектировал, теперь ломаю голову над переносом.
Александр, перенос сводится к перемножению полученного сигнала на напряжение гетеродина, поскольку зеркалка Вас не интересует (разве что шумы с нее). Все, что надо - 48 кГц отсчеты 12 кГц синуса, в силу кратности частот эти отсчеты надо найти только раз :)

Юрий(UR5VEB)
30.06.2010, 20:22
Меня так же заинтересовала тема сделать приемник (для начала), в котором все обработка сигнала делается в DSP. Структура видится как преобразование вверх, там керамические фильтры и потом преобразование на частоту 12 кгц, которая подается на кодек и далее в DSP.
....
Делать аналоговую часть с выходами I и Q не хочу. Это усложнит схемотехнику, а мне бы хотелось максимально ее упростить и всю обработку сделать в цифре.
Сейчас видится именно оцифровка сигнала 12 кгц с частотой выборок 48 кгц, фильтрация 12300-14700 (аналог кварцевого фильтра), затем перенос полученного спектра на 12000 вниз.
Фильтр спроектировал, теперь ломаю голову над переносом.
А какой фильтр керамический на частоты более 30МГц Вы планируете? Ведь полоса их довольно большая и скаты не очень то крутые, что бы подавить зеркальный канал до приемленного значения. Ведь зеркальный канал будет отстоять всего на 24 кГц.

alldn
30.06.2010, 20:52
Я об этом пока и не думал, тут можно будет найти варианты. Эта область довольно хорошо знакома.
Меня интересует низкочастотная программная часть этого проекта. Это для меня ново и малопонятно, а железки - это потом...

alldn
30.06.2010, 21:03
Александр, перенос сводится к перемножению полученного сигнала на напряжение гетеродина, поскольку зеркалка Вас не интересует (разве что шумы с нее). Все, что надо - 48 кГц отсчеты 12 кГц синуса, в силу кратности частот эти отсчеты надо найти только раз :)
Спасибо, Вадим.
Я так понял что нужно оцифровать 12 кгц синус с частотой выборки 48 кгц? Это будет 4 выборки, потом пойдет повторение? И перемножать входную последовательность на эти выборки?
Я почему-то думал, что тут должно быть вычитание. В зависимости от боковой полосы переключать фильтр и либо делать F-12 кгц, либо 12 кгц -F....
К сожалению в теории я слабоват. Чему-то давно учили, да и то забыл, вот и бьюсь лбом в стену.

vadim_d
30.06.2010, 23:38
Это будет 4 выборки, потом пойдет повторение? И перемножать входную последовательность на эти выборки?
Я почему-то думал, что тут должно быть вычитание.
Точно умножение: cos(a)*cos(b)=0.5*co s(a+b)*cos(a-b), что и даст суммарные и разностные частоты. Четыре выборки вроде как можно взять через 90 градусов: 0, +1, 0, -1. Если я сам чего не напутал :)

Tadas
01.07.2010, 08:32
Точно умножение: cos(a)*cos(b)=0.5*co s(a+b)*cos(a-b)
Тут небольшая очепятка, должно быть: cos(a)*cos(b)=0.5*(c os(a+b)+cos(a-b))

alldn
01.07.2010, 10:37
Спасибо за советы, попробую эмулировать эту операцию, посмотрю что получится.
Ну и кстати, а нет ли у кого трансивера с выходом ПЧ=12 кгц? Я бы попросил записать мне небольшой wav файл, длительностью 20-30 сек.
Нужно настроиться на SSB станцию и записать через звуковую карточку сигнал с этой ПЧ. При частоте дискретизации 44 кгц все должно нормально записаться.

alldn
01.07.2010, 14:20
Попробовал сдвинуть спектр. Не все получилось так как хотел, призадумался и потом дошло, что коэффициенты синуса я брал для частоты выборок 48 кгц, а реально делаю обработку на 44 кгц.
Двигал спектр сигнала, который показывал выше.
После сдвига есть два спектра - сумма и разность. Сумма уходит за 20 кгц, там звуковая карточка обрезает, а разность расположена 1-4 кгц. Она одлжна быть 0.3-2.7 кгц, думаю, что сдвиг на 1 кгц получился из-за несоответствия коэффициентов синуса.

vadim_d
01.07.2010, 23:05
Тут небольшая очепятка, должно быть: cos(a)*cos(b)=0.5*(c os(a+b)+cos(a-b))
Тадас, спасибо, конечно же на выходе должна быть сумма двух компонент - видать очень торопился :)

vadim_d
01.07.2010, 23:16
думаю, что сдвиг на 1 кгц получился из-за несоответствия коэффициентов синуса.
Александр, можете попробовать сделать ПЧ 44.1/4=11.025 кГц - удобство в том, что для синуса получаются фиксированные к-ты. Иначе надо иметь программный аналог DDS, то есть аккумулятор фазы и таблицу синусов. Поглядите http://www.proaxis.com/~boblark/dsp10.htm , там есть исходники на ассемблере ADSP-2185 http://www.proaxis.com/~boblark/uhf3x_30.zip

alldn
02.07.2010, 07:31
Да, спасибо Вадим. Нужно попробовать так и сделать. Пересчитать фильтр недолго, а потом умножить его на нормальный синус. Все это не потребует много времени и усилий. Исходники на ассемблере конечно посмотрю, хотя мне они будут малополезны, у меня же TMS320VC5505. Железка мощная, даже может слишком мощная для моих проектов, но брал с запасом, чтобы на полпути не обнаружить, что производительности процессора не хватает. Недостаток только в том, что не смог пока найти нормальный даташит на него. То, что нашел не содержит структуры ядра, служебных регистров, векторов прерывания, ассемблерных команд... да много чего не содержат. Нужно более тщательно поискать, да время на все не хватает...

vadim_d
02.07.2010, 10:11
То, что нашел не содержит структуры ядра, служебных регистров, векторов прерывания, ассемблерных команд... да много чего не содержат.
В TI по поиску компонента попадаете на http://focus.ti.com/docs/prod/folders/print/tms320vc5505.html , скролите вниз до Technical Documents, а там есть и TMS320C55x v3.x DSP Mnemonic Instruction Set Reference Guide (Rev. E) (http://www.ti.com/litv/pdf/swpu067e) http://www.ti.com/litv/pdf/swpu067e и много других интересностей.

alldn
02.07.2010, 10:18
Сваял быстренько фильтр на частоту 11025 на 128 значений. Более крутой было делать лень, да и не к чему, главное проверить принцип сдвига. Умножил его на синус(11025), получилось на вид вполне приемлемо. Покатый левый край НЧ характеристики - это обман зрения, это логарифмическая шкала.
В общем пора переходить от эмулятора к написанию программы на TMS. Даташит сегодня нашел кое-какой, не все там, но уже лучше. Еще нужно команлы ассемблера найти.
Прилагаю два рисунка - частотная характеристика после фильтра 11025 и частотная характеристика после сдвига частоты.

alldn
02.07.2010, 10:21
В TI по поиску компонента попадаете на http://focus.ti.com/docs/prod/folders/print/tms320vc5505.html , скролите вниз до Technical Documents, а там есть и TMS320C55x v3.x DSP Mnemonic Instruction Set Reference Guide (Rev. E) (http://www.ti.com/litv/pdf/swpu067e) http://www.ti.com/litv/pdf/swpu067e и много других интересностей.

Спасибо Вадим, я там был, но этот документ прозевал :-(