[an error occurred while processing this directive]
|
Ведь прореживание на 2 во временной области эквивалентно наложению (сложению) двух половин спектра. Прореживание на 4 - повторение только что описанной операции к полученному при прореживании на 2 результату.
Ниже следует матлабовский пример, показывающий, что даже если мне надо проредить в 4 раза широкополосный сигнал (зачем это надо - вопрос здесь не ставится - дело принципа) длиной 1024 отсчета, а у меня есть в распоряжении только его спектр, то сделать я это смогу, выполнив обратное БПФ всего от 256 отсчетов. Как получить эти отсчеты - см. в тексте.
Вначале как-то формируем спектр, соответствующий действительному сигналу. Затем формируем целевой сигнал (т.е. то, что нужно сделать, но "в лоб"). Затем показываем, что то же самое можно получить более быстро.
clear;
x0 = [1 0 2 2 2 0 0 1];
x = [];
for I = 1:128,
x = [x x0*(1+rand(1,1))];
end;
X = fft(x);
% The spectrum of X is somehow formed and it corresponds to real-signal
% with a guarantee.
% From this moment we start to play
x_target = real(ifft(X));
x_target_re = x_target(1:4:end);
figure(1);
grid on;
X_ALT = [X(1:512)+ (X(513:1:1024))] /2;
X_ALT = [X_ALT(1:256)+ X_ALT(257:1:512)] /2;
x_ = ifft(X_ALT);
x_alt = real(ifft(X_ALT));
hold on;
plot(x_alt, 'r');
plot(x_target_re);
plot(x_target_re-x_alt, 'g');
E-mail: info@telesys.ru