PDA

Просмотр полной версии : Компенсация I/Q имбаланса



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

Леонид3
22.01.2013, 10:38
rx9cim, преобразование Фурье -- определение коэффициентов для гармонических частот по синусу и косинусу. Для каждой частоты определяется соответственно ДВА коэффициента, которые можно интерпретировать как комплексное число. У комплексного числа есть три формы представления: алгебраическая ( a + i*b ), тригонометрическая ( A*(cosφ + i*sinφ) ) и показательная ( A*ei*φ ).
В Вашем выходном БПФ[] массиве длиной 512 содержатся (индексы начинаются с 0): [0]--постоянная составляющая (среднее значение всех 256 отсчётов), [1]--ноль; [2]--амплитуда A для самой низкой частоты или, в зависимости от применённого алгоритма вычисления БПФ, коэффициент a, [3]--начальный угол φ или, в зависимости от применённого алгоритма вычисления БПФ, коэффициент b; [4] и [5]-- тоже для второй гармоники....; [254] и [255] тоже для 127 гармоники :roll:

Relayer
22.01.2013, 12:09
To Relayer
:Я не совсем правильно написал— я делаю циклическую свертку методом наложения с сохранением. Обпф соответственно с перекрытием. По этому поводу заводил тему на электроникс.ру. Там все–таки слветовали применять оконные функции. Сейчас и без окна все работает—выходной сигнал после обпф почти совпадает с учетом погрешности вычислений с входными значениями для бпф.
не совсем понятно что вы делаете. классическое перекрытие описано в статьях Янглблуда в QEX. оконная функция там не нужна. а на электрониксе сидят по большей части люди любящие почесать языком, но уж никак не помочь дельным советом. так что делите пополам то что вам там насоветуют

vadim_d
22.01.2013, 12:52
классическое перекрытие описано в статьях Янглблуда в QEX. оконная функция там не нужна
Согласен - для того оно (перекрытие) и придумано :smile:

rx9cim
22.01.2013, 17:16
To Relayer:
То, что я делаю приведено на рисунке.
To Леонид 3:
Спасибо про разъяснение про БПФ, но я все это знаю. Где-то видимо по алгоритму Рокки я что-то не так понимаю. Попытаюсь объяснить свой же вопрос:
1) Результат бпф в виде a+jb=[a,b]. Я получил результат комплексного БПФ в виде FFT[0...512], где FFT0[0,1] - нулевая частота, FFT1[2,3]- первый бин, FFT-1[511,512]- минус первый бин..... Вообщем имею набор бинов FFT-m[], FFTm[] - для положительной и отрицательной частоты соответственно. Далее согласно формуле:
Z = ComplexMul(ASpectrum[j], ASpectrum[FftSize-j]).
Т.е.:
Z[2]=FFT-2*FFT2
и т.д. до Z[127]=FFT-127*FFT127.
А далее, там где вычисляется Gain, Phase и H[w] (видимо массив 256 комплексных значений = 512 элементов), я так понимаю должны использоваться Z[0]....Z[255]. Но как я могу посчитать элементы Z[128]...Z[255]?
Где-то видимо я чего-то не понимаю в самой методологии.

Relayer
22.01.2013, 17:33
у меня алгоритм работает иначе. перед бпф поток бьется на блоки, потом размер блока удваивается и в конец приписываются нули. после обратного бпф берется первая половина удвоенного блока и к ней поэлементно прибавляется старшая половина полученная на предыдущем шаге

rx9cim
22.01.2013, 18:30
Мой способ называется overlap and saving. Применил его, поскольку не требует операции суммирования при склеивании выходного буффера.
Просьба помочь разобраться в вопросе, описанном в посте выше.

Relayer
22.01.2013, 18:46
Мой способ называется overlap and saving. Применил его, поскольку не требует операции суммирования при склеивании выходного буффера.
Просьба помочь разобраться в вопросе, описанном в посте выше.
в вопросе по алгоритму рокки? навряд ли я вам смогу помочь - почти 5 лет прошло как я с ним возился.

rx9cim
22.01.2013, 20:27
Relayer:
Подскажите пожалуйста по Виндишу:
1) Есть формула для расчета К1К2, где в числителе сумма произведений бинов, а в знаменателе иодуль суммы. Так вот Возникает вопрос по набору статистики - Что лучше сделать - не ограничиваться количеством блоков и при обработке каждого входного блока постоянно перерасчитывать К1К2, либо все-таки сделать ограничение, ну допустим на пару секунд, т.е. чтобы сначала копилась статистика, а потом делать расчет К1К2 для большого количества данных?
2) Пробую откорректирвать все бины, без разбора, что есть шум а что нет - на выходе ОБПФ получаю сплошной треск и шум. Так и должно быть или более вероятно ошибка в программе?
По мере изучения теории возникает много вопросов и сомнений :( .
На данный момент написал все демодуляторы и фильтрацию для своего приемника. Сейчас дело стоит только за компенсацией дисбаланса.

Relayer
22.01.2013, 22:40
Relayer:
Подскажите пожалуйста по Виндишу:
можно конечно постоянно пересчитывать K1K2, но это не нужно. я делал так - статистику накапливаю постоянно. но перерасчет K1K2 делаю реже. насколько реже - зависит от частоты дискретизации и размера блока. скажем для начала - в 100 раз реже. потом тонкий момент вот в чем - надо определять те бины где есть сигнал. и только для них делать пересчет K1K2. что делать с другими бинами где нет сигнала и только шум? у меня идет интерполяция по ближайшим бинам где был обнаружен сигнал.
чтобы понять где сигнал - можно по каждом бину сделать скользящее среднее мощности бина. потом по всем бинам находить минимум мощности. это и будет наша шумовая дорожка. теперь если мощность в бине выше дорожки на величину порога - тогда в бине не шум а нечто типа сигнала. и вот по таким "значимым" бинам мы накапливаем суммы(статистики) для дальнейшего расчета K1K2. т.е. бины где шум в накоплении статистик не участвуют.
треска и шума быть не должно. хотя конечно можно накорректировать так что будет и треск и шум )) важно не увлекаться размером блока. алгоритм хорошо работает при достаточно грубом размере бина порядка несколько сотен гц и более. при уменьшении размера бина в сигнале появляются разные артефакты. это не обязательно свойство самого алгоритма - возможно это специфика конкретно моей реализации

Добавлено через 22 минут(ы):

по поводу перекрытия. у меня overlap&add. насколько я понял оно ничем от overlap&save не отличается, окромя реализации. вобщем те же яйца вид сбоку. но почему то чаще в литературе описывают именно overlap&add
подробнее по перекрытию есть тут:
http://www.comm.utoronto.ca/~dkundur/course_info/real-time-DSP/implementation/Kundur_Lab3_FFT_Conv olution_6437.pdf

rx9cim
23.01.2013, 05:55
Андрей, спасибо за ответ. Так, начинаю проникаться. Я то считал к1к2 для выборки в целом, т.е. сумма произведений всех бинов. А надо к1к2 расчитывать для каждого бина? Потом еще вопрос: вы писали что статистики нужно копить только по тем значимым бинам, где шум не зарегестрирован. А ведь набор значимых бинов может меняться. Как это учитывать? Расчитывать статистики для всех бинов, а расчет к1к2 делать только для значимых? Их соответственно и корректировать? «Значимость» бина определять постоянно постоянно в каждом блоке результатов дпф или только после набора нужного количества блоков?

Relayer
23.01.2013, 15:40
вы писали что статистики нужно копить только по тем значимым бинам, где шум не зарегестрирован. А ведь набор значимых бинов может меняться. Как это учитывать? Расчитывать статистики для всех бинов, а расчет к1к2 делать только для значимых? Их соответственно и корректировать? «Значимость» бина определять постоянно постоянно в каждом блоке результатов дпф или только после набора нужного количества блоков?
в цикле перебираем все бины. если мощность в бине больше чем шум+порог то накапливаем статистику. статистики закреплены за каждым бином свои. и так для каждого блока
где-то отдельно держим счетчик обработанных блоков. через каждые 100 блоков пересчитываем K1K2 и находим альфа/бетта коэф для каждого бина где накоплено достаточно статистики. для этого надо держать счетчики по каждому бину сколько там раз был зарегистрирован сигнал и происходило накопление статистик (у меня не менее 50 раз). потом интерполируем корректирующие альфа/бетта для тех бинов где не было сигнала. таким образом получаем новый вектор альфа/бетта коэф для коррекции.
не знаю насколько это все удобно реализовывать в железе, но на делфи все укладывается в 200 строк (без интерполяции)

rx9cim
23.01.2013, 20:09
Спасибо за ответ.
Еще вопросы:
- после просчета 100 блоков по каждому бину счетчики сбрасывать?
- интерполируете как - линейно от бина до бина, где был зарегистрирован сигнал?
- интерполируете только ближайшие соседние или все в промежутке между бинами с сигналом?
Так же вы писали :
чтобы понять где сигнал - можно по каждом бину сделать скользящее среднее мощности бина. потом по всем бинам находить минимум мощности. это и будет наша шумовая дорожка.
В этом случае, я как понимаю, шумовая дорожка может превышать во много раз уровень собственного шума приемника (допустим, на входе мощный широкополосный сигнал)?

Добавлено через 52 минут(ы):

И еще вопрос - что делать с нулевым и -127 бинами?
надо ли их как-то учитывать?
занулив нулевой бин я уберу постоянную составляющую?

Relayer
23.01.2013, 21:01
- после просчета 100 блоков по каждому бину счетчики сбрасывать?
нет. но раз в 1000 блоков происходит некоторое "забывание" статистик. сделать это можно по разному. например просто обнулять все статистики. суть в том чтобы алгоритм адаптировался


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


- интерполируете только ближайшие соседние или все в промежутке между бинами с сигналом?
интерполирую коэф альфа/бетта для всех бинов где нет сигнала


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

rx9cim
24.01.2013, 17:24
Здравствуцйте Андрей!

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

Видимо у Вас частота дискретизации высокая. У меня 22050Гц. Андрей, подскажите пожалуйста по вашему механизму интерполяции. Что применяете - сплайн, Лагранжа или что-то еще?

Relayer
24.01.2013, 21:05
Видимо у Вас частота дискретизации высокая. У меня 22050Гц. Андрей, подскажите пожалуйста по вашему механизму интерполяции. Что применяете - сплайн, Лагранжа или что-то еще?
у меня дискретизация 192к. интерполяция - полиномы чебышева наименьшими квадратами. с интерполяцией тоже нельзя особо увлекаться. т.е. порядок полинома особо высокий брать не стоит

rx9cim
26.01.2013, 21:17
Андрей, спасибо большое за ваши советы!
Сейчас пишу алгоритм выделения шумовой дорожки. Решил применить вместо скользящего среднего экспоненциальное усреднение - меньше памяти занимает и быстрее считать. Альфа применил 0.01.
Вычисляю мощность для каждого бина, далее делаю по каждому бину экспоненциальное усреднение.
После экспоненциального усреднения нахожу минимум. Далее ввожу массив признаков корреции бинов- если после экспоненциального усреднения мощность бина больше минимального значения в три раза, то в признак массив признака коррекции в элемент с номером бина записываю 1, иначе - 0.

Добавлено через 29 минут(ы):

Попутно возник вопрос - всего после БПФ 256 бинов. Определяю те бины, в которых был сигнал - их 256. А вот результатов параметра К1К2 - 128 комплексных. Как в этом случае соотнести размерности?

rx9cim
27.01.2013, 20:25
Наприме, получил ситуацию - сигнал есть в 7 бине, но его нет в минус 7 бине. Тем неменее корректировать как 7 так и минус седьмой? Т.е. корректировать бины парами?

Relayer
27.01.2013, 21:02
Наприме, получил ситуацию - сигнал есть в 7 бине, но его нет в минус 7 бине. Тем неменее корректировать как 7 так и минус седьмой? Т.е. корректировать бины парами?
естественно

rx9cim
27.01.2013, 21:23
Посмотрел внимательно на свое экспоненциальное усреднение - пришлось альфа увеличить до 0,1б чтобы изменения более-менее быстрее наступали. Какая у Вас длина скользящего среднего?

Relayer
27.01.2013, 22:15
rx9cim, вам мои длины не помогут. тем более у меня не совсем скользящее - есть элементы адаптации

rx9cim
28.01.2013, 17:51
Что нужно делать с локальными счетчиками набора статистики для каждого бина? Сделал набор ста блоков, обнуляю счетчик блоков, определяю, что в этих ста блоков в таком-то бине была набрана статистика не менее, например 60 раз. Связанную с ним пару бинов корректирую. Вы говорите, что статистика должна забываться, допустим после 1000 блоков и статистики (числитель и знаменатель К1К2) можно обнулять. Как при этом быть с локальными счетчиками набора статистики? Ведь если в этих бинах нет сигнала, корректировать их в дальнейшем не имеет смыла. А вот при появлении очередного сигнала в этих бинах старая статистика может быть не применима.
Может уВас есть что почитать по этому поводу? Дайте ссылку пожалуйста.

Relayer
28.01.2013, 18:22
да нету ничего почитать. все делал сам. будет время - пороюсь в исходниках и посмотрю что там и как. давно было - не помню

rx9cim
28.01.2013, 20:44
Буду рад вашей помощи...

rx9cim
05.02.2013, 21:31
нарвался на проблему - не хватает ОЗУ микроконтроллера для вычисления скользящего среднего большой длины :) - 4 массива длиной 256 на длину скользящего среднего 16 занимают 64КБайт.

Relayer
05.02.2013, 22:29
ну тогда можно упростить - считать скользящее среднее по всем бинам

rx9cim
28.02.2013, 20:25
Накопал похожие исходники. Портировал и немножко модифицировал - подавление пока 50дб.

RA9YTJ
07.02.2014, 05:25
Разработал дсп блок с синтезом на si570 на одной stm32f407 для сдр, пока приемник.
Работает отлично, тесты сделанные lz2tu (сам блок - сининькая платка под LCD):
http://www.youtube.com/watch?v=DyHR5VAY0s4&feature=c4-overview&list=UUxIV-wt__edsVtRArN-fTpQ
http://www.youtube.com/watch?v=eIzyBBbzjmw
Но столкнулся с проблемой компенсации дисбаланса IQ.
Использовал простой алгоритм с парой настраиваемых для каждого диапазона чисел A (Balance) и F (Phaze)

For i=0 To NFFT-1
Im(i)=Im(i)+Rm(i)*Ph aze
Rm(i)=Rm(i)*(Balance +1)
Next
Он используется в исходниках SDRsharp и еще в каких-то
Но у меня он нормально не работает:
Проблема при отличных от 0 Phaze и Balance появляются артефакты в звуке и чем больше числа тем сильнее.
Использую перекрытие буферов по алгоритму Янгблуда (буфер вх\вых аудиоданных половина буфера КомплБПФ, во входном вторая половина буфера обнуляется перед обработкой)


BLKSIZE=NFFT/2
For s=0 To BLKSIZE-1
RealOut(s) = RealOut(s) + Overlap(s)
Overlap(s)=RealOut(s +BLKSIZE)
Next

В чем проблема? Есть простой алгоритм коррекции с парой фиксированных чисел? Без автонастройки, т.к. это же нужно будет использовать и при передаче.

rx9cim
09.02.2014, 09:53
Алгоритм Виндиша, с которого я начал эту тему, я полностью реализовал. Вот черновичок. Все работает. FFT-size у меня 64 это при частоте дискрети зации 22050. Работает отлично, давит все в ноль. Это при имбалансе по фазе порядка 5 градусов и 0.95 по амплитуде. Cfft-buffer - входной буффер. В алгоритме сейчас есть лишние действия, однако это исправлю в будущем, пока не до этого. У меня остался только 1 вопрос - что все-таки делать с бинами 0 и FFTsize? Я их не трогаю, все отлично работает. Надо что-то с ними делать?

Добавлено через 5 минут(ы):


Разработал дсп блок с синтезом на si570 на одной stm32f407 для сдр, пока приемник.
Можете более подробные данные сообщить - какая частота дискретизации, какие функции есть?

rx9cim
09.02.2014, 14:48
Есть простой алгоритм коррекции с парой фиксированных чисел? Без автонастройки, т.к. это же нужно будет использовать и при передаче.
Есть, смотрим ссылку. Делал. Работает. На передачу пойдет, на прием не айс.

expert_elk
09.02.2014, 15:32
Разработал дсп блок с синтезом на si570 на одной stm32f407 для сдр, пока приемник.
Работает отлично, тесты сделанные lz2tu (сам блок - сининькая платка под LCD):
http://www.youtube.com/watch?v=DyHR5VAY0s4&feature=c4-overview&list=UUxIV-wt__edsVtRArN-fTpQ
http://www.youtube.com/watch?v=eIzyBBbzjmw
Но столкнулся с проблемой компенсации дисбаланса IQ.
Использовал простой алгоритм с парой настраиваемых для каждого диапазона чисел A (Balance) и F (Phaze)

For i=0 To NFFT-1
Im(i)=Im(i)+Rm(i)*Ph aze
Rm(i)=Rm(i)*(Balance +1)
Next
Он используется в исходниках SDRsharp и еще в каких-то
Но у меня он нормально не работает:
Проблема при отличных от 0 Phaze и Balance появляются артефакты в звуке и чем больше числа тем сильнее.
Использую перекрытие буферов по алгоритму Янгблуда (буфер вх\вых аудиоданных половина буфера КомплБПФ, во входном вторая половина буфера обнуляется перед обработкой)


BLKSIZE=NFFT/2
For s=0 To BLKSIZE-1
RealOut(s) = RealOut(s) + Overlap(s)
Overlap(s)=RealOut(s +BLKSIZE)
Next

В чем проблема? Есть простой алгоритм коррекции с парой фиксированных чисел? Без автонастройки, т.к. это же нужно будет использовать и при передаче.
Посмотрите, как сделано в ExpertSDR A2, исходники лежат на sourceforge.net. Работает хорошо и просто без FFT.

RA9YTJ
09.02.2014, 17:36
rx9cim (http://www.cqham.ru/forum/member.php?u=4611), этот алгоритм знаю, но он перегружает процессор, не тянет на 2048 FFT. Можно конечно разбить на блоки, но этот вариант оставил на крайний случай. Читал всю тему, думаю попробовать как в Rocky. Все сначала проверяю на своем SDR движке для ПК.

Описание в приложении, но это пока в процессе доработки.

rx9cim
09.02.2014, 18:31
1)алгоритм Рокки по сути и есть Виндиш 2) приведенный мной алгоритм сейчас работает в Пионе, где вся обработка идет в временной области .алгоритм работает параллельно временной обработке. И тем не менее алгоритм ничего не грузит.3) для алгоритма из моего опыта при большом окне бпф возникают искажения. у меня 64 точки бпф в самый раз. Сейчас хочу увеличить частоту дискредитации до 44100, уверен, что при обработке в частотной области все получиться.4) какая у вас частота дискретизации? можете дать источник ноис блэнкера ?

RA9YTJ
10.02.2014, 04:25
rx9cim (http://www.cqham.ru/forum/member.php?u=4611), как-то упустил я за все время копания ЦОС эту самую компенсацию, думал означенный мною простой алгоритм сделает все, что нужно. Он в принципе работает, идеально на сигнале с целым количеством периодов, а вот когда сложный сигнал, тут он оказывается пасует, приходится разбираться с 0.
Я так понял, что в коде:



S[w].Re = S'[w].Re + S'[-w].Re - (S'[w].Im + S'[-w].Im) * H[w].Im + (S'[w].Re - S'[-w].Re) * H[w].Re S[w].Im = S'[w].Im - S'[-w].Im + (S'[w].Im + S'[-w].Im) * H[w].Re + (S'[w].Re - S'[-w].Re) * H[w].Im
w и -w это при длине FFT 2048 типа 1 и 2047, 2 и 2046 и т.п.?
Частота оцифровки у меня 48828 т.к. опорник stm32 25МГц, pcm1803 используется в КХ3.
Бленкер у меня простой, т.к. частота имп. помехи не может быть ниже 200-300гц (иначе фильтр отсечет), а длина окна обработки сигнала 21мс, что соответствует 48гц, то просто считаю средний уровень сигнала в окне, а потом ограничиваю выбороки значением Vср*K К в настройках устанавливается, не менее 4, т.к. ССБ сигнал имеет фактор около 3. Это нужно делать до АРУ. Получается адаптирующий ограничитель, и работает не плохо.

rx9cim
10.02.2014, 07:24
Про w и -w верно. у меня в этом месте ошибка нашлась. надо будет исправить. В Рокки много чего не описано.

RA9YTJ
10.02.2014, 08:52
Супер, сделал моделирование, работает! Осталось внедрить и протестить.

rx9cim
10.02.2014, 09:36
это по рокки или по моему исходнику ? Как корректируете 0 и ффт /2 бины ? Чтоб от обсуждения темы был какой-то толк , призываю выкладывать исходники.

RA9YTJ
10.02.2014, 09:44
Это по рокки, FFT от 1 до FFTSIZE, т.е. бин 1 это постоянка, соответственно считаем начиная со 2 до 2048 включительно:


tmp\real= (ampl+1)* Cos(faza*2*#PI)
tmp\imag= (ampl+1)* Sin(faza*2*#PI)
For i=2 To ffts
ar1(i)\real=ar(i)\re al + ar(ffts-i+2)\real - (ar(i)\imag+ ar(ffts-i+2)\imag)*tmp\imag + (ar(i)\real - ar(ffts-i+2)\real)*tmp\real
ar1(i)\imag=ar(i)\im ag - ar(ffts-i+2)\imag + (ar(i)\imag+ ar(ffts-i+2)\imag)*tmp\real + (ar(i)\real - ar(ffts-i+2)\real)*tmp\imag
Next

rx9cim
10.02.2014, 11:29
Еще учтите, что фаза и усиление зависят от частоты. Это связано как с выходными цепями (фнч на входе имеют неодинаковые характеристики так) так и возможно с кодеком (например в моем cs4221 по документации допускается разность 0,5 градуса по фазе левого и правого каналов в пределах до Fs/2). Т.е. фазу и усиление по хорошему надо аппроксимировать по всей полосе.

Добавлено через 28 минут(ы):

Кстати ошибок в своем исходнике не нашел. все там нормально.

RA9YTJ
10.02.2014, 11:36
Согласен, посмотрим как будет на практике. В конечном итоге это проблема временная, при использовании вместо смесителей и кодеков ВЧ DAC\ADC и FPGA, коррекция не требуется.

rx9cim
10.02.2014, 14:11
Еще советую при выполнении циклический свертки вместо overlap and add метода использовать метод overlap and save. он позволяет обойтись только копирование результатов обпф. иногда это удобно.

rx9cim
11.02.2014, 14:33
не хочу создавать тему по одному вопросу. вопрос: я сделал комплексное бпф, сделал все перестановки и обнуления для ssb. далее сделал обратное бпф. что мне надо сделать чтоб выделить lsb и usb :

usb = re - im , lsb = re + im.
re и im - результаты обпф .
я прав ?

RA9YTJ
11.02.2014, 14:59
Смотря что вы подразумиваете под "сделал все перестановки и обнуления для ssb" именно в этом месте и задается верхняя или нижняя.

rx9cim
11.02.2014, 15:09
все сделал точно как писал янгблуд. т.е. перекопировал нужную часть спектра к нулю, обнулил ненужную часть, отфильтровал , сделал обпф.

petrov
11.02.2014, 15:52
165870
FFT здесь вообще не нужно.

RA9YTJ
11.02.2014, 16:50
Ну и все, после ОБПФ получаем IQ которые идут на смеситель (про перекрытие буф. не забываем), больше ничего делать не надо. Нижнюю боковую можно также организовать меняя местами IQ каналы, если перед ОБПФ не меняли половинки буфера.

rx9cim
11.02.2014, 17:23
Про передачу я знаю. Меня интересует прием. Я получил iQ сигнал из квадратурного смесителя. Все сделал точно как писал Янгблуд. т.е. перекопировал нужную часть спектра к нулю, обнулил ненужную часть, отфильтровал , сделал обпф. Само собой все делается с перекрытием (у меня 50%). Так вот после ОБПФ я получаю Re и Im. Что мне надо подавать на выход ЦАП?

RA9YTJ
11.02.2014, 17:27
Любую, или обе, они одинаковы, тока сдвинуты по фазе.