реклама на сайте
подробности

 
 
> Как объединить матрицы по чет не чет в Matlab
Acvarif
сообщение Sep 28 2016, 08:46
Сообщение #1


Знающий
****

Группа: Участник
Сообщений: 998
Регистрация: 27-08-08
Пользователь №: 39 850



Имеются две матрицы
A = [1,3,5,7];
B = [2,4,6,8];
Как в Матлаб объединить эти матрицы в С так чтобы элементы А стояли на нечетных местах в строке, а B на четных - С = [1,2,3,4,5,6,7,8]?

Спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
MiPe
сообщение Sep 28 2016, 13:15
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 17
Регистрация: 17-08-11
Пользователь №: 66 760



Давайте самостоятельно, это уже перестает быть интересным.

Прикрепленное изображение
Go to the top of the page
 
+Quote Post
Acvarif
сообщение Sep 28 2016, 13:30
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 998
Регистрация: 27-08-08
Пользователь №: 39 850



Да. Спасибо. Думаю справлюсь.

Сообщение отредактировал Acvarif - Sep 28 2016, 13:40
Go to the top of the page
 
+Quote Post
Acvarif
сообщение Sep 30 2016, 06:00
Сообщение #4


Знающий
****

Группа: Участник
Сообщений: 998
Регистрация: 27-08-08
Пользователь №: 39 850



Не получается.
CODE
%% инициализация

clc;
clear all;

f = 90000; % центральная частота Гц
fs = 360000; % частота дискретизации Гц
A = 1; % амплитуда сигнала
ts = 1/fs; % период одного дискрета
tm = 200; % количество проходов участка моделирования
td = 5; % коэффициент децимации
w=2*pi*f; % круговая частота 1
tmin = 0; % начальное время (начальная фаза)
tmax = tm*ts; % конечное время
offset = 2*pi/32; % один минимальный шаг смещения
step = 1; % множитель миним. шага смещения

% матрица коэффициентов 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];

lkf =length(kf); % количество коэффициентов
% матрица времени
t = linspace(tmin, tmax+tmin, fs*tmax+1);
% матрица сдвигов
t_offset = reshape(linspace(0, offset, 32), 32, 1);
% матрица сигналов (32 сигнала)
x = zeros(32,201);
toff = 1:32;
for toff = 1:32
x(toff,sm.gif = A*sin(w*t + step*offset*toff-offset);
x(toff,1:60) = 0;
x(toff, 140:201) = 0;
end

%% моделирование

z = zeros(32,lkf);
zr = zeros(32,200);
zrf = zeros(32,200);
Xf = zeros(32,200);

for tm_mod = 1:tm

for tf = 1:32
% поэлементное умножение
if tm_mod < 150
z = x(tf,tm_mod:(tm_mod+50)).*kf;
end
% матрица выходных данных КИХ 90 кГц 32 канала
zr(tf, tm_mod) = round(sum(z));
end

if tm_mod > 1
zrf(:,tm_mod-1) = 1i*zr(:,tm_mod-1) + zr(:,tm_mod-1);
% fft complex 32 точки от двух соседних столбцов
Xf(:,tm_mod-1) = fft(zrf(:,tm_mod-1), 32);
end

end

% fft 32 точки от двух соседних столбцов
Z = sqrt((real(Xf)).^2+(imag(Xf)).^2);
%[X, Y] = meshgrid([real(Xf(:,sm.gif,real(Xf(:,sm.gif))]);

% выборки по сигналу x(1)
figure(1)
plot(x(1,sm.gif, 'r');
hold on
stem(x(1,sm.gif);

% графика элементов массива zr
figure(2)
plot(zr(1,sm.gif, 'r'), grid;
hold on
stem(zr(1,sm.gif);

% fft
figure(3)
plot3(X, Y, Z);
axis([1,32 1,200 1,10000])

Не врубаюсь как правильно сформировать X и Y для plot3...

Сообщение отредактировал Acvarif - Sep 30 2016, 07:40
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 12th August 2025 - 20:49
Рейтинг@Mail.ru


Страница сгенерированна за 0.01454 секунд с 7
ELECTRONIX ©2004-2016