Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.75/68: Рейтинг темы: голосов - 68, средняя оценка - 4.75
2 / 2 / 0
Регистрация: 28.09.2014
Сообщений: 229
05.10.2014, 18:08  [ТС]
Студворк — интернет-сервис помощи студентам
Программа рассчитывает и строит первый график правильно.
clear, clc

Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
G=6.67384e-20;
M=5.9726e24;
f0=1.6e9;
R=6371;
c=3e8;
h=300:100:1500;
a=0:0.1309:3.14;
 
 
for i = 1:length(h)
    V=(G*M/(R+h(i)))^(1/2);
    for j = 1:length(a)
        t(j)=(a(j)*(R+h(i)))/V;
        fd(j,i)=((V*R*f0*cos(a(j))))/((R+h(i))*c);
   
           end;
end;
plot(t,fd)
legend(strcat('h=',num2str(h')))
xlabel('t,s')
ylabel('fd,kHz')
Но дальше часть которая начинает рассчитывать производную неправильна. График должен лежать в положительной части координат, но программа рассчитывает ее в отрицательной. Ошибка только в формуле производной и построении графика второго. Что мне сделать?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.10.2014, 18:08
Ответы с готовыми решениями:

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

Рассчитать частоту и глубину звука по формулам эффекта Допплера
Добрые люди помогите мне пожалуйста! Мне надо рассчитать глубину и частоту звука, по формулам Допплера, источник и приёмник двигаться...

Найти относительное изменение частоты излучения звезды вследствие эффекта Допплера
Здравствуйте! :) Пожалуйста, помогите с решением задачи. Звезда движется в направлении наблюдателя со скоростью 240 км/с. чему равно...

140
 Аватар для Зосима
5246 / 3574 / 379
Регистрация: 02.04.2012
Сообщений: 6,477
Записей в блоге: 18
05.10.2014, 18:22
1. первый графтк в этой программе НЕ правильный!!!
2. производные уменьшающихся функций - отрицательные!!!
3. выложи формулы!

Добавлено через 4 минуты
*млжет тебе не производная шужна, а ширина полосы частот dF = max(fd)-min(fd) ?
0
2 / 2 / 0
Регистрация: 28.09.2014
Сообщений: 229
05.10.2014, 18:25  [ТС]
1. V=(G*M/(R+h))^(1/2) - формула скорости спутника. Зависит от высоты
2. t=(a*(R+h))/V - формула времени. Время меняется в зависимости от угла расположения спутника относительно приемника
3. fd=((V*R*f0*cos(a)))/((R+h)*c) - формула частоты. Она зависит от изменения высоты и угла.

Добавлено через 48 секунд
Мне нужно рассчитать скорость изменения частоты
0
 Аватар для Зосима
5246 / 3574 / 379
Регистрация: 02.04.2012
Сообщений: 6,477
Записей в блоге: 18
05.10.2014, 18:41
хорошо а можно еще на экселевский файл глянуть?
*минус в производной означает отрицательную скорость изменения, т.е. частота уменьшается. можно модуль взять, если знак не важен
dFdt = abs( diff(fd)./diff(t) );
В данном случае мы рассчитываем произволные и получаем графики мгновенных скоростей изменения, однако можно посчитать среднюю скорость (поделить размах частоты на диапазон времени (max(fd)-min(fd))/(max(t)-min(t)) но в этом случае получим не 13 кривых, а 13 чисел
0
2 / 2 / 0
Регистрация: 28.09.2014
Сообщений: 229
05.10.2014, 18:49  [ТС]
В эксель файле, я рассчитывала частоты для каждой высоты. Но для того чтобы рассчитать скорость изменения частоты, я просто потом делила значения частоты на время
Вложения
Тип файла: xlsx Mappe1.xlsx (18.5 Кб, 6 просмотров)
0
 Аватар для Зосима
5246 / 3574 / 379
Регистрация: 02.04.2012
Сообщений: 6,477
Записей в блоге: 18
05.10.2014, 20:43
Цитата Сообщение от Asai92 Посмотреть сообщение
1. V=(G*M/(R+h))^(1/2) - формула скорости спутника. Зависит от высоты
2. t=(a*(R+h))/V - формула времени. Время меняется в зависимости от угла расположения спутника относительно приемника
3. fd=((V*R*f0*cos(a)))/((R+h)*c) - формула частоты. Она зависит от изменения высоты и угла.
если так, то должно быть:
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
clear, clc
 
G=6.67384e-11;
M=5.9726e24;
f0=1.6e9;
R=6371;
c=3e8;
h=300:100:1500;
a=0:pi/500:pi;
t = zeros(length(a),length(h));
Fd = zeros(size(t));
for i = 1:length(h)
    V = sqrt(G*M/(R+h(i)));
    t(:,i) = a*(R+h(i))/V;
    Fd(:,i)= V*R*f0*cos(a) / ((R+h(i))*c);
end;
plot(t,Fd)
legend(strcat('h=',num2str(h')))
xlabel('t')
ylabel('fd')
 
dFdt = diff(Fd) ./ diff(t); % производная
tt = cumsum(diff(t)); % вспомогательный маив времени
 
figure
plot(tt,dFdt)
legend(strcat('h=',num2str(h')))
xlabel('t')
ylabel('dFdt')


просто потом делила значения частоты на время
не, так скорость/производная не считаются
0
2 / 2 / 0
Регистрация: 28.09.2014
Сообщений: 229
24.11.2014, 10:51  [ТС]
Привет Всем. Я тут начала анализ эффекта Доплера. Хочу проанализировать его влияние на смещение частоты сигнала. Написала начало программы. Подскажите правильно ли я начала?
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
clear all; 
close all;
clc;
format longe;
f=50; 
Fs=30*f; 
Ts=1/Fs; 
Fc=1.6e9;
A=1; 
 
alfa=0; 
c=3e8; 
 
Speed=c/f;
fd=((Speed*(Fc+f)*cos(alfa(j))))/c;
  
t=(0:1/Fs:1);
N = length(t);
for i=1:4;
    fi=(2*i-1)*(pi/4);
    s=A*cos(2*pi*(Fc+f)*t+fi);
    FF=fft(s);
    s2=ifft(FF);
    s3=real(s2)*exp(j*2*pi*(Fc+f)*t);
 
x=s3+randn(1,length(t));
end;
Spectr=fft(x); 
SpectrSignal=abs(Spectr);
plot(SpectrSignal)
0
24.11.2014, 20:04

Не по теме:

Asai92, вот бы еще комментарии... :-[

0
2 / 2 / 0
Регистрация: 28.09.2014
Сообщений: 229
25.11.2014, 10:51  [ТС]
Привет Всем. Я тут начала анализ эффекта Доплера. Хочу проанализировать его влияние на смещение частоты сигнала. Написала начало программы. Подскажите правильно ли я начала?
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
clear all; 
close all;
clc;
format longe;
f=50; 
Fs=30*f; 
Ts=1/Fs; 
Fc=1.6e9;
A=1; 
 
alfa=0; 
c=3e8; 
 
Speed=c/f;
fd=((Speed*(Fc+f)*cos(alfa(j))))/c;
  
t=(0:1/Fs:1);
N = length(t);
for i=1:4;
    fi=(2*i-1)*(pi/4);
    s=A*cos(2*pi*(Fc+f)*t+fi);
    FF=fft(s);
    s2=ifft(FF);
    s3=real(s2)*exp(j*2*pi*(Fc+f)*t);
 
x=s3+randn(1,length(t));
end;
Spectr=fft(x); 
SpectrSignal=abs(Spectr);
plot(SpectrSignal)
0
 Аватар для Зосима
5246 / 3574 / 379
Регистрация: 02.04.2012
Сообщений: 6,477
Записей в блоге: 18
25.11.2014, 14:19
Трудно сказать правильно или нет без описания программы (мне, например, не очень понятно, что там происходит) Спинным мозгом чувствую, что когда ты напишешь комментарии и пояснения к коду, то сама поймешь правильно или нет
0
2 / 2 / 0
Регистрация: 28.09.2014
Сообщений: 229
25.11.2014, 14:29  [ТС]
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
clear all; 
close all;
clc;
format longe;
f=50; %частота сигнала%
Fs=30*f; %частота дискретизации%
Ts=1/Fs; %период дискретизации%
Fc=1.6e9;%частота несущая%
A=1; %амплитуда сигнала%
 
alfa=0; %угол%
c=3e8; %скорость света%
 
Speed=c/f;
fd=((Speed*(Fc+f)*cos(alfa(j))))/c;%доплеровский сдвиг %
  
t=(0:1/Fs:1);%время сигнала%
N = length(t); %длина сигнала%
for i=1:4;
    fi=(2*i-1)*(pi/4);% фаза%
    s1(j,i)=A*cos(2*pi*(Fc-Fd(j,i)+F)); %сигнал%
    s2(j,i)=(A*cos(2*pi*(Fc-Fd(j,i)+F)))*exp(2*pi*(Fc))%умноение на комплекксную составляющую%
    x(j,i)=s2+randn(size(t))%сигнал шум%
    %фурье преобразование и амплитудный спектр%
    NFFT = 2^nextpow2(L);
FrequencyAxe=Fs*linspace(0,1,NFFT);
Spectr=(1/NFFT).*fft(Signal3, NFFT); 
SpectrSignal=abs(Spectr(1:NFFT))
 
PhaseSpectr=angle*fft(Spectr,Fftl);%фазовый спектр%
end;
%графики спектров %
plot(SpectrSignal,w);
figure
plot(PhaseSpectr,w);
0
2 / 2 / 0
Регистрация: 28.09.2014
Сообщений: 229
25.11.2014, 14:34  [ТС]
Это схема
Миниатюры
Эффект Допплера и его компенсация  
0
 Аватар для Зосима
5246 / 3574 / 379
Регистрация: 02.04.2012
Сообщений: 6,477
Записей в блоге: 18
25.11.2014, 14:46
строки 20-22 можешь пояснить? Поидее мы должны задать скорость и по ней вычислить сдвиг частоты.
и где возникает Signal3 ?

*еще меня смущает что у нас частота дискретизации 1500, а несущая 1е9
0
2 / 2 / 0
Регистрация: 28.09.2014
Сообщений: 229
25.11.2014, 15:30  [ТС]
ооо, вот и ошибка моя...
Вот сигнал fi нужно вообще убрать. Ошибка моя. 21- сам сигнал, 22 - умножение его на комплексную составляющую ( как показано на схеме)

Касательно , частоты дискретизации - я построила спектр сигнала по теореме Котелника нашла ее. Не правильно?
0
 Аватар для Зосима
5246 / 3574 / 379
Регистрация: 02.04.2012
Сообщений: 6,477
Записей в блоге: 18
25.11.2014, 15:38
Если работать только с информационным низкочастотным сигналом, то такой частоты дискретизации вполне хватит. Если же "пересаживать" его на несущую, тогда частоту дискретизации нужно брать, отталкиваясь от несущей.

Эффект Допплера заключается в смещении спектра по оси частот (без изменения формы).
Пусть у нас есть отсчеты сигнала x, и мы взяли дискретное преобразование Фурье(ДПФ) X=fft(x). Особенностью ДПФ является то, что но не привязано к частоте! но если изначально отсчеты шли с частотой, например, fs, то из-за доплеровского сдвига частота дискретизации станет fd, соответственно изменится период дискретизации. Но сами отсчеты сигнала будут теже
(собственно, это тоже самое, что и сдвиг частоты внутри сигнала)
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
clear, clc
 
 
fs = 100; % частота дискретизации
ts = 1/fs; % период дискретизации
F = 1;
 
t = 0:ts:2;
s = sin(2*pi*F*t);
 
plot(t,s), hold on
 
v = 0.1; % скорость источника
c = 3; % скорось волны
 
fd = fs/(1-v/c) % частота дискретизации после эффекта
tsd = 1/fd; % новый период дискретизации
 
t1 = 0: tsd: tsd*(length(s)-1); % новый массив времени
 
plot(t1,s, 'r') % стоит заметть, что отсчеты сигнала остались без изменения
legend('исходный сигнал','эффект Доплера')
0
2 / 2 / 0
Регистрация: 28.09.2014
Сообщений: 229
25.11.2014, 15:48  [ТС]
Т.е проанализировать влияние Эфф Доплера на сигнал - это построить спектр сигнала( с w=2*pi*f*t) и сигнала( у которого w=2*pi*(f+fd)*t), правильно?
0
 Аватар для Зосима
5246 / 3574 / 379
Регистрация: 02.04.2012
Сообщений: 6,477
Записей в блоге: 18
25.11.2014, 16:10
Asai92, если честно, я не знаю наверняка, что преподаватель подразумевает под фразой "проанализировать виляние" но если всего лишь сравнить спектры, то разница опять же только в значениях на оси Х:

если у исходного сигнала набор часот был: FrequencyAxe = Fs*linspace(0,1,NFFT);, то после эффекта станет:
DoplerFrequencyAxe = Fd*linspace(0,1,NFFT);

я посмотрел в хелпе, как там задается набор частот, и написал такую программку:
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
clear, clc
 
 
fs = 10; % частота дискретизации
ts = 1/fs; % период дискретизации
F = 1;
 
t = 0:ts:100;
s = sin(2*pi*F*t);
 
NFFT = 2^nextpow2(length(s)); 
N2 = NFFT/2+1;
 
S = fft(s,NFFT)/length(s);
 
fff = fs/2*linspace(0,1,N2);
Sp = abs(S(1:N2));
 
plot(fff, Sp), hold on
 
v = 0.5; % скорость источника
c = 3; % скорось волны
fd = fs/(1-v/c); % частота дискретизации после эффекта
ffd = fd/2*linspace(0,1,N2);;
 
plot(ffd, Sp,'r')
xlim([0, 5*F])
legend('Исходный сигнал','Допплер')
Миниатюры
Эффект Допплера и его компенсация  
0
2 / 2 / 0
Регистрация: 28.09.2014
Сообщений: 229
25.11.2014, 16:21  [ТС]
Можете пояснить 12, 16-17 строки?

Добавлено через 1 минуту
касательно анализа.Мне нужно рассмотреть девиацию частоты сигнала под влиянием Эффекта Доппоера
0
 Аватар для Зосима
5246 / 3574 / 379
Регистрация: 02.04.2012
Сообщений: 6,477
Записей в блоге: 18
25.11.2014, 16:42
Цитата Сообщение от Asai92 Посмотреть сообщение
Можете пояснить 12, 16-17 строки?
Суть в том, что после ДПФ у нас получается две половинки спектра: от начала до середины и от середины к концу. Поэтому мы строим только половинку от 1 до N2: S(1:N2), где N2 - это номер серединного элемента. Исходя из того, что срединный элемент находится на половине частоты дискретизации fs/2, то соответственно составляем набор частот (эту частоту умножаем на массив от 0 до 1 с нужным числом точек разбиения)

Добавлено через 12 минут
Девиация частоты - это разность частот, т.е. если ДО частота была fs, а ПОСЛЕ стала fd, то девиация равна dev=(fd-fs) или
https://www.cyberforum.ru/cgi-bin/latex.cgi?dev = \frac{fs}{ \left( 1-\frac{v}{c}\right)} - fs = fs \frac{v}{c-v}
0
2 / 2 / 0
Регистрация: 28.09.2014
Сообщений: 229
25.11.2014, 17:39  [ТС]
Вопрос, конечно , не по теме. Есть ли возможность по рисунку сигнала определить его математическую запись?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.11.2014, 17:39
Помогаю со студенческими работами здесь

Двухмерный массив и его вывод на экран после каждой итарации(эффект видео)
Есть двухмерный массив. Есть цикл в котором проводятся над ним преобразования, одно, два, 10, 100 преобразований, я часто манипулирую этой...

Как сделать эффект размытия (эффект стекла) в Xaml?
Как сделать эффект размытия(эффект стекла) в Xaml?

Компенсация? (многабукав)
Здравствуйте, уважаемые! У меня в жизни есть два любимых дела, прямо оооочень любимых - это программирование и кулинария. Начну со...

Компенсация от хостера
Добрый день. Недавно, после печального опыта использования дешевого "хостинга" (пишу в ковычках т.к. это было одно название, а не...

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


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Нейросеть на алгоритме "эстафета хвоста" как перспектива.
Hrethgir 06.05.2026
На десерт, когда запущу сервер. Статья тут https:/ / habr. com/ ru/ articles/ 1030914/ . Автор я сам, нейросеть только помогает в вопросах которые мне не известны - не знаю людей которые знали-бы. . .
Асинхронный приём данных из COM-порта
Argus19 01.05.2026
Асинхронный приём данных из COM-порта Купил на aliexpress термопринтер QR701. Он оказался странным. Поключил к Arduino Nano. Был очень удивлён. Наотрез отказывается печатать русские буквы. Чтобы. . .
попытка написать игровой сервер на C++
pyirrlicht 29.04.2026
попытка написать игровой сервер на плюсах с открытым бесконечным миром. возможно получится прикрутить интерпретатор питон для кастомизации игровой логики. что есть на текущий момент:. . .
Контроль уникальности выбранного документа-основания при изменении реквизита
Maks 28.04.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРемонтСпецтехники", разработанного в КА2. Задача: уведомлять пользователя, если указанная заявка (документ-основание). . .
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru