реклама на сайте
подробности

 
 
> Преобразование комплексного сигнала в вещественный
RadioWave
сообщение Nov 30 2006, 11:57
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 23
Регистрация: 12-07-06
Пользователь №: 18 761



Подскажите, пожалуйста, быстрый алгоритм преобразования сигнала, представленного
в квадратурных комплексных отсчетах, в вещественный сигнал.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Ykidia
сообщение Apr 8 2009, 18:10
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 80
Регистрация: 3-08-06
Пользователь №: 19 287



Цитата
Нужно думать не про байты, а про принцип

Про байты я говорил для внесения однозначности smile.gif
Цитата
Но двигать то надо на Fs/2. Потому откуда там у него "0"-ли я тоже не догнал. Мож он перепутал со случаем когда частота дискретизации в 4-е раза выше макимальной частоты сигнала?

АЦП оцифровывает на частоте 200 МГц (Fs), т.е. имеем спектр от 0 до 100 МГц (Fs/2). Далее оцифрованный сигнал прогоняется через DDC, где все добро сдвигается на -50 МГц (-Fs/4), делается еще кое-какая обработка, так что имеем спектр от -50 до 50 МГц. Комплексные отсчеты выдаются уже в PC, где через драйвер приложение получает эти комплексные данные в виде I1,Q1,I2,Q2,I3,Q3..., разрядность каждого I и Q - 16 бит, вместе они составляют 32 бита (а на старой плате АЦП были вещественные отсчеты 16 бит).
Приложение, кроме всего прочего, рисует осциллоскоп и спектр. Со спектром все легко - отFFTил полученные данные, вычислил power на каждую полосу и нарисовал. С осциллоскопом аналогично, в принципе сейчас одним цветом рисуется вещественная часть, а другим - мнимая. Но это временная "затычка", хочется отображать полноценный вещественный сигнал, восстановленный из комплексного. Для этого нужно сдвинуть спектр сигнала обратно на +50 МГц (Fs/4) и отфильтровать.
Хорошо, положим на байты, они и в самом деле не при чем, будем считать элементами по 16 бит. Возьмем 8 отсчетов. Как я понял из объяснений выше:
- имеем 16 элементов:
I0, Q0, I1, Q1, I2, Q2, I3, Q3, I4, Q4, I5, Q5, I6, Q6, I7, Q7;
- искусственно повышаем частоту дискретизации:
I0, Q0, 0, 0, I1, Q1, 0, 0, I2, Q2, 0, 0, I3, Q3, 0, 0, I4, Q4, 0, 0, I5, Q5, 0, 0, I6, Q6, 0, 0, I7, Q7, 0, 0;
- далее что-то делаем (умножаем на комплексную экспоненту) и получаем итого тоже 16 элементов:
R0, R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R15;
- а по описанному выше - итого лишь 8 элементов?
R0=I0, R1=-Q1, R2=-I2, R3=Q3, R4=I4, R5=-Q5, R6=-I6, R7=Q7.
Поясните, пожалуйста, где противоречие. Понимаю, что надоел уже своей тупизной, но подробно спросить мне вроде как не у кого - в компании либо все заняты, либо только один человек может объяснить, но не адаптированно для идиотов (т.е. для меня), а на языке, предполагающим мои некоторые знания, которых у меня нет :D
Go to the top of the page
 
+Quote Post
leksa
сообщение Apr 8 2009, 22:26
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 41
Регистрация: 20-09-08
Пользователь №: 40 352



Цитата(Ykidia @ Apr 8 2009, 22:10) *
Про байты я говорил для внесения однозначности smile.gif

АЦП оцифровывает на частоте 200 МГц (Fs), т.е. имеем спектр от 0 до 100 МГц (Fs/2). Далее оцифрованный сигнал прогоняется через DDC, где все добро сдвигается на -50 МГц (-Fs/4), делается еще кое-какая обработка, так что имеем спектр от -50 до 50 МГц. Комплексные отсчеты выдаются уже в PC, где через драйвер приложение получает эти комплексные данные в виде I1,Q1,I2,Q2,I3,Q3..., разрядность каждого I и Q - 16 бит, вместе они составляют 32 бита (а на старой плате АЦП были вещественные отсчеты 16 бит).
Приложение, кроме всего прочего, рисует осциллоскоп и спектр. Со спектром все легко - отFFTил полученные данные, вычислил power на каждую полосу и нарисовал. С осциллоскопом аналогично, в принципе сейчас одним цветом рисуется вещественная часть, а другим - мнимая. Но это временная "затычка", хочется отображать полноценный вещественный сигнал, восстановленный из комплексного. Для этого нужно сдвинуть спектр сигнала обратно на +50 МГц (Fs/4) и отфильтровать.
Хорошо, положим на байты, они и в самом деле не при чем, будем считать элементами по 16 бит. Возьмем 8 отсчетов. Как я понял из объяснений выше:
- имеем 16 элементов:
I0, Q0, I1, Q1, I2, Q2, I3, Q3, I4, Q4, I5, Q5, I6, Q6, I7, Q7;
- искусственно повышаем частоту дискретизации:
I0, Q0, 0, 0, I1, Q1, 0, 0, I2, Q2, 0, 0, I3, Q3, 0, 0, I4, Q4, 0, 0, I5, Q5, 0, 0, I6, Q6, 0, 0, I7, Q7, 0, 0;
- далее что-то делаем (умножаем на комплексную экспоненту) и получаем итого тоже 16 элементов:
R0, R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R15;
- а по описанному выше - итого лишь 8 элементов?
R0=I0, R1=-Q1, R2=-I2, R3=Q3, R4=I4, R5=-Q5, R6=-I6, R7=Q7.
Поясните, пожалуйста, где противоречие. Понимаю, что надоел уже своей тупизной, но подробно спросить мне вроде как не у кого - в компании либо все заняты, либо только один человек может объяснить, но не адаптированно для идиотов (т.е. для меня), а на языке, предполагающим мои некоторые знания, которых у меня нет :D

Извините, наверно я в своем предыдущем посте вас запутал. Когда я писал про комплексный сигнал I+jQ, я говорил о сигнале после добавления нулей и фильтрации, как вам 729 уже пояснил.
Смотрите предыдущий пост 729, лучше не объяснить:
Цитата
.. и получаем уже другую нумерацию отсчетов - их уже 16 комплексных. Вот из них-то и получаются R-итые.
То есть:
I0, Q0, 0, 0, I1, Q1, 0, 0, I2, Q2, 0, 0, I3, Q3, 0, 0, I4, Q4, 0, 0, I5, Q5, 0, 0, I6, Q6, 0, 0, I7, Q7, 0, 0;
после фильтрации превращается в некую
i0, q0, i1, q1, i2, q2, ..., i14, q14, i15, q15.
После умножения на (новую) Fs/4 получим:
R0=i0, R1=-q1, R2=-i2, R3=q3, R4=i4, R5=-q5, R6=-i6, R7=q7, ...
Вот и ответ на вопрос про число байтов там и там - число байтов не изменится (Вы же информацию не потеряли и новой не добавили, с чего им измениться).

Еще можете посмотреть приведенный мной выше пример, даже если на матлабе не пишете, его можно читать просто как псевдокод, чтобы понять, как это работает.

Немного "веселых картинок" на тему:
спектр исходного комплексного сигнала:
Прикрепленное изображение

спектр сигнала после вставки нулей, до фильтрации
Прикрепленное изображение

спектр сигнала после фильтрации
Прикрепленное изображение

спектр после умножения на экспоненту и взятия реальной части
Прикрепленное изображение

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

Прикрепленное изображение


Цитата
Никакого принудительного повышения частоты "0"-ми не должно быть. Просто I и Q отсчеты должны идти по 2-а одинаковых значения подряд - ведь такой сигнал продецимированный обратно в любом порядке должен остаЦЦо прежним. Мы не меняем форму его спектра(функцию) а лишь сужаем его(уменьшаем скорость изменения функции относительно частоты дискретизации)

Если я правильно понял, то вы предлагаете из сигнала типа [i1 i2 i3 i4...] сделать сигнал [i1 i1 i2 i2 i3 i3 i4 i4...], как альтернативу вставки нулей?
Но такая операция это тоже самое, что и вставить нули, а потом пропустить через КИХ ФНЧ с ИХ равной h=[1 1]. Но у такого фильтра очень плохая АЧХ.
Вот как будет выглядеть спектр после фильтрации этим фильтром
Прикрепленное изображение

потом все что видно по бокам завернется в полосу полезного сигнала при переходе к реальному сигналу.
Для комплексного сигнала из двух синусов
Прикрепленное изображение

получится реальный сигнал с еще двумя "завернувшимися" синусами
Прикрепленное изображение


с уважением, leksa

Сообщение отредактировал leksa - Apr 8 2009, 22:30


--------------------
A designer knows he has achieved perfection not when there is nothing left to add, but when there is nothing left to take away (Antoine de Saint-Exupery)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- RadioWave   Преобразование комплексного сигнала в вещественный   Nov 30 2006, 11:57
- - subver   Цитата(RadioWave @ Nov 30 2006, 14:57) По...   Nov 30 2006, 13:42
|- - subver   Цитата(subver @ Nov 30 2006, 16:42) sqrt(...   Dec 1 2006, 05:52
- - _pegas_   Цитата(RadioWave @ Nov 30 2006, 11:57) По...   Nov 30 2006, 17:38
- - Pathfinder   Что значит вещественный сигнал? Если речь о полосо...   Dec 1 2006, 14:14
|- - _pegas_   Цитата(Pathfinder @ Dec 1 2006, 14:14) Чт...   Dec 2 2006, 01:48
- - 729   Цитата(RadioWave @ Nov 30 2006, 11:57) По...   Dec 2 2006, 14:54
|- - RadioWave   Цитата(729 @ Dec 2 2006, 14:54) Цитата(Ra...   Dec 5 2006, 10:07
- - RadioWave   В продолжение моей темы. Помогите, пожалуйста раз...   Dec 18 2006, 14:46
|- - =GM=   Цитата(RadioWave @ Dec 18 2006, 11:46) В ...   Dec 18 2006, 20:53
|- - SM   Цитата(RadioWave @ Dec 18 2006, 14:46) Те...   Dec 19 2006, 02:52
- - RadioWave   Может, я использую неправильно термины, поэтому по...   Dec 19 2006, 10:45
|- - SM   Цитата(RadioWave @ Dec 19 2006, 10:45) Мо...   Dec 19 2006, 19:43
- - Pathfinder   RadioWave, непонятно какую низкочастотную составля...   Dec 20 2006, 18:48
- - Ykidia   ЦитатаРаспространённый вариант получения квадратур...   Apr 3 2009, 14:50
|- - shf_05   Цитата(Ykidia @ Apr 3 2009, 20:50) Есть м...   Apr 4 2009, 07:20
|- - DRUID3   Цитата(Ykidia @ Apr 3 2009, 17:50) Есть м...   Apr 4 2009, 11:21
||- - =GM=   Цитата(DRUID3 @ Apr 4 2009, 10:21) тупо с...   Apr 6 2009, 17:24
|- - 729   Цитата(Ykidia @ Apr 3 2009, 18:50) Прошу ...   Apr 4 2009, 13:08
- - Ykidia   Цитатакакой именно обработки? Выше указали их мног...   Apr 6 2009, 01:32
|- - 729   Цитата(Ykidia @ Apr 6 2009, 05:32) 729 И...   Apr 6 2009, 15:23
- - Ykidia   Поясните, пожалуйста, подробнее, если можно.   Apr 6 2009, 15:22
- - leksa   Пример в помощь (обсуждаемый алгоритм на языке м...   Apr 6 2009, 18:58
- - qxov   Не вполне понятно, зачем это нужно. Быть может, бо...   Apr 7 2009, 06:46
|- - Serg76   Цитата(qxov @ Apr 7 2009, 10:46) Не вполн...   Apr 8 2009, 16:52
- - Ykidia   С комплексными числами работаю при отображении спе...   Apr 8 2009, 15:59
|- - DRUID3   Цитата(=GM= @ Apr 6 2009, 20:24) Не имеем...   Apr 8 2009, 16:06
|- - qxov   Цитата(Ykidia @ Apr 8 2009, 19:59) С комп...   Apr 9 2009, 07:05
- - Ykidia   Цитатавсе верно Вы поняли... Я про вышеописанное: ...   Apr 8 2009, 16:28
|- - DRUID3   Цитата(Ykidia @ Apr 8 2009, 19:28) Я про ...   Apr 8 2009, 17:08
|- - Serg76   Цитата(DRUID3 @ Apr 8 2009, 21:08) ...ког...   Apr 8 2009, 17:20
|- - DRUID3   Цитата(Serg76 @ Apr 8 2009, 20:20) Я сказ...   Apr 8 2009, 17:21
|- - 729   Цитата(Ykidia @ Apr 8 2009, 22:10) .....,...   Apr 8 2009, 18:36
|- - DRUID3   Цитата(Ykidia @ Apr 8 2009, 21:10) АЦП оц...   Apr 8 2009, 20:09
- - Ykidia   729 leksa DRUID3 За терпение и подробные объяснени...   Apr 9 2009, 12:30
|- - leksa   Цитата(Ykidia @ Apr 9 2009, 16:30) Что за...   Apr 9 2009, 15:30
- - otshelnik86   красивые картинки   Apr 9 2009, 17:35
- - Ykidia   Круто. Все понятно, дальше некуда. Большое спасибо...   Apr 14 2009, 11:02
- - pirri   i'm not sure that my question matches this top...   Sep 9 2009, 09:19
- - aa.veter   Цитата(DRUID3 @ Apr 4 2009, 15:21) какой ...   Aug 23 2010, 07:01
|- - bahurin   Цитата(aa.veter @ Aug 23 2010, 11:01) Виж...   Aug 24 2010, 04:49
- - hobgoblin   Можно еще применить алгоритм CORDIC в режиме вычис...   Aug 24 2010, 10:56
- - aa.veter   Цитата(bahurin @ Aug 24 2010, 08:49) вы и...   Aug 24 2010, 13:46
|- - hobgoblin   Цитата(aa.veter @ Aug 24 2010, 17:46) что...   Aug 26 2010, 07:13
- - aa.veter   похоже, амплитуда сдвинутого сигнала равна амплиту...   Aug 25 2010, 15:03
- - aa.veter   В общем после сдвига сигнала фильтрую лишние часто...   Aug 26 2010, 13:18
- - aa.veter   Еще: почему мне все-таки приходится фильтровать? я...   Aug 27 2010, 13:35


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd June 2025 - 19:06
Рейтинг@Mail.ru


Страница сгенерированна за 0.01433 секунд с 7
ELECTRONIX ©2004-2016