ホームページ  >  記事  >  コンピューターのチュートリアル  >  matlab オーディオ処理: WAV 形式のスペクトログラムと時間領域波形を生成するプログラム

matlab オーディオ処理: WAV 形式のスペクトログラムと時間領域波形を生成するプログラム

王林
王林転載
2024-01-22 19:12:061385ブラウズ

matlab オーディオ処理: WAV 形式のスペクトログラムと時間領域波形を生成するプログラム

WAV 形式のオーディオ ファイルのスペクトログラムを作成し、時間領域の波形チャートを作成するための matlab プログラム

%こんにちは。このプログラムは mywav.wav ファイルを読み取り、スペクトルと波形を表示します。 mywav.wav ファイルが長すぎないように注意してください。長すぎないと、動作が非常に遅くなります。

[y,Fs,bits]=wavread('mywav.wav');% 信号、サンプリング レート、サンプリング ビットを読み取ります。

y=y(:,1);%ここではあなたの声が 2 チャンネルであると仮定します。分析にはモノラル チャンネルのみを使用します。別のチャンネルを分析したい場合は、それを y=y(: ,2)

sigLength=長さ(y);

Y = fft(y,sigLength);

Pyy = Y.* conj(Y) / sigLength;

halflength=floor(sigLength/2);

f=Fs*(0:半分の長さ)/sigLength;

figure;plot(f,Pyy(1:halflength 1));xlabel('周波数(Hz)');

t=(0:sigLength-1)/Fs;

図;プロット(t,y);xlabel('時間');

MATLAB に基づく連続信号のスペクトル解析

例を示します。自分で変更してください。

fs=1000;%サンプリング周波数の設定

N=1024;%データ長を設定

i=0:N-1;

t=i/fs;

f=100;%正弦波信号の周波数を設定します

%正弦波信号を生成する

x=sin(2*pi*f*t);

サブプロット(231);

plot(t,x);% は正弦波信号の時間領域波形を作成します

軸([0,0.01,-1,1]);

xlabel('t');

ylabel('y');

title('正弦波信号の時間領域波形');

###グリッド;###

%FFT変換を実行してスペクトログラムを作成します

y=fft(x,N);% fft 変換を実行します

mag=abs(y);% 振幅

f=(0:N-1)*fs/N; %横軸周波数の表現は f=(0:M-1)*Fs/M;

サブプロット(232);

plot(f,mag);% スペクトログラムを作成します

軸([0,100,0,80]);

xlabel('周波数 (Hz)');

ylabel('大きさ');

title('正弦波信号振幅スペクトル図');

###グリッド;###

%二乗平均平方根スペクトル

sq=abs(y);

###図1);###

サブプロット(233);

プロット(f,sq);

xlabel('周波数 (Hz)');

ylabel('二乗平均平方根スペクトル');

title('正弦波信号の二乗平均平方根スペクトル');

###グリッド;###

%パワースペクトル

power=sq.^2;

###図1);###

サブプロット(234);

プロット(f,べき乗);

xlabel('周波数 (Hz)');

ylabel('パワースペクトル');

title('正弦波信号のパワースペクトル');

###グリッド;###

%対数スペクトル

ln=log(sq);

###図1);###

サブプロット(235);

プロット(f,ln);

xlabel('周波数 (Hz)');

ylabel('ログスペクトル');

title('正弦波信号の対数スペクトル');

###グリッド;###

%IFFT を使用して元の信号を復元する

xifft=ifft(y);

magx=real(xifft);

ti=[0:length(xifft)-1]/fs;

サブプロット(236);

プロット(ti,magx);

xlabel('t');

ylabel('y');

title('IFFT変換した正弦波信号波形');

###グリッド;###

以上がmatlab オーディオ処理: WAV 形式のスペクトログラムと時間領域波形を生成するプログラムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はdocexcel.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。