行列の次元について

L=8;N=20000;
x=[zeros(L-1,1);randn(N,1)];
y=filter(Num,1,x)
このように448512個で2つの音源のデータ数を揃えて足し合わせました.その足し合わせた音源にホワイトノイズを足し合わせたいのですがデータ数が違うのが問題でこのように行列の次元が合わないとエラーがでます.データ数が大きい時にデータ数を揃えるのはL=8なのでNを448505にすればよいですか.
あとyは一列しがないのですが,ほかのデータには2列が存在します.その場合2列のデータに1列のデータをどのように足し合わせることができますか.

댓글 수: 5

Kaede
Kaede 2020년 8월 17일
今回はホワイトノイズにバンドパスフィルタをかけています.
Kaede
Kaede 2020년 8월 17일
[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)];
y=filter(Num,1,x)
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;
%soundsc(smix_Lch,fs)
filename='mix_Lch.wav';
audiowrite(filename,smix_Lch,fs);
smix_Rch=6*Rch_p1+Rch_p2/10+y;
%soundsc(smix_Rch,fs)
filename='mix_Rch.wav';
audiowrite(filename,smix_Rch,fs);
y=filter(Num,1,x)
fft_white=fft(y);
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
legend('2000rpm.knock','roadnoise','whitenoise');
こちらが作成したプログラムですが,走行騒音にディーゼルエンジンのガラガラ音を足し合わせ,そこにバンドパスフィルタをかけたホワイトノイズを重ねてガラガラ音を低減した音源を作成しています.
Kaede
Kaede 2020년 8월 18일
>あとyは一列しがないのですが,ほかのデータには2列が存在します.その場合2列のデータに1列のデータをどのように足し合わせることができますか.
こちらはすぐに解決できました.
Naoya
Naoya 2020년 8월 20일
キャプチャ画面から
19: smix_Lch=6*Lch_p1+Lch_p2/10+y
で次元を一致させるべくエラーが出力されるようですので、
変数 Lch_p1, Lch_p2, y あたりの行列の次元を確認されてはいかがでしょうか?
足し算をするにあたり、各々の次元が一致していない可能性があります。
Kaede
Kaede 2020년 8월 27일
コメントありがとうございます.
確認して全ての次元を一致させました.

댓글을 달려면 로그인하십시오.

답변 (0개)

카테고리

도움말 센터File Exchange에서 Audio Processing Algorithm Design에 대해 자세히 알아보기

제품

질문:

2020년 8월 17일

댓글:

2020년 8월 27일

Community Treasure Hunt

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

Start Hunting!