Problem Implementing a sine wave with increasing frequency

조회 수: 7 (최근 30일)
chang low
chang low 2015년 8월 19일
편집: Alberto llosa 2022년 12월 1일
Hi,
I would implement a sine wave with frequency that increases from 0 to 50 and stay constant afterwards. The model i used is on the top left and frequency input on bottom left. However, the output results( firgure right) i obtained contains a frequency higher than 50Hz but I don't know why. What went wrong?
matlab function code
function y = sin(f,t,ps)
%generates a sine wave of frequency f and phase shift of ps (in radians)
y = sin(2*pi*f*t+ps);
Here's my model
  댓글 수: 3
Purushottama Rao
Purushottama Rao 2015년 8월 19일
can you attach the model?
Alberto llosa
Alberto llosa 2022년 12월 1일
편집: Alberto llosa 2022년 12월 1일
I´m having the same issue and will not able to solution this up to now. I have intended a number of solutions as working with the implemented sine wave simulink block and also using an S shape curve for varying the frequency without abrupt changes and the behavior is the same. I believe it is a problem on the code used to generate the sin wave. At this moment this problem is challinging us since I´m not being able to attend customer needs on the simulation we are working with.

댓글을 달려면 로그인하십시오.

채택된 답변

Purushottama Rao
Purushottama Rao 2015년 8월 19일
편집: Purushottama Rao 2015년 8월 19일
The problem with your model is dynamic freqency change faster than the generation of sine wave itself. Say for example, at a given instant the frequency input to the function call is 20HZ. Depending on the clock value at that instant, MATLAB refers to 20HZ sine wave and takes a sample out of it. For the very next sample, you are changing the frequency to 21HZ (say), and therefore matlab has to look for the 21HZ sine wave and depending on the clock, it gives the output. Therefore the output frequency can not be defined during the ramp period in your model.
In order to define the frequency effectively, you may have to reduce the sampling rate of your frequency alone such that matlab completes one cycle atleast for the frequency input. But in your case this seems to be not possible because for matlab to complete 1HZ sine wave, 1sec is requied.After 1sec, your ramp is already at 50HZ. Therefore you dont see the way you are looking for

추가 답변 (1개)

Azzi Abdelmalek
Azzi Abdelmalek 2015년 8월 19일
If the maximum frequency is
f=50,
set the max step size (in model configuration parameters) to
0.1/f
  댓글 수: 1
chang low
chang low 2015년 8월 19일
The output just became more distorted. Might the problem be due to my implementation method instead

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Signal Generation에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by