2016-06-24 41 views
0

私はMATLABを初めて使用しています。正弦波を生成するためのコードを記述しました。しかし、グラフは正しくありません。ここに私のコードのスクリーンショットとプロットMATLAB正弦波プロットが正しくありません

MATLAB

問題は何であるのでしょうか?助けてください!

+3

あなたのコードをスクリーンショットすることができます場合は... – excaza

答えて

4

MATLABプロット離散ポイントは、単に隣接する点を一緒に接続する直線を描画します。あなたのタイムポイントはその間に1秒(1秒)であり、あなたは100Hzの周波数を指定しています。さらに、サンプリング時間が正弦波の周期の倍数であるため、tの値をすべて代入すると、sinの結果は0になりますが、いくつかの数値の不正確さがあります。具体的には、y軸を見ると、数字の大きさは約10^{-13}であることがわかります。しかし、あなたがこれをエスケープしても、サンプリング時間はあなたの波の特定の周波数に対して大きすぎるので、ポイント間のこの巨大なギャップは、あなたのグラフに見られるギザギザ波として視覚化されます。

解決策は、単純にサンプリング時間を短縮することです。例えば1e-4のように、小さなものを試してみてください:

t = 0:1e-4:0.05; 
f = 100; 
A = 2; 
x = A*sin(2*pi*f*t); 
plot(t,x); 

我々は今、これを取得:

enter image description here

+0

要求10000000001x1をコピーし、それをここに貼り付けることができます(74.5 GB)アレイが の最大配列サイズ優先度を超えています。この制限を超える 配列を作成すると、時間が長くなり、MATLABが応答しなくなることがあります。 の配列サイズの制限または優先パネルを参照してください。 new1(行2)のエラー t = 0:1e-10:1; – nrb

+0

@nehal_bサンプリング時間を変更しました。私は小さすぎた。 – rayryeng

+0

@rayryengプロットは継続的に増加し、正弦波の近くにはありません:( – nrb

関連する問題