Цитата(MiPe @ Sep 28 2016, 12:11)

Код
C = reshape([A;B], 1, [])
Спасибо. Это помогло объединить две матрицы не вдаваясь в циклы.
По поводу головоломок...
CODE
%% инициализация
clc;
clear all;
f1 = 90000; % центральная частота Гц
fs = 360000; % частота дискретизации Гц
A = 2047; % амплитуда сигнала
ts = 1/fs; % период одного дискрета
tm = 200; % количество проходов участка моделирования
td = 5; % коэффициент децимации
w1=2*pi*f1; % круговая частота 1
tmin = 0; % начальное время (начальная фаза)
tmax = tm*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];
%lkf =length(kf); % количество коэффициентов
% матрица времени
t=linspace(tmin, tmax+tmin, fs*tmax+1);
% матрица выборок сигнала 90 кГц нач. сдвиг 0
x0 = A*sin(w1*t);
x0(1:60) = 0;
x0(140:201) = 0;
% матрица выборок сигнала 90 кГц нач. сдвиг pi/4
x45 = A*sin(w1*t + pi/4);
x45(1:60) = 0;
x45(140:201) = 0;
%% моделирование
z0 = zeros(1,51);
z45 = zeros(1,51);
zr0 = zeros(16,200);
zr45 = zeros(16,200);
zr0f = zeros(16,200);
for tm_mod = 1:tm
% поэлементное умножение
if tm_mod < 150
z0 = x0(tm_mod:(tm_mod+50)).*kf;
z45 = x45(tm_mod:(tm_mod+50)).*kf;
end
% матрица выходных данных КИХ 90 кГц смещение 0 и 45
for tm_nb = 1:16
zr0(tm_nb, tm_mod) = round(sum(z0));
zr45(tm_nb, tm_mod) = round(sum(z45));
% фазировка
if tm_mod > 1
zr0f(tm_nb, tm_mod - 1) = (zr0(tm_nb, tm_mod - 1) + zr0(tm_nb, tm_mod))*0.707;
end
end
end
zr0fn = reshape(zr0f, 200, 16);
zr45n = reshape(zr45, 200, 16);
% матрица выходных данных 32 канала
zrf = reshape([zr0fn;zr45n], 200, 32);
...
Имеется матрица zrf - выходные данные цифровых фильтров (32 канала-столбца) Всего 200 элементов-строк.
Элементы-столбцы четных строк - входные данные для real входа БПФ на 32 точки. Элементы-столбцы нечетных строк - входные данные для image входа БПФ32 точки.
Как в Матлаб выглядит запись функции fft если имются данные для real и image входов БПФ?
Записал так
Код
tf = 2:200;
zrfn(tf - 1,:) = 1i*zrf(tf - 1,:) + zrf(tf,:);
Xf = fft(zrfn, 32);
Правильна-ли такая запись?
Сообщение отредактировал Acvarif - Sep 28 2016, 12:28