fdesign.lowpass

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

Синтаксис

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

Описание

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

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

Примечание

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

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

  • 'N,F3db'

  • 'N,F3db,Ap' *

  • 'N,F3db,Ap,Ast' *

  • 'N,F3db,Ast' *

  • 'N,F3db,Fst' *

  • 'N,Fc'

  • 'N,Fc,Ap,Ast'

  • 'N,Fp,Ap'

  • 'N,Fp,Ap,Ast'

  • 'N,Fp,Fst,Ap' *

  • 'N,Fp,F3db' *

  • 'N,Fp,Fst'

  • 'N,Fp,Fst,Ast' *

  • 'N,Fst,Ap,Ast' *

  • 'N,Fst,Ast'

  • 'Nb,Na,Fp,Fst' *

Спецификации фильтра определяются следующим образом:

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

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

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

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

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

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

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

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

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

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

D = fdesign.lowpass(SPEC,specvalue1,specvalue2,...) создает объект D и устанавливает значения спецификации во время создания с помощью specvalue1, specvalue2, и так далее для всех переменных спецификации в SPEC.

D = fdesign.lowpass(specvalue1,specvalue2,specvalue3,specvalue4) создает объект D со значениями для Specification по умолчанию свойство 'Fp,Fst,Ap,Ast' с помощью спецификаций вы обеспечиваете как входные параметры specvalue1,specvalue2,specvalue3,specvalue4.

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

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

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

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

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

Когда вы не используете MAGNUNITS аргумент, 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')
ans = struct with fields:
           FilterStructure: {1x6 cell}
              SOSScaleNorm: 'ustring'
              SOSScaleOpts: 'fdopts.sosscaling'
              MatchExactly: {'passband'  'stopband'}
              SystemObject: 'bool'
    DefaultFilterStructure: 'df2sos'
       DefaultMatchExactly: 'stopband'
       DefaultSOSScaleNorm: ''
       DefaultSOSScaleOpts: [1x1 fdopts.sosscaling]
       DefaultSystemObject: 0

Используйте 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')
ans = struct with fields:
           FilterStructure: {1x6 cell}
              SOSScaleNorm: 'ustring'
              SOSScaleOpts: 'fdopts.sosscaling'
              SystemObject: 'bool'
    DefaultFilterStructure: 'df2sos'
       DefaultSOSScaleNorm: ''
       DefaultSOSScaleOpts: [1x1 fdopts.sosscaling]
       DefaultSystemObject: 0

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

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

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

fvtool(hpFilter)

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

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

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

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

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


butter
cheby1
cheby2
ellip
equiripple
ifir
kaiserwin
multistage

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

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

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

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

Вычислите преобразование Фурье исходного сигнала и отфильтрованного сигнала. Проверьте, что высокочастотный компонент был отфильтрован.

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

figure
plot(freq/pi,abs(xdft(1:length(x)/2+1)))
hold on
plot(freq/pi,abs(ydft(1:length(y)/2+1)))
hold off

legend('Original Signal','Filtered Signal')
ylabel('Magnitude')
xlabel('Normalized Frequency (\times\pi rad/sample)')

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

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


window

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

Hd = design(d);

Отобразите ответ величины фильтра. Точка на-6 дБ на уровне 9,6 кГц, как ожидалось.

fvtool(Hd)

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

D = fdesign.lowpass('Fp,Fst,Ap,Ast',0.2,0.25,1,60);
Hd = design(D,'equiripple','StopbandShape','linear','StopbandDecay',20);

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

fvtool(Hd)

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

| |

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