MATLAB 产生根升余弦滤波器
时间: 2023-09-10 17:07:52 浏览: 167
根升余弦滤波器(Root Raised Cosine Filter)是一种常用的数字通信中滤波器,它可以在发送端将数字信号进行滤波和调制,在接收端进行解调和滤波。在Matlab中,可以使用以下代码生成一个根升余弦滤波器:
```
% 设置参数
fs = 100; % 采样率
T = 1/fs; % 采样周期
alpha = 0.5; % 滚降系数
span = 10; % 滤波器长度(符号数)
sps = 4; % 每个符号的采样数
beta = 0.25; % 预留带宽系数
% 生成滤波器
t = (-span/2:sps*span/2-1)*T;
h = (sin((1-alpha)*pi*t/T)+4*alpha*t/T.*cos((1+alpha)*pi*t/T))./...
((1-(4*alpha*t/T).^2)*pi*t/T.*(1-(alpha*t/T).^2));
% 根据预留带宽系数进行截断
fc = (1+beta)/(2*T);
h = h.*cos(pi*t*fc)./((1-(2*beta*t/T).^2)*pi*t/T);
% 归一化
h = h / sqrt(sum(h.^2));
% 画出频率响应
f = (-span/2*sps:span/2*sps-1)/(span*sps*T);
H = fft(h, span*sps);
figure;
plot(f, 20*log10(abs(fftshift(H))));
xlabel('频率');
ylabel('幅度(dB)');
title('根升余弦滤波器频率响应');
```
在上述代码中,我们首先设置了采样率、滚降系数、滤波器长度、每个符号的采样数和预留带宽系数等参数。然后,根据根升余弦滤波器的公式生成了滤波器的时域响应,并根据预留带宽系数进行了截断。最后,我们对滤波器进行了归一化,并画出了它的频率响应。可以看到,根升余弦滤波器的频率响应类似于一个带通滤波器,可以在一定程度上减少码间干扰。
阅读全文