Мультирациональные преобразователи частоты дискретизации Farrow

Генерация кода для Multirate Farrow Sample Rate Converters

Кодер поддерживает генерацию кода для мультирейтовых преобразователей частоты дискретизации Фэрроу (dsp.FarrowRateConverter). dsp.FarrowRateConverter является многоскоростной фильтр структурой, которая реализует преобразователь частоты дискретизации с произвольным коэффициентом преобразования, определяемым его интерполяцией и факторами десятикратного уменьшения.

В отличие от односкоростного фильтра Фэрроу (см. «Односкоростные фильтры Фэрроу»), многократный преобразователь частоты дискретизации Фэрроу не имеет дробной задержки входа. Для получения общей информации об этой структуре фильтра смотрите dsp.FarrowRateConverter страница с описанием в документации DSP System Toolbox™.

Генерация кода для dsp. Фильтры FarrowRateConverter в командной строке

Можно сгенерировать HDL-код для автономного dsp.FarrowRateConverter объект или каскад, включающий dsp.FarrowRateConverter объект. В этом разделе приведены простые примеры для каждого случая.

В следующем примере создается экземпляр автономного преобразователя частоты дискретизации Фэрроу с фиксированной точкой. Объект преобразуется между двумя стандартными скоростями звука, от 44,1 кГц до 48 кГц. Пример генерирует как VHDL- кода, так и VHDL- испытательного стенда.

Hm = dsp.FarrowRateConverter(48,44.1);
generatehdl(Hm,'InputDataType',numerictype(1,16,15),...
               'GenerateHDLTestbench','on')

Следующий пример генерирует HDL-код для каскада, который включает в себя dsp.FarrowRateConverter фильтр. Кодер требует, чтобы dsp.FarrowRateConverter фильтр находится в последнем положении каскада.

Сначала интерполируйте исходный сигнал 8-kHz на четыре, используя каскад конечной импульсной характеристики полуполосных фильтров.

Astop = 50;         % Minimum stopband attenuation
TW = .125;          % Transition Width
f2 = fdesign.interpolator(4,'Nyquist',4,'TW,Ast',TW,Astop);
hfir = design(f2,'multistage','HalfbandDesignMethod','equiripple','Systemobject',true);
Затем интерполируйте сигнал промежуточного 32-kHz, чтобы получить частоту дискретизации 44.1-kHz конструктора. The dsp.FarrowRateConverter Система object™ вычисляет кусочно-полиномиальное сглаживание с помощью коэффициентов интерполяции Лагранжа.
N = 3;  % Polynomial Order
hfar = dsp.FarrowRateConverter(32,44.1,'PolynomialOrder',N) 
Получите полный фильтр путем каскадирования фаз конечных импульсных характеристик с каскадом Фэрроу. The dsp.FarrowRateConverter фильтр находится в конце каскада.
interp_cascade.addStage(hfar);
generatehdl(interp_cascade,'InputDataType',numerictype(1,16,15),...
                           'GenerateHDLTestbench','on');

Генерация кода для dsp.FarrowRateConverter Фильтры в пользовательском интерфейсе

filterDesigner и filterBuilder в настоящее время не поддерживает dsp.FarrowRateConverter фильтры. Чтобы сгенерировать код для dsp.FarrowRateConverter фильтровать в пользовательском интерфейсе генерации HDL-кода, используйте fdhdltool команда, как в следующем примере:

m = dsp.FarrowRateConverter(48,44.1);
fdhdltool(m,numerictype(1,16,15));

fdhdltool открывает диалоговое окно Сгенерировать HDL для dsp.FarrowRateConverter фильтр, как показано на следующем рисунке.

Следующие опции генерации кода не поддерживаются для dsp.FarrowRateConverter фильтры и отключены в пользовательском интерфейсе:

  • Использование регистров трубопроводов (AddPipelineRegisters)

  • Распределённая арифметическая архитектура (DARadix и (DALUTPartition))

  • Полностью или частично последовательные архитектуры (SerialPartition и ReuseAccum)

  • Входы нескольких синхроимпульсов (ClockInputs)

См. также

|

Похожие темы