プログラムのエラー表示

3 visualizaciones (últimos 30 días)
Kaede
Kaede el 19 de Ag. de 2020
Respondida: michio el 21 de Ag. de 2020
ホワイトノイズにバンドパスフィルタをかけたものは上手く表示できたのにピングノイズにバンドパスフィルタをかけるとこのようなエラー表示がでます.データ数Nはp1に合わせて448512にしてあります.
要求された 448512x448505 (1498.8GB) 配列は、最大配列サイズの設定を超え
ています。この制限より大きい配列を作成すると、処理に時間がかかり、MATLAB
が反応しなくなることがあります。詳細については、配列サイズの制限または設定パ
ネルを参照してください。
エラー: pinknoiseknock (line 18)
smix_Lch=6*Lch_p1+Lch_p2/10+y/10;
[p1,fs]=audioread('40kph_RN.wav');
[p2,fs]=audioread('2000rpm_Knock.wav');
fs=44100;
L=8;N=448505;
%x=[zeros(L-1,1);randn(N,1)];
g=randp(N);
y=filter(Num,1,g)
p2(448512,[1 2]) = [0,0];
Lch_p1=p1(:,1);
Rch_p1=p1(:,2);
Lch_p2=p2(:,1);
Rch_p2=p2(:,2);
smix_Lch=6*Lch_p1+Lch_p2/10+y/10;
%soundsc(smix_Lch,fs)
filename='mix_Lch.wav';
audiowrite(filename,smix_Lch,fs);
smix_Rch=6*Rch_p1+Rch_p2/10+y/10;
%soundsc(smix_Rch,fs)
filename='mix_Rch.wav';
audiowrite(filename,smix_Rch,fs);
%y=filter(Num,1,g)
fft_white=fft(y/10);
dB_white=mag2db(abs(fft_white));
fft_p1L=fft(6*Lch_p1);
dB_p1L=mag2db(abs(fft_p1L));
fft_p1R=fft(6*Rch_p1);
dB_p1R=mag2db(abs(fft_p1R));
fft_p2L=fft(Lch_p2/10);
dB_p2L=mag2db(abs(fft_p2L));
fft_p2R=fft(Rch_p2/10);
dB_p2R=mag2db(abs(fft_p2R));
f = (0:length(fft_p1L)-1)*fs/length(fft_p1L);
figure(1)
semilogx(f,dB_p2L)
xlim([0 fs/2])
ylim([-100,100])
xlabel('frequency[Hz]')
ylabel('Magnitude[dB]')
hold on
semilogx(f,dB_p1L)
grid on, hold off
hold on
semilogx(f,dB_white)
grid on, hold off
legend('2000rpm.knock','roadnoise','whitenoise');
figure(2)
semilogx(f,dB_p2R)
xlim([0 fs/2])
ylim([-100,100])
xlabel('frequency[Hz]')
ylabel('Magnitude[dB]')
hold on
semilogx(f,dB_p1R)
grid on, hold off
hold on
semilogx(f,dB_white)
grid on, hold off
legend('2000rpm.knock','roadnoise','whitenoise');

Respuesta aceptada

michio
michio el 21 de Ag. de 2020
smix_Lch=6*Lch_p1+Lch_p2/10+y/10;
の計算において、448512x1 のベクトルと 1x448505 のベクトルの足し算が発生しているのかと想像しています。
各変数の配列サイズを確認してみてください。
簡単な例ですと、10x1 と 1x10 のベクトルを足し合わせると 10x10 の配列が作られます。
x = rand(10,1);
y = rand(1,10);
z = x+y;
whos z
Name Size Bytes Class Attributes
z 10x10 800 double

Más respuestas (0)

Categorías

Más información sobre フーリエ解析とフィルター処理 en Help Center y File Exchange.

Productos

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!