• ベストアンサー

Matlabでsin波を使って矩形波を作るにはどうしたらよいのでしょうか?

昔Scilabを使って居たのですが、簡単なことなのですが、やり方をすっかり忘れてしまいました。お手数ですが教えていただけないでしょうか?

noname#244609
noname#244609

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

  • ベストアンサー
  • rabbit_cat
  • ベストアンサー率40% (829/2062)
回答No.2

矩形波は、 sin(t) + 1/3*sin(3*t)+ 1/5*sin(5*t) + … と展開できます。 Matlabで書けば、 t=0:0.01:10*pi y = zeros(size(t)) for n=1:2:10   y = y + 1/n*sin(n*t) end plot(t,y) みたいな感じでしょうか

noname#244609
質問者

お礼

遅ればせながらご解答ありがとうございました。

その他の回答 (1)

  • rabbit_cat
  • ベストアンサー率40% (829/2062)
回答No.1

何をやりたいのかよくわかりませんが, x=sin(0:0.1:10*pi) y=sign(x) みたいなことですか

noname#244609
質問者

お礼

ご解答頂きありがとうございました。

noname#244609
質問者

補足

言葉足らずで申し訳ありません。 sin波をsin*pi+sin*3*pi+sin*5*pi+sin*7*p…+sin*99*piとしていけば矩形波が作れると記憶しているのですが、どのようにプログラムを組んだら良いのかを質問したかった訳なのです。お手数掛けて申し訳ありませんでした。

関連するQ&A

  • MATLAB用のプログラムをScilabで実行可能でしょうか?

    MATLABのプログラムをScilabで実行することは可能でしょうか?教えていただけませんか?

  • MATLAB及びSCILABについて

    scilabで以下の式について二次元でプロット化したいのですが、全くわかりません。 ... matlabでも結構ですので、プログラムの書き方がわかる方教えていただけませんか? ちなみにmkとnkは nk=3^(3^k) mk=2*k*nk で与えられています。 何か参考になることでもいいですので、よろしくお願いします。

  • scilabでsin波とのこぎり波の差を取ってグラフ化

    scilabというフリーソフトを用いて、三角関数とのこぎり波の差を取り、結果が+のときは値が1、-のときは値が0となるようなグラフを作成し、その後フーリエ変換を行いたいのですが、scilabは初めてでどのようにしたらいいか分かりません。 まずは三角関数(sinωt)とのこぎり波(ft-floor(ft))の差を取り、グラフ化しようと思うのですが、どうしたらよいのでしょうか?

  • MATLABのソースを見ることのできるフリーソフトウェアってありますか?

    私のノートPCにはMATLABが入っていません。 ネット上で拾ってきたMATLABソースを確認したい場合に、ワードパッドやノートパッドではすべて同色なので、非常に見づらくて困っています。 少しでもMATLABソースが見やすくなるフリーソフトって存在しますでしょうか? Scilab、OctaveでMATLABソースを読み込めると聞いたこともあるのですが・・・ どなたかご存知の方回答よろしくお願い致します。

  • MATLABのクローンフリーソフトについて

    大学2年です。授業でMATLABを使うのですが、わざわざ大学の端末でしかレポートを作成できないのが面倒に思います。 なので家のパソコンでも使いたいなと思うのですが、使い始めたばかりで学生版のMATLABの製品を購入する勇気もまだありません。 インターネット見ていましたらクローンのフリーソフトでoctaveやScilabなどいろいろあるようですがどれがよろしいのでしょうか? まだまだ使用して浅いので調べていてもどこが似ていて、違うのかなどがピンときません。クローンを家で使用して、ファイルや使用感などが本物のMATLABに還元できるようなものがいいと思っております。

  • scilabのダウンロードについて

    scilabをダウンロードしたいのですが、scilab5.1.1しか見つかりません。 私は勉強のためにダウンロードをするのですが、scilabの勉強のためにと購入した参考書ではscilab4.1.1を使用しており、同じバージョンのものをインストールしたいのですがscilab4.1.1が見つかりません。 どこに行けばダウンロードできるのでしょうか。 また、バージョンが高いものでも代用可能でしょうか。

  • matlabやscilabでラゲールの多項式などのフリープログラムがないか

    matlabやフリーのscilabで、水素原子の波動方程式の解をプログラムとして入れたいのですが、その中に出てくるラゲール(laguerre)の多項式や球面調和関数が複雑で、どうプログラミングすればいいのか分かりません(元からは入ってないようなんで・・)。  なのでインターネット上にラゲールの多項式などを表すプログラムが公開されてないかを知りたいです。英語が苦手で、検索しても何が書いてあるのか分からない感じで、困っています。

  • Scilabのstacksizeの増やし方が、どうしもわからず下記エラ

    Scilabのstacksizeの増やし方が、どうしもわからず下記エラーが出てしまい 現在困っております。 エラー1.--------------------------------------------- スタックサイズを超えました(stacksize を増やしてください) 上記エラーに関しましては、 自分自身では、stacksize('max')と設定したら一時的にエラー が出なくなりました。しかし計算量が増えた時にまた同じエラー が出てくるようになってしましました。 エラー2.--------------------------------------------- スタックサイズは制限を越えました。 スタックサイズ関数を使ってそれを増やして下さい。 変数にメモリが使われました: 4229545 中間のメモリは必要とされました: 4194308 全部のメモリは可能です: 5000000 ----------------------------------------------- (バージョン:Scilab5.3-βです。) お手数ですが、scilabの上記エラーについての対処方法等をご存知でしたらお教えください。 よろしくお願いいたします。

  • フィルタ回路をつくりたいのですが・・・(矩形波をSin波に変えたいです)

    自作でPLL(フェイズロックループ)回路を作りました。そこから80Hzの矩形波を2チャンネルで出力させて、1つをロックインアンプのリファレンスに入れ、もう1つの出力加振器を動かしたいのですが、矩形波では無くSin波で動かしたいので、この矩形波をSin波に変えたいと思いました。 つい先日、矩形波はフーリエ展開をすれば、Sin波の基本周波数と奇数倍の周波数の足し合わせということを習いました。 なので、この80Hzの矩形波から基本周波数の80Hzのみを取り出せる(通過させられる)フィルタを作れば良いのではと考えました。 そこで、80Hz以上の周波数成分を除去すれば良いのではと考え、RCローパスフィルタを作り、通してみました。 「ω=2πf=1/RC」から、C=0.1μFとして(持っていたので)、Rを求めて作りました。 結果は、矩形波の立ち上がりはSin波のような出力でしたが、下がるところがゆるやかで、1周期として見るとノコギリのような形になってしまいました。「なってしまいました」というか、RCフィルタはそういう特性をもっているのだと、参考書を見て先ほど分かりました。 なので、矩形波からきれいなSin波をつくるには、どのようなフィルタ回路だと良いのか、ぜひ教えてください。 出来れば簡単な回路が良いのでRC回路が良いのですが、無理ならLC回路やオペアンプを使った回路などもお願い致します。 今はバンドパスフィルタでは??・・・とも考えています。 回路の初心者なのですが、宜しくお願い致します。

  • scilabという科学ソフトとコンパイラ

    MATLABに近い動作をする科学系のフリーソフトのscilabについてお尋ねします。 最近、scilabをインストールすると、intelのMathkernel libraryをネットから取りよせようと動作したり、c言語、Fortranのコンパイラがインストールされていることが前提だったり、つまりscilabをしっかり動作させるためのツール(計算環境)を外に求めるようです。 一応、scilab自体のインストールはできるようですが、しっかり動作させるには何かが不足しているのかもしれないと思います。 scilabの使用にについて前提条件としてそのようなことがあるのでしょうか。どこかに書いてあるでしょうか。もしインストール時にない場合はあとからインストールしてもいいでしょうか。またcコンパイラはbcc55でもいいでしょうか。 よろしくお願いします。

専門家に質問してみよう