from squared signal to sine form

4 ビュー (過去 30 日間)
Sabine Havermans
Sabine Havermans 2019 年 6 月 6 日
コメント済み: Sabine Havermans 2019 年 6 月 9 日
I am working on a project with a robot arm. We made a pathplot with an array in matlab and then integrated this in the simulink model with a "from workspace" block. The problem is that the robot will see squared signals as needing to have a infinit high speed. Therefore, the signal should be rounded off a bit. So it has to get to the value that we gave in in the array but i has to go in a normal speed. Is there a simple way to get this done? Or at least another way than adding a lot of little steps in between?
Thanks!
  1 件のコメント
Adam Danz
Adam Danz 2019 年 6 月 6 日
What are the parameters of the square wave? Are the max and min +/- 1? Is it at a fixed interval? A picture would instantly answer these and other questions.

サインインしてコメントする。

採用された回答

Adam Danz
Adam Danz 2019 年 6 月 6 日
編集済み: Adam Danz 2019 年 6 月 6 日
If the parameters of your square wave are known (amp, phase, frequency, shift), you can probably generate the sine wave directly which would be your best bet.
Another approach is to smooth the sine wave with a Gaussian weighted moving average. That can be done with smoothdata() (r2017a or later).
% Produce & plot an arbitrary square wave
x = -4*pi : .01 : 4*pi;
sq = ((sin(2*x+4) >=0) - 0.5) * 4;
plot(x,sq)
ylim([-4,4])
% Smooth it with Gaus moving avg
B = smoothdata(sq,'gaussian');
% Show smoothed curve
hold on
plot(x,B,'r-')
  6 件のコメント
Adam Danz
Adam Danz 2019 年 6 月 7 日
Based on the data shared in arrays.m, your arrays are [m-by-2] where the first column are the x values and the second column are the y values. You can apply smoothdata() to the y values like this
sd = smoothdata(arrayq1(:,2),'gaussian');
figure
plot(arrayq1(:,1),arrayq1(:,2),'b-','LineWidth',2)
hold on
plot(arrayq1(:,1), sd, 'r-')
190607 144020-Figure 4.jpg
Sabine Havermans
Sabine Havermans 2019 年 6 月 9 日
Unfortunately, this is not an option, because the robot still needs to reach these outliers. I am going to test with the robot if it is working or not. Thank you for helping!

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeGet Started with Signal Processing Toolbox についてさらに検索

製品


リリース

R2017b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by