fdesign.highpass

Объект спецификации фильтров Highpass

Синтаксис

D = fdesign.highpass
D = fdesign.highpass(SPEC)
D = fdesign.highpass(SPEC,specvalue1,specvalue2,...)
D = fdesign.highpass(specvalue1,specvalue2,specvalue3,
specvalue4)
D = fdesign.highpass(...,Fs)
D = fdesign.highpass(...,MAGUNITS)

Описание

D = fdesign.highpass создает highpass объект спецификации фильтров D, применяя значения по умолчанию для спецификации, 'Fst,Fp,Ast,Ap'.

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

Примечание

Записи спецификации, отмеченные звездочкой, требуют программного обеспечения DSP System Toolbox™.

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

  • 'N,F3db'

  • 'N,F3db,Ap' *

  • 'N,F3db,Ast' *

  • 'N,F3db,Ast,Ap' *

  • 'N,F3db,Fp *

  • 'N,Fc'

  • 'N,Fc,Ast,Ap'

  • 'N,Fp,Ap'

  • 'N,Fp,Ast,Ap'

  • 'N,Fst,Ast'

  • 'N,Fst,Ast,Ap'

  • 'N,Fst,F3db' *

  • 'N,Fst,Fp'

  • 'N,Fst,Fp,Ap' *

  • 'N,Fst,Fp,Ast' *

  • 'Nb,Na,Fst,Fp' *

Технические требования фильтра определяются следующим образом:

  • Ap — сумма пульсации, позволенной в полосе передачи в децибелах (модули по умолчанию). Также названный Apass.

  • Ast — затухание в полосе задерживания в децибелах (модули по умолчанию). Также названный Astop.

  • F3db — частота среза для точки точки 3 дБ ниже значения полосы пропускания. Заданный в нормированных единицах частоты.

  • Fc — частота среза для точки точки 6 дБ ниже значения полосы пропускания. Заданный в нормированных единицах частоты.

  • Fp — частота в начале полосы передачи. Заданный в нормированных единицах частоты. Также названный Fpass.

  • Fst — частота в конце полосы задерживания. Заданный в нормированных единицах частоты. Также названный Fstop.

  • N — порядок фильтра.

  • Na и Nb порядок знаменателя и числителя.

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

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

Методы создания фильтра, которые применяются к highpass изменению объекта спецификации фильтров в зависимости от SpecificationИспользование designmethods определить, какой метод разработки применяется к объекту и его спецификации.

Использование designopts определить, какие проектные решения допустимы для данного метода разработки. Для получения дальнейшей информации на проектных решениях для данного метода разработки, METHOD, введите help(D,METHOD) в командной строке MATLAB®.

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

D = fdesign.highpass(specvalue1,specvalue2,specvalue3,
specvalue4)
создает объект D с Specification по умолчанию свойство и значения вы вводите для specvalue1,specvalue2,....

D = fdesign.highpass(...,Fs) обеспечивает частоту дискретизации для объекта спецификации фильтров. Fs находится в Гц и должен быть задан как скаляр, запаздывающий другие введенные численные значения. Если вы задаете частоту дискретизации, все другие технические требования частоты находятся в Гц.

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

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

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

  • 'squared' — задайте величину в блоках питания

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

Примеры

свернуть все

Спроектируйте фильтр Баттерворта с lowpass и highpass частотными характеристиками. Процедура создания фильтра:

  1. Задайте технические требования создания фильтра с помощью fdesign функция.

  2. Выберите метод разработки, обеспеченный designmethods функция.

  3. Чтобы определить доступные проектные решения, чтобы выбрать из, используйте designoptions функция.

  4. Спроектируйте фильтр с помощью design функция.

Фильтр lowpass

Создайте объект спецификации создания фильтра lowpass по умолчанию использование fdesign.lowpass.

designSpecs = fdesign.lowpass
designSpecs = 
  lowpass with properties:

               Response: 'Lowpass'
          Specification: 'Fp,Fst,Ap,Ast'
            Description: {4x1 cell}
    NormalizedFrequency: 1
                  Fpass: 0.4500
                  Fstop: 0.5500
                  Apass: 1
                  Astop: 60

Определите доступные методы разработки с помощью designmethods функция. Чтобы спроектировать фильтр Баттерворта, выберите butter.

designmethods(designSpecs,'SystemObject',true)
Design Methods that support System objects for class fdesign.lowpass (Fp,Fst,Ap,Ast):


butter
cheby1
cheby2
ellip
equiripple
ifir
kaiserwin
multistage

При разработке фильтра можно задать дополнительные проектные решения. Просмотрите список опций с помощью designoptions функция. Эта функция также показывает варианты оформления по умолчанию использование фильтра.

designoptions(designSpecs,'butter','SystemObject',true)
ans = struct with fields:
           FilterStructure: {1x6 cell}
              SOSScaleNorm: 'ustring'
              SOSScaleOpts: 'fdopts.sosscaling'
              MatchExactly: {'passband'  'stopband'}
    DefaultFilterStructure: 'df2sos'
       DefaultMatchExactly: 'stopband'
       DefaultSOSScaleNorm: ''
       DefaultSOSScaleOpts: [1x1 fdopts.sosscaling]

Используйте design функционируйте, чтобы спроектировать фильтр. Передайте 'butter' и технические требования, данные переменной designSpecs, как входные параметры. Задайте 'matchexactly' проектное решение к 'passband'.

lpFilter = design(designSpecs,'butter','matchexactly','passband','SystemObject',true);

Визуализируйте частотную характеристику спроектированного фильтра.

fvtool(lpFilter)

Фильтр Highpass

Создайте highpass объект спецификации создания фильтра использование fdesign.highpass. Задайте порядок быть 7 и частота на 3 дБ, чтобы быть 0.6π радианы/выборка.

designSpecs = fdesign.highpass('N,F3dB',7,.6); 

Определите доступные методы разработки. Чтобы спроектировать фильтр Баттерворта, выберите butter.

designmethods(designSpecs,'SystemObject',true)
Design Methods that support System objects for class fdesign.highpass (N,F3dB):


butter
maxflat

При разработке фильтра можно задать дополнительные проектные решения. Просмотрите список опций с помощью designoptions функция. Эта функция также показывает варианты оформления по умолчанию использование фильтра.

designoptions(designSpecs,'butter','SystemObject',true)
ans = struct with fields:
           FilterStructure: {1x6 cell}
              SOSScaleNorm: 'ustring'
              SOSScaleOpts: 'fdopts.sosscaling'
    DefaultFilterStructure: 'df2sos'
       DefaultSOSScaleNorm: ''
       DefaultSOSScaleOpts: [1x1 fdopts.sosscaling]

Чтобы спроектировать фильтр Баттерворта, используйте design функционируйте и задайте 'butter' как вход. Установите 'FilterStructure' к 'cascadeallpass'.

hpFilter = design(designSpecs,'butter','FilterStructure','cascadeallpass','SystemObject',true);

Визуализируйте highpass частотную характеристику.

fvtool(hpFilter)

Highpass фильтруют сигнал дискретного времени, состоящий из двух синусоид.

Создайте highpass объект спецификации фильтров. Задайте частоту полосы пропускания, чтобы быть 0.25π рад/выборка и частота полосы задерживания, чтобы быть 0.15π рад/выборка. Задайте 1 дБ допустимой неравномерности в полосе пропускания и затухание в полосе задерживания 60 дБ.

d = fdesign.highpass('Fst,Fp,Ast,Ap',0.15,0.25,60,1);

Запросите допустимые методы разработки для своего объекта спецификации фильтров.

designmethods(d)
Design Methods for class fdesign.highpass (Fst,Fp,Ast,Ap):


butter
cheby1
cheby2
ellip
equiripple
ifir
kaiserwin

Создайте КИХ equiripple, фильтруют и просматривают ответ величины фильтра с FVTool.

Hd = design(d,'equiripple');
fvtool(Hd)

Создайте сигнал, состоящий из суммы двух синусоид дискретного времени с частотами π/8 и π/4 рад/выборки и амплитуд 1 и 0.25 соответственно. Отфильтруйте сигнал дискретного времени с КИХ equiripple объект фильтра.

n = 0:159;
x = cos(pi/8*n)+0.25*sin(pi/4*n);
y = filter(Hd,x);

Постройте исходные и отфильтрованные сигналы в частотном диапазоне.

freq = 0:(2*pi)/160:pi;
xdft = fft(x);
ydft = fft(y);

plot(freq/pi,abs(xdft(1:length(x)/2+1)))
hold on
plot(freq/pi,abs(ydft(1:length(y)/2+1)),'r','linewidth',2)
hold off
legend('Original Signal','Lowpass Signal','Location','NorthEast')
ylabel('Magnitude')
xlabel('Normalized Frequency (\times\pi rad/sample)')

Создайте фильтр порядка 10 с частотой на 6 дБ 9,6 кГц и частоты дискретизации 48 кГц. Посмотрите на доступные методы разработки.

d=fdesign.highpass('N,Fc',10,9600,48000);
designmethods(d)
Design Methods for class fdesign.highpass (N,Fc):


window

Единственный доступный метод является методом окна FIR. Спроектируйте фильтр и отобразите его ответ величины.

Hd = design(d);

fvtool(Hd)

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

Создайте двух КИХ equiripple фильтры с различными линейными наклонами полосы задерживания. Задайте частоту полосы пропускания, чтобы быть 0.3π рад/выборка и частота полосы задерживания, чтобы быть 0.35π рад/выборка. Задайте 1 дБ допустимой неравномерности в полосе пропускания и затухание в полосе задерживания 60 дБ. Спроектируйте один фильтр с 20 дБ / (рад/выборка) наклон полосы задерживания и другой фильтр с наклоном 40 дБ / (рад/выборка).

D = fdesign.highpass('Fst,Fp,Ast,Ap',0.3,0.35,60,1);
Hd1 = design(D,'equiripple','StopBandShape','linear','StopBandDecay',20);
Hd2 = design(D,'equiripple','StopBandShape','linear','StopBandDecay',40);

Визуализируйте ответы величины фильтров.

hfvt = fvtool([Hd1 Hd2]);
legend(hfvt,'20 dB/rad/sample','40 dB/rad/sample')

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

| |

Представленный в R2009a