Vagant 0 27 августа, 2009 Опубликовано 27 августа, 2009 (изменено) · Жалоба Здравствуйте, Пожалуйста, посоветуйте как можно изменять фазу радиочастотного сигнала (с частотой 8 МГц и амплитудой 5 вольт) на определённый угол который можно изменять, например на один (или несколько) градусов. (Для изменения угла на 180 градусов сигнал можно инвертировать, но мне нужно более тонкое изменение фазы - на углы порядка нескольких градусов или несколько десятков градусов). Иначе говоря, интересует метод по которому работает схема на входе которой РЧ сигнал с некоторой фазой а на выходе этот же РЧ сигнал но фаза увеличена на несколько градусов. P.S. Предполагается реализовывать схему на ПЛИС (набор Xilinx Microblaze 1600E) или микропроцессорном наборе Rabbit RCM3200. Я пока только учусь программировать системы на этих наборах. Спасибо. Изменено 27 августа, 2009 пользователем Vagant Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ataradov 0 27 августа, 2009 Опубликовано 27 августа, 2009 (изменено) · Жалоба Раз уж речь зашлп о ПЛИС, возникает вопрос: Вам это в цифровой форме нужно или в аналоговой? Вы для поворотоа фазы собралось оцифровывать сигнал, а потом переводить его обратно в аналог? Если для аналога, то вот: Фазосдвигающие цепи Изменено 27 августа, 2009 пользователем Taradov Alexander Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vagant 0 27 августа, 2009 Опубликовано 27 августа, 2009 · Жалоба Раз уж речь зашлп о ПЛИС, возникает вопрос: Вам это в цифровой форме нужно или в аналоговой? В цифровой. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
i.cf 0 27 августа, 2009 Опубликовано 27 августа, 2009 (изменено) · Жалоба В цифровой. Если я все правильно понял - то Вам будет достаточно организовать задержку, которая и обеспечит сдвиг фазы. Так, задержка на 1/(8 * 10^6) = 0,125мкс - сдвиг на один период. Половина этой задержки - сдвиг на 180, 1/4-я - сдвиг на 90, 1/360-я - сдвиг на 1 градус. Подавайте оцифрованный сигнал в параллельном виде на МК/ПЛИС, а выдавайте через определенное время, которое будете задавать. Для этого Вам нужно будет организовать программно некоторое подобие очереди (FIFO) с постоянным количеством элементов. Изменено 27 августа, 2009 пользователем i.cf Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vagant 0 27 августа, 2009 Опубликовано 27 августа, 2009 · Жалоба Если я все правильно понял - то Вам будет достаточно организовать задержку, которая и обеспечит сдвиг фазы. Так, задержка на 1/(8 * 10^6) = 0,125мкс - сдвиг на один период. Половина этой задержки - сдвиг на 180, 1/4-я - сдвиг на 90, 1/360-я - сдвиг на 1 градус. Подавайте оцифрованный сигнал в параллельном виде на МК/ПЛИС, а выдавайте через определенное время, которое будете задавать. Для этого Вам нужно будет организовать программно некоторое подобие очереди (FIFO) с постоянным количеством элементов. А разве временная задержка и фазовый сдвиг это одно и тоже? P.S. В уравнении колебания S(t)=S*cos(w*t+Phi) задержка должна прибавляться ко времени, которое умножено на частоту, а фаза то складывается с произведением частоты и времени. То есть задержка и фаза по разному учитываются. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ataradov 0 27 августа, 2009 Опубликовано 27 августа, 2009 (изменено) · Жалоба А разве временная задержка и фазовый сдвиг это одно и тоже? P.S. В уравнении колебания S(t)=S*cos(w*t+Phi) задержка должна прибавляться ко времени, которое умножено на частоту, а фаза то складывается с произведением частоты и времени. То есть задержка и фаза по разному учитываются. Да, но можно посмотреть с другой стороны на это S(t)=S*cos(w*t+Phi) = S*cos(w*(t-t0)+(Phi+w*t0)). w*t0 - константа, искомый сдвиг. То что время немного поменялось - это не страшно. PS: единственное неудобство тут то, что нужно иметь достаточно большое число отсчетов, чтобы обеспечить плавное изменение фазы. Если привлекапть математику, то может потребоваться сложная обработка (фильтрация). Но зато можно иметь совсем мало отсчетов. Изменено 27 августа, 2009 пользователем Taradov Alexander Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vagant 0 27 августа, 2009 Опубликовано 27 августа, 2009 · Жалоба А можно ли использовать такой подход: Вращение вектора, представляющего гармоническое колебание, на угол phi можно представить как результат произведения его компонент на cos(phi) и sin(phi). То есть надо составить таблицу коэффициентов для разных углов вращения и для нужного угла умножать компоненты сигнала на соответствующие этому углу коэффициенты, а потом эти произведения (новые компоненты сигнала) сложить чтобы получить сигнал после вращения. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ataradov 0 27 августа, 2009 Опубликовано 27 августа, 2009 · Жалоба А можно ли использовать такой подход: Вращение вектора, представляющего гармоническое колебание, на угол phi можно представить как результат произведения его компонент на cos(phi) и sin(phi). То есть надо составить таблицу коэффициентов для разных углов вращения и для нужного угла умножать компоненты сигнала на соответствующие этому углу коэффициенты, а потом эти произведения (новые компоненты сигнала) сложить чтобы получить сигнал после вращения. Тогда из исходного синуса нужно еще косинус получить. Если он будет, то вышеупомянутая фильтрация не нужна и предложеный метод - это то, что я и имел в виду. В общем формулы тригонометрии помогут. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vagant 0 27 августа, 2009 Опубликовано 27 августа, 2009 · Жалоба Тогда из исходного синуса нужно еще косинус получить. Если он будет, то вышеупомянутая фильтрация не нужна и предложеный метод - это то, что я и имел в виду. В общем формулы тригонометрии помогут. Спасибо. Попробую вариант с вращением. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
i.cf 0 27 августа, 2009 Опубликовано 27 августа, 2009 (изменено) · Жалоба Да, но можно посмотреть с другой стороны на это S(t)=S*cos(w*t+Phi) = S*cos(w*(t-t0)+(Phi+w*t0)). Вот именно! И можно увидеть, что Phi можно заменить на w*tдоб. Специально расписываю: S(t)=S*cos(w*t+Phi) Phi = w*tдоб w = 2pi * 8MHz tдоб = Phi/w = Phi / (2pi*8000000) Для Phi = 360 = 2pi tдоб = = 2pi / (2pi*8000000) - 1/8000000 = 0,125 * 10^-6 Для Phi = 180 = pi tдоб = = pi / (2pi*8000000) - 1/8000000 = 0,0625 * 10^-6 Для Phi = 1 = pi/180 tдоб = = (pi/180) / (2pi*8000000) - 1/8000000 = ,0003472 * 10^-6 А разве временная задержка и фазовый сдвиг это одно и тоже? Вот и получается, что почти тоже самое! Как получить угол в градусах в зависимости от tдоб я написал в посте, просто не расписывал. Что Вас там смутило? Изменено 27 августа, 2009 пользователем i.cf Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vagant 0 27 августа, 2009 Опубликовано 27 августа, 2009 (изменено) · Жалоба Что Вас там смутило? Для моей системы задержки порядка микросекунд слишком велики поэтому такой метод мне не подходит. Изменено 27 августа, 2009 пользователем Vagant Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
=AK= 18 18 сентября, 2009 Опубликовано 18 сентября, 2009 · Жалоба Если я все правильно понял - то Вам будет достаточно организовать задержку, которая и обеспечит сдвиг фазы. Так, задержка на 1/(8 * 10^6) = 0,125мкс - сдвиг на один период. Половина этой задержки - сдвиг на 180, 1/4-я - сдвиг на 90, 1/360-я - сдвиг на 1 градус. Подавайте оцифрованный сигнал в параллельном виде на МК/ПЛИС, а выдавайте через определенное время, которое будете задавать. Для этого Вам нужно будет организовать программно некоторое подобие очереди (FIFO) с постоянным количеством элементов. Можно умножить частоту раза в два, а потом двигать фазу как захочется при помощи CDCF5801A . У нее шаг примерно полградуса. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
hobgoblin 0 22 сентября, 2009 Опубликовано 22 сентября, 2009 · Жалоба А можно ли использовать такой подход: Вращение вектора, представляющего гармоническое колебание, на угол phi можно представить как результат произведения его компонент на cos(phi) и sin(phi). То есть надо составить таблицу коэффициентов для разных углов вращения и для нужного угла умножать компоненты сигнала на соответствующие этому углу коэффициенты, а потом эти произведения (новые компоненты сигнала) сложить чтобы получить сигнал после вращения. На случай, если еще актуально. Если у Вас комплексный вектор и реализовывать предполагается на ПЛИС, то никаких таблиц и умножений в общем то не надо. Есть алгоритм CORDIC, при помощи которого все это делается проще. Про этот алгоритм в сети достаточно много информации. Например, можно почитать в приложенном файле. crdcsrvy.pdf Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vagant 0 22 октября, 2009 Опубликовано 22 октября, 2009 · Жалоба На случай, если еще актуально. Если у Вас комплексный вектор и реализовывать предполагается на ПЛИС, то никаких таблиц и умножений в общем то не надо. Есть алгоритм CORDIC, при помощи которого все это делается проще. Про этот алгоритм в сети достаточно много информации. Например, можно почитать в приложенном файле. Да, ещё актуально. Спасибо большое. :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться