Форум программистов, компьютерный форум, киберфорум
Наши страницы
Matlab
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
Geliocoptr
0 / 0 / 0
Регистрация: 09.06.2016
Сообщений: 4
1

Создание ЧМ сигнала с заданным законом модуляции

09.06.2016, 08:25. Просмотров 1039. Ответов 8
Метки нет (Все метки)

Всем привет. Столкнулся вот с такой проблемой: надо задать ЧМ сигнал с законом симметричной пилы. Вот код:
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Rmax=40;                    % Максимальное измеряемое расстояние
c=3*10^8;                   % Скорость света
f0=24*10^9;                 % Центральная частота
Fm=c/(4*Rmax);              % Частота модуляции
del_f=250*10^6;             % Девиации частоты
Tm=1/Fm;                    % Период модуляции
n=1000;                     % Число отсчётов
tm=0:Tm/n:Tm-Tm/n;          % Массив времени
r=40;                       % Расстояние до цели
td=2*r/c;                   % Время задержки
per=1;                      % Число периодов в сигнале
t=0:Tm/n:((per*Tm)-Tm/n);   % Время
A=1;                        % Амплитуда зонд-го сигнала
 
for l=1:per
    for k=1:(n*per)
        if k<((n/2)+(l-1)*n)
           prob_sig(1,k)=A*cos(2*pi*(f0-del_f/2+2*del_f*t(1,k)/Tm).*t(1,k));
        else
           prob_sig(1,k)=A*cos(2*pi*(f0+del_f/2-2*(del_f/Tm)*t(1,k-n/2+1)).*t(1,k));
        end
    end
end
 
figure
plot(prob_sig);
В коде вроде всё логично, но график строит дикий. Может кто подсказать, что может быть неверно.
0
Миниатюры
Создание ЧМ сигнала с заданным законом модуляции  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.06.2016, 08:25
Ответы с готовыми решениями:

Создание зашумленного сигнала
Помогите пожалуйста! Дали задание,на автомат,а в Simulink вообще ни разу не...

Создание ЛЧМ сигнала и запись в wav
Всем привет, интересует следующее: нужно создать ЛЧМ сигнал, с начальной...

Создание модели сложного сигнала на основе 16-позиционной М-последовательности
Здравствуйте). Очень нужна Ваша помощь.:cry: Необходимо создать математическую...

Измерить коэффициент модуляции
Всем привет! Нужна помощь в Matlab. Не получается сделать пункты (Представлены...

Нужно усложнить готовую задачу по индексной цифровой модуляции.
Есть готовая задача по индексной цифровой модуляции случайных чисел и...

8
R2D2
898 / 807 / 112
Регистрация: 23.11.2012
Сообщений: 2,387
09.06.2016, 20:21 2
Geliocoptr, а использовать для этих целей готовые матлабовские функции - не вариант?...
0
Geliocoptr
0 / 0 / 0
Регистрация: 09.06.2016
Сообщений: 4
10.06.2016, 09:43  [ТС] 3
Например какие? chirp не подходит, так как время начинает отсчитывается от 0 и при совмещении двух массивов(1го и 2го полупериода модуляции) теряется фаза. Как вариант попробовать через блок chirp в Simulink, но хотелось бы всё таки в М-файле всё сделать. Если есть ещё варианты - буду рад посмотреть.
0
R2D2
898 / 807 / 112
Регистрация: 23.11.2012
Сообщений: 2,387
10.06.2016, 12:51 4
Geliocoptr, например fmmod
0
averochkin
45 / 45 / 13
Регистрация: 05.01.2015
Сообщений: 153
11.06.2016, 15:29 5
Делайте через фазу. Фаза это интеграл от частоты.
0
Geliocoptr
0 / 0 / 0
Регистрация: 09.06.2016
Сообщений: 4
14.06.2016, 13:25  [ТС] 6
Опробовал оба метода - и fmmod, и через фазу, ни один не работает корректно.
Вариант с fmmod:
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Rmax=40;                    % Максимальное измеряемое расстояние
c=3*10^8;                   % Скорость света
f0=24*10^9;                 % Центральная частота
Fm=c/(4*Rmax);              % Частота модуляции
del_f=250*10^6;             % Девиации частоты
Tm=1/Fm;                    % Период модуляции
n=1000;                     % Число отсчётов
tm=0:Tm/n:Tm-Tm/n;          % Массив времени
r=40;                       % Расстояние до цели
td=2*r/c;                   % Время задержки
per=1;                      % Число периодов в сигнале
t=0:Tm/n:((per*Tm)-Tm/n);   % Время
A=1;                        % Амплитуда зонд-го сигнала
 
for k=1:n
    if k<(n/2)
       freq_m(1,k)=-del_f/2+2*del_f*t(1,k)/Tm;
    else
       freq_m(1,k)=+del_f/2-2*(del_f/Tm)*t(1,k-n/2+1);
    end
end
 
prob_sig=fmmod(freq_m,f0,2*f0,1);
 
figure
plot(prob_sig);
Вариант с фазой:
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
Rmax=40;                    % Максимальное измеряемое расстояние
c=3*10^8;                   % Скорость света
f0=24*10^9;                 % Центральная частота
Fm=c/(4*Rmax);              % Частота модуляции
del_f=250*10^6;             % Девиации частоты
Tm=1/Fm;                    % Период модуляции
n=1000;                     % Число отсчётов
tm=0:Tm/n:Tm-Tm/n;          % Массив времени
r=40;                       % Расстояние до цели
td=2*r/c;                   % Время задержки
per=1;                      % Число периодов в сигнале
t=0:Tm/n:((per*Tm)-Tm/n);   % Время
A=1;                        % Амплитуда зонд-го сигнала
 
for k=1:n
    if k<(n/2)
       freq_m(1,k)=-del_f/2+2*del_f*t(1,k)/Tm;
    else
       freq_m(1,k)=+del_f/2-2*(del_f/Tm)*t(1,k-n/2+1);
    end
end
 
for l=1:per
    omega_m(1,(1+(l-1)*n):n*l)=2*pi*freq_m;
 end
 
accum=0;
for k=1:n*per
    accum=accum+omega_m(1,k);
    phase_m(1,k)=accum;
end
 
figure
plot(phase_m);
 
% Зондирующий сигнал
 
prob_sig=A*cos(phase_m);
 
figure
plot(prob_sig);
1й график: вариант с fmmod
2й график: вариант с фазой
0
Миниатюры
Создание ЧМ сигнала с заданным законом модуляции   Создание ЧМ сигнала с заданным законом модуляции  
SSC
Эксперт по математике/физике
2698 / 1427 / 416
Регистрация: 09.04.2015
Сообщений: 3,926
14.06.2016, 14:52 7
Программный код из сообщения 1.
Я не знаю какой графмк Вы хотите получить, но из анализа Вашего кода.
График строится по 1000 точкам, за это же время аргумент косинуса изменяется от 0 до примерно 12700 периодов.
Тоесть график строится для функции косинуса при этом имеем одну точку на 13 периодов, естесттвенно получаем некоторый случайный процесс. Вам надо или увеничить число точек минимум раз в 50 или что-то исправить в функции.
0
Geliocoptr
0 / 0 / 0
Регистрация: 09.06.2016
Сообщений: 4
14.06.2016, 15:48  [ТС] 8
Спасибо за совет. Попытался увеличить количество точек - спектр получился похожим, но вот в дальнейшем получились совершенно не ожидаемые результаты.

А как бы вы задали ЧМ сигнал с законом симметричной пилы?
0
averochkin
45 / 45 / 13
Регистрация: 05.01.2015
Сообщений: 153
14.06.2016, 17:07 9
У меня как-то так

Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
clear;
F0=0.00;%НЕСУЩАЯ
Fd=50.0;%ДЕВИАЦИЯ
N=1000; %КОЛИЧЕСТВО ТОЧЕК ДИСКРЕТИЗАЦИИ
DT=0.001;%ИНТЕРВАЛ ДИСКРЕТИЗАЦИИ
k1=1:N/2;%ТОЧКИ ВОЗРАСТАНИЯ ЧАСТОТЫ
k2=N/2+1:N;%ТОЧКИ УБЫВАНИЯ ЧАСТОТЫ
FI1=2*pi*(F0*k1+(Fd/N)*k1.^2)*DT;%ФАЗА НА УЧАСТКЕ ВОЗРАСТАНИЯ ЧАСТОТЫ
S1=sin(FI1);
FI2=2*pi*(F0+Fd)*(k1)*DT-2*pi*(Fd/N)*(k1).^2*DT;%ФАЗА НА УЧАСТКЕ УБЫВАНИЯ ЧАСТОТЫ
S2=sin(FI2);
S=[S1 -S2];
0
14.06.2016, 17:07
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.06.2016, 17:07

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

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

Создание комплексного экспоненциального сигнала
Здравствуйте. Необходимо сгенерировать сигнал вида exp(j*10000*t). Период...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru