Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.92/26: Рейтинг темы: голосов - 26, средняя оценка - 4.92
8 / 6 / 2
Регистрация: 03.05.2016
Сообщений: 242
27.11.2020, 00:20  [ТС]
Студворк — интернет-сервис помощи студентам
tokrab,

Вот полный код, получилось АКФ построить через autocorr, но по значениям, маскималльное единица.... И получается, в двух циклах суммирования, во внутреннем цикле надо сделать верхний предел не константой...


Кликните здесь для просмотра всего текста
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
clc
 
close 
clear
% узкополосная фильтрация
x0 = 1.5;
w0 = 2*pi*60;
t = transpose(0:0.001:0.8);
N = 4096;
 
n = length(t);
Y = zeros(n,1);
for ii = 1:n
    if t(ii) >= 0 && t(ii) <= 0.4
        Y(ii) = 0;
    elseif t(ii) > 0.4  && t(ii) <= 0.8 
        Y(ii) = x0*cos(w0*t(ii));
    end
end
figure (1)
plot (t,Y)
 
% проводим дискретизацию по времени
n1 = transpose(0:N-1);
tt = n1.*(t(end)/N);
Y1 = zeros(n,1);
for ii = 1:length(n1)
    if tt(ii) >= 0 && tt(ii) <= 0.4
        Y1(ii) = 0;
    elseif tt(ii) > 0.4  && tt(ii) <= 0.8 
        Y1(ii) = x0*cos(w0*tt(ii));
    end
end
figure (2)
plot(tt,Y1)
 
 
% накладываем гауссовский белый шум
sigma = 2;
sz = size(n1);
Noize = normrnd(0,sigma,sz(1),sz(2));
Z = Y1+Noize;
Z1 = Z-Y1;
figure (3)
plot(tt,Z,'k-')
 
 
% подвергаем преобразованию Фурье
%L = [1:N-1]';
%nfft = length(L);
ns = (length(tt));
ks=1/tt(2);
YY = (abs(fft(Y1))/(ns));
YY=YY(1:ns/2+1);
YY(2:end-1) = 2*YY(2:end-1);
ZZ = (abs(fft(Z))/(ns));
ZZ=ZZ(1:ns/2+1);
ZZ(2:end-1) = 2*ZZ(2:end-1);
k=ks*(0:ns/2)/ns;
figure (4)
grid on;
plot(k,YY/2);
hold on
stem(k,ZZ/2);
hold on;
xlim([0 120])
 
% обнуляем те элменты к спектральной функции...
%  к, где спектр полезного сигнала  не  сильно отличается от нуля, и
%  совершаем обратное преобразование Фурье
YY1 = zeros(1,length(ns));
for i = 1:length(ns)
    if ns(i) >= 40 && ns(i) <= 80
        YY1(i) = YY;
    elseif ns(i) < 40  && ns(i) > 80 
        YY1(i) = 0;
    end
end
% обатное преобразование
y = ifft(YY1,ns);
figure (5)
plot(tt,Z,'k-',tt,y+6,'r--')  %,tt,y+6,'r--')
 
 
%строим две АКФ
ZZ1 = Z-Y1; % чистый шум
 
kk = 1:ns/2;
RR = zeros(1,(ns/2));
for k = 1:ns/2
    for i = 1:(N-ns/2-i)
    RR(k) = Z(i)*Z(i+k);
    end
end
% RR = (1/(N-k))*RR;
 
 
RR1 = zeros(1,(ns/2));
for k = 1:ns/2
    for i = 1:(N-ns/2-i)
    RR1(k) = ZZ1(i)*ZZ1(i+k);
    end
end
% RR1 = (1/(N-k))*RR1;
plot (k,RR1,k,RR1);
 
 
 
% Corr_auto1 = autocorr(Z);
% Corr_auto2 = autocorr(Z1);
% figure (6)
% r1 = autocorr(Z,'NumLags',300,'NumSTD',2);
% r2 = autocorr(Z1,'NumLags',300,'NumSTD',2);
% plot (1:length(r1),r1,1:length(r2),r2)
% ylim([-1 1]);
 
% plot (length(Corr_auto1),Corr_auto1,length(Corr_auto2),Corr_auto2);
 
 
 
% clear
% clc
TMAX=1;
N=4096;
dt=TMAX/N;
tn=0:dt:TMAX;
A=1;
% Сигнал
% sig=A*(tn>= 0.5)-(A*(tn >= 1));  %+(-A*(tn >= 1));
sig=A*(tn>=0.5).*(exp(-(5*(tn-0.5).*(tn>=0.5))));
% Сигнал + помеха
x=sig+1*randn(N+1,1)'; % сигнал с шумом
x1 = x-sig; % шум без полезного сигнала
L=length(sig); %длина паттерна
N=length(x); %длина входного сигнала
y=zeros(1,N);
y1=zeros(1,N);
for i=1:N
    for p=1:L
        if (i-p)>0
        %y(i)=y(i)+x(i-p)*sig(N-p)*dt;
%         y(i)=y(i-p)+x(p)*dt;
%         y1(i)=y(i-p)+x1(p)*dt;
        y(p)=y(i-p)+x(p)*dt;
        y1(p)=y(i-p)+x1(p)*dt;
        end
    end
end
figure(7)
% вывод результата
subplot (4,1,1); plot(tn,sig);grid;title('signal') % шаблон сигнала
subplot (4,1,2); plot(tn,x);grid;title('signal+noise') % реальный сигнал
subplot (4,1,3); plot(tn,y);grid;title('filter output') % выход фильтр
subplot (4,1,4); plot(tn,y1);grid;title('filter output without noise') % выход фильтра без учета шума


Добавлено через 1 минуту
tokrab,
Обратное преобразование все равно не строится... Не удается получить такой картинки, после обнуления составляющих, как это в маткаде для YYk
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.11.2020, 00:20
Ответы с готовыми решениями:

Решение задачи в MatLab
Подскажите пожалуйста что с этим делать? написать программу я еще как-то смогу, но как вывести формулы, что за выбор метода решения, что за...

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

Решение задачи из Mathcad в Matlab
Данную задачу в Mathcad я решил, а вот в Matlab - не знаю как решать, так как для меня это новая среда. На первом скрине - постановка самой...

24
574 / 363 / 186
Регистрация: 11.01.2019
Сообщений: 1,220
27.11.2020, 21:26
Цитата Сообщение от dux99 Посмотреть сообщение
Вот полный код,
Утомляет и нет желания смотреть длинный код. Какие задачи вы решаете, и для чего они объединены в одном коде ? для чего строки 11-21, для чего формируется Y, если не используется, и зачем график фигура(1) ? Графики надо подписать, что выводится
Цитата Сообщение от dux99 Посмотреть сообщение
Обратное преобразование все равно не строится...
и не будет, почитайте уже форум, книжки, ifft работает с комплексным спектром.
0
8 / 6 / 2
Регистрация: 03.05.2016
Сообщений: 242
27.11.2020, 21:40  [ТС]
tokrab,


Сначала строится исходный график функции (11-21 строки), затем уже строится эта функция, но дискретизованная по времени, там есть такие пункты в методичке..

Я Вас понимаю, уважаемый tokrab! Так он и работает с комплексным спектром, ну и мне надо применить его к комплексному спектру, но обнулить те компоненты k, где значение амплитудного спектра полезного сигнала существенно не отличен от нуля, далее я обнуляю те компоненты, где соблюдено данное условие, я это и пытаюсь сделать.
0
574 / 363 / 186
Регистрация: 11.01.2019
Сообщений: 1,220
27.11.2020, 22:56
Цитата Сообщение от dux99 Посмотреть сообщение
затем уже строится эта функция, но дискретизованная по времени,
Y и Y1, и первая и вторая дискретизированы по времени. И зачем нужна Y ? Чтоб побольше кода было ?
0
8 / 6 / 2
Регистрация: 03.05.2016
Сообщений: 242
27.11.2020, 23:23  [ТС]
tokrab,
Да по сути не нужна, но в методичке есть такой пункт

Добавлено через 24 минуты
tokrab,

хотя по логике 11-21 можно и убрать, тут Вы правы!

tokrab,

Долго, но верно, АКФ построена и соответсвенно ОБПФ с обнулением
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.11.2020, 23:23

Решение задачи Линейного программирования в Matlab
Доброго времени суток ! Помоги пожалуйста понять чего мне не хватает в моем решении задачи в Матлабе. Есть математическая модель...

Решение краевой задачи (bvp4c matlab)
Имеется система дифференциальных уравнений. Необходимо решить краевую задачу - заданы некоторые начальные и некоторые конечные значения....

Решение задачи об отражении в МП заряженной частицы (matlab)
Доброго времени суток. Нужно решить задачу: Написать программу для моделирования отражения заряженной частицы от однородного магнитного...

Решение задачи Коши методом Рунге-Кутта 4 порядка в MatLab
Здравствуйте подскажите, пожалуйста как можно вывести численные расчета на экран Дано задача Коши y'=y(1-x);y(0)=1 в интервале ,...

Решение задачи Коши методом Рунге-Кутта 4 порядка в MatLab
Здраствуйте, Недавно начал изучать матлаб. Целый день мучаюсь с этой задачей. Дано: x'' + x' +2x +x^3 = 5sin(t) Надо...


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

Или воспользуйтесь поиском по форуму:
25
Ответ Создать тему
Новые блоги и статьи
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации: 1. Вернуть возможность использования знаков | 1 l I;. . .
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С. Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию? Фраза «Любая достаточно развитая технология неотличима от магии». . .
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль? Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология. «Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
Генератор паролей (вариант №2)
Maks 30.10.2026
Обновленная версия ранее созданной обработки. Добавлены следующие реквизиты типа Булево: - Буквы; - Цифры; - Символы. Изменена логика команды "Сгенерировать" и процедуры "ПриОткрытии":. . .
Генератор паролей (вариант №1)
Maks 29.10.2026
Реализация из решения ниже выполнена исключительно по моей инициативе, дабы облегчить себе работу в создании паролей для администрируемых мною сервисов и пользователей. Самым главным критерием для. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru