Вейвлет-спектр энергии шума имеет ступени

Обсуждение вопросов, связанных с другими тулбоксами

Модератор: Admin

Benjamin
Пользователь
Сообщения: 10
Зарегистрирован: Чт янв 17, 2019 5:54 am

Вейвлет-спектр энергии шума имеет ступени

Сообщение Benjamin » Чт янв 17, 2019 6:33 am

В пакетном вейвлете выполняю декомпозицию сигнала (шумы) до шестого уровня. В последнем уровне выбираю все 64 узла. Каждый узел содержит отсчеты, возвожу каждый отсчет в квадрат и складываю. Получается энергия сигнала в данном узле. Строю график: по Х-номер узла, по Y-величина энергии.
В результате получается график зависимости энергии, приходящейся на узел, от номера узла. Частота дискретизации 8 кГц. Наблюдаю вейвлет-спектр энергии сигнала в полосе 0-4 кГц. Если разделить все 64 узла на 4 группы, то после первой и второй группы имеет место резкое падение энергии, т.е. на частотах 1 кГц и 2кГц, примерно на 3 порядка. На спектре БПФ этого не наблюдается.
Поменял вейвлет, ступени остались. Поменял шумы - остались. Взял в качестве независимого примера из Матлаба файл с шумами стиральной машины - ступени остались. Нефизично всё это.
Проверил работу кода на белом шуме (функция wgn - гаусс с равномерным распределением по частоте) - ступеней нет.
Значит программка работает правильно.
Подскажите, пожалуйста, где может быть ошибка.
PS
Рисунок можно посмотреть на
https://cloud.mail.ru/public/CX3b/Tj6XuCoZg

Benjamin
Пользователь
Сообщения: 10
Зарегистрирован: Чт янв 17, 2019 5:54 am

Re: Вейвлет-спектр энергии шума имеет ступени

Сообщение Benjamin » Вс фев 24, 2019 10:11 am

Частотная характеристика дерева разложения пакетного вейвлета db10.
Дерево разложения пакетного вейвлета (далее – дерево) представляет собой реализацию Коифманом и Викерхаузером усовершенствованного пирамидального алгоритма Маллата. Суть алгоритма состоит в разбиении частотного диапазона сигнала на две части: высокочастотную и низкочастотную, каждая из которых в свою очередь также разбивается на высокочастотную и низкочастотную части и так – до достижения заданного уровня.. В данном случае опустим упоминание процедуры прореживания, для данной темы она не играет роли. В результате получается дерево со сниспадающими вниз ветвями. Верхний узел, из которого начинается частотное разделение, имеет нулевой номер. Последний уровень – ряд узлов (вейвлет-фильтров) имеет номер N, означающий число делений частотных диапазонов.
Таким образом, на каждом уровне, в том числе и на последнем, ряд узлов представляет собой последовательность частотных фильтров, разделяющих весь частотный диапазон от нуля до частоты Найквиста. Это вытекает из упомянутого алгоритма Маллата и его модернизации.
Выше приведено сообщение, в котором отмечено скачкообразное изменение сигнала в узлах. Для выяснения причин этого выполнена оценка частотной характеристики (ЧХ) дерева на уровне N=6. Использованы известные функции для дерева разложения пакетного вейвлета db10 до заданного уровня. Проверка на отсутствие ошибок кода разложения выполнялась на шумовом сигнале: применил разложение с реконструкцией до заданного уровня 6 и сложил. Полученный сигнал совпал с исходным шумом, т.е. ошибок нет.
Применил указанный код для разложения синусоидального сигнала. Сначала на нулевой узел были поданы поочередно синусоиды длительностью 8с и частотами ~0.5, ~1, ~2 и ~3 кГц, с частотой дискретизации 8 кГц. Для упрощения получения оценки ЧХ в каждом из 64 узлов (фильтров на уровне N=6) отсчеты сигнала возведены в квадрат и сложены, т.е. в каждом узле (фильтре) получена энергия в полосе частот, соответствующей определенному фильтру. Полученный график можно посмотреть на https://cloud.mail.ru/public/4isX/8r6P1sqSF
Из графика следует, что на выходе дерева разложения (на уровне N=6) для каждого из перечисленных выше синусоидальных сигналов, подаваемых на нулевой узел дерева, наблюдается два сигнала, один с частотой ниже, а другой – выше частоты подаваемого сигнала.
Это противоречит пирамидальному алгоритму, согласно которому разбиению частотного диапазона сигнала производится на две неперекрывающиеся части: высокочастотную и низкочастотную.
Коллеги, как Вы думаете, чем это может быть вызвано?

sandy
Эксперт
Сообщения: 5524
Зарегистрирован: Ср сен 22, 2004 4:49 pm

Re: Вейвлет-спектр энергии шума имеет ступени

Сообщение sandy » Вс фев 24, 2019 11:58 am

и частотами ~0.5, ~1, ~2 и ~3 кГц

Отрицательные частоты подразумевают, что гармонический сигнал был комплексный? Но почему частоты только отрицательные?
Применил указанный код для разложения синусоидального сигнала.

Никакого кода вы пока что не показывали.
С уважением

Александр Сергиенко

Benjamin
Пользователь
Сообщения: 10
Зарегистрирован: Чт янв 17, 2019 5:54 am

Re: Вейвлет-спектр энергии шума имеет ступени

Сообщение Benjamin » Пн фев 25, 2019 2:58 am

Здравствуйте Александр Борисович.

1. По поводу отрицательных частот: частоту синусоиды устанавливал посредине частотного диапазона соответствующего узла, поэтому частоты получились немного отличными от 0.5, 1, 2 и 3 кГц. В связи с этим применил знак ~ указывающий на приблизительное значение частоты.
2. Попробую скомпоновать скрипт плюс файл функции и разместить здесь.

С уважением, Вениамин Дорожко.

sandy
Эксперт
Сообщения: 5524
Зарегистрирован: Ср сен 22, 2004 4:49 pm

Re: Вейвлет-спектр энергии шума имеет ступени

Сообщение sandy » Пн фев 25, 2019 8:22 pm

В связи с этим применил знак ~ указывающий на приблизительное значение частоты.

А, так это не минус был...
С уважением



Александр Сергиенко

Benjamin
Пользователь
Сообщения: 10
Зарегистрирован: Чт янв 17, 2019 5:54 am

Re: Вейвлет-спектр энергии шума имеет ступени

Сообщение Benjamin » Вт фев 26, 2019 3:20 am

%% Код программы

echo on
clc
echo off

%% PARAMETERS %%%%%%%%%%%%%%%%%
Fs=8000; %% Hz - Частота дискретизации
N=2^16; %% Длина синусоиды
Ffft=0:Fs/N:Fs-Fs/N; %% Частотный вектор FFT-спектра
Nw=6; %% Заданный уровень дерева декомпозиции пакетного вейвлета
wavelet='db10'; %% Вейвлет
Fw=0:62.992:4000; %% Частотный вектор узлов на шестом уровне декомпозиции (64 узла)

%% WAVELET RESPONSE
%% ~0.5 kHz (Приблизительное значение частоты)
Fsin=0.5354*1e03; %% Точное значение частоты синусоидального сигнала
S=sin(2*pi*Fsin*(1:N)./Fs); %% Синусоидальный сигнал
[E_NODES]=my_wp_Nw6(S,Nw,wavelet); %% Функция для вычисления энергии сигнала в каждом узле
subplot(4,1,1);
plot(Ffft, abs(fft(S)), '-b', 'LineWidth',1.5); hold on;
plot(Fw, E_NODES, '-r.', 'LineWidth',1.5,'MarkerEdgeColor','r','MarkerSize',8);
axis([0 4000 0 max(abs(fft(S)))]); xlabel('F, HS');
title('fft-spectr of sinus - 0.5 kHS (blue); nodes energy of wavelet response (red)');

%% ~1.0 kHS
Fsin=1.0394*1e03;
S=sin(2*pi*Fsin*(1:N)./Fs);
[E_NODES]=my_wp_Nw6(S,Nw,wavelet);
subplot(4,1,2);
plot(Ffft, abs(fft(S)), '-b', 'LineWidth',1.5); hold on;
plot(Fw, E_NODES, '-r.', 'LineWidth',1.5,'MarkerEdgeColor','r','MarkerSize',8);
axis([0 4000 0 max(abs(fft(S)))]); xlabel('F, HS');
title('fft-spectr of sinus - 1 kHS (blue); nodes energy of wavelet response (red)');

%% ~2.0 kHS
Fsin=2.0472*1e03;
S=sin(2*pi*Fsin*(1:N)./Fs);
[E_NODES]=my_wp_Nw6(S,Nw,wavelet);
subplot(4,1,3);
plot(Ffft, abs(fft(S)), '-b', 'LineWidth',1.5); hold on;
plot(Fw, E_NODES, '-r.', 'LineWidth',1.5,'MarkerEdgeColor','r','MarkerSize',8);
axis([0 4000 0 max(abs(fft(S)))]); xlabel('F, HS');
title('fft-spectr of sinus - 2 kHS (blue); nodes energy of wavelet response (red)');

%% ~3.0 kHS
Fsin=3.0551*1e03;
S=sin(2*pi*Fsin*(1:N)./Fs);
[E_NODES]=my_wp_Nw6(S,Nw,wavelet);
subplot(4,1,4);
plot(Ffft, abs(fft(S)), '-b', 'LineWidth',1.5); hold on;
plot(Fw, E_NODES, '-r.', 'LineWidth',1.5,'MarkerEdgeColor','r','MarkerSize',8);
axis([0 4000 0 max(abs(fft(S)))]); xlabel('F, HS');
title('fft-spectr of sinus - 3 kHS (blue); nodes energy of wavelet response (red)');

%% END of SCRIPT

%% my function %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function [E_NODES]=my_wp_Nw6(S, Nw,wavelet)

%% TREE Nw=6;
wpt=wpdec(S, Nw, wavelet);

%% Декомпозиция на 6-й уровень (с прореживанием) и реконструкция (восстановление до длины сигнала S)
%% Реконструкция необходима для проверки кода (см. ниже ПРОВЕРКА КОДА)
%% Для исключения реконструкции следует функцию wprcoef заменить на wpcoef , т.е. букву r исключить
%% БЕЗ РЕКОНСТРУКЦИИ РЕЗУЛЬТАТЫ ВЫЧИСЛЕНИЙ БУДУТ ТЕМИ ЖЕ

rcfs60 = wprcoef(wpt,[6 0]); rcfs610 = wprcoef(wpt,[6 10]); rcfs620 = wprcoef(wpt,[6 20]);
rcfs61 = wprcoef(wpt,[6 1]); rcfs611 = wprcoef(wpt,[6 11]); rcfs621 = wprcoef(wpt,[6 21]);
rcfs62 = wprcoef(wpt,[6 2]); rcfs612 = wprcoef(wpt,[6 12]); rcfs622 = wprcoef(wpt,[6 22]);
rcfs63 = wprcoef(wpt,[6 3]); rcfs613 = wprcoef(wpt,[6 13]); rcfs623 = wprcoef(wpt,[6 23]);
rcfs64 = wprcoef(wpt,[6 4]); rcfs614 = wprcoef(wpt,[6 14]); rcfs624 = wprcoef(wpt,[6 24]);
rcfs65 = wprcoef(wpt,[6 5]); rcfs615 = wprcoef(wpt,[6 15]); rcfs625 = wprcoef(wpt,[6 25]);
rcfs66 = wprcoef(wpt,[6 6]); rcfs616 = wprcoef(wpt,[6 16]); rcfs626 = wprcoef(wpt,[6 26]);
rcfs67 = wprcoef(wpt,[6 7]); rcfs617 = wprcoef(wpt,[6 17]); rcfs627 = wprcoef(wpt,[6 27]);
rcfs68 = wprcoef(wpt,[6 8]); rcfs618 = wprcoef(wpt,[6 18]); rcfs628 = wprcoef(wpt,[6 28]);
rcfs69 = wprcoef(wpt,[6 9]); rcfs619 = wprcoef(wpt,[6 19]); rcfs629 = wprcoef(wpt,[6 29]);

rcfs630 = wprcoef(wpt,[6 30]); rcfs640 = wprcoef(wpt,[6 40]); rcfs650 = wprcoef(wpt,[6 50]);
rcfs631 = wprcoef(wpt,[6 31]); rcfs641 = wprcoef(wpt,[6 41]); rcfs651 = wprcoef(wpt,[6 51]);
rcfs632 = wprcoef(wpt,[6 32]); rcfs642 = wprcoef(wpt,[6 42]); rcfs652 = wprcoef(wpt,[6 52]);
rcfs633 = wprcoef(wpt,[6 33]); rcfs643 = wprcoef(wpt,[6 43]); rcfs653 = wprcoef(wpt,[6 53]);
rcfs634 = wprcoef(wpt,[6 34]); rcfs644 = wprcoef(wpt,[6 44]); rcfs654 = wprcoef(wpt,[6 54]);
rcfs635 = wprcoef(wpt,[6 35]); rcfs645 = wprcoef(wpt,[6 45]); rcfs655 = wprcoef(wpt,[6 55]);
rcfs636 = wprcoef(wpt,[6 36]); rcfs646 = wprcoef(wpt,[6 46]); rcfs656 = wprcoef(wpt,[6 56]);
rcfs637 = wprcoef(wpt,[6 37]); rcfs647 = wprcoef(wpt,[6 47]); rcfs657 = wprcoef(wpt,[6 57]);
rcfs638 = wprcoef(wpt,[6 38]); rcfs648 = wprcoef(wpt,[6 48]); rcfs658 = wprcoef(wpt,[6 58]);
rcfs639 = wprcoef(wpt,[6 39]); rcfs649 = wprcoef(wpt,[6 49]); rcfs659 = wprcoef(wpt,[6 59]);

%%
rcfs660 = wprcoef(wpt,[6 60]);
rcfs661 = wprcoef(wpt,[6 61]);
rcfs662 = wprcoef(wpt,[6 62]);
rcfs663 = wprcoef(wpt,[6 63]);


%% ПРОВЕРКА КОДА
%% Суммирование реконструированного сигнала для проверки кода
% Srec=rcfs60 +rcfs61 +rcfs62 +rcfs63 +rcfs64 +rcfs65 +rcfs66 +rcfs67 +rcfs68 +rcfs69+...
% rcfs610 +rcfs611 +rcfs612 +rcfs613 +rcfs614 +rcfs615 +rcfs616 +rcfs617 +rcfs618 +rcfs619+...
% rcfs620 +rcfs621 +rcfs622 +rcfs623 +rcfs624 +rcfs625 +rcfs626 +rcfs627 +rcfs628 +rcfs629+...
% rcfs630 +rcfs631 +rcfs632 +rcfs633 +rcfs634 +rcfs635 +rcfs636 +rcfs637 +rcfs638 +rcfs639+...
% rcfs640 +rcfs641 +rcfs642 +rcfs643 +rcfs644 +rcfs645 +rcfs646 +rcfs647 +rcfs648 +rcfs649+...
% rcfs650 +rcfs651 +rcfs652 +rcfs653 +rcfs654 +rcfs655 +rcfs656 +rcfs657 +rcfs658 +rcfs659+...
% rcfs660 +rcfs661 +rcfs662 +rcfs663 ;
%
% Delta=S-Srec; plot(delta);
%
%% Сравнение реконструированного сигнала с исходной синусоидой.
%% Разность Delta на графике составляет примерно 1e-011 ,
%% что вполне достаточно для вейвлет декомпозиции плюс реконструкции
%% т.е. КОД РАБОТАЕТ ВЕРНО

%% ПРИМЕЧАНИЕ: без реконструкции сигналов (вейвлет-коэффициентов в узлах)
%% вычисляемые графики будут теми же

%% Энергия сигналов в каждом узле
E_NODES=[sum( rcfs60.^2) sum( rcfs61.^2) sum( rcfs62.^2) sum( rcfs63.^2) sum( rcfs64.^2)...
sum( rcfs65.^2) sum( rcfs66.^2) sum( rcfs67.^2) sum( rcfs68.^2) sum( rcfs69.^2)...
sum( rcfs610.^2) sum( rcfs611.^2) sum( rcfs612.^2) sum( rcfs613.^2) sum( rcfs614.^2)...
sum( rcfs615.^2) sum( rcfs616.^2) sum( rcfs617.^2) sum( rcfs618.^2) sum( rcfs619.^2)...
sum( rcfs620.^2) sum( rcfs621.^2) sum( rcfs622.^2) sum( rcfs623.^2) sum( rcfs624.^2)...
sum( rcfs625.^2) sum( rcfs626.^2) sum( rcfs627.^2) sum( rcfs628.^2) sum( rcfs629.^2)...
sum( rcfs630.^2) sum( rcfs631.^2) sum( rcfs632.^2) sum( rcfs633.^2) sum( rcfs634.^2)...
sum( rcfs635.^2) sum( rcfs636.^2) sum( rcfs637.^2) sum( rcfs638.^2) sum( rcfs639.^2)...
sum( rcfs640.^2) sum( rcfs641.^2) sum( rcfs642.^2) sum( rcfs643.^2) sum( rcfs644.^2)...
sum( rcfs645.^2) sum( rcfs646.^2) sum( rcfs647.^2) sum( rcfs648.^2) sum( rcfs649.^2)...
sum( rcfs650.^2) sum( rcfs651.^2) sum( rcfs652.^2) sum( rcfs653.^2) sum( rcfs654.^2)...
sum( rcfs655.^2) sum( rcfs656.^2) sum( rcfs657.^2) sum( rcfs658.^2) sum( rcfs659.^2)...
sum( rcfs660.^2) sum( rcfs661.^2) sum( rcfs662.^2) sum( rcfs663.^2) ];


%% END

Benjamin
Пользователь
Сообщения: 10
Зарегистрирован: Чт янв 17, 2019 5:54 am

Re: Вейвлет-спектр энергии шума имеет ступени

Сообщение Benjamin » Ср мар 20, 2019 12:07 pm

К сообщению (см. выше) о частотной характеристике дерева разложения пакетного вейвлета или почему не получается частотная характеристика пакетной вейвлет-декомпозиции.

Рассмотрим вейвлет-декомпозицию пакетным вейвлетом 'db40' сигнала Z (белый шум) длительностью 5 секунд с частотой дискретизации 10000 Гц (см. Приведенный ниже код). Результаты декомпозиции на трех уровнях представлены на рисунке (рисунок можно посмотреть на https://cloud.mail.ru/public/EduB/T4huqCgGi )
Известно, что в дереве пакетной вейвлет-декомпозиции (fig=drawtree(T)) узлы пронумерованы следующим образом: [Nw n], где Nw - уровень декомпозиции, n - порядковый номер узла, исчисляемый слева-направо на заданном уровне.

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

Например, на 1-ом уровне (см. рисунок - адрес см. выше) узел [1 0] соответствует диапазону 0-2500 Гц, а узел [1 1] – диапазону 2500-5000 Гц. Здесь 5000 Гц это частота Найквиста при частоте дискретизации 10000 Гц. Т.е. сначала идет частотный диапазон узла [1 0], потом – следующий за ним частотный диапазон узла [1 1].
Из рисунка следует, что на 1-ом уровне соблюдается указанный порядок.

На 2-ом уровне (см. рисунок) декомпозиции указанный порядок нарушается. Узлы [2 2] и [2 3] в дереве декомпозиции идут один за другим, а fft-спектры их вейвлет-коэффициентов имеют обратный порядок: сначала по частоте располагается спектр узла [2 3], а затем – узла [2 2].

Аналогичное нарушение порядка расположения частотных диапазонов наблюдается на 3-ем уровне.
Сначала по оси частот наблюдается fft-спектр узла [3 3], за ним – узла [3 2]. Аналогичное реверсное расположение частотных диапазонов имеет место и для узлов [3 5] и [3 4].
Кроме того, имеет место сдвиг частот узлов [3 4] и [3 5] в сторону увеличения, который привел к образованию пустого частотного диапазона 3000-3500 Гц.
Примечание: в заголовках к рисункам каждого уровня декомпозиции указаны номера узлов и соответствующие им цвета графиков.

Из вышесказанного следует, невозможность получить АЧХ по-видимому обусловлена следующими особенностями пакетной вейвлет-декомпозиции:
- расположение частотных диапазонов может не соответствовать порядковому номеру их узлов;
- частотные диапазоны узлов могут не соответствовать их расчетным значениям (сдвигаются);
- имеет место образование пустых частотных диапазонов;
- функция дерева пакетной вейвлет-декомпозиции T=wpdec(Z, Nw, ‘wavelet’, ‘entropy’) имеет параметр энтропии (‘entropy’), роль которого в дереве декомпозиции в литературе не раскрывается.

%% Ниже приводится код программы вейвлет-декомпозиции сигнала «белый шум».
wavelet='db40';
Fs=10000; %% Hz
Z=1*wgn(1, 5*Fs,-20);%% white noise
N=length(Z);
Ffft=0:Fs/N:Fs-Fs/N; %% frequency, Hz
time=(0:1:N-1)/Fs; %% time, s

Y00=abs(fft(Z)/N); %% FFT-specter of white noise
Nw=3; %% Max Level of wavelet-decomposition
T=wpdec(Z, Nw, wavelet, 'shannon'); %% fig=drawtree(T);

subplot(4,1,1);
plot(Ffft, Y00, '-k'); axis([0 Fs/2, 0 max(Y00)]);
title('FFT-specter of white noise');

%% LEVEL=1
rcfs10 = wprcoef(T,[1 0]); Y10=abs(fft(rcfs10)/N); %% reconstructed wavelet-coefficients
rcfs11 = wprcoef(T,[1 1]); Y11=abs(fft(rcfs11)/N);

subplot(4,1,2);
plot(Ffft, Y10, '-k'); hold on;
title('FFT-specter of wavelet-coefficients on Level=1; NodeColor: [1 0]-k, [1 1]-b');
plot(Ffft, Y11, '-b'); axis([0 Fs/2, 0 max(Y10)]);

%% LEVEL=2
rcfs20 = wprcoef(T,[2 0]); Y20=abs(fft(rcfs20)/N); %% reconstructed wavelet-coefficients
rcfs21 = wprcoef(T,[2 1]); Y21=abs(fft(rcfs21)/N);
rcfs22 = wprcoef(T,[2 2]); Y22=abs(fft(rcfs22)/N);
rcfs23 = wprcoef(T,[2 3]); Y23=abs(fft(rcfs23)/N);

subplot(4,1,3);
plot(Ffft, Y20, '-k'); hold on;
title('FFT-specter of wavelet-coefficients on Level=2; NodeColor: [2 0]-k, [2 1]-b, [2 2]-r, [2 3]-m');
plot(Ffft, Y21, '-b');
plot(Ffft, Y22, '-r');
plot(Ffft, Y23, '-m');
axis([0 Fs/2, 0 max(Y20)]);

%% LEVEL=3
rcfs30 = wprcoef(T,[3 0]); Y30=abs(fft(rcfs30)/N); %% reconstructed wavelet-coefficients
rcfs31 = wprcoef(T,[3 1]); Y31=abs(fft(rcfs31)/N);
rcfs32 = wprcoef(T,[3 2]); Y32=abs(fft(rcfs32)/N);
rcfs33 = wprcoef(T,[3 3]); Y33=abs(fft(rcfs33)/N);
rcfs34 = wprcoef(T,[3 4]); Y34=abs(fft(rcfs34)/N);
rcfs35 = wprcoef(T,[3 5]); Y35=abs(fft(rcfs35)/N);

subplot(4,1,4);
plot(Ffft, Y30, '-k'); hold on;
title('FFT-specter of wavelet-coefficients on Level=3; NodeColor: [3 0]-k, [3 1]-b, [3 2]-r, [3 3]-m, [3 4]-g, [3 5]-c');
plot(Ffft, Y31, '-b');
plot(Ffft, Y32, '-r');
plot(Ffft, Y33, '-m');
plot(Ffft, Y34, '-g');
plot(Ffft, Y35, '-c');
axis([0 Fs/2, 0 max(Y30)]); xlabel('F, Hz');

%% END OF CODE

U235
Пользователь
Сообщения: 804
Зарегистрирован: Пт июл 01, 2005 10:13 am

Re: Вейвлет-спектр энергии шума имеет ступени

Сообщение U235 » Пн май 06, 2019 4:30 am

Benjamin писал(а):- имеет место образование пустых частотных диапазонов;
.....
rcfs34 = wprcoef(T,[3 4]); Y34=abs(fft(rcfs34)/N);
rcfs35 = wprcoef(T,[3 5]); Y35=abs(fft(rcfs35)/N);


Имеет место невнимательность. Пропущены еще два диапазона (3-й уровень - 2^3=8 диапазонов)
rcfs36 = wprcoef(T,[3 6]); Y36=abs(fft(rcfs36)/N);
rcfs37 = wprcoef(T,[3 7]); Y37=abs(fft(rcfs37)/N);