Warning: Rank deficient, rank = 0... means what?
356 ビュー (過去 30 日間)
古いコメントを表示
Hi,
I am using the original signal FS and nbits. When i played the sound, it does have the speech, but its very noisy. I am currently doing this:
wavwrite(sig, Fs, nbits, 'Scrambled.wav');
i = 1;
k = 1;
siz = wavread('Scrambled.wav', 'size');
tot_samples = siz(1);
while(i<=tot_samples-15)
y = wavread('Scrambled.wav',[i i+15]);
ori_sig(:,k) = y\H;
if i == 1;
disp('Descrambling Speech in Progress...');
end
i = i+16;
k = k+1;
end
recon_sig = reshape(ori_sig,size(ori_sig,1)*size(ori_sig,2),1);
sound(recon_sig);
I have this warning: "Warning: Rank deficient, rank = 0, tol = 0.000000e+00."
What does it mean?
2 件のコメント
採用された回答
Wayne King
2012 年 9 月 25 日
編集済み: Wayne King
2012 年 9 月 25 日
The inverse of a NxN matrix only exists only if the matrix has rank N. In other words, the linear operator that the matrix represents is surjective.
Computing the inverse in a computer has numerical subtleties. That warning is telling you that the matrix is rank deficient.
The wavwrite warning indicates that your signal values exceed +/- 1 and are being clipped when the .wav file is written. I don't think you want that clipping, that distorts the signal. You can scale the vector in MATLAB to make sure that the values do not exceed +/- 1 for writing.
6 件のコメント
Brandon Sackett
2020 年 11 月 18 日
Isn't a surjective solution valid though? I guess bijections are the "best" but is there a reason a surjective solution gets that warning? Any relation to group theory would help my brain understand the problem.
その他の回答 (1 件)
Walter Roberson
2012 年 9 月 25 日
I can't tell what your "H" is there, but your "y" is all zero (or close to it) for 16 consecutive samples at some point.
The "clipped" indicates that you are attempting to write samples outside the range -1 to +1.
参考
カテゴリ
Help Center および File Exchange で Signal Modeling についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!