s[k]=cos(0.08π k)为原始信号;d[k]为均匀分布的白噪声。 matlab分别产生50点的序列s[k]和白噪声序列d[k],将二者叠加生成x[k],并在同一张图上绘出s[k],d[k]和x[k]的序列波形。
时间: 2024-11-05 10:34:12 浏览: 9
玫瑰曲线:绘制玫瑰曲线,rho=cos(k*theta),k 为有理数-matlab开发
在MATLAB中,你可以通过以下步骤来创建并可视化这个情景:
1. **创建信号s[k]**:
使用` linspace `函数创建一个从0到49的等间距数组,表示离散时间样本,然后计算余弦函数值。
```matlab
k = linspace(0, 49, 50); % 创建时间索引
f_c = 0.08 * pi; % 定义信号频率
s = cos(f_c * k); % 计算s[k] = cos(0.08π * k)
```
2. **生成白噪声d[k]**:
白噪声通常表现为随机且无特定规律的序列。在MATLAB中,可以使用`randn `函数生成标准正态分布的随机数作为噪声。
```matlab
d = randn(size(k)); % 生成50点的白噪声序列
```
3. **叠加信号和噪声**: 将s[k]和d[k]相加得到x[k]。
```matlab
x = s + d; % 合并信号s和噪声d
```
4. **绘制波形**:
使用`plot `函数绘制三者的波形,并在同一张图上展示。
```matlab
figure; % 创建一个新的图形窗口
subplot(3,1,1) % 分割成3行1列,第一块区域画s[k]
plot(k, s, 'b', 'LineWidth', 1.5); % 蓝色线表示s[k]
subplot(3,1,2) % 第二块区域画d[k]
plot(k, d, 'g', 'LineWidth', 1.5); % 绿色线表示d[k]
subplot(3,1,3) % 第三块区域画x[k]
hold on; % 保持当前图像,防止覆盖
plot(k, x, 'r', 'LineWidth', 1.5); % 红色线表示x[k] = s[k] + d[k]
legend('s[k]', 'd[k]', 'x[k]');
xlabel('Time Index (k)');
ylabel('Amplitude');
title('Signal and Noise Overlap');
hold off;
```
阅读全文