Jump to content

    
Sign in to follow this  
SergiRF

Перенос частотстоты вниз

Recommended Posts

Ага, еще на второй странице топика, автор только щас обратил внимание :)

Я и сам не сразу понял что вы предложили.

Да думаю что многие с этим не сталкивались.

По этому и не поняли. Надо было более раскрыто объяснить.

Share this post


Link to post
Share on other sites

Всем большое спасибо. Буду пробовать на следующей неделе:

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

Пересчет в IQ - смысла нет.

 

Только еще вопрос:

При проигровании сигнала (генерация ЦАП - 8 бит, семплирование как минимум 120 - 150 кГц) придется переносить сигнал вверх в цифре. Делаю просто умножитель (каждый семпл умножаю на табличное значение sin). Для простоты лучше переносить несущую в 4 раза (1 0 -1 0 1....) . Исходя из этого и оцифровывать сигнал лучше в 4 ой зоне.

Правильно я рассуждаю?

Share this post


Link to post
Share on other sites
вообще вроде бы как о субдискретизации я первый "заикнулся", но щас не об этом. если я нигде не ошибся, то можно взять Fs=8 кГц и ПЧ 49 кГц, тогда одна из копий сигнала окажется в полосе 0...2 кГц, затем конечно же это все фильтруем ФНЧ и вроде как дополнительного гетеродина не потребуется для коррекции.

 

 

Я бы здесь немного подкорректировал, на самом деле при этом методе мы оцифровываем НЧ огибающую ВЧ сигнала, а то sup-sup может думает о гармониках ПЧ?

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

Преимущество - низкая частота дискретизации и связанные с ней затраты контроллера.

Недостатки (в общем случае).

Если есть помехи в других зонах, их надо фильтровать, что трудно и дорого реализовать для такого соотношения частоты и полосы (центральная частота 50 кГц, а полоса не более 4 кГц). Попытка реализации такого полосового фильтра приводит к применению не самых дешевых ОУ и их нужно много. В сравнение с этим подходом, перенос спектра в ноль (а это возможно только с применением IQ) дает максимально простой НЧ фильтр (два штуки LPF гораздо проще чем один полосовой). Смесители - это простые аналоговые ключи (4066, например) - тоже просто и недорого. Конечно, умножение на синус/косинус чище, чем на меандр, но по паразитным каналам приема лучше размножения спектра, так как разнос частот составляет удвоенную и половинную частоту гетеродина, что легче фильтровать преселектором. Вывод - обвес для приема сигнала IQ получается дешевле и стабильнее, чем для приема в зоне Найквиста. Затраты контроллера примерно одинаковые.

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

 

 

 

 

Всем большое спасибо. Буду пробовать на следующей неделе:

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

Пересчет в IQ - смысла нет.

 

Только еще вопрос:

При проигровании сигнала (генерация ЦАП - 8 бит, семплирование как минимум 120 - 150 кГц) придется переносить сигнал вверх в цифре. Делаю просто умножитель (каждый семпл умножаю на табличное значение sin). Для простоты лучше переносить несущую в 4 раза (1 0 -1 0 1....) . Исходя из этого и оцифровывать сигнал лучше в 4 ой зоне.

Правильно я рассуждаю?

А 'проигрывание' нужно сделать в том же диапазоне, то есть, вернуть сигнал на прежний частотный диапазон?

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

***

Вообще-то, тут тоже можно упрощенный синус и косинус применить.

И еще, нужно сделать интерполяцию сохраненной выборки для приведения к частоте DAC.

Нужна ли тогда децимация?

Может быть, просто памяти добавить?

Edited by sup-sup

Share this post


Link to post
Share on other sites
А 'проигрывание' нужно сделать в том же диапазоне, то есть, вернуть сигнал на прежний частотный диапазон?

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

Вообще-то, тут тоже можно упрощенный синус и косинус применить.

И еще, нужно сделать интерполяцию сохраненной выборки для приведения к частоте DAC.

Нужна ли тогда децимация?

Может быть, просто памяти добавить?

Проиграть нужно опять на 50 кГц

Расчет IQ даже на пониженной частоте синхронизации займет время на реализацию. А мне в принципе в каком виде хранить = IQ или на низкой ПЧ все равно. Для расчеты IQ ФНЧ придется делать, лучше процессорное время оставить для вспомогательных алгоритмов.

 

Так после семплирования в N ой зоне, получим сигнал на новой несущей, уже низкой.

Как потом при проигровании восстановить частоту несущей?

 

Если просто перемножить на син, то получим зеркальный канал, но его можно уже после ЦАП отфильтровать ФНЧ, если конечно будет достаточная отстройка по частоте между сигналом и копией.

Edited by SergiRF

Share this post


Link to post
Share on other sites
Каналов то много, но одновременно не работают, только по очереди, а это внесет искажения
про это можно поподробнее,

т.е. могут быть сигналы на другой частоте, кроме 50 кГц ?

 

Share this post


Link to post
Share on other sites
Проиграть нужно опять на 50 кГц

Если памяти хватает - просто сохраните выборки и "проиграйте" их. Если не хватает - напишите простейший архиватор - это будет проще, чем с нуля изучить всю теорию и научиться писать программы для ЦОС. Тем более тут ресурсы ЦП ограничены - библиотеки не поприменяешь и на Си не напишешь - тут придется на ассемблере писать и считать каждый такт.

Share this post


Link to post
Share on other sites
Проиграть нужно опять на 50 кГц

Расчет IQ даже на пониженной частоте синхронизации займет время на реализацию. А мне в принципе в каком виде хранить = IQ или на низкой ПЧ все равно. Для расчеты IQ ФНЧ придется делать, лучше процессорное время оставить для вспомогательных алгоритмов.

 

Так после семплирования в N ой зоне, получим сигнал на новой несущей, уже низкой.

Как потом при проигровании восстановить частоту несущей?

 

Если просто перемножить на син, то получим зеркальный канал, но его можно уже после ЦАП отфильтровать ФНЧ, если конечно будет достаточная отстройка по частоте между сигналом и копией.

Если оцифрованными данными не нужно пользоваться, кроме как 'проиграть', то незачем с переносом возиться, как и написал Pavel_SSS.

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

***

Зеркального канала не будет при квадратурном переносе вверх (с применением IQ).

Share this post


Link to post
Share on other sites
Если оцифрованными данными не нужно пользоваться, кроме как 'проиграть', то незачем с переносом возиться, как и написал Pavel_SSS.

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

***

Зеркального канала не будет при квадратурном переносе вверх (с применением IQ).

:laughing:

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

Share this post


Link to post
Share on other sites
:laughing:

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

Так и да. С переносом туда и обратно затрат получается больше. А результат хуже.

Перенос вниз, а потом вверх делают тогда, когда нужна обработка сигнала. А если этого не требуется, то и вопроса нет.

Share this post


Link to post
Share on other sites
Преимущество - низкая частота дискретизации и связанные с ней затраты контроллера.

Недостатки (в общем случае).

Если есть помехи в других зонах, их надо фильтровать, что трудно и дорого реализовать для такого соотношения частоты и полосы (центральная частота 50 кГц, а полоса не более 4 кГц). Попытка реализации такого полосового фильтра приводит к применению не самых дешевых ОУ и их нужно много. В сравнение с этим подходом, перенос спектра в ноль (а это возможно только с применением IQ) дает максимально простой НЧ фильтр (два штуки LPF гораздо проще чем один полосовой). Смесители - это простые аналоговые ключи (4066, например) - тоже просто и недорого. Конечно, умножение на синус/косинус чище, чем на меандр, но по паразитным каналам приема лучше размножения спектра, так как разнос частот составляет удвоенную и половинную частоту гетеродина, что легче фильтровать преселектором. Вывод - обвес для приема сигнала IQ получается дешевле и стабильнее, чем для приема в зоне Найквиста. Затраты контроллера примерно одинаковые.

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

Так в том то все и дело, что нужно получить как можно меньше вычислительных затрат, а при вашей схеме лопатить впустую выборку на 200 кГц ну никак не вяжется с возможностями PICа. Кроме того, те же I/Q можно получить и при субдискрете, схемы формирования квадратур остаются те же самые, но уже на более низкой тактовой. Я тоже всеми руками "ЗА" квадратуры, в принципе я по-другому никогда и не работал, здесь же сейчас вопрос в простоте реализации и уменьшении вычислительной нагрузки. Единственный минус при таком подходе это конечно же ПЧ, так как все искажения и потери будут определяться скорее на ПЧ, чем в полосе основного сигнала, но простоты реализации и дешевизны здесь не отнять. Не думаю, что реализация фильтра ПЧ потребует больших затрат, чем тот же смеситель, который тоже должен быть достаточно малошумящим и линейным, т.е. с большим ДД прежде всего по интермодуляции в режиме "большого" сигнала (смесители как правило всегда работают в таком режиме, а на аналоговом ключе вы получите только мощный набор продуктов нелинейного преобразования на выходе), ибо мы не знаем какие сигналы потребуется в дальнейшем демодулировать, может КАМ для которой нужен линейный тракт. так что реализация смесителя на простом ключе здесь точно не прокатит, я даже думаю, что качественная его реализация потребует бОльших вложений, чем того же фильтра ПЧ. Да и вообще надо стараться как можно дальше уходить от обработки в аналоге и двигаться в сторону цифры. Где-то так.

Share this post


Link to post
Share on other sites
Так в том то все и дело, что нужно получить как можно меньше вычислительных затрат, а при вашей схеме лопатить впустую выборку на 200 кГц ну никак не вяжется с возможностями PICа. Кроме того, те же I/Q можно получить и при субдискрете, схемы формирования квадратур остаются те же самые, но уже на более низкой тактовой. Я тоже всеми руками "ЗА" квадратуры, в принципе я по-другому никогда и не работал, здесь же сейчас вопрос в простоте реализации и уменьшении вычислительной нагрузки. Единственный минус при таком подходе это конечно же ПЧ, так как все искажения и потери будут определяться скорее на ПЧ, чем в полосе основного сигнала, но простоты реализации и дешевизны здесь не отнять. Не думаю, что реализация фильтра ПЧ потребует больших затрат, чем тот же смеситель, который тоже должен быть достаточно малошумящим и линейным, т.е. с большим ДД прежде всего по интермодуляции в режиме "большого" сигнала (смесители как правило всегда работают в таком режиме, а на аналоговом ключе вы получите только мощный набор продуктов нелинейного преобразования на выходе), ибо мы не знаем какие сигналы потребуется в дальнейшем демодулировать, может КАМ для которой нужен линейный тракт. так что реализация смесителя на простом ключе здесь точно не прокатит, я даже думаю, что качественная его реализация потребует бОльших вложений, чем того же фильтра ПЧ. Да и вообще надо стараться как можно дальше уходить от обработки в аналоге и двигаться в сторону цифры. Где-то так.

Хотя, кажется, что актуальность переноса вниз падает, прицепил картинку аппаратной поддержки для работы с квадратурами. Ключ нормально подходит. Можно посмотреть как это сделано в SDR http://uu4jgi.ucoz.ua/SDR/SMTSDRRXDR2G-YU1LM.pdf

Только там два ключа, сдвинутых на 180 градусов, что позволяет получить полную передачу энергии при переносе. Это практически эквивалентно 'честному' IQ

***

Про загрузку контроллера. Гетеродин генерится таймерами, которые только запустить надо и все. А частота оцифровки после аналогового ФНЧ выбирается максимально низкая. 8 кГц вполне подойдет. Зато цифровой фильтрации не нужно делать. И не нужен полосовой фильтр. Кстати, это хорошо работало на макете с atmega168. Лучше, чем схема с одним каналом и с ПЧ.

post-7997-1323002012_thumb.jpg

Edited by sup-sup

Share this post


Link to post
Share on other sites

мужики че вы тут выдумаываете все уже давно решено :)

OH2NLT решил данную проблему на DSpic там есть примеры исходники http://www.kolumbus.fi/~ks9292/Cheap_dsp/Cheap_dsp.htm сделана квадратурой на фильтре гильберта 69 порядка

Share this post


Link to post
Share on other sites
OH2NLT решил данную проблему на DSpic там есть примеры исходники http://www.kolumbus.fi/~ks9292/Cheap_dsp/Cheap_dsp.htm сделана квадратурой на фильтре гильберта 69 порядка
и какую же проблему он решил ?

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this