• 締切済み

音響信号処理をC言語でプログラミング

音響信号処理をC言語でプログラミングを考えています。 理由としては ・現在はMATLABを使って信号処理しているが処理速度が遅い為 ・ロボット等のシステムに組み込む際C言語の方がよさそうだから 現在の目標は ・マイクロホンで録音した信号を読み込む。 ・録音した信号を短時間フーリエ変換する。 を考えています。 そこで質問なのですが (1)必要(便利)な機器,ソフトウェア (2)必要な知識(参考資料) について詳しい方がいらっしゃいましたらよろしくお願いします。

みんなの回答

  • chie65535
  • ベストアンサー率43% (8514/19356)
回答No.2

>・現在はMATLABを使って信号処理しているが処理速度が遅い為 >・ロボット等のシステムに組み込む際C言語の方がよさそうだから 実数演算を廃して、固定小数点演算(実質的には整数演算になる)を用いるのが良いでしょう。 ロボットに組み込むなら、RAM、ROM領域が非常に狭い組み込み用マイコンで動かす事になるでしょうから、実質的に「実数演算は使えない」と思ってください。 組み込み用マイコンで実数演算を行うと、実数演算ライブラリがプログラム領域の大半を使用し、ユーザー用プログラム領域が足りなくなります(ROMのサイズがEEPROMのサイズを超え、ROMライタで焼き込み出来なくなります) 例えば「整数部12ビット、小数部20ビットの32ビット固定小数点数」にすれば、乗算の際にちょっと工夫が必要ですが、事実上、整数演算のみで実現出来ます。 整数演算のみであれば「やる気になれば、アセンブラで書いて、超高速フーリエ変換」も可能です。 >(1)必要(便利)な機器,ソフトウェア アルゴリズムを組み立てるとか、基礎的な部分を書くとか、ちょっとしたテストをするとかなら、普通のパソコンに体験版・無料版のCコンパイラをインストールすれば良いと思います。 >(2)必要な知識(参考資料) フーリエ変換なら、ネットで「FFT」で検索すれば、色んなサイトで、色んなサンプルプログラムが見付かると思います。もしかしたら、固定小数点演算(整数演算)で書かれたサンプルプログラムとかが見付かるかも。

nomusan060
質問者

お礼

回答ありがとうございます。 (1)コンパイラにはBorland C++ Compilerを検討してみます。 (2)固定小数点演算(整数演算)については勉強不足なので詳しく調べてみたいと思います。

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

FFTやデジタルフィルタ系のコードは多くのサイトで紹介されていますので、 たとえば、 http://thorshammer.blog95.fc2.com/blog-entry-118.html のようなサイトを参照してもらえばよいのではないでしょうか。 基本の信号処理自体は多くのサイトで紹介されているので、 それほど障害にならないと思うのですが、 実際、出てきた信号をどのように処理するかが難しいと思います。 ですから、FFTをする前後でどのような処理をするかを調べておくことをおすすめします。

nomusan060
質問者

お礼

参考になるサイトの紹介ありがとうございます。 先代の方が残してくれたプログラムを参考に目標を達成したいと思います。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 信号処理とプログラミング

    信号処理とプログラミング こんにちは、私は大学3年生です。電気電子学科に所属しています。 通信の分野に興味があり、MATLABによる信号処理を学ぼうと思っています。 ただ、MATLABって別にプログラミング言語じゃないんですよね? 1,2年の頃は電気回路や電気磁気学といった理論の授業ばかりで、筆記さえできれば、プログラミング能力は必要とされていませんでした。 なので、言語についてはC言語しか知らず、ポインタって星印がつくやつでしょ程度の理解です。 仮にも通信分野に進もうとしている人間がプログラミング能力がこんなものでいいのかと不安に感じてきました。 なのでMATLABを学ぶと共にプログラミング言語もやろうとは思うのですが、フィルター処理や伝達関数や信号処理ってプログラミング言語でできるんですかね? もしやるとしたらC言語とJAVAのどっちがいいんですか? プログラミング言語で具体的にどんなことができるかよくわからないので質問しました。回答お願いします。

  • プログラミング言語の選択について

    プログラミング言語の選択について こんにちは。 最近本格的にプログラミングを始めてみようと思うようになりました。 (現在vbscript,htmlができます) 目標はguiのソフトウェアを作ることです。 おすすめの言語がありましたら教えてください。

  • C言語でのプログラミングについて

    C言語でのプログラミングについて これまでJavaでよくプログラミングをしてきたのですが、最近Cもよく使っています。 しかしJavaに慣れすぎたのか、Cで大きなプログラムを作ろうとすると、どうすればいいのかよく分かりません。 HeaderファイルはJavaでいうと継承みたいなもので、複数のファイルに同じ機能を持たすときに使うのでしょうか? Javaではクラスがありそれぞれに役割がありますが、Cの場合はファイルごとに大まかな役割を分けるのでしょうか? (例えばユーザーからインプットを取ってくるファイルをgetInput.cで、それを処理するファイルをvefiryInput.cというようにするのでしょうか?) C言語でのプログラミングの仕方を教えてください。

  • c言語を独学

    目標:パソコン上で自分が作ったプログラムで簡単なゲームなど    それなりに成果が見えるくらいになりたい ●これくらいの知識をつけるのに独学でできますか? ●できるならどのようにすればできると思いますか? ●Windows vistaでc言語をつかってプログラミングするには  どのようなソフトウェアが必要ですか? 初心者並みなのでやさしいところからできるように お願いします。

  • 言語処理系とは何ですか?

    現在大学二年生です。 C言語のプログラミングが好きで昨年から独学で色々な本を読んでいます。 大学院でも是非ともC言語を生かすような研究をしたいと思っているのですが、色々な大学のホームページを調べてみると教官に分野についてプログラミング言語及び言語処理系といった記述をよく見かけます。 この言語処理系とは一体どのような分野なのでしょうか? またC言語を生かす、あるいは学ぶにはどのような分野の研究に進むのが最適でしょうか? 自分は高校の時にはVBもやっていたしCに限らず言語に興味があります。

  • プログラミング言語の習得

    プログラミング言語の習得 私は現在SEへの転職目指しております。 特に社内ではプログラミングの業務をしているわけではありませんが、 独学でC言語の学習をしております。 (就職前にVBを学習、C言語は1ヶ月前からはじめ参考図書「猫でも分かるC言語」を通して 学習し終えた段階です。) プログラミングの言語は多数存在する昨今、どの言語を習得すべきなのか、 このままC言語を学習し続けていいものなのか迷っております。 目標や用途によって習得すべき言語は異なってくるということは耳にしますが、 実際C言語のプログラミングでは何ができるのでしょうか?

  • 動画と音声の処理に強いプログラミング言語は何でしょうか?

    動画と音声の処理に強いプログラミング言語は何でしょうか? カメラとマイクを使った人工知能を持つプログラムを遊び半分で作ってみたいと思っているのですが、どのプログラミング言語で作るかまだ決めていません。 調べたところ、JavaにはJava Media Frameworkなどがありよさそうなのですが、CやC++などにも同じようなものがあるのでしょうか。また他の言語でもっと優れているものはあるでしょうか? プログラミング言語に限らず、音声ファイルをバイナリとして読み込めばいいかもしれませんが、音量や周波数などを取得するために自分でコードを書くのはちょっとつらいのでそれらをしてくれるライブラリがある言語を探しています。また、音声や動画をリアルタイムで処理したいので、それも可能なものがあったら教えて欲しいです。よろしくお願いします。

  • プログラミング(C言語)を勉強するに当たって・・・

    何も知らない完全な初心者です。 現在、理学部の大学1年生です。(情報系ではありません) 目的としては、ゲーム作成。および、大学の研究などで自分が必要とするソフトを作ること。 プログラミングについて独学で勉強したいのですが、現在、C言語からはじめてC++を勉強しようと思っています。 そこで、いくつか質問をしたいのです。 (1)言語を学ぶ以前に学ぶべきことは? (2)目的に対する言語は適当であるか? (3)また、どのソフトがお勧めであるか?(学生なので2万以内で済ませたいと思います。) プログラミングをする際に読んでいたほうが良い本を 教えていただけるとありがたいですm(_ _)m

  • プログラミング言語について

    プログラミング言語について 将来、ソフトウェア開発の職につきたいと考えています。 プログラミングには以前から興味があったのですが、学科が化学系のため ほとんど縁がない状態です。もうすぐ夏休みに入るということもあり、 長期休暇を使い、多数ある言語のうちC、C++を学んでみたいと思っています。 そこでなのですが、 ・C++はC言語が使えることが前提なのか ・具体的にプログラムを作製しながら学びたいが、どのような物を作ってみるのが効果的なのか の2点が一番気になっています。もし宜しければ、教えていただければ幸いです。 よろしくお願いします。

  • C言語プログラミング

    C言語プログラミングを作成したいのですが、全くわかりません… 成績処理についてのプログラミングお願いします! キーボードから試験の点数を読み込み0.5を掛ける。つぎに課題点を読み込み0. 25を掛ける。2つを加えて四捨五入してこれを授業点(75点満点)として表示。そして演習点(25点満点)を読み込み授業点に加え全体成績(100点満点)として表示する。最後に判定をして、0~59点は「不可」、60~69点は「可」、70~79点は「優」、それ以外は「入力ミス」と表示。 これをC言語プログラミングお願いします。

このQ&Aのポイント
  • ArduinoとESP32をネットワークにつなぎ、専用のアプリから操作したいと思っています。VisualStudioとUnityのどちらが開発に適しているでしょうか?
  • ArduinoとESP32をネットワークにつなぎ、専用のアプリから操作したいと考えています。開発にはVisualStudioかUnityが適しているのでしょうか?
  • ArduinoとESP32をネットワークにつなぎ、専用のアプリを制作したいのですが、開発にはVisualStudioかUnityが適しているのでしょうか?
回答を見る

専門家に質問してみよう