7 / 7 / 2
Регистрация: 09.02.2014
Сообщений: 91
|
|
1 | |
Перенос частоты сигнала09.02.2014, 16:04. Показов 13340. Ответов 17
Метки нет (Все метки)
Доброго времени суток! Возникла необходимость смоделировать в симулинке перенос частоты скажем синусоидального сигнала. Реализовать хочу с помощью фильтра Гильберта. Пробовал разные схемы, но в итоге получается модулированный сигнал. Можно ли получить тот же сигнал (исходную синусоиду), только с другой частотой? Если да, то каким образом, подскажите, пожалуйста. Реализовать хочу это в симулинке/матлабе
0
|
09.02.2014, 16:04 | |
Ответы с готовыми решениями:
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
|
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
|
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 |
А это возможно? Если я не ошибаюсь, то этот фильтр - это фазовращатель. Как Вы ним сделаете пренос частоты?
0
|
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 |
перенос частоты == модуляция. Осуществляется обычно просто домножением на несущую с фильтрацией. Собственно это и предложил raxp в этом посте. В частотной области модуляцию(перенос частоты) выполнить сложно по простой причине - если нужные частоты точно не попадают в отсчеты fft, появляется дополнительная паразитная модуляция. В принципе, возможно сдвинуть таким образом простой сигнал, синус, косинус например, если не попал в отсчет - интерполировать, но опять же,что в таком случае делать с фазой? А с сигналами типа речевых думаюбудет совсем туго... Хотя это даже интересно)
0
|
7 / 7 / 2
Регистрация: 09.02.2014
Сообщений: 91
|
|
10.02.2014, 21:50 [ТС] | 12 |
В том то и сложность, что сигналы будут какие угодно на практике. Да и синусоиду/косинус не получалось сдвинуть. Я домножал на несущую и суммировал. Получалась модуляция. Плюс еще фильтр гильбета задержку вносил, и мне приходилось ставить блок задержки. А в нем нужно было указать ТОЧНУЮ задержку, как на Гильберте. А какая она там, вообще без понятия. Приблизительно указывал, подгонял. Гемр вообщем. И в итоге модуляция. Да еще и задержка проклятая. Так что я решил пойти по пути с прямым и обратным преобразованием фурье, как на видео, что скинул raxp.
Там я написал до этого, в конце первой страницы, помотрите, пожалуйста в чем ошибка там у меня Добавлено через 9 часов 30 минут raxp, а при fft информация о фазе теряется же. Мне нужно получить сигнал на другой частоте без потерь инфы
0
|
7 / 7 / 2
Регистрация: 09.02.2014
Сообщений: 91
|
|
10.02.2014, 23:09 [ТС] | 14 |
Наальник так сказал) raxp, Посмотрите, пожалуйтса в конце первой страницы сообщение. Там у меня проблемка после сдвига гармоник
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
|
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 | |
11.02.2014, 21:13 | |
Помогаю со студенческими работами здесь
18
Перенос сигнала на нулевую частоту Перенос спектра дискретизированного сигнала в matlab Моделирование сигнала, шумового процесса, смеси сигнала с шумом Восстановление сигнала с помехой фильтром низкой частоты Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |