主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

dsp。C我CDecimator

カスケード接続積分器櫛形(CIC)フィルターを使用して信号を間引く

説明

dsp。C我CDecimator系统对象™は,カスケード接続積分器櫛形(CIC)間引きフィルターを使用して入力信号を間引きます。中投間引きフィルター構造は、カスケード接続積分器の N セクションで構成され、その後に R の係数によるレート変換、カスケード接続櫛形フィルターの N セクションが続きます。詳細は、アルゴリズムを参照してください。NumSectionsプロパティは,中投フィルター内のセクション数であるNを指定します。DecimationFactorプロパティは,間引き係数であるRを指定します。関数getFixedPointInfoは,固定小数点セクションおよびdsp。C我CDecimator系统对象の出力の語長と小数部の長さを返します。関数generatehdlを使用して,この系统对象のHDLコードを生成することもできます。

メモ

このオブジェクトには定点设计师™のライセンスが必要です。

中投フィルターを使用して信号を間引くには,以下を行います。

  1. dsp。C我CDecimatorオブジェクトを作成し,そのプロパティを設定します。

  2. 関数と同様に,引数を指定してオブジェクトを呼び出します。

系统对象の機能の詳細については,系统对象とはを参照してください。

作成

説明

cicDecim= dsp。C我CDecimatorは,中投間引きフィルターを入力信号に適用する中投間引き系统对象を作成します。

cicDecim= dsp。C我CDecimator(RNは,DecimationFactorプロパティをRDifferentialDelayプロパティをNumSectionsプロパティをNに設定して,中投間引きオブジェクトを作成します。

cicDecim= dsp。C我CDecimator(名称,值は,指定の各プロパティが指定の値に設定された中投間引きオブジェクトを作成します。各プロパティ名を一重引用符で囲みます。前の任意の入力引数を組み合わせてこの構文を使用できます。

プロパティ

すべて展開する

特に指定がない限り,プロパティは”調整不可能”です。つまり,オブジェクトの呼び出し後に値を変更することはできません。オブジェクトは呼び出すとロックされ,ロックを解除するには関数释放を使用します。

プロパティが”調整可能”の場合,その値をいつでも変更できます。

プロパティ値の変更の詳細については,系统对象を使用したMATLABでのシステム設計を参照してください。

入力信号の間引きに使用する係数。正の整数として指定します。

データ型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

フィルターの各櫛形セクションで使用されている遅延差の値。正の整数として指定します。詳細は,アルゴリズムを参照してください。遅延差が組み込み整数データ型である場合,間引き係数は同じ整数データ型またはでなければなりません。たとえば,遅延差がint8である場合,間引き係数はint8またはでなければなりません。

データ型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

中投フィルターの積分器セクションと櫛形セクションの数。正の整数として指定します。この数は,フィルターの櫛形部分または積分器部分のいずれかのセクション数を示しています。中投フィルター内のセクションの合計数は、このプロパティで与えられたセクション数の 2 倍です。

データ型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

固定小数点のプロパティ指定。次のいずれかを指定します。

  • 完整的精度——中投フィルターセクションおよびオブジェクト出力の語長と小数部の長さは完全精度で動作します。

  • 最小节字长- - - - - -OutputWordLengthプロパティを使用して出力語長を指定します。このオブジェクトにより,可能な範囲内での最高精度を提供するフィルターセクションのデータ型と出力の小数部の長さが決定されます。詳細については,getFixedPointInfocicDecimOut引数を参照してください。

  • 指定字的长度- - - - - -SectionWordLengthsおよびOutputWordLengthプロパティを使用して,中投フィルターセクションとオブジェクト出力の語長を指定します。このオブジェクトにより,可能な範囲内での最高精度を提供する,対応する小数部の長さが決定されます。詳細については,getFixedPointInfocicDecimOut引数を参照してください。

  • 指定单词和分数长度- - - - - -SectionWordLengthsSectionFractionLengthsOutputWordLength,およびOutputFractionLengthの各プロパティを使用して,中投フィルターセクションとオブジェクト出力の語長と小数部の長さを指定します。

各フィルターセクションに使用する固定小数点語長。スカラーまたは整数の行ベクトルとして指定します。語長は2以上でなければなりません。スカラーを指定した場合、値はフィルターのすべてのセクションに適用されます。ベクトルを指定した場合、そのベクトルの長さはNumSectionsの2倍でなければなりません。

例:32

例:[32 32 32 32 32]

依存関係

このプロパティは,FixedPointDataTypeプロパティを“指定单词长度”または指定单词和分数长度に設定した場合に適用されます。

データ型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

各フィルターセクションに使用する固定小数点の小数部の長さ。スカラーまたは整数の行ベクトルとして指定します。小数部の長さは負,0,または正です。スカラーを指定した場合、値はフィルターのすべてのセクションに適用されます。ベクトルを指定した場合、そのベクトルの長さはNumSectionsの2倍でなければなりません。

例:-2

例:[-2 0 5 8]

依存関係

このプロパティは,FixedPointDataTypeプロパティを指定单词和分数长度に設定した場合に適用されます。

データ型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

フィルター出力に使用する固定小数点語長。2以上のスカラー整数として指定します。

依存関係

このプロパティは,FixedPointDataTypeプロパティが“最小节字长”“指定单词长度”,または指定单词和分数长度に設定されている場合に適用されます。

データ型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

フィルター出力に使用する固定小数点の小数部の長さ。スカラー整数として指定します。

依存関係

このプロパティは,FixedPointDataTypeプロパティを指定单词和分数长度に設定した場合に適用されます。

データ型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

使用法

説明

cicDecimOut= cicDecim (输入は,中投間引きを使用して入力を間引きます。

入力引数

すべて展開する

データ入力。ベクトルまたは行列として指定します。入力の行数はDecimationFactorの倍数でなければなりません。入力のデータ型がまたはの場合,固定小数点データ型に関連するプロパティ設定は無視されます。

データ型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|fi
複素数のサポート:あり

出力引数

すべて展開する

間引きされた出力。ベクトルまたは行列として返されます。出力のフレーム サイズは、(1 ∕DecimationFactor)と入力フレームサイズを乗算したものと等しくなります。出力データの実数/複素数は,入力データの実数/複素数と一致します。入力がまたはの場合,出力データ型は入力データ型と一致します。

入力のデータ型が組み込み整数データ型または固定小数点データ型の場合,出力の語長と小数部の長さは,FixedPointDataTypeプロパティを通じて選択する固定小数点データ型の設定によって異なります。

完全精度

FixedPointDataType“充分精确”に設定されている場合,次の関係が適用されます。

W l 输出 W l 输入 + N u 年代 e c t F l 输出 F l 输入

ここで,

  • 输出——出力データの語長。

  • FL输出——出力データの小数部の長さ。

  • 输入——入力データの語長。

  • FL输入——入力データの小数部の長さ。

  • NumSect——NumSectionsプロパティで指定される中投フィルターのセクション数。

输入とFL输入は,オブジェクトアルゴリズムに渡すデータ入力から継承されます。組み込み整数入力の場合,小数部の長さは0です。

最小語長

FixedPointDataTypeプロパティが“最小节字长”に設定されている場合,出力の語長はOutputWordLengthプロパティに指定する値になります。出力の小数部の長さFL输出は,次の式で与えられます。

F l 输出 W l 输出 W l 输入 F l 输入 + N u 年代 e c t

語長と小数部の長さの指定

FixedPointDataTypeプロパティが指定单词和分数长度に設定されている場合,出力語長と小数部の長さは,OutputWordLengthプロパティとOutputFractionLengthプロパティで指定する値になります。

語長の指定

FixedPointDataTypeプロパティが“指定单词长度”に設定されている場合,出力語長はOutputWordLengthプロパティで指定する値になります。出力の小数部の長さFL输出は,次の式で与えられます。

F l 输出 W l 输出 W l 输入 F l 输入 + N u 年代 e c t

データ型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|fi
複素数のサポート:あり

オブジェクト関数

オブジェクト関数を使用するには,系统对象を最初の入力引数として指定します。たとえば,objという名前の系统对象のシステムリソースを解放するには,次の構文を使用します。

发行版(obj)

すべて展開する

generatehdl 生成量化DSP滤波器的HDL代码(需要)滤波器设计HDL编码器
impz 離散時間フィルター系统对象のインパルス応答
freqz 離散時間フィルター系统对象の周波数応答
phasez 离散时间滤波器的相位响应系统对象(打开)
fvtool 显示DSP滤波器的频率响应
获得 CIC滤波器增益系统对象
getFixedPointInfo 获得定点字和分数长度
信息 信息过滤系统对象
一步 系统对象のアルゴリズムの実行
释放 リソースを解放し,系统对象のプロパティ値と入力特性の変更を可能にします。
重置 系统对象の内部状態のリセット

このオブジェクトがサポートしているフィルター解析法のリストについては,MATLAB®コマンドプロンプトに”dsp.CICDecimator.helpFilterAnalysis“と入力します。対応する関数リファレンスページについては,过滤系统对象的分析方法を参照してください。

すべて折りたたむ

メモ: R2016a以前のリリースを使用している場合,それぞれのオブジェクトの呼び出しを等価な一步構文で置き換えてください。たとえば,obj (x)步骤(obj, x)になります。

DecimationFactorを4に設定したdsp。C我CDecimator系统对象™を作成します。信号を44.1 kHzから11.025 kHzに間引きます。

cicdec = dsp.CICDecimator (4);cicdec。FixedPointDataType =“最小节字长”;cicdec。OutputWordLength = 16;

44.1 e3赫兹のサンプリング周波数を含む1024個のサンプルの固定小数点正弦波入力信号を作成します。

Fs = 44.1 e3;n =(0:1023)”;% 0.0232秒信号x = fi(罪(2 * pi * 1 e3 / Fs * n),真的,16日15);

dsp。年代ignalSourceオブジェクトを作成します。

src = dsp.SignalSource (x, 64);

フレームごとに16個のサンプルを使用して出力を間引きます。

y = 0(16日16);Ii = 1:16 y(Ii,:) = cicdec(src());结束

元の信号と間引き後の信号の最初のフレームをプロットします。出力レイテンシは2サンプルです。

gainCIC =...(cicdec.DecimationFactor * cicdec.DifferentialDelay) ^ cicdec.NumSections;茎(n (56) / Fs、双(x (4:59)));茎(n(一14)/ (Fs / cicdec.DecimationFactor)双(y(1, 3:结束))/ gainCIC,“r”“填充”)包含(的时间(秒)) ylabel (信号幅度的)传说(原始信号的“摧毁信号”“位置”“北”)举行

信息メソッドを“长”形式で使用して,固定小数点フィルターセクションとフィルター出力の語長と小数部の長さを取得します。

信息(cicdec“长”
ans = '离散冷杉多重速率的过滤器(真实 ) ----------------------------------------- 滤波器结构:级联Integrator-Comb杀害多人者大量毁灭因素:4微分延迟:1的部分:2稳定:是的线性相位:是的(1型)实施成本数量的乘数:0条数量:4的状态数:每个输入样本的4乘数:0每个输入样本的加法:2.5固点信息Section单词长度:20 19 19 18 Section fraction长度:15 14 14 13 Output word length: 16 Output fraction length: 11 '

関数getFixedPointInfoを使用して,固定小数点セクションとdsp。C我CDecimatorおよびdsp。C我C我nterpolator系统对象の出力の語長と小数部の長さを決定することができます。フィルターセクションと出力のデータ型は,フィルター系统对象™のFixedPointDataTypeプロパティによって異なります。

完全精度

dsp。C我CDecimatorオブジェクトを作成します。NumSectionsプロパティの既定値は2です。この値は2つの積分器セクションと櫛形セクションがあることを示しています。関数getFixedPointInfoによって返される西城ベクトルとFLベクトルにはそれぞれ5個の要素が含まれます。最初の2つの要素は2つの積分器セクションを表します。3番目と4番目の要素は2つの櫛形セクションを表します。最後の要素はフィルター出力を表します。

蔡先生= dsp。C我CDecimator
蔡先生= dsp。C我CDecimator with properties: DecimationFactor: 2 DifferentialDelay: 1 NumSections: 2 FixedPointDataType: 'Full precision'

既定では,オブジェクトのFixedPointDataTypeプロパティは“充分精确”に設定されます。入力数値型ntを使用してこのオブジェクトで関数getFixedPointInfoを呼び出すと,次の語長と小数部の長さを持つベクトルが生成されます。

元= numerictype(15) 1日16日
nt = DataTypeMode:定点:二进制点缩放Signedness: Signed WordLength: 16 FractionLength: 15
(WLs FLs的]= getFixedPointInfo(蔡先生,nt)% #好吧
WLs =1×518 18 18 18
FLs的=1×515 15 15 15 15

語長と小数部の長さの計算方法の詳細については,“出力引数”の説明を参照してください。

入力をアルゴリズムに渡すことで蔡先生オブジェクトをロックする場合,nt引数を関数getFixedPointInfoに渡す必要はありません。

1)输入= int64 (randn(8日)
输入=8x1 int64列向量1 2 -2 1 0 -1 0 0
=蔡先生输出(输入)
输出=4×1对象0 1 3 0 DataTypeMode:定点:二进制点缩放Signedness: Signed WordLength: 66 FractionLength: 0
(WLs FLs的]= getFixedPointInfo蔡先生)% #好吧
WLs =1×566 66 66 66 66
FLs的=1×50 0 0 0

出力とセクションの語長は,入力の語長(この場合は64)とセクション数(この場合は2)の合計です。入力が組み込み整数であるため,出力およびセクションの小数部の長さは0です。

最小語長

オブジェクトを解放し,FixedPointDataTypeプロパティを“最小节字长”に変更します。入力が固定小数点データfi (randn(2), 1, 24日15)の場合,セクションと出力の固定小数点情報を決定します。

释放(蔡先生);蔡先生。FixedPointDataType =“最小节字长”
蔡先生= dsp。C我CDecimator with properties: DecimationFactor: 2 DifferentialDelay: 1 NumSections: 2 FixedPointDataType: 'Minimum section word lengths' OutputWordLength: 32
inputF = fi (randn(8, 2), 1, 24日15)
inputF =8×2对象3.5784 -0.1241 2.7694 1.4897 - 1.4090 3.0349 1.4172 0.7254 0.6715 -0.0630 -1.2075 0.7148 0.7172 -0.2050 1.6302 DataTypeMode:定点:二进制点缩放符号:Signed WordLength: 24 FractionLength: 15
[WLs, FLs] = getFixedPointInfo(cicD,numerictype(inputF)); / /输入% #好吧
WLs =1×526 26 26 26 32
FLs的=1×515 15 15 21

語長と小数部の長さの指定

FixedPointDataTypeプロパティを指定单词和分数长度に変更します。関数getFixedPointInfoを使用して,固定小数点情報を決定します。

蔡先生。FixedPointDataType =指定单词和分数长度
蔡先生= dsp。C我CDecimator with properties: DecimationFactor: 2 DifferentialDelay: 1 NumSections: 2 FixedPointDataType: 'Specify word and fraction lengths' SectionWordLengths: [16 16 16 16] SectionFractionLengths: 0 OutputWordLength: 32 OutputFractionLength: 0
[WLs, FLs] = getFixedPointInfo(cicD,numerictype(inputF)); / /输入% #好吧
WLs =1×516 16 16 16 32
FLs的=1×50 0 0 0

セクションと出力の語長と小数部の長さは,蔡先生オブジェクトのそれぞれの固定小数点プロパティのとおりに割り当てられます。これらの値は入力数値型によって決まりません。確認するには,numerictype入力引数を渡さずに関数getFixedPointInfoを呼び出します。

[WLs, FLs] = getFixedPointInfo(ccid)% #好吧
WLs =1×516 16 16 16 32
FLs的=1×50 0 0 0

語長の指定

フィルターセクションと出力の語長を指定するには,FixedPointDataTypeプロパティを“指定单词长度”に設定します。

蔡先生。FixedPointDataType =“指定单词长度”
蔡先生= dsp。C我CDecimator with properties: DecimationFactor: 2 DifferentialDelay: 1 NumSections: 2 FixedPointDataType: 'Specify word lengths' SectionWordLengths: [16 16 16 16] OutputWordLength: 32

関数getFixedPointInfoには入力数値型が必要です。この情報がセクションとワードの小数部の長さの計算に使用されるためです。

[WLs, FLs] = getFixedPointInfo(cicD,numerictype(inputF)); / /输入
WLs =1×516 16 16 16 32
FLs的=1×55 5 5 21

関数による語長や小数部の長さの計算方法の詳細については,“出力引数”の説明を参照してください。

詳細

すべて展開する

アルゴリズム

すべて展開する

参照

[1] Hogenauer, E.B.用于抽取和插值的经济型数字滤波器。IEEE声学、语音和信号处理汇刊。第29卷,第2期,1981年,155-162。

现场可编程门阵列的数字信号处理。纽约:施普林格,2001。

通讯系统的多速率信号处理。印第安纳波利斯:Prentice Hall PTR, 2004。

拡張機能

R2012aで導入