fdesign.interpolator

Спецификация фильтра интерполятора

Синтаксис

D = fdesign.interpolator(L)
D = fdesign.interpolator(L,RESPONSE)
D = fdesign.interpolator(L,CICRESPONSE,D)
D = fdesign.interpolator(L,RESPONSE,spec)
D = fdesign.interpolator(...,spec,specvalue1,specvalue2,...)
D = fdesign.interpolator(...,Fs)
d = fdesign.interpolator(...,MAGUNITS)

Описание

D = fdesign.interpolator(L) создает интерполятор объекта спецификации фильтров D с InterpolationFactor свойство, равное положительному целому числу L и Response значение свойства установлено в 'Nyquist'. Значения по умолчанию для ширины перехода и затухания в полосе задерживания в проекте Nyquist являются 0.1, радианы/выборка и 80 дБ. Если L не задан, L значение по умолчанию 2.

D = fdesign.interpolator(L,RESPONSE) создает объект спецификации интерполятора с коэффициентом интерполяции L и 'Response' для набора свойств значение одного из поддерживаемых типов.

D = fdesign.interpolator(L,CICRESPONSE,D) создает объект спецификации интерполятора CIC или CIC с коэффициентом интерполяции, L, и 'Response' свойство, равное 'CIC' или 'CICCOMP'. D - дифференциальная задержка. Дифференциальная задержка, D, должен предшествовать любой опции спецификации.

D = fdesign.interpolator(L,RESPONSE,spec) создает D объекта и устанавливает его Specification свойство к spec. Записи в spec представляют различные функции фильтра, такие как порядок фильтра, которые управляют созданием фильтра. Допустимые значения для spec зависят от типа проекта объекта спецификаций.

Когда вы добавляете spec входной параметр, вы также должны добавить RESPONSE входной параметр.

Поскольку вы проектируете многоскоростные фильтры, доступные опции спецификации не совпадают с спецификациями для разработки односкоростных фильтров с такими методами проекта, как fdesign.lowpass. Опции не чувствительны к регистру.

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

Метод проекта

Допустимые опции спецификации

'Arbitrary Magnitude'

Посмотрите fdesign.arbmag описание записей спецификации.

  • 'N,F,A' (опция по умолчанию)

  • 'N,B,F,A'

'Arbitrary Magnitude and Phase'

Посмотрите fdesign.arbmagnphase описание записей спецификации.

  • 'N,F,H' (опция по умолчанию)

  • 'N,B,F,H'

'Bandpass'

Посмотрите fdesign.bandpass описание записей спецификации.

  • 'Fst1,Fp1,Fp2,Fst2,Ast1,Ap,Ast2' (опция по умолчанию)

  • 'N,Fc1,Fc2'

  • 'N,Fst1,Fp1,Fp2,Fst2'

'Bandstop'

Посмотрите fdesign.bandstop описание записей спецификации.

  • 'N,Fc1,Fc2'

  • 'N,Fp1,Fst1,Fst2,Fp2'

  • 'Fp1,Fst1,Fst2,Fp2,Ap1,Ast,Ap2' (опция по умолчанию)

'CIC'

'Fp,Ast' - Только действительная спецификация. Fp - частота полосы пропускания и Ast - затухание в полосе задерживания в децибелах.

Чтобы задать интерполятор CIC, включите дифференциальную задержку после 'CIC' и перед спецификацией фильтра: 'Fp,Ast'. Для примера:
d = fdesign.interpolator(2,'cic',4,'Fp,Ast',0.4,40);

'CIC Compensator'

Посмотрите fdesign.ciccomp описание записей спецификации.

  • 'Fp,Fst,Ap,Ast' (опция по умолчанию)

  • 'N,Fc,Ap,Ast'

  • 'N,Fp,Ap,Ast'

  • 'N,Fp,Fst'

  • 'N,Fst,Ap,Ast'

Чтобы задать интерполятор компенсатора CIC, включите дифференциальную задержку после 'CICCOMP' и перед спецификацией фильтра. Для примера:
d = fdesign.interpolator(2,'ciccomp',4);

'Differentiator'

'N' - порядок фильтра

'Gaussian'

'Nsym,BTNsym - порядок фильтра в символах и BT - продукт времени полосы пропускания-символа.

Спецификации должно предшествовать целое число SamplesPerSymbol.

'Halfband

Посмотрите fdesign.halfband описание записей спецификации.

  • 'TW,Ast' (опция по умолчанию)

  • 'N,TW'

  • 'N'

  • 'N,Ast'

Если вы используете квазилинейный метод проекта БИХ, iirlinphaseпри спецификации halfband коэффициент интерполяции должен быть 2.

'Highpass'

Посмотрите fdesign.highpass описание записей спецификации.

  • 'Fst,Fp,Ast,Ap' (опция по умолчанию)

  • 'N,F3db'

  • 'N,Fc'

  • 'N,Fc,Ast,Ap'

  • 'N,Fp,Ast,Ap'

  • 'N,Fst,Ast,Ap'

  • 'N,Fst,Fp'

  • 'N,Fst,Ast,Ap'

  • 'N,Fst,Fp,Ast'

'Hilbert'

Посмотрите fdesign.hilbert описание записей спецификации.

  • 'N,TW' (опция по умолчанию)

  • 'TW,Ap'

'Inverse-sinc Lowpass'

Посмотрите fdesign.isinclp описание записей спецификации.

  • 'Fp,Fst,Ap,Ast' (опция по умолчанию)

  • 'N,Fc,Ap,Ast'

  • 'N,Fp,Fst'

  • 'N,Fst,Ap,Ast'

'Inverse-sinc Highpass'

Посмотрите fdesign.isinchp описание записей спецификации.

  • 'Fst,Fp,Ast,Ap' (опция по умолчанию)

  • 'N,Fc,Ast,Ap'

  • 'N,Fst,Fp'

  • 'N,Fst,Ast,Ap'

'Lowpass'

Посмотрите fdesign.lowpass описание записей спецификации.

  • 'Fp,Fst,Ap,Ast' (опция по умолчанию)

  • 'N,F3dB'

  • 'N,Fc'

  • 'N,Fc,Ap,Ast'

  • 'N,Fp,Ap,Ast'

  • 'N,Fp,Fst'

  • 'N,Fp,Fst,Ap'

  • 'N,Fp,Fst,Ast'

  • 'N,Fst,Ap,Ast'

'Nyquist'

Посмотрите fdesign.nyquist описание записей спецификации. Для всех спецификаций Nyquist необходимо задать полосу Lth. Это обычно соответствует коэффициенту интерполяции, так что ненулевые выборки выхода усилителя сохраняются.

  • 'TW,Ast' (опция по умолчанию)

  • 'N'

  • 'N,Ast'

  • 'N,Ast'

D = fdesign.interpolator(...,spec,specvalue1,specvalue2,...) создает объект D и устанавливает свои спецификации во время конструкции.

D = fdesign.interpolator(...,Fs) добавляет аргумент Fs, указанный в Гц, для определения частоты дискретизации для использования. В этом случае все частоты в спецификациях также находятся в Гц.

d = fdesign.interpolator(...,MAGUNITS) задает модули для любой спецификации, заданной в входных параметрах. MAGUNITS может быть одним из

  • 'linear' - задайте величину в линейных модулях.

  • 'dB' - задайте величину в дБ (децибелах).

  • 'squared' - задайте величину в силовых модулях.

Когда вы опускаете MAGUNITS аргумент, fdesign принимает, что все величины указаны в децибелах. Обратите внимание, что fdesign сохраняет все спецификации величин в децибелах (преобразование в децибелы при необходимости) независимо от того, как вы задаете величины.

Примеры

свернуть все

Эти примеры показывают, как создать интерполяцию объектов спецификации фильтров.

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

l = 2;
d = fdesign.interpolator(l); %#ok

Теперь создайте объект, передав опцию спецификации 'fst1, fp1, fp2, fst2, ast1, ap, ast2' и проект - полученный объект использует значения по умолчанию для всех спецификаций фильтра. Вы должны предоставить входной параметр проекта, когда вы включите спецификацию.

d = fdesign.interpolator(8,'bandpass','fst1,fp1,fp2,fst2,ast1,ap,ast2'); %#ok

Создайте другой интерполирующий объект фильтра, передав значения спецификации объекту, а не приняв значения по умолчанию для, в этом случае, fp, fst, ap, ast.

d = fdesign.interpolator(3,'lowpass',.45,0.55,.1,60); %#ok

Теперь передайте спецификации фильтра, которые соответствуют спецификациям - n, fc, ap, ast.

d = fdesign.interpolator(3,'ciccomp',1,2,'n,fc,ap,ast',...
20,0.45,.05,50);

Используя объект спецификаций в вашей рабочей области, спроектируйте интерполятор с помощью метода проект.

hm = design(d,'equiripple','SystemObject',true); %#ok

Передайте новый тип спецификации для фильтра, задав порядок фильтра.

d = fdesign.interpolator(5,'CIC',1,'fp,ast',0.05,55);

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

hm = design(d,'multisection','SystemObject',true); %#ok

В этом примере вы задаете частоту дискретизации как самый правый входной параметр. Здесь он установлен на 1000 Гц.

d = fdesign.interpolator(8,'bandpass','fst1,fp1,fp2,fst2,ast1,ap,ast2',...
    0.25,0.35,.55,.65,50,.05,1e3); %#ok

В этом, последнем примере, используйте линейную опцию для объекта спецификации фильтров и задайте затухание пульсации в линейной форме.

d = fdesign.interpolator(4,'lowpass','n,fst,ap,ast',15,0.55,.05,0.001,...
    'linear'); %#ok

Теперь спроектируйте CIC интерполятор для сигнала, дискретизированного в 19200 Гц. Задайте дифференциальную задержку 2 и установите ослабление информации за 50 Гц равным не менее 80 дБ.

% The filter object sampling frequency is (l x fs) where fs is the sampling frequency of the input signal.

dd  = 2;     % Differential delay.
fp  = 50;    % Passband of interest.
ast = 80;    % Minimum attenuation of alias components in passband.
fs  = 600;   % Sampling frequency for input signal.
l   = 32;    % Interpolation factor.
d   = fdesign.interpolator(l,'cic',dd,'fp,ast',fp,ast,l*fs);
hm = design(d,'SystemObject',true);  %Use the default design method.

Этот следующий пример результатов в компенсаторе CIC минимального порядка, который интерполируется на 4 и компенсирует падение полосы пропускания для CIC-фильтра hm по сравнению с предыдущим примером.

nsecs = hm.NumSections;
d = fdesign.interpolator(4,'ciccomp',dd,nsecs,...
50,100,0.1,80,fs);
hmc = design(d,'equiripple','SystemObject',true);

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

hfvt = fvtool(hmc,hm,cascade(hmc,hm),'fs',[fs,l*fs,l*fs],'ShowReference','off');
legend(hfvt,'CIC Compensator','CIC Interpolator',...
'Overall Response');

Figure Filter Visualization Tool - Magnitude Response (dB) contains an axes and other objects of type uitoolbar, uimenu. The axes with title Magnitude Response (dB) contains 3 objects of type line. These objects represent CIC Compensator, CIC Interpolator, Overall Response.

fvtool возвращается с этим графиком.

В третьем примере используйте fdesign.interpolator, чтобы спроектировать интерполятор Nyquist минимального порядка, который использует окно Кайзера. Для сравнения спроектируйте также многоступенчатый интерполятор и сравните ответы.

l   = 15;   % Set the interpolation factor and the Nyquist band.
tw  = 0.05; % Specify the normalized transition width.
ast = 40;   % Set the minimum stopband attenuation in dB.
d   = fdesign.interpolator(l,'nyquist',l,tw,ast);
hm = design(d,'kaiserwin','SystemObject',true);
hm2 = design(d,'multistage','SystemObject',true); % Design the multistage interpolator.
hfvt = fvtool(hm,hm2);
legend(hfvt,'Kaiser Window','Multistage')

Figure Filter Visualization Tool - Magnitude Response (dB) contains an axes and other objects of type uitoolbar, uimenu. The axes with title Magnitude Response (dB) contains 3 objects of type line. These objects represent Kaiser Window, Multistage.

fvtool показывает оба ответа.

Спроектируйте lowpass интерполятор для коэффициента интерполяции 8. Сравните однокаскадный проект равновесия с многоступенчатым проектом с тем же коэффициентом интерполяции.

l = 8; % Interpolation factor.
d = fdesign.interpolator(l,'lowpass');
hm1 = design(d,'equiripple','SystemObject',true);
% Use halfband filters whenever possible.
hm2 = design(d,'multistage','usehalfbands',true,'SystemObject',true);
hfvt = fvtool(hm1,hm2);
legend(hfvt,'Single-Stage Equiripple','Multistage')

Figure Filter Visualization Tool - Magnitude Response (dB) contains an axes and other objects of type uitoolbar, uimenu. The axes with title Magnitude Response (dB) contains 3 objects of type line. These objects represent Single-Stage Equiripple, Multistage.

Введенный в R2011a