%% инициализация
CODE
clc;
clear all;
f = 90000; % центральная частота Гц
fs = 720000; % удвоенная частота дискретизации Гц
A = 2047; % амплитуда сигнала
ts = 1/fs; % период одного дискрета
tm = 50; % количество проходов участка моделирования
tm_test = tm*8; % общее количество проходов моделирования
td = 5; % коэффициент децимации
w=2*pi*f; % круговая частота
tmin = 0; % начальное время (начальная фаза)
tmax = tm*ts; % конечное время
tmax_test = tm_test*ts; % конечное время
% матрица коэффициентов 51 коэффициент (Equiripple 75-85-95-105 кГц)
kf = [0,-834,0,283,0,-202,0,8,0,307,0,-738,0,1260,0,-1836,0,2417, ...
0,-2947,0,3372,0,-3647,0,3742,0,-3647,0,3372,0,-2947,0, ...
2417,0,-1836,0,1260,0,-738,0,307,0,8,0,-202,0,283,0,-834,0];
% матрица времени
t=linspace(tmin, tmax_test+tmin, fs*tmax_test+1);
% нечетные индексы матрицы времени t
t_odd = 1:2:length(t);
% четные индексы матрицы времени t
t_even = 2:2:length(t);
% матрица сигнала (канал 1 фаза 0)
x1 = A*sin(w*t(t_odd));
x1(1:60) = 0;
x1(140:201) = 0;
% матрица сигнала (канал 2 фаза pi/4)
x2 = A*sin(w*t(t_even));
x2(1:60) = 0;
x2(140:201) = 0;
%% моделирование
zr1=zeros(200,16);
zr2=zeros(200,16);
for tm_all = 1:16
for tm_mod = 1:tm_test/2
% поэлементное умножение
if tm_mod < 150
z1 = x1(tm_mod:(tm_mod+50)).*kf;
z2 = x2(tm_mod:(tm_mod+50)).*kf;
end
% матрица выходных данных КИХ канал 1
zr1(tm_mod,tm_all) = round(sum(z1));
% матрица выходных данных КИХ канал 2
zr2(tm_mod,tm_all) = round(sum(z2));
end
end
% максимальное значение
fprintf('Максимальное значение канал 1 %d\n', max(zr1(:,1)));
fprintf('Максимальное значение канал 2 %d\n', max(zr2(:,1)));
fprintf('\n');
%% графика
% выборки по сигналу x1
figure(1)
plot(x1, 'r');
hold on
stem(x1);
% выборки по сигналу x2
figure(2)
plot(x2, 'r');
hold on
stem(x2);
% графика элементов массива zr1
figure(3)
plot(zr1, 'r'), grid;
hold on
stem(zr1);
% графика элементов массива zr2
figure(4)
plot(zr2, 'r');
hold on
stem(zr2);
clear all;
f = 90000; % центральная частота Гц
fs = 720000; % удвоенная частота дискретизации Гц
A = 2047; % амплитуда сигнала
ts = 1/fs; % период одного дискрета
tm = 50; % количество проходов участка моделирования
tm_test = tm*8; % общее количество проходов моделирования
td = 5; % коэффициент децимации
w=2*pi*f; % круговая частота
tmin = 0; % начальное время (начальная фаза)
tmax = tm*ts; % конечное время
tmax_test = tm_test*ts; % конечное время
% матрица коэффициентов 51 коэффициент (Equiripple 75-85-95-105 кГц)
kf = [0,-834,0,283,0,-202,0,8,0,307,0,-738,0,1260,0,-1836,0,2417, ...
0,-2947,0,3372,0,-3647,0,3742,0,-3647,0,3372,0,-2947,0, ...
2417,0,-1836,0,1260,0,-738,0,307,0,8,0,-202,0,283,0,-834,0];
% матрица времени
t=linspace(tmin, tmax_test+tmin, fs*tmax_test+1);
% нечетные индексы матрицы времени t
t_odd = 1:2:length(t);
% четные индексы матрицы времени t
t_even = 2:2:length(t);
% матрица сигнала (канал 1 фаза 0)
x1 = A*sin(w*t(t_odd));
x1(1:60) = 0;
x1(140:201) = 0;
% матрица сигнала (канал 2 фаза pi/4)
x2 = A*sin(w*t(t_even));
x2(1:60) = 0;
x2(140:201) = 0;
%% моделирование
zr1=zeros(200,16);
zr2=zeros(200,16);
for tm_all = 1:16
for tm_mod = 1:tm_test/2
% поэлементное умножение
if tm_mod < 150
z1 = x1(tm_mod:(tm_mod+50)).*kf;
z2 = x2(tm_mod:(tm_mod+50)).*kf;
end
% матрица выходных данных КИХ канал 1
zr1(tm_mod,tm_all) = round(sum(z1));
% матрица выходных данных КИХ канал 2
zr2(tm_mod,tm_all) = round(sum(z2));
end
end
% максимальное значение
fprintf('Максимальное значение канал 1 %d\n', max(zr1(:,1)));
fprintf('Максимальное значение канал 2 %d\n', max(zr2(:,1)));
fprintf('\n');
%% графика
% выборки по сигналу x1
figure(1)
plot(x1, 'r');
hold on
stem(x1);
% выборки по сигналу x2
figure(2)
plot(x2, 'r');
hold on
stem(x2);
% графика элементов массива zr1
figure(3)
plot(zr1, 'r'), grid;
hold on
stem(zr1);
% графика элементов массива zr2
figure(4)
plot(zr2, 'r');
hold on
stem(zr2);
Стоит задача нарисовать в трехмерном варианте значения двумерной матрицы zr1. При этом по оси х должны быть номера столбцов матрицы, по оси y номера строк. По оси z - значения данных в строках по каждому столбцу. Подскажите пожалуйста как это оформить в код для функции plot3?