为了生成包含n20 Hz,n60 Hz,和n140 Hz的三路混合信号,你可以使用 Matlab 的 sin 函数分别生成这三路信号,然后使用矩阵相加的方法把他们加起来,形成一个混合信号。下面是一个示例代码:
fs = n50OHz; % 设置信号采样频率 t = 0:1/fs:1-1/fs; % 设置信号的时间轴
% 生成n20Hz的信号 x1 = sin(2pin20Hzt); % 生成n60Hz的信号 x2 = sin(2pin60Hzt); % 生成n140Hz的信号 x3 = sin(2pin140Hz*t);
% 合并三路信号 x = x1 + x2 + x3;
% 绘制时域波形 figure; plot(t,x); title('混合信号的时域波形'); xlabel('时间(s)'); ylabel('幅值');
% 绘制频谱 X = fft(x); % 傅里叶变换 X = abs(X); % 取绝对值 f = (0:length(X)-1)*fs/length(X); % 频率轴 figure; plot(f,X); title('混合信号的频谱'); xlabel('频率(Hz)'); ylabel('幅值');
接下来,你可以分别设计 IIR 低通、带通、高通滤波器,使用 Matlab 的 filter 函数对混合信号进行滤波,并只输出一路信号,滤除其他两路信号。下面是一个示例代码:
% 设计 IIR 低通滤波器 [b,a] = butter(4,n20Hz/(fs/2),'low'); % 设计 4