How to make(create) a waveform in matlab as shown in the image

조회 수: 4 (최근 30일)
Gova ReDDy
Gova ReDDy 2014년 1월 1일
편집: Gova ReDDy 2014년 1월 9일
Hello,
I am not sure of how to create the kind of waveform shown in the image below. I found a paper in which the author says that the pulse signal is corrupted with noise(motion) and LMS adaptive filtering is used for removing this kind of noise.
1)The signal after removing motion artifacts(noise) means the pure pulse signal is shown below
2)The waveform pulse signal with noise before filtering with LMS adaptive filtering is shown below.
I want to experiment the implementation in matlab and so I need the noise waveform to be created in the matlab.
can someone explain of how to generate the pulse signal(with noise) as above.
thanks.
  댓글 수: 2
Gova ReDDy
Gova ReDDy 2014년 1월 1일
Can someone suggest of how to generate the first signal in the attached image.
Image Analyst
Image Analyst 2014년 1월 1일
편집: Image Analyst 2014년 1월 1일
Explain what that means. Do you want to get the values by manually clicking on some chart like this? Or do you want us to recommend some kind of electronic instrument, a waveform generator, that can be used with the data acquisition toolbox to digitize the voltage? Do you want us to make some waveform like a sawtooth or sine wave or whatever, and add noise to it? After you read this again you need to rephrase your question.

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

채택된 답변

Youssef  Khmou
Youssef Khmou 2014년 1월 2일
편집: Youssef Khmou 2014년 1월 2일
the first signal is similar to sawtooth signal, here is how to produce the signal :
t=0:0.01:10;
y=sawtooth(2*pi*t); plot(t,y)
axis([0 10 -5 5]); grid on
%snr=10;
%x=awgn(y,snr,'measured');
%figure, plot(t,x)
SNR=10; % 10dB
sigma=std(y)*10^(-SNR/20);
x=y+sigma*randn(size(t));
figure, plot(t,x);
  댓글 수: 10
Youssef  Khmou
Youssef Khmou 2014년 1월 6일
Gova, you have many possibilities , here are some of them :
t=0:0.001:10;
y=0;
for n=1:10
y=y+sawtooth(2*pi*n*t);
end
plot(t,y)
The second one :
f=cos(2*pi*(0:0.001:1-0.001)); % frequency of 1Hz,
f=[f f f f f f f f f f];
f(end+1)=f(end);
z=y+f;
figure, plot(t,z);
Youssef  Khmou
Youssef Khmou 2014년 1월 6일
try to use also the periodic Cardinal sinus function :
plot(diric((0:0.1:100),10))

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

추가 답변 (2개)

Youssef  Khmou
Youssef Khmou 2014년 1월 6일
You can also create a random signal, delete of the frequencies and transform it back to temporal domain:
x=randn(200,1);
fx=fft(x);
fx(50:350)=0;
X=abs(ifft(fx));
plot(X) % approaching the second signal
  댓글 수: 5
Image Analyst
Image Analyst 2014년 1월 6일
You "also posted many times in the mathworks forum but no one was replying to it ." might indicate that no one here knows about your topic, and that posting many times again will yield similar non-results.
Gova ReDDy
Gova ReDDy 2014년 1월 6일
Yes,I do Agree with you Image Analyst but I was thinking to post about the signal generation or creation as similar to the second signal shown in the starting image of this thread and is not about the filtering method.

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


Gova ReDDy
Gova ReDDy 2014년 1월 9일
편집: Gova ReDDy 2014년 1월 9일
The answer can be found here

카테고리

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

제품

Community Treasure Hunt

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

Start Hunting!

Translated by