• ベストアンサー

DSP(ディジタル信号処理)について詳しく教えてください。

今、DSPについて調べているのですが、ディジタル信号の作成や編集を行う事を DSPというと、書いてありました。また、C言語で/アセンブラで目的にあった動作をさせるとありました。他にも、例えで、DSPは、レーシングカーF1 、 CPUは、 レジャーカーと書いてありました。これは、処理速度の違いを表していると思うのですが、具体的に、DSPとCPUの違いを教えてください。それと、DSPが、どのように使われてるか教えてください。お願いします。

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

  • ベストアンサー
回答No.1

デジタル信号処理は、その大部分が積と和の繰り返しの計算です。 その計算を効率よく行うのがDSP(Digitai Signal Processor)です。 #ちなみに、単にDSPと言った場合には、Digitai Signal Processorを意味する #場合と、Digitai Signal Processingを意味する場合があります。 CPUが汎用のプロセッサであるのに対し、DSPは信号処理等に特化したプロセッサ ということが出来ると思います。 CPUに対するDSPの仕組み上の違いとしては、 ○高速な乗算器を持つ。 ○プログラムとデータに対して、それぞれ別々のメモリとバスを持たせる事  により、データ転送を高速に行う。(ハーバードアーキテクチャ) などが挙げられます。 どのように使われているかですが、身近なところでは 携帯電話の音声圧縮/伸長やノイズキャンセル、 デジタルカメラの画像圧縮/伸長などがあります。

kakehiki08
質問者

お礼

丁寧な説明、ありがとうございます。CPUとDSPの違いもわかりましたし、 現在、DSPが身近に使われている機器の事もわかりました。 どうもありがとうございました。

その他の回答 (1)

回答No.2

#1の方のおっしゃるとおりですが、若干補足します。 なぜ専用DSPがCPUより速いか、ですが、DSPには固定小数点演算用のものと浮動小数点演算用のものとがあります。 CUPの場合はFPU(浮動小数点演算ユニット)を持たない、あるいはあまり強力でないもの(だからPentiumはいくら動作周波数が速くてもPowerPCに劣るわけです)は浮動小数点をふんだんに使う数値演算(データ解析、制御、グラフィックス)ではDSPには劣る事が多いです。 あとマルチプロセッサで構成が可能なSHARKなどもありますし、アセンブラのオプティマイザ(最適化サポート機能)を備えたものもあります。これだとCで記述しても純粋にアセンブラで書いたときの70%程度の性能で動作します。(低いように思えますが、Cで書くとそこまでは出せません) あと、パイプライン並列化といって命令を可能な限り同時に処理できるような機能を持っている製品もあります。 そのため同じ周波数でもCPUの数倍(それ以上)の演算性能が出せます。 あとどうしてそこまで高速性能が必要かというと特にアメリカ、ヨーロッパでは軍事製品に使われるからです。 ソナーとかレーダーとかミサイルとか航空機とか。 他にも知りたいことがあればお答えいたします。

kakehiki08
質問者

お礼

さらに詳しい説明をありがとうございます。DSPがCPUより優れているのが、どういった点なのか、わかりました。

関連するQ&A

  • デジタル信号処理を行うデバイス

    いつもお世話になっております。 デジタル信号処理について質問です。 いま、畳みこみなど、基礎的なことを学習中なのですが、 それらが実際のどの場面で、 どのように活かされるのかがいまいちつかめません。 一般に、「デジタル信号処理」は実際どのようなデバイスで実施されるのでしょうか? MATLABなどのソフトで実行するのと、 デジタルシグナルプロセッサーで実行するのは違うことなのでしょうか? また、「組込」で信号処理をどのように応用しているのでしょうか? さらに、 ・DSP用のLSI設計、 ・FPGAを使ってDSP用の論理回路を組む ・DSPボードそのものの作成 などということがあるとしたら、 その設計にも、畳みこみやFFTなどといった デジタル信号処理の知識が必要なのでしょうか? 必要であるとしたら、その「設計」は何を使ってするのでしょうか? 一度にたくさん質問しすぎて、すみません。  DSPについていろんな「応用例」を是非知りたいと思い、質問しました。 この中の一つでも教えていただけたら幸いです。 よろしくおねがいします。

  • C言語によるディジタル信号処理のお勧めの本やサイト

    C言語を使ったディジタル信号処理でFFT,DFT,ハミング窓,ギブスの現象,FIR(IIR)フィルタなどのいろいろなアルゴリズム,プログラムが載っていてしかも分かりやすかったり,有名な本ってありますか? また,何故その本がお勧めのかの理由も聞かせていただければ大変有難く思います。

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

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

  • 素朴な疑問 (C言語とアセンブラの処理速度の違いについて)

    C言語で作成したプログラムをビルドして実行ファイルを作成するのと、アセンブラ言語(?)をアセンブルして作成した実行ファイルは、どうして処理速度が違うのでしょうか?例えば全く同じ処理を高級言語と低級言語で作成した場合、出来上がったそれぞれの実行ファイルの違いは、コンパイル時に吸収されてしまうわけではないのでしょうか?

  • とにかく処理速度が速いパソコンを教えてください

    とにかく動作、処理速度に関して優れているパソコンを教えてください。 処理速度=CPUの数値ですよね? よろしくお願いします。

  • 入力信号?

    全くの素人で申し訳ありません。 液晶モニターを購入予定なんですが、入力信号がデジタルのものとアナログのものがありますよね? 違いは一体何でしょうか?デジタルの方がいいような気がしますが今狙ってるモニターはアナログです。 つまらない質問ですがよろしくお願い致します。 使用用途はゲーム、動画編集などです。

  • DSP入門者です。

    DSP入門者です。 現在三上直樹氏の「C/C++によるディジタル信号処理入門」を参考に マイコンとPCを使って勉強中です。 マイコンのADCの都合上、入力信号を0Vではなく1.6V中心に振幅させて マイコンでADCした値をパソコンのアプリでフィルタ処理してグラフ表示しています。 IIRのハイパスフィルタをかけると出力結果が1.6V中心の振幅ではなく、0V以下中心になってしまいます。 ローパスだと1.6V中心の振幅になっているように見えています。 フィルタのパラメータは書籍付属のツールを使っています。 設定は下記の通りです。 高域通過フィルタ バタワース特性 次数    :4 次 標本化周波数:30.000000 kHz 遮断周波数 :1.000000 kHz デジタルフィルタは0V中心の振幅を想定しているのでしょうか? それともパラメータや処理に問題があるのでしょうか? 基本的な質問だと思うのですが、ご教授いただけないでしょうか。

  • SHマイコンについて

    初めて質問します。 仕事で、マイコン回路を設計する必要があります。マイコンを選ぶにあたって、いくつか質問があります。 (1)MCUタイプとプロセッサタイプという2種類があるのですが、データシートを見てもどのような違いがあるのか分かりません。どう違うのでしょう? (2)仕様上、高速信号処理を要しますが、SH-4とSH-3DSP内蔵というのはどちらがいいのでしょう? (多分用途によって違うと思いますが…) (3)(2)に関して、今までDSPとは、マイコンを音声信号処理(FFTなど?)などの特定デジタル処理向けに特化したものと思っていましたが、それがマイコンに内蔵されているとなるとDSPとは一体どのようなものなのでしょうか?CQ出版社の”DSPのハードウェアと信号処理の実際”という本を読んでみましたがいまいちマイコンとの違いがよく分かりませんでした。 以上、分かる範囲で結構ですので皆様のお知恵を拝借したく宜しくお願い致します。

  • ビデオキャプチャか、USB2.0デジタル処理か

    毎度お世話になっています。 http://www.okweb.ne.jp/kotaeru.php3?q=722906 の質問を発してからいろいろ考え、下記のような考えにいたったのですが・・・自信がありません。(^^; 間違いがあればご教示願います。 [従来] カメラからアナログのビデオ信号を出し、キャプチャ(ハードエンコード)でデジタル圧縮信号にして、PCIバス経由でメモリへ取り込み、CPUがソフトデコードして画像データにして、VRAMへ送る。 PCIコントローラはCPUが動かすけれど、PCIを通るときは圧縮データなので負荷は大きくないはず。 CPUの負荷は、PCIコントロール、デコード、画面表示で、前の2つは軽いので事実上画面表示だけ。 [USB2.0にすると] カメラから非圧縮デジタル信号を出力し、USB2.0経由でパソコンのメモリへ取り込み、VRAMへ送る。 USB2.0は非圧縮の大量のデータが流れる。そのコントローラが専用チップならよいが、CPUにお任せだと負荷がかかるかもしれない。 HDDなどへの保存をしなければ負荷のかかる圧縮(ソフトエンコード)は不要なので、CPUの負荷は、USBのコントロールと画面表示だけ。 [結論] USBコントローラが専用チップであれば、CPUへの負荷量は変わらない。むしろエンコード/デコードの処理が無いだけ速いかもしれない。

  • デジタル信号処理の分野での質問です。

    デジタル信号処理の分野での質問です。 式と図は、画像として添付します。 単純な移動平均についてですが、 例えば5点の単純な移動平均を行った場合、 5点の移動平均を表す伝達関数は、式(1)となります。 これにz=e^(jωT)として、周波数応答を考えて式を整理すると、式(2)となります。 そして、式(2)の赤線の部分が振幅特性を表し、これをプロットすると周波数振幅特性となります。 T=1として、このプロットした周波数振幅特性のグラフ(図1)で、サンプリング定理により 有効な周波数範囲0~0.5[Hz]までの特性を見ると、周波数が高くなるにつれて、 振幅が減衰し、低域通過フィルタ(Low-Pass-Filter)の動作をしていることが分かります。 これにより、信号を滑らかにする働き(すなわち移動平均)は、一種の低域通過フィルタであるといえます。 ここまでを踏まえた上で質問させていただきます。 ・根本的になぜ移動平均すれば低域通過フィルタになるのか ・どのような波形でも移動平均すれば低域通過フィルタになるのか ・逆にどのような条件の波形の場合に移動平均すれば低域通過フィルタになるのか 長文で面倒だとは思いますが、回答よろしくお願いします。