0

長さ 12769 のオーディオ信号があります。1024 サンプルの小さなウィンドウに分割して、STFT を実行しようとしています。これにより、12 個の正確なウィンドウが得られますが、残りのポイントは 481 です。1024 個のサンプルを構成するには、さらに 543 (1024 - 481) ポイントが必要なので、次のコードを使用してゼロ パッドを作成しました。

f = [a zeros(1,542)]; 

a音声ファイルはどこにありますか。ただし、エラーが表示されます

??? ==> horzcat の使用エラー

CAT 引数の次元が一貫していません。

どうすればこれを克服できますか?

4

2 に答える 2

1

ベクトルaは列ベクトルであり、行ベクトルと連結できませんzeros(1,542)zeros(542,1)代わりに使用してください。ただし、使用するだけの方がはるかに簡単です

f = a;
f(1024*ceil(end/1024)) = 0;

MATLAB は要素 1024 までベクトルをゼロ パディングし、列または行である配列とは無関係です。

于 2013-08-18T14:34:34.547 に答える
-1

を使用して、余分な 481 サンプルを削除できます。

Total_Samples = length(a);
for i=1 : Total_Samples-481
    a_new[i] = a[i];

または、次を使用して 543 のゼロ サンプルを追加することもできます。

Total_Samples = length(a);
for i=Total_Samples+1 : Total_Samples+543
    a[i] = 0 ;
于 2013-08-18T14:40:42.570 に答える