exponenta event banner

информация

Сведения об объекте filter System

Описание

пример

s = info(sysobj) возвращает очень основные сведения о системном object™ фильтра. Данные зависят от типа и структуры фильтра.

пример

s = info(sysobj,infoType) возвращает объем информации фильтра, указанный в infoType.

s = info(___,'Arithmetic',arithType) анализирует объект System фильтра на основе арифметики, указанной в arithType, используя любой из предыдущих синтаксисов.

Дополнительные параметры ввода см. в разделе info в Toolbox™ обработки сигналов.

Примеры

свернуть все

Получение краткоформатной и длинноформатной информации о фильтре.

d = fdesign.lowpass;
f = design(d,'SystemObject',true);
info(f)
ans = 6x35 char array
    'Discrete-Time FIR Filter (real)    '
    '-------------------------------    '
    'Filter Structure  : Direct-Form FIR'
    'Filter Length     : 43             '
    'Stable            : Yes            '
    'Linear Phase      : Yes (Type 1)   '

info(f,'long')
ans = 45x45 char array
    'Discrete-Time FIR Filter (real)              '
    '-------------------------------              '
    'Filter Structure  : Direct-Form FIR          '
    'Filter Length     : 43                       '
    'Stable            : Yes                      '
    'Linear Phase      : Yes (Type 1)             '
    '                                             '
    'Design Method Information                    '
    'Design Algorithm : equiripple                '
    '                                             '
    'Design Options                               '
    'Density Factor : 16                          '
    'Maximum Phase  : false                       '
    'Minimum Order  : any                         '
    'Minimum Phase  : false                       '
    'Stopband Decay : 0                           '
    'Stopband Shape : flat                        '
    'SystemObject   : true                        '
    'Uniform Grid   : true                        '
    '                                             '
    'Design Specifications                        '
    'Sample Rate     : N/A (normalized frequency) '
    'Response        : Lowpass                    '
    'Specification   : Fp,Fst,Ap,Ast              '
    'Passband Ripple : 1 dB                       '
    'Stopband Atten. : 60 dB                      '
    'Passband Edge   : 0.45                       '
    'Stopband Edge   : 0.55                       '
    '                                             '
    'Measurements                                 '
    'Sample Rate      : N/A (normalized frequency)'
    'Passband Edge    : 0.45                      '
    '3-dB Point       : 0.46957                   '
    '6-dB Point       : 0.48314                   '
    'Stopband Edge    : 0.55                      '
    'Passband Ripple  : 0.89042 dB                '
    'Stopband Atten.  : 60.945 dB                 '
    'Transition Width : 0.1                       '
    '                                             '
    'Implementation Cost                          '
    'Number of Multipliers            : 43        '
    'Number of Adders                 : 42        '
    'Number of States                 : 42        '
    'Multiplications per Input Sample : 43        '
    'Additions per Input Sample       : 42        '

Примечание.При использовании R2016a или более ранней версии замените каждый вызов объекта синтаксисом эквивалентного шага. Например, obj(x) становится step(obj,x).

Создать dsp.CICDecimator object™ системы с DecimationFactor установите в значение 4. Прорежьте сигнал от 44,1 кГц до 11,025 кГц.

cicdec = dsp.CICDecimator(4);  
cicdec.FixedPointDataType = 'Minimum section word lengths'; 
cicdec.OutputWordLength = 16;

Создайте синусоидальный входной сигнал с фиксированной точкой из 1024 выборок с частотой дискретизации 44,13 Гц.

Fs = 44.1e3;             
n = (0:1023)';            % 0.0232 sec signal
x = fi(sin(2*pi*1e3/Fs*n),true,16,15);

Создать dsp.SignalSource объект.

src = dsp.SignalSource(x,64);

Прорежьте выходной сигнал с помощью 16 выборок на кадр.

y = zeros(16,16);
for ii = 1:16
     y(ii,:) = cicdec(src());   
end

Постройте график первого кадра исходного и прореженного сигналов. Задержка вывода составляет 2 выборки.

gainCIC = ...
   (cicdec.DecimationFactor*cicdec.DifferentialDelay)^cicdec.NumSections;
stem(n(1:56)/Fs,double(x(4:59))) 
hold on;     
stem(n(1:14)/(Fs/cicdec.DecimationFactor),double(y(1,3:end))/gainCIC,'r','filled')
xlabel('Time (sec)')
ylabel('Signal Amplitude')
legend('Original signal','Decimated signal','Location','north')
hold off;

Figure contains an axes. The axes contains 2 objects of type stem. These objects represent Original signal, Decimated signal.

Использование info метод в 'long' , получить длины слов и дроби секций фильтра с фиксированной точкой и выходные данные фильтра.

info(cicdec,'long')
ans = 
    'Discrete-Time FIR Multirate Filter (real)               
     -----------------------------------------               
     Filter Structure    : Cascaded Integrator-Comb Decimator
     Decimation Factor   : 4                                 
     Differential Delay  : 1                                 
     Number of Sections  : 2                                 
     Stable              : Yes                               
     Linear Phase        : Yes (Type 1)                      
                                                             
                                                             
     Implementation Cost                                     
     Number of Multipliers            : 0                    
     Number of Adders                 : 4                    
     Number of States                 : 4                    
     Multiplications per Input Sample : 0                    
     Additions per Input Sample       : 2.5                  
     
     
     Fixed-Point Info
     Section word lengths     : 20  19  19  18
     Section fraction lengths : 15  14  14  13
     Output  word length      : 16
     Output  fraction length  : 11
     '

Примечание.При использовании R2016a или более ранней версии замените каждый вызов объекта эквивалентным step синтаксис. Например, obj(x) становится step(obj,x).

Создать dsp.CICInterpolator object™ системы с InterpolationFactor задайте значение 2. Интерполировать сигнал с фиксированной точкой с коэффициентом 2 от 22,05 кГц до 44,1 кГц.

cicint = dsp.CICInterpolator(2)
cicint = 
  dsp.CICInterpolator with properties:

    InterpolationFactor: 2
      DifferentialDelay: 1
            NumSections: 2
     FixedPointDataType: 'Full precision'

Создать dsp.SineWave объект с SampleRate установить на 22,05 кГц, SamplesPerFrame установите в значение 32, и OutputDataType установить в значение 'Custom'. Для генерации сигнала с фиксированной точкой установите CustomOutputDataType к свойству numerictype объект. В данном примере задайте значение numerictype([],16). Длина дроби вычисляется на основе значений генерируемого синусоидального сигнала для обеспечения наилучшей возможной точности.

Для генерации сигнала с фиксированной точкой установите Method имущества dsp.SineWave объект в 'Table lookup'. Этот способ генерирования синусоидального сигнала требует, чтобы период каждой синусоиды на выходе был равномерно разделен на период выборки. То есть 1/fTs = ki должно быть целым значением для каждого канала i = 1, 2,..., N. Значение Ts равно 1/Fs, переменная fi - это частота синусоидального сигнала, а Fs - частота дискретизации сигнала. Другими словами, отношение Fs/fi должно быть целым числом. Дополнительные сведения см. в разделе Алгоритмы на dsp.SineWave страница объекта.

В этом примере Fs устанавливается на 22050 Гц, а fi - на 1050 Гц.

Fs = 22.05e3;      
sine = dsp.SineWave('Frequency',1050,'SampleRate',Fs,'SamplesPerFrame',32,...
    'Method','Table lookup','OutputDataType','Custom')
sine = 
  dsp.SineWave with properties:

            Amplitude: 1
            Frequency: 1050
          PhaseOffset: 0
        ComplexOutput: false
               Method: 'Table lookup'
    TableOptimization: 'Speed'
           SampleRate: 22050
      SamplesPerFrame: 32
       OutputDataType: 'Custom'

  Show all properties

В каждом контуре итерации поток в кадре синусоидального сигнала с фиксированной точкой, дискретизированного на частоте 22,05 кГц. Интерполяция потокового сигнала с коэффициентом 2. Интерполированный выходной сигнал имеет 64 выборки на кадр.

for i = 1:16
    x = sine();
    y = cicint(x);
end

Выходной сигнал интерполяционного фильтра CIC усиливается на конкретное значение усиления. Вы можете определить это значение с помощью gain функция. Этот коэффициент усиления равен коэффициенту усиления 2Nth ступени интерполяционного фильтра CIC и равен (I × D) N/I, где I - коэффициент интерполяции, D - дифференциальная задержка, а N - число секций интерполятора CIC.

gainCIC = gain(cicint)
gainCIC = 2

Чтобы отрегулировать этот усиленный выходной сигнал и согласовать его с амплитудой исходного сигнала, разделите интерполированный CIC-сигнал на вычисленное значение усиления.

Сравните последние кадры исходного и интерполированного сигналов. При построении графика учтите задержку вывода 2 выборок.

n = (0:63)';
stem(n(1:31)/Fs, double(x(1:31)),'r','filled')
hold on; 
I = cicint.InterpolationFactor;
stem(n(1:61)/(Fs*I), ...
   double(y(4:end))/gainCIC,'b') 
xlabel('Time (sec)')
ylabel('Signal Amplitude')
legend('Original Signal','Interpolated Signal',...
   'location','north')
hold off;

Figure contains an axes. The axes contains 2 objects of type stem. These objects represent Original Signal, Interpolated Signal.

Использование info функции в 'long' , получить длины слов и дроби секций фильтра с фиксированной точкой и выходные данные фильтра.

info(cicint,'long')
ans = 
    'Discrete-Time FIR Multirate Filter (real)                    
     -----------------------------------------                    
     Filter Structure      : Cascaded Integrator-Comb Interpolator
     Interpolation Factor  : 2                                    
     Differential Delay    : 1                                    
     Number of Sections    : 2                                    
     Stable                : Yes                                  
     Linear Phase          : Yes (Type 1)                         
                                                                  
                                                                  
     Implementation Cost                                          
     Number of Multipliers            : 0                         
     Number of Adders                 : 4                         
     Number of States                 : 4                         
     Multiplications per Input Sample : 0                         
     Additions per Input Sample       : 6                         
     
     
     Fixed-Point Info
     Section word lengths     : 17  17  17  17
     Section fraction lengths : 14  14  14  14
     Output  word length      : 17
     Output  fraction length  : 14
     '

Входные аргументы

свернуть все

Объем отображаемой информации о фильтре. Если для этого свойства установлено значение:

  • 'short' -- Функция отображает ту же информацию, что и info(sysobj), которая является основной информацией фильтра.

  • 'long' -- Функция возвращает следующую информацию о фильтре:

    • Спецификации, такие как структура фильтра и порядок фильтра.

    • Информация о методе проектирования и вариантах.

    • Измерения рабочих характеристик для отклика фильтра, такие как отсечение полосы пропускания или затухание полосы останова, включены в measure метод

      .

    • Затраты на внедрение фильтра с точки зрения операций, необходимых для применения фильтра к данным, включенные в cost способ.

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

Типы данных: char | string

Арифметика, используемая в анализе фильтра, указанная как 'double', 'single', или 'Fixed'. Если арифметический ввод не задан и объект «Система фильтров» разблокирован, инструмент анализа использует фильтр двойной точности. Если арифметический ввод не указан и объект System заблокирован, функция выполняет анализ на основе типа данных заблокированного ввода.

'Fixed' применяется только к фильтру системных объектов со свойствами с фиксированной точкой.

Когда 'Arithmetic' входной аргумент указан как 'Fixed' и объект фильтра имеет тип данных коэффициентов, установленный равным 'Same word length as input'арифметический анализ зависит от того, разблокирован или заблокирован объект System.

  • unlocked - функция объекта анализа не может определить тип данных коэффициентов. Функция предполагает, что тип данных коэффициентов подписан, имеет 16-битную длину слова и автоматически масштабируется. На основе этого предположения функция выполняет анализ с фиксированной точкой.

  • locked -- Если входной тип данных 'double' или 'single', функция объекта анализа не может определить тип данных коэффициентов. Функция предполагает, что тип данных коэффициентов подписан, имеет 16-битную длину слова и автоматически масштабируется. На основе этого предположения функция выполняет анализ с фиксированной точкой.

Чтобы проверить, заблокирован или разблокирован объект System, используйте isLocked функция.

Если арифметический вход указан как 'Fixed' и объект фильтра имеет тип данных коэффициентов, установленный на пользовательский числовой тип, функция объекта выполняет анализ с фиксированной точкой на основе пользовательского числового типа данных.

Выходные аргументы

свернуть все

Фильтрация информации, возвращаемой в виде символьного массива.

Когда infoType является 'short', функция отображает основную информацию фильтра. Когда infoType является 'long', функция отображает следующую информацию:

  • Спецификации, такие как структура фильтра и порядок фильтрации

  • Информация о способе и вариантах проектирования

  • Измерения рабочих характеристик для отклика фильтра, такие как отсечение полосы пропускания или затухание полосы останова, включены в measure метод

  • Затраты на внедрение фильтра с точки зрения операций, необходимых для применения фильтра к данным, включенные в cost метод

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

Представлен в R2011a