MATLAB叠加性宽带白噪声代码
时间: 2023-11-13 07:21:11 浏览: 97
以下是MATLAB的叠加性宽带白噪声代码示例:
```matlab
% 定义相关参数
fs = 1000; % 采样率
f1 = 10; % 信号频率
f2 = 100; % 噪声频率
A = 1; % 信号幅度
B = 0.5; % 噪声幅度
N = 1000; % 采样点数
% 生成信号
t = (0:N-1)/fs; % 时间轴
s = A*sin(2*pi*f1*t); % 正弦波信号
% 生成噪声
n = B*randn(1,N); % 高斯白噪声
f = linspace(-fs/2,fs/2,N); % 频率轴
H = ones(1,N); % 叠加函数
H(abs(f)>=f2) = 0; % 只保留低于f2的频率
h = ifftshift(ifft(H)); % 反变换得到时域叠加函数
% 叠加噪声
s_noise = conv(s,h,'same') + n; % 叠加宽带白噪声
% 绘图显示结果
figure;
subplot(3,1,1); plot(t,s); title('原始信号');
subplot(3,1,2); plot(t,s_noise); title('叠加宽带白噪声后的信号');
subplot(3,1,3); plot(f,abs(fftshift(fft(s_noise)))); title('频谱');
```
该代码生成一个频率为10Hz的正弦波信号,并添加一个带宽为100Hz的高斯白噪声。通过定义叠加函数H,只保留低于100Hz的频率,实现了宽带白噪声的叠加。最终绘制出原始信号、叠加噪声后的信号以及信号的频谱图。
阅读全文