Информация о фильтре Системный объект
Получите краткоформатную и длинноформатную информацию о фильтре.
d = fdesign.lowpass;
f = design(d,'SystemObject',true);
info(f)ans = 6x35 char array
'Discrete-Time FIR Filter (real) '
'------------------------------- '
'Filter Structure : Direct-Form FIR'
'Filter Length : 43 '
'Stable : Yes '
'Linear Phase : Yes (Type 1) '
info(f,'long')ans = 45x45 char array
'Discrete-Time FIR Filter (real) '
'------------------------------- '
'Filter Structure : Direct-Form FIR '
'Filter Length : 43 '
'Stable : Yes '
'Linear Phase : Yes (Type 1) '
' '
'Design Method Information '
'Design Algorithm : equiripple '
' '
'Design Options '
'Density Factor : 16 '
'Maximum Phase : false '
'Minimum Order : any '
'Minimum Phase : false '
'Stopband Decay : 0 '
'Stopband Shape : flat '
'SystemObject : true '
'Uniform Grid : true '
' '
'Design Specifications '
'Sample Rate : N/A (normalized frequency) '
'Response : Lowpass '
'Specification : Fp,Fst,Ap,Ast '
'Passband Ripple : 1 dB '
'Stopband Atten. : 60 dB '
'Passband Edge : 0.45 '
'Stopband Edge : 0.55 '
' '
'Measurements '
'Sample Rate : N/A (normalized frequency)'
'Passband Edge : 0.45 '
'3-dB Point : 0.46957 '
'6-dB Point : 0.48314 '
'Stopband Edge : 0.55 '
'Passband Ripple : 0.89042 dB '
'Stopband Atten. : 60.945 dB '
'Transition Width : 0.1 '
' '
'Implementation Cost '
'Number of Multipliers : 43 '
'Number of Adders : 42 '
'Number of States : 42 '
'Multiplications per Input Sample : 43 '
'Additions per Input Sample : 42 '
Примечание.Если вы используете R2016a или более ранний релиз, замените каждый вызов объекта эквивалентным синтаксисом шага. Для примера, obj(x) становится step(obj,x).
Создайте dsp.CICDecimator Системная object™ с DecimationFactor установите равным 4. Децимируйте сигнал от 44,1 кГц до 11,025 кГц.
cicdec = dsp.CICDecimator(4);
cicdec.FixedPointDataType = 'Minimum section word lengths';
cicdec.OutputWordLength = 16;Создайте синусоидальный входной сигнал с фиксированной точкой из 1024 выборок с частотой дискретизации 44,1e3 Гц.
Fs = 44.1e3;
n = (0:1023)'; % 0.0232 sec signal
x = fi(sin(2*pi*1e3/Fs*n),true,16,15);Создайте dsp.SignalSource объект.
src = dsp.SignalSource(x,64);
Децимируйте выход с 16 выборками на систему координат.
y = zeros(16,16); for ii = 1:16 y(ii,:) = cicdec(src()); end
Постройте график первой системы координат исходного и децимированного сигналов. Выход - 2 выборки.
gainCIC = ... (cicdec.DecimationFactor*cicdec.DifferentialDelay)^cicdec.NumSections; stem(n(1:56)/Fs,double(x(4:59))) hold on; stem(n(1:14)/(Fs/cicdec.DecimationFactor),double(y(1,3:end))/gainCIC,'r','filled') xlabel('Time (sec)') ylabel('Signal Amplitude') legend('Original signal','Decimated signal','Location','north') hold off;

Использование info метод в 'long' форматирование, получение размеров слова и дробей секций фильтра с фиксированной точкой и выходом фильтра.
info(cicdec,'long')ans =
'Discrete-Time FIR Multirate Filter (real)
-----------------------------------------
Filter Structure : Cascaded Integrator-Comb Decimator
Decimation Factor : 4
Differential Delay : 1
Number of Sections : 2
Stable : Yes
Linear Phase : Yes (Type 1)
Implementation Cost
Number of Multipliers : 0
Number of Adders : 4
Number of States : 4
Multiplications per Input Sample : 0
Additions per Input Sample : 2.5
Fixed-Point Info
Section word lengths : 20 19 19 18
Section fraction lengths : 15 14 14 13
Output word length : 16
Output fraction length : 11
'
Примечание. Если вы используете R2016a или более ранний релиз, замените каждый вызов объекта эквивалентным step синтаксис. Для примера, obj(x) становится step(obj,x).
Создайте dsp.CICInterpolator Системная object™ с InterpolationFactor установите значение 2. Интерполируйте сигнал с фиксированной точкой в 2 раза с 22,05 кГц до 44,1 кГц.
cicint = dsp.CICInterpolator(2)
cicint =
dsp.CICInterpolator with properties:
InterpolationFactor: 2
DifferentialDelay: 1
NumSections: 2
FixedPointDataType: 'Full precision'
Создайте dsp.SineWave объект с SampleRate установите на 22,05 кГц, SamplesPerFrame установите значение 32 и OutputDataType установлено на 'Custom'. Чтобы сгенерировать сигнал с фиксированной точкой, установите CustomOutputDataType свойство для numerictype объект. Для целей этого примера установите значение numerictype([],16). Длина дроби вычисляется на основе значений сгенерированного синусоидального сигнала, чтобы получить лучшую возможную точность.
Чтобы сгенерировать сигнал с фиксированной точкой, установите Method свойство dsp.SineWave объект к 'Table lookup'. Этот способ генерации синусоидального сигнала требует, чтобы период каждой синусоиды в выходе был равномерно делен на период дискретизации. То есть, должно быть целым значением для каждого канала i = 1, 2,..., N. Значение равняется , переменная - частота синусоидального сигнала, и - скорость дискретизации сигнала. Другими словами, отношение должно быть целым числом. Для получения дополнительной информации смотрите раздел Алгоритмы на dsp.SineWave страница объекта.
В этом примере, устанавливается на частоте 22050 Гц и устанавливается на частоте 1050 Гц.
Fs = 22.05e3; sine = dsp.SineWave('Frequency',1050,'SampleRate',Fs,'SamplesPerFrame',32,... 'Method','Table lookup','OutputDataType','Custom')
sine =
dsp.SineWave with properties:
Amplitude: 1
Frequency: 1050
PhaseOffset: 0
ComplexOutput: false
Method: 'Table lookup'
TableOptimization: 'Speed'
SampleRate: 22050
SamplesPerFrame: 32
OutputDataType: 'Custom'
Show all properties
В каждом цикле итерации поток в системе координат синусоидального сигнала с фиксированной точкой дискретизирован на 22,05 кГц. Интерполируйте потоковый сигнал в 2 раза. Интерполированный выход имеет 64 выборки на систему координат.
for i = 1:16 x = sine(); y = cicint(x); end
Выход фильтра интерполяции CIC усиливается определенным значением усиления. Вы можете определить это значение с помощью gain функция. Это усиление равняется усилению каскад фильтра интерполяции CIC и равен , где - коэффициент интерполяции, - дифференциальная задержка, и - количество разделов интерполятора CIC.
gainCIC = gain(cicint)
gainCIC = 2
Чтобы настроить этот усиленный выход и соответствовать его амплитуде исходного сигнала, разделите интерполированный сигнал CIC на вычисленное значение усиления.
Сравните последние системы координат исходного и интерполированного сигналов. При построении графика учитывайте задержку на выходе 2 выборки.
n = (0:63)'; stem(n(1:31)/Fs, double(x(1:31)),'r','filled') hold on; I = cicint.InterpolationFactor; stem(n(1:61)/(Fs*I), ... double(y(4:end))/gainCIC,'b') xlabel('Time (sec)') ylabel('Signal Amplitude') legend('Original Signal','Interpolated Signal',... 'location','north') hold off;

Использование info функция в 'long' форматирование, получение размеров слова и дробей секций фильтра с фиксированной точкой и выходом фильтра.
info(cicint,'long')ans =
'Discrete-Time FIR Multirate Filter (real)
-----------------------------------------
Filter Structure : Cascaded Integrator-Comb Interpolator
Interpolation Factor : 2
Differential Delay : 1
Number of Sections : 2
Stable : Yes
Linear Phase : Yes (Type 1)
Implementation Cost
Number of Multipliers : 0
Number of Adders : 4
Number of States : 4
Multiplications per Input Sample : 0
Additions per Input Sample : 6
Fixed-Point Info
Section word lengths : 17 17 17 17
Section fraction lengths : 14 14 14 14
Output word length : 17
Output fraction length : 14
'
sysobj - Входной фильтрОдин из следующих типов фильтров Системных объектов:
infoType - Объем информации для отображения'short' (по умолчанию) | 'long'Количество отображаемой информации о фильтре. Когда для этого свойства задано значение:
'short' - Функция отображает ту же информацию, что и info(sysobj), которая является основной информацией о фильтре.
'long' - Функция возвращает следующую информацию о фильтре:
Спецификации, такие как структура фильтра и порядок фильтра.
Информация о способе проекта и опциях.
Измерения эффективности для характеристики фильтра, такие как срез полосы пропускания или затухание в полосе задерживания, включены в measure метод
.
Стоимость реализации фильтра с точки зрения операций, необходимых для применения фильтра к данным, включенным в cost способ.
Когда фильтр использует арифметику с фиксированной точкой, функция возвращает дополнительную информацию о фильтре, включая арифметическую настройку и детали о внутренних элементах фильтра.
Типы данных: char | string
arithType - Арифметический тип'double' (по умолчанию) | 'single' | 'Fixed'Арифметика, используемая в анализе фильтра, задается как 'double', 'single', или 'Fixed'. Когда вход арифметики не задан и Системный объект фильтра разблокирован, инструмент анализа принимает фильтр двойной точности. Когда арифметический вход не задан и системный объект заблокирован, функция выполняет анализ на основе типа данных заблокированного входа.
The 'Fixed' значение применяется к фильтрации системных объектов только со свойствами с фиксированной точкой.
Когда 'Arithmetic' входной параметр задается как 'Fixed' и объект фильтра имеет тип данных коэффициентов, установленный на 'Same word length as input'арифметический анализ зависит от того, разблокирован или заблокирован системный объект.
unlocked -- Функция объекта анализа не может определить тип данных коэффициентов. Функция принимает, что тип данных коэффициентов подписан, имеет 16-битный размер слова и автоматически масштабируется. Функция выполняет анализ с фиксированной точкой на основе этого предположения.
locked -- Когда тип входных данных 'double' или 'single'функция объекта анализа не может определить тип данных коэффициентов. Функция принимает, что тип данных коэффициентов подписан, имеет 16-битный размер слова и автоматически масштабируется. Функция выполняет анализ с фиксированной точкой на основе этого предположения.
Чтобы проверить, заблокирован ли или разблокирован системный объект, используйте isLocked функция.
Когда арифметический вход задан как 'Fixed' и объект фильтра имеет тип данных коэффициентов, установленных на пользовательский числовой тип, функция объекта выполняет анализ с фиксированной точкой на основе пользовательского типа числовых данных.
s - храните информацию о фильтреФильтрация информации, возвращенная как символьный массив.
Когда infoType является 'short'функция отображает базовую информацию о фильтре. Когда infoType является 'long'функция отображает следующую информацию:
Спецификации, такие как структура фильтра и порядок фильтра
Информация о методе проекта и опциях
Измерения эффективности для характеристики фильтра, такие как срез полосы пропускания или затухание в полосе задерживания, включены в measure метод
Стоимость реализации фильтра с точки зрения операций, необходимых для применения фильтра к данным, включенным в cost метод
Когда фильтр использует арифметику с фиксированной точкой, функция возвращает дополнительную информацию о фильтре, включая арифметическую настройку и детали о внутренних элементах фильтра.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.