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'. Значения по умолчанию для ширины перехода и затухания в полосе задерживания в проекте Найквиста 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' 'DefaultOption'

  • 'N,B,F,A'

'Arbitrary Magnitude and Phase'

Смотрите fdesign.arbmagnphase для описания записей спецификации.

  • 'N,F,H' 'DefaultOption'

  • 'N,B,F,H'

'Bandpass'

Смотрите fdesign.bandpass для описания записей спецификации.

  • 'Fst1,Fp1,Fp2,Fst2,Ast1,Ap,Ast2' 'DefaultOption'

  • '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' 'DefaultOption'

'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' 'DefaultOption'

  • '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' 'DefaultOption'

  • 'N,TW'

  • 'N'

  • 'N,Ast'

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

'Highpass'

Смотрите fdesign.highpass для описания записей спецификации.

  • 'Fst,Fp,Ast,Ap' 'DefaultOption'

  • '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' 'DefaultOption'

  • 'TW,Ap'

'Inverse-sinc Lowpass'

Смотрите fdesign.isinclp для описания записей спецификации.

  • 'Fp,Fst,Ap,Ast' 'DefaultOption'

  • 'N,Fc,Ap,Ast'

  • 'N,Fp,Fst'

  • 'N,Fst,Ap,Ast'

'Inverse-sinc Highpass'

Смотрите fdesign.isinchp для описания записей спецификации.

  • 'Fst,Fp,Ast,Ap' 'DefaultOption'

  • 'N,Fc,Ast,Ap'

  • 'N,Fst,Fp'

  • 'N,Fst,Ast,Ap'

'Lowpass'

Смотрите fdesign.lowpass для описания записей спецификации.

  • 'Fp,Fst,Ap,Ast' 'DefaultOption'

  • '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 для описания записей спецификации. Для всех технических требований Найквиста необходимо задать полосу Lth. Это обычно соответствует коэффициенту интерполяции так, чтобы ненулевые выборки upsampler выход были сохранены.

  • 'TW,Ast' 'DefaultOption'

  • '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, ФК, AP, ast.

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

С объектом технических требований в вашей рабочей области спроектируйте интерполятор с помощью equiripple метода разработки.

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

В этом примере вы задаете частоту дискретизации как право большая часть входного параметра. Здесь, это установлено в 1 000 Гц.

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 для сигнала, произведенного на уровне 19 200 Гц. Задайте дифференциальную задержку 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-фильтра гм от предыдущего примера.

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

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

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

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

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

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')

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

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

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')

Введенный в R2011a