MATLAB使用rcosine函数设计8倍过采样、alpha=0.5的升余弦滤波器,画出其冲激响应,并完成对随机序列的滤波

时间:2024-03-09 09:34:01
%来自《无线通信的MATLAB和FPGA实现》



clear all;close all;clc;


%使用rcosine函数设计8倍过采样、alpha=0.5的升余弦滤波器,并画出其冲激响应。

Fd=1;  %输入信号的采样率
Fs=8;   %输出信号的采样率
Delay=3;  %滤波器的群时延
R=0.5;    %滚降因子
[yf,tf]=rcosine(Fd,Fs,\'fir\',R,Delay);
plot(yf);
grid;
xlabel(\'Time\');
ylabel(\'Amplitude\');
title(\'升余弦滤波器冲激响应\');
% impz(rrcdilter,1)  %也行

%某个信号通过升余弦滤波器

x=rand(100,1);    %产生随机信号
xt=zeros(1,800);  %对输入信号后面补零
xt(1:8:end)=x;
y=filter(yf,tf,xt);  %经过升余弦滤波器
yt=y((length(yf)+1)/2:8:end); %下采样,去除滤波器的抽头时延

figure;stem(x(1:40),\'.\');
hold on;stem(yt(1:40),\'r\');
legend(\'输入\',\'输出\');
title(\'收发端根号下升余弦的输入和输出\');