Info

이 질문은 마감되었습니다. 편집하거나 답변을 올리려면 질문을 다시 여십시오.

error in matlab code

조회 수: 1 (최근 30일)
houssem alimi
houssem alimi 2019년 3월 14일
마감: MATLAB Answer Bot 2021년 8월 20일
i want to add noise just in a part of signal
  댓글 수: 3
KSSV
KSSV 2019년 3월 14일
for t=0.4:0.01:0.5
x(t)=y+awgn(y(t,5);
end
The above code is not correct.......you need to rethink on it.
houssem alimi
houssem alimi 2019년 3월 14일
my goal is to add noise in a part of signal between t1 and t2

답변 (1개)

KALYAN ACHARJYA
KALYAN ACHARJYA 2019년 3월 14일
편집: KALYAN ACHARJYA 2019년 3월 14일
Replace the complete for loop by following line
x=y+awgn(y,10); % Here 10 represents SNR, change accordingly
No need of for loop for adding noise, awgn represents white Gaussian Noise
A1=1;A2=1; %amplitude of the signal
f1=1;f2=3; %frequency sinusoidal signal
Fs=100; %sampling rate
Ts=1/Fs; %sampling period
fi=0; %phase shift
t=0:Ts:1; %time vector
y=A1*sin(2*pi*f1*t+fi)+A2*sin(2*pi*f2*t+fi); %generated signal
subplot(121), plot(t(1:100),y(1:100),'k','LineWidth',2),grid on
axis([0 1 -Inf Inf])
title('Addition deterministic and random signal','FontWeight','Bold','FontSize',14)
xlabel('time t(second)','FontWeight','normal','FontSize',12)
ylabel('amplitude u(volt)','FontWeight','normal','FontSize',12)
x=y+awgn(y,10);
subplot(122),plot(t,x,'k','LineWidth',2),grid on
axis([0 1 -Inf Inf])
I didnot check the logic of the code. Hope it clered your error doubt.
The Reason of error, you use the for loop
for t=0.4:0.01:0.5
x(t)=.....,
which means x(0.4) is not allowed, array indxing should always in positive integer x(1), x(2)........
  댓글 수: 2
houssem alimi
houssem alimi 2019년 3월 14일
i want that the noise is only appeared in a part of signal such between t1=0.4 and t2 = 0.5
houssem alimi
houssem alimi 2019년 3월 14일
can you help me

태그

제품


릴리스

R2016b

Community Treasure Hunt

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

Start Hunting!

Translated by