噪声matlab demon谱
时间: 2025-01-08 12:36:22 浏览: 4
### MATLAB 中噪声频谱分析示例
在MATLAB中,可以利用`fft`函数来进行快速傅里叶变换以实现频谱分析。下面是一个简单的例子,用于展示如何生成含有高斯白噪声的正弦波信号并对其进行频谱分析。
#### 创建含噪信号
首先创建一个理想的正弦波信号,并向其中加入随机产生的高斯白噪声:
```matlab
Fs = 1000; % Sampling frequency
T = 1/Fs; % Sampling period
L = 1500; % Length of signal
t = (0:L-1)*T; % Time vector
S = 0.7*sin(2*pi*50*t) + sin(2*pi*120*t); % Original Signal with two frequencies
X = S + 2*randn(size(t)); % Noisy signal, adding Gaussian white noise
```
这段代码定义了一个采样频率为1kHz的时间序列,在这个时间序列上叠加了两个不同频率(50Hz 和 120Hz)的正弦波作为原始信号,并加入了均值为零的标准差为2的高斯分布噪声[^1]。
#### 执行FFT计算频谱图
接着通过调用`fft()`函数执行离散傅立叶变换(DFT),得到该混合信号对应的幅度谱:
```matlab
Y = fft(X);
P2 = abs(Y/L);
P1 = P2(1:L/2+1);
P1(2:end-1) = 2*P1(2:end-1);
f = Fs*(0:(L/2))/L;
plot(f,P1)
title('Single-Sided Amplitude Spectrum of X(t)')
xlabel('f (Hz)')
ylabel('|P1(f)|')
grid on
```
上述脚本先求取双边幅值谱再转换成单边形式以便于观察实际物理意义下的功率密度分布情况;最后绘制出相应的图形表示出来。
阅读全文