Реконструкция через двухканальные наборы фильтров

В этом примере показано, как спроектировать совершенную реконструкцию двухканальные наборы фильтров, также известные как банки Квадратурного фильтра зеркала (QMF). Банки QMF используют степень дополнительные фильтры.

Существует несколько приложений цифровой обработки сигналов, в которых сигналы сначала разделены в низкую частоту и высокочастотные поддиапазоны, и позже эти поддиапазоны объединены, чтобы восстановить исходный сигнал. Одно такое приложение является поддиапазоном, кодирующим (SBC).

Сначала симулируйте совершенный процесс реконструкции путем фильтрации сигнала, составленного из масштабированных, и время переключило импульсы. Затем постройте вход, выведите, и сигналы ошибки наряду со спектром величины передаточной функции полной системы. Эффективность совершенной реконструкции показывают через набор фильтров, описанный в этом примере.

Совершенная реконструкция

Система, как говорят, достигает совершенной реконструкции, когда выход системы равен входному сигналу или задержанной версии того же самого. Ниже блок-схема совершенного процесса реконструкции, который использует идеальные фильтры, чтобы разделить сигнал на его низкую частоту и высокочастотные компоненты, и восстановить сигнал полностью. Совершенный процесс реконструкции требует четырех фильтров, двух фильтров lowpass (H0и G0) и два фильтра highpass (H1и G1). Кроме того, процесс требует downsampler и upsampler между двумя lowpass и двумя фильтрами highpass. Поскольку аналитические фильтры имеют модульное усиление, фильтры синтеза компенсируют предыдущий upsamplers при наличии усиления 2.

Совершенная реконструкция двухканальный набор фильтров

DSP System Toolbox™ обеспечивает специализированную функцию под названием firpr2chfb спроектировать четыре фильтра, требуемые реализовывать КИХ совершенная реконструкция двухканальный набор фильтров. firpr2chfb функционируйте проектирует четыре КИХ-фильтра для анализа (H0и H1) и синтез (G0и G1) разделы двухканального совершенного набора фильтров реконструкции. Проект соответствует ортогональным наборам фильтров, известным как симметричные степенью наборы фильтров, которые требуются для того, чтобы достигнуть совершенной реконструкции.

Спроектируйте набор фильтров с фильтрами порядка 99, ребрами полосы пропускания lowpass и фильтров highpass в 0,45 и 0.55, соответственно:

N = 99;
[LPAnalysis, HPAnalysis, LPSynthsis, HPSynthesis] = firpr2chfb(N, 0.45);

Ответ величины этих фильтров построен ниже:

fvt = fvtool(LPAnalysis,1, HPAnalysis,1, LPSynthsis,1, HPSynthesis,1);
fvt.Color = [1,1,1];
legend(fvt,'Hlp Lowpass Decimator','Hhp Highpass Decimator',...
    'Glp Lowpass Interpolator','Ghp Highpass Interpolator');

Figure Filter Visualization Tool - Magnitude Response (dB) contains an axes object and other objects of type uitoolbar, uimenu. The axes object with title Magnitude Response (dB) contains 4 objects of type line. These objects represent Hlp Lowpass Decimator, Hhp Highpass Decimator, Glp Lowpass Interpolator, Ghp Highpass Interpolator.

Обратите внимание на то, что аналитический путь состоит из фильтра, сопровождаемого downsampler, который является decimator, и путь к синтезу состоит из upsampler, сопровождаемого фильтром, который является интерполятором. DSP System Toolbox обеспечивает dsp.SubbandAnalysisFilterr и dsp.SubbandSynthesisFilter объекты реализовать аналитический фрагмент и фрагмент синтеза набора фильтров, соответственно.

% Analysis section
analysisFilter = dsp.SubbandAnalysisFilter(LPAnalysis, HPAnalysis);
% Synthesis section
synthFilter = dsp.SubbandSynthesisFilter(LPSynthsis, HPSynthesis);

Ради примера позвольте p [n], обозначают сигнал

p[n]=δ[n]+δ[n-1]+δ[n-2]

и позвольте сигналу x [n] быть заданным

x[n]=p[n]+2p[n-8]+3p[n-16]+4p[n-24]+3p[n-32]+2p[n-40]+p[n-48]

Примечание: Поскольку MATLAB® использует индексацию на основе одну, дельта [n] = 1 когда n = 1.

x = zeros(50,1);
x(1:3)   = 1;
x(8:10)  = 2;
x(16:18) = 3;
x(24:26) = 4;
x(32:34) = 3;
x(40:42) = 2;
x(48:50) = 1;
sigsource = dsp.SignalSource('SignalEndAction', 'Cyclic repetition',...
    'SamplesPerFrame', 50);
sigsource.Signal = x;

Чтобы просмотреть результаты симуляции, нам нужны четыре осциллографа:

  1. Сравнить входной сигнал с восстановленным выходом.

  2. Измерять ошибку между входным сигналом и восстановленным выходом

  3. Построить ответ величины полной системы.

  4. Построить фазовый отклик полной системы.

% Scope to compare input signal with reconstructed output
sigcompare = dsp.ArrayPlot('NumInputPorts', 2, 'ShowLegend', true,...
    'Title', 'Input and reconstructed signals',...
    'ChannelNames',{'Input signal','Reconstructed signal'});

% Scope to plot the RMS error between the input and reconstructed signals
errorPlot = timescope('Title', 'RMS Error', 'SampleRate', 1, ...
    'TimeUnits', 'seconds', 'YLimits', [-0.5 2],...
    'TimeSpanSource', 'property','TimeSpan',100,...
    'TimeSpanOverrunAction','scroll');

% To calculate the transfer function of the cascade of Analysis and
% Synthesis subband filters
tfestimate = dsp.TransferFunctionEstimator('FrequencyRange','centered',...
    'SpectralAverages', 50);
% Scope to plot the magnitude response of the estimated transfer function
magplot = dsp.ArrayPlot('PlotType','Line', ...
    'YLabel', 'Magnitude Response (dB)',...
    'Title','Magnitude response of the estimated transfer function',...
    'XOffset',-25, 'XLabel','Frequency (Hz)',...
    'YLimits',[-5 5]);
% Scope to plot the phase response of the estimated transfer function
phaseplot = dsp.ArrayPlot('PlotType','Line', ...
    'YLabel', 'Phase Response (degrees)',...
    'Title','Phase response of the estimated transfer function',...
    'XOffset',-25, 'XLabel','Frequency (Hz)',...
    'YLimits',[-180 180]);

Симуляция совершенной реконструкции

Передайте входной сигнал через фильтры поддиапазона и восстановите выход. Постройте результаты на осциллографах.

for i = 1:100
    % Use the same signal as input in each iteration.
    input = sigsource();
    % Analysis
    [hi, lo] = analysisFilter(input);
    % Synthesis
    reconstructed = synthFilter(hi, lo);

    % Compensate for the delay caused by the filters and compare the
    % signals. Since input signal is periodic, compare the current
    % frames of input and output signals.
    sigcompare(input(2:end), reconstructed(1:end-1));

    % Plot error between signals
    err = rms(input(2:end) - reconstructed(1:end-1));
    errorPlot(err);

    % Estimate transfer function of cascade
    Txy = tfestimate(input(2:end), reconstructed(1:end-1));
    magplot(20*log10(abs(Txy)));
    phaseplot(angle(Txy)*180/pi);
end

release(errorPlot);

release(magplot);

release(phaseplot);

Совершенная реконструкция Выходной анализ

Первые два графика показывают, что двухканальный набор фильтров отлично восстанавливает исходный сигнал x [n]. Начальная ошибка во втором графике должна задержаться в фильтрах. Третье и четвертые графики показывают, что полная система имеет magniude ответ 0 дБ и фазовый отклик 0 °, таким образом, сохраняя характеристики частоты сигнала.