exponenta event banner

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

Генерация кода для многоскоростных преобразователей частоты дискретизации Farrow

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

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

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

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

В следующем примере создается экземпляр автономного преобразователя частоты дискретизации Farrow с фиксированной точкой. Объект преобразуется между двумя стандартными скоростями звука, от 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 разработчика. dsp.FarrowRateConverter Система object™ вычисляет кусочно-полиномиальную подгонку с использованием коэффициентов интерполяции Лагранжа.
N = 3;  % Polynomial Order
hfar = dsp.FarrowRateConverter(32,44.1,'PolynomialOrder',N) 
Получить общий фильтр путем каскадирования фаз КИХ со стадией Фэрроу. 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 открывает диалоговое окно Генерировать ЛПВП (Generate HDL) для dsp.FarrowRateConverter фильтр, как показано на следующем рисунке.

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

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

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

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

  • Несколько тактовых входов (ClockInputs)

См. также

|

Связанные темы