% Program P1_1 % Simulation of an M-point Moving Average Filter % Generate the input signal clear, close all, n = 0:100; s1 = cos(2*pi*0.05*n); % A low-frequency sinusoid s2 = cos(2*pi*0.47*n); % A high frequency sinusoid x = s1+s2; % Implementation of the moving average filter M = input('Desired length of the filter = '); num = ones(1,M); y = filter(num,1,x)/M; % Display the input and output signals subplot(2,2,1); plot(n, s1); axis([0, 100, -2, 2]); xlabel('Time index n'); ylabel('Amplitude'); title('Signal #1'); subplot(2,2,2); plot(n, s2); axis([0, 100, -2, 2]); xlabel('Time index n'); ylabel('Amplitude'); title('Signal #2'); subplot(2,2,3); plot(n, x); axis([0, 100, -2, 2]); xlabel('Time index n'); ylabel('Amplitude'); title('Input Signal'); subplot(2,2,4); plot(n, y); axis([0, 100, -2, 2]); xlabel('Time index n'); ylabel('Amplitude'); title('Output Signal'); 解释代码
时间: 2024-04-01 11:33:14 浏览: 112
SIMULATION OF M-ARY FSK_matlab_#Mírate_M-FSK_
5星 · 资源好评率100%
这段代码实现了一个M点移动平均滤波器的模拟。它生成了一个包含低频和高频正弦波的信号,并将它们相加作为输入信号x。用户可以输入期望的滤波器长度M。接着,代码使用“ones”函数生成一个长度为M的全1向量作为滤波器的系数,然后使用“filter”函数对输入信号x进行滤波,并将结果除以M得到输出信号y。最后,代码绘制了输入信号、输出信号和两个原始信号的图形。subplot函数用于在同一图形窗口中绘制多个子图。每个子图的横轴是时间索引n,纵轴是信号幅度。图形的标题显示了信号的类型,以及输入信号和输出信号的标识。
阅读全文