clear all;clc;close all;
Rb=1e5; %Rb=2fn B=(1+beta)fn 码元速率 通信原理课本上的
Fs=1e6; %采样间隔便是1/Fs
beta=1; %rcosdesign三个参数beata span sps
span=6; %span的最佳解读 这个升余弦滤波器会蔓延到的并会影响的码元之个数
sps=Fs/Rb; %将Fs与Rb对应起来
msg=[1,1,0,0,1,0,1,0];%发送的信息有8位,但是是无法体现Rb的,过采样后,才能体现出Rb
b=rcosdesign(beta,span,sps,'normal');%span*sps是滤波器的阶数 span*sps+1是滤波器长度
[frqresponse,w_pi]=freqz(b); %取出b的频率响应
yout=upfirdn(msg,b,sps); %点数=N1*sps+N2-sps (类似于卷积M+N-1)这样的形式
Ndelay=(sps*span-1)/2;%升余弦滤波器就是一个FIR,FIR是由延迟的
yout_delay=yout(1+Ndelay:Ndelay+8*sps); %延迟FIR长度的一半,想想线性卷积的定义,1两个序列头部对齐,2 ht翻折 3再移位相乘 4 于是有大约N/2的长度,被延迟了
y_sample=yout_delay(1:sps:end);%抽样
%画图
figure;
n=1:131;stem(n,yout);
figure;
plot(w_pi/pi*Fs/2, abs(frqresponse)); %pi对应于Fs/2 于是可以看到带宽了
title('滤波器的幅度响应');
xlim([0, 2e5]);
figure;
n=1:span*sps+1;
stem(n,b);
title('滤波器的时域形状');
n=1:length(msg);
stem(n,y_sample);
title('抽样出的点');%可见抽样出了11001010
成型滤波器rcosdesign的理解
最新推荐文章于 2023-09-15 15:07:23 发布
这篇博客探讨了数字通信中升余弦滤波器的应用。通过设置码元速率Rb、采样频率Fs和滤波器参数,使用rcosdesign函数设计滤波器,并对消息进行升余弦滤波和抽样。内容包括滤波器的幅度响应、时域形状以及抽样后的信号分析,揭示了滤波器在信号处理中的关键作用。
摘要由CSDN通过智能技术生成