脉冲成型滤波器matlab
时间: 2023-08-25 12:07:34 浏览: 164
MATLAB+VHDL脉冲成型滤波器的设计
以下是一个简单的脉冲成型滤波器的MATLAB代码示例:
```
% 定义输入信号和滤波器参数
Fs = 1000; % 采样率
T = 1/Fs; % 采样周期
t = 0:T:1-T; % 时间向量
f1 = 10; % 输入信号频率
f2 = 50; % 脉冲频率
A = 1; % 输入信号幅度
beta = 0.3; % 脉冲成型滤波器参数
% 生成输入信号和脉冲成型滤波器
input_signal = A*sin(2*pi*f1*t); % 输入信号
pulse_shaper = sqrt(pi/beta)*sinc(sqrt(pi/beta)*t); % 脉冲成型滤波器(矩形窗)
% 通过卷积实现滤波器作用
output_signal = conv(input_signal, pulse_shaper, 'same');
% 绘制输入信号、滤波器和输出信号
figure;
subplot(3,1,1);
plot(t, input_signal);
title('Input Signal');
xlabel('Time (s)');
ylabel('Amplitude');
subplot(3,1,2);
plot(t, pulse_shaper);
title('Pulse Shaper');
xlabel('Time (s)');
ylabel('Amplitude');
subplot(3,1,3);
plot(t, output_signal);
title('Output Signal');
xlabel('Time (s)');
ylabel('Amplitude');
```
这个代码示例中,我们生成了一个10Hz的正弦波作为输入信号,以及一个50Hz的矩形脉冲成型滤波器。然后通过卷积实现滤波器的作用,并将输入信号、滤波器和输出信号绘制在同一张图上,以便比较它们之间的关系。可以看到,输出信号已经被滤波器成型,变得更加平滑。
阅读全文