周波数特性を知りたい

11 visualizaciones (últimos 30 días)
Kaede
Kaede el 6 de Ag. de 2020
Comentada: Kaede el 17 de Ag. de 2020
clear;
[p1,fs]=audioread('40kph_RN.wav');
[p2,fs]=audioread('2000rpm_Knock.wav');
fs=44100;
p2(448512,[1 2]) = [0,0];
smix=p1+p2;
soundsc(smix,fs)
このような音を二つ重ねた時の周波数特性を表示する方法を教えていただきたいです.基本的なことなのですが,久しぶりにMATLABを触ったため忘れてしまいました.
  1 comentario
Kaede
Kaede el 6 de Ag. de 2020
このとき縦軸はmag2dbを使ってdBに変換したいです.

Iniciar sesión para comentar.

Respuestas (1)

Kaede
Kaede el 6 de Ag. de 2020
clear;
[p1,fs]=audioread('40kph_RN.wav');
[p2,fs]=audioread('2000rpm_Knock.wav');
fs=44100;
N=1024;
p2(448512,[1 2]) = [0,0];
smix=p1+p2;
%soundsc(smix,fs)
p1_fft=fft(p1,N);
p2_fft=fft(p2,N);
A=zeros(1,N/2+1);
B=zeros(1,N/2+1);
frequency=zeros(1,N/2+1);
for k=1:N/2+1;
A(k)=abs(p1_fft(k));
B(k)=abs(p2_fft(k));
frequency(k)=(k-1)*fs/N;
end
dB_A=mag2db(A);
dB_B=mag2db(B);
plot(frequency,dB_A);
hold on
plot(frequency,dB_B);
hold off
自分でも行ってみましたが表示されたグラフ的に違うような気がします.
  4 comentarios
takemoto
takemoto el 17 de Ag. de 2020
別のスレッドで既に解決されている様ですが、fft関数の第二引数を省略することで、入力の全データに対して変換処理を行いますので、この例ですと、
p1_fft=fft(p1,N); ==> p1_fft=fft(p1);
p2_fft=fft(p2,N); ==> p2_fft=fft(p2);
とすればよさそうです。
Kaede
Kaede el 17 de Ag. de 2020
コメントありがとうございます.
すでに解決いたしましたがわかりやすく書いていただきありがとうございます.

Iniciar sesión para comentar.

Productos

Community Treasure Hunt

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

Start Hunting!