Отфильтруйте анализ Используя FVTool

То В этом примере показано, как использовать несколько анализов фильтра, функционирует в окне одной фигуры при помощи Инструмента Визуализации Фильтра (FVTool), графический интерфейс пользователя, доступный в Signal Processing Toolbox™.

FVTool также имеет Прикладной программный интерфейс (API), который позволяет вам взаимодействовать с графический интерфейсом пользователя из командной строки. Это позволяет вам интегрировать FVTool в другие приложения.

Запустите FVTool

Мы хотим создать фильтр lowpass с частотой полосы пропускания 0.4π рад/отсчет, частота полосы задерживания 0.6π рад/отсчет, неравномерность в полосе пропускания 1 дБ и затухание в полосе задерживания 80 дБ. Мы будем проектировать фильтры с помощью некоторых инструментов создания фильтра Signal Processing Toolbox и затем анализировать результаты в FVTool.

Спроектируйте lowpass equiripple КИХ-фильтр

Df1 = designfilt('lowpassfir','PassbandFrequency',0.4,...
                              'StopbandFrequency',0.6,...
                              'PassbandRipple',1,...
                              'StopbandAttenuation',80,...
                              'DesignMethod','equiripple');

Спроектируйте lowpass эллиптический БИХ-фильтр

Df2 = designfilt('lowpassiir','PassbandFrequency',0.4,...
                              'StopbandFrequency',0.6,...
                              'PassbandRipple',1,...
                              'StopbandAttenuation',80,...
                              'DesignMethod','ellip');

Запустите FVTool с объектами фильтра и возвратите указатель на FVTool, который позволяет нам снова использовать ту же фигуру FVTool.

hfvt = fvtool(Df1, Df2);

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 2 objects of type line.

Добавьте и демонтируйте фильтры

Мы можем заметить, что оба фильтра выполняют техническим требованиям проекта, но мы также хотим, чтобы видеть, как хорошо Чебышевский проект Типа II выполняет.

Можно добавить фильтр в FVTool использование функции ADDFILTER.

Df3 = designfilt('lowpassiir','PassbandFrequency',0.4,...
                              'StopbandFrequency',0.6,...
                              'PassbandRipple',1,...
                              'StopbandAttenuation',80,...
                              'DesignMethod','cheby2');
addfilter(hfvt, Df3);

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 3 objects of type line.

Идентифицировать, какая линия на графике принадлежит, в который фильтр, можно добавить легенду с помощью функции ЛЕГЕНДЫ указателя FVTool.

legend(hfvt, 'Equiripple', 'Elliptic', 'Chebyshev Type II');

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 3 objects of type line. These objects represent Equiripple, Elliptic, Chebyshev Type II.

Можно удалить фильтр из FVTool использование функции DELETEFILTER и передача индекса фильтра (фильтров), который вы хотите демонтировать.

deletefilter(hfvt, [1 3]);

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 an object of type line. This object represents Elliptic.

Измените аналитические параметры

Указатель, который возвращает FVTool, содержит свойства, которые позволяют вам взаимодействовать и с фильтром и с текущим анализом.

Чтобы видеть все доступные свойства, можно использовать команду GET. Первые свойства являются теми из обычной фигуры MATLAB®. Последние четырнадцать свойств FVTool конкретный. Последние шесть из них (от FrequencyScale до MagnitudeDisplay) являются конкретным анализом.

s = get(hfvt);

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 an object of type line. This object represents Elliptic.

% Keep the last 14 properties
c = struct2cell(s);
f = fieldnames(s);
s = cell2struct(c(end-14:end),f(end-14:end),1)
s = struct with fields:
       SelectionHighlight: on
                      Tag: 'filtervisualizationtool'
                 UserData: []
                  Visible: on
           FrequencyScale: 'Linear'
           NumberofPoints: 8192
            PolyphaseView: 'off'
    NormalizeMagnitudeto1: 'off'
      NormalizedFrequency: 'on'
        OverlayedAnalysis: ''
          FrequencyVector: [0 0.0039 0.0078 0.0118 0.0157 0.0196 0.0235 ... ]
                 Analysis: 'magnitude'
            ShowReference: 'on'
           FrequencyRange: '[0, pi)'
         MagnitudeDisplay: 'Magnitude (dB)'

Все параметры, которые доступны от Аналитического диалогового окна Параметров FVTOOL, также доступны как свойства объекта FVTool. Команда НАБОРА только с двумя входными параметрами возвращает все возможные значения.

set(hfvt, 'MagnitudeDisplay')
ans = 1x4 cell
  Columns 1 through 3

    {'Magnitude'}    {'Magnitude (dB)'}    {'Magnitude squared'}

  Column 4

    {'Zero-phase'}

Повернитесь отображение к 'Величине Придало квадратную форму'

hfvt.MagnitudeDisplay = 'Magnitude Squared';

Figure Filter Visualization Tool - Magnitude Response (squared) contains an axes object and other objects of type uitoolbar, uimenu. The axes object with title Magnitude Response (squared) contains an object of type line. This object represents Elliptic.

Получите все возможные значения для свойства 'Analysis'

set(hfvt, 'Analysis')
ans = 1x12 cell
  Columns 1 through 5

    {'magnitude'}    {'phase'}    {'freq'}    {'grpdelay'}    {'phasedelay'}

  Columns 6 through 10

    {'impulse'}    {'step'}    {'polezero'}    {'coefficients'}    {'info'}

  Columns 11 through 12

    {'magestimate'}    {'noisepower'}

Давайте теперь изменим анализ, чтобы посмотреть на Ответ Групповой задержки фильтра.

hfvt.Analysis = 'grpdelay';

Figure Filter Visualization Tool - Group delay contains an axes object and other objects of type uitoolbar, uimenu. The axes object with title Group delay contains an object of type line. This object represents Elliptic.

Команда GET возвратит новые Аналитические Параметры для нового анализа.

GroupDelayUnits = hfvt.GroupDelayUnits;

Наложите два исследования

Мы также хотели бы, чтобы видеть, как Групповая задержка и ответ величины перекрываются в частотном диапазоне.

Можно наложить любые два исследования в FVTool, которые совместно используют общую ось X (время или частота) путем установки свойства 'OverlayedAnalysis'.

set(hfvt, 'OverlayedAnalysis', 'magnitude', 'Legend', 'On')

Figure Filter Visualization Tool - Group delay and Magnitude Response (dB) contains an axes object and other objects of type uitoolbar, uimenu. The axes object with title Group delay and Magnitude Response (dB) contains an object of type line. This object represents Elliptic: Group delay.

Чтобы выключить overlayed анализ просто устанавливает свойство 'OverlayedAnalysis' на ''.

hfvt.OverlayedAnalysis = '';

Figure Filter Visualization Tool - Group delay contains an axes object and other objects of type uitoolbar, uimenu. The axes object with title Group delay contains an object of type line. This object represents Elliptic.

Взаимодействуйте с FVTool как Окно фигуры

Окно FVTool может также быть аннотировано как нормальное окно рисунка.

Фигура FVTool ведет себя как нормальное окно рисунка. Это позволяет вам использовать сетку MATLAB и функции оси.

grid on
axis([.3 .45 5 25]);

Figure Filter Visualization Tool - Group delay contains an axes object and other objects of type uitoolbar, uimenu. The axes object with title Group delay contains an object of type line. This object represents Elliptic.

Ось также доступна из командной строки. Это позволяет вам изменять заголовок и метки.

title('Group Delay of an Elliptic filter');
xlabel('Frequency (normalized to 1)');
ylabel('Group Delay in samples');

htext = text(.35, 23, 'Maximum Group Delay');

Figure Filter Visualization Tool - Group delay contains an axes object and other objects of type uitoolbar, uimenu. The axes object with title Group Delay of an Elliptic filter contains 2 objects of type line, text. This object represents Elliptic.

FVTool автоматически не удалит дополнительные аннотации из вашего анализа, можно сделать это путем удаления самого указателя. Можно закрыть фигуру FVTool путем вызывания близкой функции на указателе FVTool.

delete(htext);
close(hfvt)

Смотрите также

|