以上面的代码为基础,用matlab继续写出对y=sin(2*pi*0.1*x)+sin(2*1*f_2*x)进行矩形滤波的过程,并写出画该函数滤波后频谱图的代码
时间: 2023-10-21 20:04:02 浏览: 124
以下是对 y=sin(2*pi*0.1*x)+sin(2*1*f_2*x) 进行矩形滤波的 MATLAB 代码:
```matlab
% 设置采样频率和时间范围
fs = 1000;
t = 0:1/fs:1-1/fs;
% 定义信号
f1 = 0.1;
f2 = 10;
y = sin(2*pi*f1*t) + sin(2*pi*f2*t);
% 矩形滤波器设计
fc = 5; % 截止频率
N = 101; % 滤波器阶数
h = fir1(N-1, fc/(fs/2), 'low'); % 生成低通滤波器系数
% 进行滤波
y_filtered = filter(h, 1, y);
% 绘制原始信号和滤波后信号的时域图像
figure;
subplot(2,1,1);
plot(t, y);
title('原始信号');
xlabel('时间 (s)');
ylabel('幅值');
subplot(2,1,2);
plot(t, y_filtered);
title('滤波后信号');
xlabel('时间 (s)');
ylabel('幅值');
% 绘制原始信号和滤波后信号的频谱图像
figure;
subplot(2,1,1);
pwelch(y, [], [], [], fs);
title('原始信号频谱图');
subplot(2,1,2);
pwelch(y_filtered, [], [], [], fs);
title('滤波后信号频谱图');
```
注:在代码中,采样频率 fs 为 1000 Hz,时间范围为 0 到 1 秒。原始信号由两个正弦波组成,分别为频率为 0.1 Hz 和 10 Hz。矩形滤波器的截止频率为 5 Hz,阶数为 101。使用 fir1 函数生成低通滤波器系数,并使用 filter 函数对原始信号进行滤波得到滤波后信号。最后,使用 pwelch 函数绘制原始信号和滤波后信号的频谱图像。
阅读全文