FVTool

Отфильтруйте инструмент визуализации

Описание

Filter Visualization Tool является интерактивным инструментом, который позволяет вам отобразить величину, фазовый отклик, групповую задержку, импульсную характеристику, переходной процесс, нулевой полюсом график и коэффициенты фильтра. Можно экспортировать отображенный ответ на файл с File> Export.

Если продукт DSP System Toolbox™ установлен, FVTool может также визуализировать частотную характеристику Системы фильтра object™. Если необходимо отфильтровать данные о потоковой передаче в режиме реального времени, использование Системных объектов является рекомендуемым подходом. Для получения дополнительной информации смотрите fvtool.

Откройте FVTool

FVTool может быть открыт программно с помощью одного из методов, описанных в Программируемом Использовании.

Примеры

развернуть все

Отобразите ответ величины 6-го порядка эллиптический фильтр. Задайте неравномерность в полосе пропускания 3 дБ, затухание в полосе задерживания 50 дБ, частоту дискретизации 1 кГц и нормированное ребро полосы пропускания 300 Гц. Запустите FVTool с командной строки.

[b,a] = ellip(6,3,50,300/500);
fvtool(b,a)

Отобразите и анализируйте несколько КИХ-фильтров, запуская FVTool с командной строки.

b1 = firpm(20,[0 0.4 0.5 1],[1 1 0 0]); 
b2 = firpm(40,[0 0.4 0.5 1],[1 1 0 0]); 
fvtool(b1,1,b2,1)

Отобразите связанные аналитические параметры путем выбора Analysis> Analysis Parameters.

.

Запустите FVTool с командной строки. Отобразите ответ величины 6-го порядка эллиптический фильтр. Задайте неравномерность в полосе пропускания 3 дБ, затухание в полосе задерживания 50 дБ, частоту дискретизации 1 кГц и нормированное ребро полосы пропускания 300 Гц.

[b,a] = ellip(6,3,50,300/500);
h = fvtool(b,a)

h = 
  Figure (filtervisualizationtool) with properties:

      Number: 1
        Name: 'Filter Visualization Tool - Magnitude Response (dB)'
       Color: [0.9400 0.9400 0.9400]
    Position: [358 291 560 420]
       Units: 'pixels'

  Use get to show all properties

Отобразите фазовый отклик фильтра.

h.Analysis = 'phase'

h = 
  Figure (filtervisualizationtool) with properties:

      Number: 1
        Name: 'Filter Visualization Tool - Phase Response'
       Color: [0.9400 0.9400 0.9400]
    Position: [358 291 560 420]
       Units: 'pixels'

  Use get to show all properties

Включите легенду графика и добавьте текст.

legend(h,'Phase plot')

Задайте частоту дискретизации 1 кГц. Отобразите двухсторонний ответ в центре.

h.Fs = 1000;
h.FrequencyRange='[-Fs/2, Fs/2)'

h = 
  Figure (filtervisualizationtool) with properties:

      Number: 1
        Name: 'Filter Visualization Tool - Phase Response'
       Color: [0.9400 0.9400 0.9400]
    Position: [358 291 560 420]
       Units: 'pixels'

  Use get to show all properties

Просмотрите все свойства графика. Свойства, характерные для FVTool, в конце списка.

get(h)
                     Grid: on
                   Legend: 'on'
          AnalysisToolbar: 'on'
            FigureToolbar: 'on'
               DesignMask: 'off'
          SOSViewSettings: [1x1 dspopts.sosview]
                       Fs: 1000
                 Alphamap: [1x64 double]
          CloseRequestFcn: 'closereq'
                    Color: [0.9400 0.9400 0.9400]
                 Colormap: [256x3 double]
              ContextMenu: [0x0 GraphicsPlaceholder]
              CurrentAxes: [1x1 Axes]
         CurrentCharacter: ''
            CurrentObject: [0x0 GraphicsPlaceholder]
             CurrentPoint: [0 0]
             DockControls: on
                 FileName: ''
            IntegerHandle: on
           InvertHardcopy: on
              KeyPressFcn: ''
            KeyReleaseFcn: ''
                  MenuBar: 'none'
                     Name: 'Filter Visualization Tool - Phase Response'
                 NextPlot: 'new'
              NumberTitle: on
               PaperUnits: 'inches'
         PaperOrientation: 'portrait'
            PaperPosition: [0.5167 2.7000 7.4667 5.6000]
        PaperPositionMode: 'auto'
                PaperSize: [8.5000 11]
                PaperType: 'usletter'
                  Pointer: 'arrow'
        PointerShapeCData: [16x16 double]
      PointerShapeHotSpot: [1 1]
                 Position: [358 291 560 420]
                 Renderer: 'opengl'
             RendererMode: 'auto'
                   Resize: on
                ResizeFcn: ''
            SelectionType: 'normal'
                  ToolBar: 'auto'
                     Type: 'figure'
                    Units: 'pixels'
      WindowButtonDownFcn: ''
    WindowButtonMotionFcn: ''
        WindowButtonUpFcn: ''
        WindowKeyPressFcn: ''
      WindowKeyReleaseFcn: ''
     WindowScrollWheelFcn: ''
              WindowStyle: 'normal'
             BeingDeleted: off
            ButtonDownFcn: ''
                 Children: [15x1 Graphics]
                 Clipping: on
                CreateFcn: ''
                DeleteFcn: ''
               BusyAction: 'queue'
         HandleVisibility: 'on'
                  HitTest: on
            Interruptible: on
                   Parent: [1x1 Root]
                 Selected: off
       SelectionHighlight: on
                      Tag: 'filtervisualizationtool'
                 UserData: []
                  Visible: on
      NormalizedFrequency: 'off'
           FrequencyScale: 'Linear'
             PhaseDisplay: 'Phase'
           NumberofPoints: 8192
            PolyphaseView: 'off'
                 Analysis: 'phase'
        OverlayedAnalysis: ''
               PhaseUnits: 'Radians'
            ShowReference: 'on'
          FrequencyVector: [1x256 double]
           FrequencyRange: '[-Fs/2, Fs/2)'

Спроектируйте КИХ-фильтр полосы пропускания 50-го порядка с частотами полосы задерживания 150 Гц и 350 Гц и частотами полосы пропускания 200 Гц и 300 Гц. Частота дискретизации составляет 1 000 Гц. Визуализируйте величину и фазовый отклик фильтра.

N = 50;
Fstop1 = 150;
Fstop2 = 350;

Fpass1 = 200;
Fpass2 = 300;

Fs = 1e3;

bpFilt = designfilt('bandpassfir','FilterOrder',N, ...
'StopbandFrequency1',Fstop1,...
'StopbandFrequency2',Fstop2,...
'PassbandFrequency1',Fpass1,...
'PassbandFrequency2',Fpass2,...
'SampleRate',Fs);

fvtool(bpFilt,'Analysis','freq')

Связанные примеры

Программируемое использование

развернуть все

fvtool(b,a) открывает FVTool и отображает ответ величины цифрового фильтра, заданного с числителем b и знаменатель a.

fvtool(sos) открывает FVTool и отображает ответ величины цифрового фильтра, заданного L-by-6 матрица разделов второго порядка:

sos=[b01b11b211a11a21b02b12b221a12a22b0Lb1Lb2L1a1La2L]

Строки sos содержите числитель и коэффициенты знаменателя bik и aik каскада секций второго порядка H (z):

H(z)=gk=1LHk(z)=gk=1Lb0k+b1kz1+b2kz21+a1kz1+a2kz2.

Количество разделов, L, должно быть больше или быть равно 2. Если количество разделов меньше 2, fvtool полагает, что вход вектор числителя.

fvtool(d) открывает FVTool и отображает ответ величины цифрового фильтра, d. Используйте designfilt сгенерировать d на основе технических требований частотной характеристики.

fvtool(b1,a1,b2,a2,...,bN,aN) открывает FVTool и отображает ответы величины нескольких фильтров, заданных с числителями b1, …, bN и знаменатели a1..., aN.

fvtool(sos1,sos2,...,sosN) открывает FVTool и отображает ответы величины нескольких фильтров, заданных с матрицами раздела второго порядка sos1, sos2..., sosN.

fvtool(Hd) открывает FVTool и отображает ответы величины для dfilt объект фильтра Hd или массив dfilt объекты фильтра.

fvtool(Hd1,Hd2,...,HdN) открывает FVTool и отображает ответы величины фильтров в dfilt объекты Hd1, Hd2..., HdN.

h = fvtool(___) возвращается фигура обрабатывают h. Можно использовать этот указатель, чтобы взаимодействовать с FVTool из командной строки. Смотрите Управление FVTool из командной строки MATLAB.

Больше о

развернуть все

Представлено до R2006a