Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.51/47: Рейтинг темы: голосов - 47, средняя оценка - 4.51
0 / 0 / 0
Регистрация: 09.03.2016
Сообщений: 4
1

Перенос сигнала на нулевую частоту

09.03.2016, 15:20. Показов 8738. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте.
Не могу решить задачу переноса сигнала (спектра сигнала) на нулевую частоту, т.к. даже не понимаю принципа этой операции.
Т.е. имеется, допустим, синусоида
Matlab M
1
2
3
4
5
6
7
8
9
10
Tm = 7; % Длина сигнала, с
Fd = 512; % Частота дискретизации синусоиды, Гц
Ak = 0.5; % Постоянная составляющая
A = 1; % Амплитуда синусоиды
F = 13; % Частота синусоиды, Гц
Phi = 0; % Начальная фаза синусоиды, градусы
 
T = 0:1/Fd:Tm; % Массив отсчетов времени синусоиды
 
Signal = Ak + A * sind((F * 360) .* T); % Описание сигнала
и спектр этой синусоиды необходимо перенести на нулевую частоту.

В интернете конкретного алгоритма я не нашёл, информацию удалось собрать следующую:
1) сигнал надо рассматривать только в квадратурном представлении (почему?)
2) исходный сигнал должен быть переведён в комплексную форму (почему?)
3) для переноса сигнала на нужную частоту его надо умножить на синусоиду этой частоты (а если требуется, как у меня, нулевая частота, то на что умножать?)

В связи с этим очень прошу помочь понять математику и физический смысл этого процесса, т.к. сам понять не смог до сих пор.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.03.2016, 15:20
Ответы с готовыми решениями:

Перенос сигнала на другую частоту
Здравствуйте. Хочу перенести сигнал с 1,503 ГГц на 3 МГц с помощью перемножения исходного сигнала...

Определить частоту сигнала
Здравствуйте. С помощью какого элемента или преобразования в симулинке можно определить частоту...

Убрать несущую частоту из сигнала
clear all; clc; N = 100; % длина последовательности z = randint(1,N) % случайные данные ...

Получить форму и частоту сигнала с датчика пульса на ПК
Добрый день, собрал схемку, а именно датчик пульсовый волны. Как теперь прочитать компьютером...

7
373 / 343 / 42
Регистрация: 14.07.2015
Сообщений: 2,890
10.03.2016, 11:44 2
AntonSolomohin, Зачем вам нулевая частота? Сигнал ведь просто константой станет.
0
0 / 0 / 0
Регистрация: 09.03.2016
Сообщений: 4
10.03.2016, 13:53  [ТС] 3
Цитата Сообщение от bobah16 Посмотреть сообщение
Зачем вам нулевая частота? Сигнал ведь просто константой станет.
Там суть в том, что сигнал поступает зашумлённый, т.е. в реальной задаче это не чистая синусоида.
0
Эксперт по электронике
939 / 839 / 121
Регистрация: 23.11.2012
Сообщений: 2,489
11.03.2016, 01:44 4
AntonSolomohin, особо сути дела это не поменяет. Вы получите, как сказал товарищ bobah16, зашумленную постоянную составляющую.
но задача Ваша вполне ясна и "широко известна в узких кругах" ©
Решается она путем взятия модуля аналитического сигнала. Добавьте в конце Вашего кода:
Matlab M
1
plot(t, Signal, t, abs(hilbert(Signal))); grid on
1
0 / 0 / 0
Регистрация: 09.03.2016
Сообщений: 4
11.03.2016, 12:00  [ТС] 5
R2D2, большое спасибо за код. А не могли бы подсказать, в чём физический смысл переноса спектра сигнала на нулевую частоту? Зачем это может понадобиться?
0
Эксперт по электронике
939 / 839 / 121
Регистрация: 23.11.2012
Сообщений: 2,489
11.03.2016, 12:57 6
Лучший ответ Сообщение было отмечено AntonSolomohin как решение

Решение

AntonSolomohin, физический смысл - выделение комплексной огибающей. По сути - большая часть детектирования сигнала с АМ. НО! Осторожно уточню, что это физический смысл может быть и другим для другого приложения. Я привожу пример из свое отрасли.
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
clc; close all; clear;
L = 1024;
A = [0.75 0.5];
f0 = [500 750]';
fc = 2e3;
t = linspace(0, 8/min(f0), L);
fs = 1/diff(t(1:2));
m = 0.5;
Ui = A*cos(2*pi*f0*t);
y = cos(2*pi*fc*t).*(1+m*Ui);
plot(t, Ui, t, y, t, abs(hilbert(y)), '--r'); grid on;
legend('Информационный сигнал', 'Сигнал с АМ',...
    'Огибающая АМ-сигнала')
axis([0 max(t) -2 2])
1
0 / 0 / 0
Регистрация: 09.03.2016
Сообщений: 4
11.03.2016, 15:57  [ТС] 7
R2D2 Т.е. для того, чтобы построить комплексную огибающую, необходимо избавиться от несущей частоты, что мы и делаем, перенося спектр сигнала на нулевую частоту, я правильно понял?
0
Эксперт по электронике
939 / 839 / 121
Регистрация: 23.11.2012
Сообщений: 2,489
11.03.2016, 22:05 8
AntonSolomohin, ну, в случае с АМ - вроде как да.
0
11.03.2016, 22:05
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.03.2016, 22:05
Помогаю со студенческими работами здесь

Как определить частоту сигнала, Дискретное преобразование Фурье
Добрый! Вопрос ламерский, делаю первые шаги в теме, прошу проявить терпение. Суть: На входе...

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

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

Написание программы, которая будет рисовать волну .Wav файла и с уровнями, показывающими частоту сигнала
Задумал один проект написать и столкнулся с такой проблемой! Я написал диктофон, он воспроизводит...


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

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