如何创建具有加性高斯白噪声(WGN)的正弦信号并将数据集转储到文本文件?

时间:2019-05-28 13:26:43

标签: matlab

  1. 这些脚本首先为t = [0:0.1:2]1Hz的频率创建一个正弦数据集。
  2. 然后,它将Gaussian randommean is 0的{​​{1}}数据添加到正弦数据中。
  3. 将两个数据集绘制在同一图形上。
  4. 最后,将所有嘈杂的正弦数据写入名为 standard deviation is 0.5使用data.csvfor loop函数。

我写了这个,但是我想使用fprintf

randn

1 个答案:

答案 0 :(得分:1)

您不需要循环。

尝试一下:

t = 0:0.01:4;

f = 1; %Hz
w = 2*pi*f; 

s = sin(w*t); % original signal with frequency 1Hz
noise = randn(size(s)); % white noise with mu=0, sigma = 1
noise = noise*0.5; % sigma correction
s_noisy = s + noise;

%plot
figure
plot(t, s);
hold on;
plot(t, s_noisy);
hold off;
grid minor;

% save to file
fileID = fopen('sine.csv','w');
fprintf(fileID, '%6.4f\n', s_noisy);
fclose(fileID);

enter image description here