making a data series with 2 or 3 discrete pulse, rest are zero

1 次查看(过去 30 天)
Hello, I am new to matlab. I want to prepare a data series of say 1024, with 2 or 3 sharp pulses at discrete positions. I want rest points to be zero (preferable) or very small values, so that I can really identify the pulses. Later, if I want to add a normally distributed random noise, how I can do that. thanks a lot in advance. regards. asim

回答(1 个)

Fangjun Jiang
Fangjun Jiang 2011-8-22
Series=zeros(1024,1);
RandPos=[10,13,50];
PulseHeight=2;
Series(RandPos)=PulseHeight;
Noise=rand(1024,1);
Signal=Series+Noise;
plot(Signal);
  6 个评论
Asim Biswas
Asim Biswas 2011-8-22
Thanks Jiang. I appreciate it.
lets say, 0.1 sec interval from 0.1 to 10.24 sec. I want a resonable frequency and say unit magnitude. However, I want to see the pulse for a very short period but high magnitude. It should look like a peak in the middle of no where.
I wonder if I can make the question clear.
thanks a lot.
regards.
asim
Fangjun Jiang
Fangjun Jiang 2011-8-22
All right,the point here is to show you the method, not give you the complete solution. From the above example, I hope you start to understand how easy MATLAB can enable you to do this. To define time, t=0:0.1:10.24. To generate a unit sine wave with frequency f, f=2; Data=sin(2*pi*t); You can use the same method to generate the pulse signal with high frequency and high magnitude. Then to add them together at a certain time spot, you can use for example: Data(51:60)=Data(51:60)+PulseSignal(1:10). Note that your sample time is 0.1sec, which means 10Hz, you can't really represent any signal with frequency high than 5Hz

请先登录,再进行评论。

Community Treasure Hunt

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

Start Hunting!

Translated by