ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

bitrevorder

データのビット反転順への並べ替え

構文

y = bitrevorder(x)
[y,i] = bitrevorder(x)

説明

bitrevorder は、関数 fft や逆 FFT (関数 ifft) 計算中にビット反転の並べ替えを行わなくてもよいように、フィルター係数をあらかじめ並べ替えるのに便利です。これにより、外部アプリケーションや Simulink® ブロックセット モデルのランタイム効率を向上させることができます。MATLAB® の関数 fft および関数 ifft はいずれも、線形入出力を処理します。

メモ:

bitrevorder の使用は、2 を基数とする digitrevorder の使用と同等です。

y = bitrevorder(x) では、入力データのビット順を反転したものがベクトルまたは行列 y の形で返されます。x の長さは 2 を整数乗した値でなければなりません。x が行列である場合、ビット反転は、サイズが 1 より大きい x の最初の次元で行われます。xy と同じサイズです。

[y,i] = bitrevorder(x) では、y = x(i) となるような、ビット反転したベクトルまたは行列 y とビット反転したインデックス i が返されます。MATLAB の行列ではインデックスが 1 から始まるため、y の最初のインデックスは 0 ではなく 1 になることに注意してください。

以下の表では、数値 0 から 7、これに対応するビットとビット反転した数値を示します。

線形インデックス

ビット

ビット反転

ビット反転したインデックス

0

000

000

0

1

001

100

4

2

010

010

2

3

011

110

6

4

100

001

1

5

101

101

5

6

110

011

3

7

111

111

7

すべて折りたたむ

列ベクトルを作成し、ビット反転バージョンを取得します。バイナリ表現を明示的に表示して確認します。

x = (0:15)';
v = bitrevorder(x);

x_bin = dec2bin(x);
v_bin = dec2bin(v);

T = table(x,x_bin,v,v_bin)
T=16×4 table
    x     x_bin    v     v_bin
    __    _____    __    _____

     0    0000      0    0000 
     1    0001      8    1000 
     2    0010      4    0100 
     3    0011     12    1100 
     4    0100      2    0010 
     5    0101     10    1010 
     6    0110      6    0110 
     7    0111     14    1110 
     8    1000      1    0001 
     9    1001      9    1001 
    10    1010      5    0101 
    11    1011     13    1101 
    12    1100      3    0011 
    13    1101     11    1011 
    14    1110      7    0111 
    15    1111     15    1111 

拡張機能

C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。

R2006a より前に導入