Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/74: Рейтинг темы: голосов - 74, средняя оценка - 4.77
7 / 7 / 2
Регистрация: 09.02.2014
Сообщений: 91
1

Перенос частоты сигнала

09.02.2014, 16:04. Показов 13340. Ответов 17
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток! Возникла необходимость смоделировать в симулинке перенос частоты скажем синусоидального сигнала. Реализовать хочу с помощью фильтра Гильберта. Пробовал разные схемы, но в итоге получается модулированный сигнал. Можно ли получить тот же сигнал (исходную синусоиду), только с другой частотой? Если да, то каким образом, подскажите, пожалуйста. Реализовать хочу это в симулинке/матлабе

vitaliy36 » Чт фев 06, 2014 9:12 am
Здравствуйте! Возникла задача реализовать перенос частоты с помощью фильтра Гильберта. Вот статья, что я читал. http://www.dsplib.ru/content/ssb/ssb.html Рисунок 3 , формула 4 показывают, как это осуществить. Создал модель в симулинке, опираясь на рисунок и формулу. Несущая 1кГц, модулирующий сигнал - 100 Гц. После умножителей поставил скопы - приходят два модулированных сигнала. Все вроде бы нормально, но после их суммирования конечный сигнал получается
модулированный и без какого-либо переноса частоты. Версия матлаба R2013a. Подскажите, пожалуйста, в чем проблема? Выкладываю саму модель
+ http://www.dsplib.ru/content/hilbert/hilbert.html
Вложения
Тип файла: rar qam.rar (17.6 Кб, 58 просмотров)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.02.2014, 16:04
Ответы с готовыми решениями:

Извлечение сигнала заданной частоты из более сложного сигнала
Нужен совет. Предположим, у меня есть некий сложный сигнал. Я знаю, что в него входит синусоида,...

Определение частоты сигнала из ДПФ
День добрый! В задаче определения частоты по отклонению фазы изображающего вектора получаю...

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

Найти значение частоты по преобразованию Фурье сигнала из АЦП
Добрый день! Имею сигнал АЦП (приложение в файле, массив 3083 значений), делаю преобразование...

17
raxp
09.02.2014, 16:43
  #2

Не по теме:

...а если не через преобразование Гильберта? Просто FFT, сдвигаем исходные гармоники на сколько нужно, передаем в обратный iFFT.

Перенос частоты сигнала

Кликните здесь для просмотра всего текста

Генерация исходного тона 500 Гц, производится прямой БПФ (красное), потом сдвигаем исходные гармоники в два раза вниз (2*i) - передаем в обратный БПФ и делаем прямой БПФ для визуализации (зеленое, основной тон 250 Гц +-)

Сдвиг частот для подавления акустической обратной связи

0
7 / 7 / 2
Регистрация: 09.02.2014
Сообщений: 91
09.02.2014, 21:22  [ТС] 3
raxp, Спасибо, попробую, как Вы сказали. Вы посмотрели статьи, откуда я рисовал схему. Что скажете, почему у меня получается модулированный сигнал в итоге? Если опираться на форумулу и схему из статьи, что по ссылке dsplib?

Добавлено через 3 часа 46 минут
Еще пару вопросов: в блоке fft какие параметры указать, если синусоида скажем 100 Гц, sample time - 1/1000?
После fft должен ставиться блок взятия по модулю (complex to magnitude angle) : для чего он?
Есть ли в симулинке блоки экспонетны и как задать параметры(мне нужно exp(jwt))?
0
10231 / 6609 / 498
Регистрация: 28.12.2010
Сообщений: 21,156
Записей в блоге: 1
09.02.2014, 22:45 4
В.Г.Потемкин "Справочник по MATLAB". Анализ и обработка данных
http://matlab.exponenta.ru/ml/... r8/fft.php
0
7 / 7 / 2
Регистрация: 09.02.2014
Сообщений: 91
09.02.2014, 23:10  [ТС] 5
raxp, а если взять исходный сигнал 100 Гц, сделать его преобразование гильберта , тем самым получив аналитический сигнал. А затем его умножить на комплексную экспоненту частоты 1кГц и потом взять от результата перемножения действительную часть. Такой способ возможен? наткнулся на него здесь: http://electronix.ru/forum/lof... 11230.html Я собрал схему в симулинке: поставил блок sine wave с частотой 100Гц(аналоговый), его кинул на блок Hilbert filter. Так еще один блок sine wave(DSP) - там выбрал комплексный аналоговый и оба их на умножитель, вывожу действительную часть с помощью блока Сomplex to real imag и результат: сначала задержка (похоже от гильберта) и потом синусоида, вообще меньшей частоты. А должна быть большей. Какое Ваше мнение, raxp?
0
10231 / 6609 / 498
Регистрация: 28.12.2010
Сообщений: 21,156
Записей в блоге: 1
09.02.2014, 23:54 6
Мое мнение: подать по старинке на квадратурный модулятор (кто сказал, что они только аналоговые бывают? ...квадратурный цифровой смеситель с переносом сигнала вверх по частоте) две частоты - вашу и несущую. Так реализовано даже в современных DDS (синтезаторах прямого синтеза частоты). Взгляните на внутренние кишки хотя бы AD9857.
0
7 / 7 / 2
Регистрация: 09.02.2014
Сообщений: 91
10.02.2014, 00:29  [ТС] 7
Так на выходе квадратурного модулятора модулированный сигнал. А мне нужно ту же синусоиду получить, только с другой частотой. Просто в реальности нужно будет генерировать много сигналов и записывать их в базу данных. И чтобы база была гораздо меньше, нужно реализовать перенос частоты.

Добавлено через 18 минут
Стаж смортю у Вас 10 лет) Я вообще до этого плис занимался на работе, щас на симулинк пришлось переключиться. У меня то опыта можно сказать и нету. 22 года только). Вот Вы писали до этого, взять БПФ от исходного сигнала, перенести частоту и затем ОПФ. С фкрье понятно. А как, собственно, сам перенос осуществить?
0
Эксперт по электронике
939 / 839 / 121
Регистрация: 23.11.2012
Сообщений: 2,489
10.02.2014, 00:52 8
Цитата Сообщение от vitali36 Посмотреть сообщение
Реализовать хочу с помощью фильтра Гильберта.
А это возможно? Если я не ошибаюсь, то этот фильтр - это фазовращатель. Как Вы ним сделаете пренос частоты?
0
10231 / 6609 / 498
Регистрация: 28.12.2010
Сообщений: 21,156
Записей в блоге: 1
10.02.2014, 08:56 9
TC, это базовые основы построения супергетеродинных схем. TC попутал ячейку Гильберта с фильтром Гильберта.

Спектр сигнала на выходе кольцевого балансного смесителя-модулятора (преобразователя частоты):
Перенос частоты сигнала

В ВЧ-трактах, беспроводных приемниках или полных приемопередатчиках, изготовленных с использованием монолитных ИС, часто применяется активный смеситель, известный как «ячейка Гилберта». Такой тип смесителя сочетает малую потребляемую мощность, высокий коэффициент усиления и широкую полосу пропускания. Т.к. этот смеситель требует дифференциальных сигналов, он обычно реализуется с использованием входных и выходных трансформаторов, как в кольцевом балансном смесителе.
==============

Вот Вы писали до этого, взять БПФ от исходного сигнала, перенести частоту и затем ОПФ. С фкрье понятно. А как, собственно, сам перенос осуществить?
в самом комментарии под видео не видно? Собственно полученные гармоники сдвигаем в плученном массиве, вот и весь перенос. Сдвиг разрядов, индексов массива.
0
7 / 7 / 2
Регистрация: 09.02.2014
Сообщений: 91
10.02.2014, 10:34  [ТС] 10
Спасибо, что прояснили с Гильбертом.
Остановился на способе, что предложил raxp. Комментарий под видел не увидел сначала. Сейчас собрал схему такого плана: синусоида (параметры: frequency 100Гц, sample mode - discrete, sample time 1/1000, samples per frame 240). Затем блок zero-order hold. Следом - fft (параметры: fft length - число отсчетов - 1024). После - complex to magnitude (параметр - magnitude). После поставил для проверки vector scope - спектр сигнала рисует правильно. Теперь самое главное - нужно сдвинуть спектр.
Правильно ли я понял: чтобы сдвинуть гармоники используется обычный блок арифметического сдвига на 2*i отсчетов, где i - число отсчетов (в моем случае 1024) ?
Я поставил блок shift arithmetic (параметр bits to shift - number я поставил 2048). После - блок IFFT, потом FFT, complex magnitude. Конечный vector scope ничего не отображает. Что я сделал не так?
0
2014 / 1286 / 61
Регистрация: 05.06.2010
Сообщений: 2,213
10.02.2014, 11:57 11
Цитата Сообщение от vitali36 Посмотреть сообщение
Что скажете, почему у меня получается модулированный сигнал в итоге?
перенос частоты == модуляция. Осуществляется обычно просто домножением на несущую с фильтрацией. Собственно это и предложил raxp в этом посте. В частотной области модуляцию(перенос частоты) выполнить сложно по простой причине - если нужные частоты точно не попадают в отсчеты fft, появляется дополнительная паразитная модуляция. В принципе, возможно сдвинуть таким образом простой сигнал, синус, косинус например, если не попал в отсчет - интерполировать, но опять же,что в таком случае делать с фазой? А с сигналами типа речевых думаюбудет совсем туго... Хотя это даже интересно)
0
7 / 7 / 2
Регистрация: 09.02.2014
Сообщений: 91
10.02.2014, 21:50  [ТС] 12
В том то и сложность, что сигналы будут какие угодно на практике. Да и синусоиду/косинус не получалось сдвинуть. Я домножал на несущую и суммировал. Получалась модуляция. Плюс еще фильтр гильбета задержку вносил, и мне приходилось ставить блок задержки. А в нем нужно было указать ТОЧНУЮ задержку, как на Гильберте. А какая она там, вообще без понятия. Приблизительно указывал, подгонял. Гемр вообщем. И в итоге модуляция. Да еще и задержка проклятая. Так что я решил пойти по пути с прямым и обратным преобразованием фурье, как на видео, что скинул raxp.
Там я написал до этого, в конце первой страницы, помотрите, пожалуйста в чем ошибка там у меня

Добавлено через 9 часов 30 минут
raxp, а при fft информация о фазе теряется же. Мне нужно получить сигнал на другой частоте без потерь инфы
0
10231 / 6609 / 498
Регистрация: 28.12.2010
Сообщений: 21,156
Записей в блоге: 1
10.02.2014, 22:27 13
...почему-же теряется, полученные квадратуры содержат информацию и о фазе.
Вложения
Тип файла: pdf А.Б.Сергиенко. MATLAB и преобразование Фурье.pdf (464.7 Кб, 76 просмотров)
0
7 / 7 / 2
Регистрация: 09.02.2014
Сообщений: 91
10.02.2014, 23:09  [ТС] 14
Наальник так сказал) raxp, Посмотрите, пожалуйтса в конце первой страницы сообщение. Там у меня проблемка после сдвига гармоник
0
10231 / 6609 / 498
Регистрация: 28.12.2010
Сообщений: 21,156
Записей в блоге: 1
11.02.2014, 15:34 15
...повторяю для начальника: полученные квадратуры содержат информацию о фазе и амплитуде.

Посмотрите, пожалуйтса в конце первой страницы сообщение. Там у меня проблемка после сдвига гармоник
у меня все на одной странице. Куды смотреть?
0
7 / 7 / 2
Регистрация: 09.02.2014
Сообщений: 91
11.02.2014, 16:33  [ТС] 16
Вот это:
Сейчас собрал схему такого плана: синусоида (параметры: frequency 100Гц, sample mode - discrete, sample time 1/1000, samples per frame 240). Затем блок zero-order hold. Следом - fft (параметры: fft length - число отсчетов - 1024). После - complex to magnitude (параметр - magnitude). После поставил для проверки vector scope - спектр сигнала рисует правильно. Теперь самое главное - нужно сдвинуть спектр.
Правильно ли я понял: чтобы сдвинуть гармоники используется обычный блок арифметического сдвига на 2*i отсчетов, где i - число отсчетов (в моем случае 1024) ?
Я поставил блок shift arithmetic (параметр bits to shift - number я поставил 2048). После - блок IFFT, потом FFT, complex magnitude. Конечный vector scope ничего не отображает. Что я сделал не так?
Еще такой вопрос: полосовой фильтр. Какие пунктик в настройках отвечает за ограничение частоты(мне нужно будет поставить 1100 Гц - т.е пропускает 1100 Гц, остальные отбрасывает). В книжке у меня другие совсем настрйоки, т.к там матлаб старый. А у меня R2013a
0
10231 / 6609 / 498
Регистрация: 28.12.2010
Сообщений: 21,156
Записей в блоге: 1
11.02.2014, 20:18 17
Выше вам дал пруф на справочник по Матлаб и тему сюда перенес по аналогичной причине: консультировать вас по ЦОС - без проблем, но Матлаб-ом не пользуюсь (у нас ПЛИС/DSP на нижнем уровне, а визуализацию и постобработку на верхнем уровне мне на порядок проще реализовать в Delphi).

Надеюсь местные специалисты не оставят вас в беде, какой блок нужен и как его правильно использовать в вашей версии Матлаб-а.
0
7 / 7 / 2
Регистрация: 09.02.2014
Сообщений: 91
11.02.2014, 21:13  [ТС] 18
Когда с ПЛИС работал, визуализацию тоже сам прогал. Правда на C#). Теперь пришлось переключиться на simulink. Ну спаибо за помощь, raxp, буду ждать помощи от специалистов по simulink/matlab).
0
11.02.2014, 21:13
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.02.2014, 21:13
Помогаю со студенческими работами здесь

Перенос сигнала на нулевую частоту
Здравствуйте. Не могу решить задачу переноса сигнала (спектра сигнала) на нулевую частоту, т.к....

Перенос спектра дискретизированного сигнала в matlab
Решил что лучше спросить в этом разделе. Есть отсчеты звукового сигнала и частота дискретизации...

Моделирование сигнала, шумового процесса, смеси сигнала с шумом
Доброе время суток. Помогите пожалуйста решить данное задание в MatLab. На двух вложениях одно...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru