• ベストアンサー

matlabでのlowpassについて

matlabでのlowpass filterに関しての質問です。 複数のwavfile(10個程度,track1.wav~track10.wav)をwavreadして、それに1000Hz以上の周波数をカットするfilterをかけて,その後にfilterをかけ終えた音をwavwrite(track1_low.wav~track10_low.wav)して保存するコードをかけたいのですが、わかる方いませんか? ディレクトリを指定→wavread→lowpass→ディレクトリを指定→wavwriteの流れでコードを教えていただけると嬉しいです。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • m0r1_2006
  • ベストアンサー率36% (169/464)
回答No.1

SDIR = './input/'; %%% ソース wav のフォルダ名 このファイルのあるディレクトリの下の input フォルダ DDIR = './output/'; %%% ファイル出力用のフォルダ名 for jj=1:10 fname_in = [SDIR,'track',num2str(jj),'.wav']; [y, Fs, bits] = wavread(fname_in); y1 = lowpass(y); %%% low pass filtering fname_out = [DDIR,'track',num2str(jj),'_low.wav']; wavwrite(y1, Fs, bits, fname_out); end % low pass filter は自分で作ってね

timesugar
質問者

お礼

ありがとうございます!!!

関連するQ&A

  • MATLABについてお聞きしたいです。

    MATLABについてお聞きしたいです。 現在勉強しているのですが、プログラミング初心者なので…。 MATLABでwavファイルの書き込みについてです。 周波数1000Hz, 0.5秒,サンプリング周波数22050Hz の設定にしてwavファイルで保存したく… f=1000; > A=0.5; > Fs=22050; > wavwrite(MyFunc_2(1000,0.5,22050),'sin1000'); という設定にして、保存したのですが、録音時に流れた音と録音された音が違うのです。 ファンクションMファイルは… function y=MyFunc_2(f,A,Fs) %Fs=44100; d=1/Fs; t=0:d:2; %f=440; %A=0.1; y=A*sin(2*pi*f*t); wavplay(y,Fs) このような設定にしています。 問題解決への協力よろしくお願いします。

  • MATLABに詳しい方いらっしゃいますか?

    matlabで10Hz、20Hzなどの音響ファイルの作り方を教えてください。 それと、両耳、LとRが違う周波数の音響ファイルを作ることは可能でしょうか? たとえば、L:10Hz R:20Hz などの

  • Matlab/SimulinkのChirp信号について

    Matlab/SimulinkのChirp信号について Matlab/SimulinkのChirp信号について教えてください。このChirp信号は時間と共に周波数が増加するものですが、20秒間で0.1~10Hzになるように設定した場合、時間と周波数の関係はどのようになるのでしょうか?周波数が一定に比例して増えていくのでしょうか?ちょっとピンときません。時間軸で段々増えていく状態を周波数で置き換えたいのです。よろしければお教えください。

  • アナログ情報のデジタル化の問題ですけど・・・

    信号に含まれる最高周波数が概ね300Hzだと推測できる場合のサンプリング時間とその時に必要なlow pass filterのカットオフ周期はどのようにすればよいかという問題です。 この場合、最高周波数が300Hzなのでサンプリング周波数fはその2倍以上でとればいいので、 f>2*300Hz=600Hz したがってサンプリング時間の条件f=1/⊿t>600 したがって、⊿t<1/600 とうことは分かりました。カットオフ周期はサンプリング周期の1/2以下とすると300Hzより大きいということでよろしいのでしょうか・・・?ちょっと単純すぎるような・・・どうなのでしょう><

  • matlabで指定した周波数帯域だけ返す方法

    matlab初心者です。 matlabで、ある音響データを読み込んだ時、時間領域の波形のまま、 指定した周波数帯域だけを取り出したいのですがやり方が分かりません。 例として、サンプリング周波数44.1kH  16bitモノラル音源の音響データがあったとして、 1kH~1.5kHの周波数帯域を時間領域の波形のまま取り出すにはどうすればいいですか? つまるところ、帯域通過フィルタの設計方法がわからないのです。

  • EXCELとMATLABのFFT計算結果の違い

    はじめまして。 EXCELのフーリエ変換機能を使って計算したピーク周波数が、 MATLABのFFT関数から計算させたものとの結果より高くなってしましました。 ※0.0001秒刻み、振幅が4096行あるデータで約2.4Hz違いました。 違いの原因を調べたいのですが、どの様な事が考えられるでしょうか? よろしくお願いします。

  • デジボルのHzの表示

    SANWAのPC5000というデジボルを使っています。 これを用いて、電圧のHigh,Lowをある周波数で出す装置を見ています。 周波数を20Hzなどで見た場合は、PC5000の表示はきちんと20Hzとして安定して表示されました。 周波数を1.5Hzにした場合、PC5000の表示は1.5Hzとなったり0Hzとなったり、どうも安定しません。 周波数を1.0Hzにした場合、PC5000の表示は0Hzとなったままです。 1.5Hzと1.0Hzともにオシロで見た限りでは、きちんとした周期でHigh, Lowと変化しているようです。 デジボルで低い周波数の電圧変化は見れないものなのでしょうか?

  • アナログ情報のデジタル化の問題についてです

    信号に含まれる最高周波数が概ね300Hzと推測される場合、サンプリング時間はどのように設定すればよいか。またその時に必要なlow pass filterのカットオフ周期はどのようにすればよいか? という問題です。どのようにとけばよいのでしょうか><情報の問題で出たのですが、よくわからなくて・・・どうかよろしくお願いします。

  • MATLAB ファイル名書き出しについて

    MATLABかなりの初心者です。 指定した持続時間、周波数をもつ音をつくり、 それをaiffファイルに書き出すという関数をつくりました。 関数は、 create(t,f) このように複数の引数をもっています。 create(3,440) こうすると、持続時間3s,440Hzの音がつくれるようにしました。 (この関数自体はきちんと動作しています。) このとき、 3_440.aif というふうに、ファイル名に引数の数値を反映させたいのですが、 sprintf( … ) この中身をどう書けばよいのかわからず困っています。 稚拙な質問かもしれませんが、教えていただければありがたいです。 よろしくお願いします。

  • パワースペクトルについて教えてください

    matlabである信号の時間t(フレーム数)における周波数fのパワースペクトルの表の作り方を教えてください。 例 44100フレーム目の周波数100Hzのパワースペクトルが1のとき P(44100、100)=1となるPが作りたいです

専門家に質問してみよう