Информация о фильтре Системный объект
Получите краткоформатную и длинноформатную информацию о фильтре.
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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.