MATLAB 数字基带信号的传输

最近需要使用MATLAB构造一个psk信号,因此碰上了成型滤波这个概念。比较苦恼,大学的时候没有认真学习数字信号和通信原理,唯一的途径是百度,这里分享一下我的理解

主要用到了两个函数:rcosdesign、upfirdn

rrcFilter = rcosdesign(beta,span,sps,shape)
beta: 余弦滚降系数
span: 滤波器包含的符号数
sps: 每个符号所含的采样点数
shape: 用于选择(升余弦,平方根升余弦)
rrcFilter: 滤波器系数,这个函数就是滤波器的设计

txSig = upfirdn(modData, rrcFilter, sps);
modData: 输入信号
rrcFilter: 刚刚设计好的滤波器系数
sps: 单个符号采样点数

下面用MATLAB进行了一个简单的仿真,代码来源于官网
4psk的基带传输(在基带上的调制与解调,包含发送和接收两部分)

clear;close;clc;
%MATLAB数字基带信号的传输

%成型滤波器
rolloff = 0.25; % 升余弦滚降系数
span = 6;       % 抽头的个数,影响滤波器的阶数
sps = 10;        % 每个符号的采样点,即输出信号的采样率是 符号率*sps
rrcFilter = rcosdesign(rolloff, span, sps);%升余弦滤波器的系数,输入采样率1Hz,输出1*spsHz

%psk映射
M = 4;          % psk进制数
k = log2(M);    % 每个符号所含比特数
data_Bd=10000; %符号率
data_t=1;
data = randi([0 M-1], data_Bd*data_t, 1);%1s的符号
modData = pskmod(data, M, pi/4);

%成型滤波,每个符号的采样点为sps
txSig = upfirdn(modData, rrcFilter, sps);%为基带发送信号,采样率为1k*sps

%通过一个awgn信道
EbNo = 7;
snr = EbNo + 10*log10(k) - 10*log10(sps);
rxSig = awgn(txSig, snr, 'measured');

%接收端的处理
rxFilt = upfirdn(rxSig, rrcFilter, 1, sps);%匹配滤波
rxFilt = rxFilt(span+1:end-span);
hScatter = scatterplot(sqrt(sps)*rxSig(1:sps*500),sps,0,'g.');%此处的sps是抽取的意思,每次打印第sps个点
hold on
scatterplot(rxFilt(1:500),1,0,'kx',hScatter)
title('Received Signal, Before and After Filtering')
legend('Before Filtering','After Filtering')
axis([-3 3 -3 3]) 
hold off

data_receive=pskdemod(rxFilt, M, pi/4);%与发送的data相同

接收的信号星座图(匹配滤波前后对比)

data_receive与data一致;

总结:这个程序可以理解为:基带产生一个1秒的4psk数字信号,符号率为10k,经过成型滤波后的信号采样率为100k,直接发送,在信道中接收后,经过匹配滤波,就是之前发送的4psk信号;

此处我仍然存在的疑问是:如果我要采用频带传输,把信号加载到100M的载波上,应该如何添加呢?我基带产生的是复数数据,如何去调制载波?

头大.jpg

CSDN博客搬运 文章被收录于专栏

CSDN博客搬运

全部评论
楼主解决了吗,有没有更详细的代码了,跪求
点赞 回复 分享
发布于 2022-04-18 13:03

相关推荐

昨天 18:09
门头沟学院 Java
苍穹外卖和谷粒商城这俩是不是烂大街了,还能做吗?
想去重庆的鸽子在吐槽:你不如把这俩做完自己搞明白再优化点再来问 何必贩卖焦虑
点赞 评论 收藏
分享
06-08 22:25
门头沟学院 Java
从零开始的转码生活:这hr不会打开手机不分青红皂白给所有人群发这句话,过一会再给所有人再发一遍,这肯定会有重复的,不管,再过一会再发一遍
点赞 评论 收藏
分享
湫湫湫不会java:1.在校经历全删了2.。这些荣誉其实也没啥用只能说,要的是好的开发者不是好好学生3.项目五六点就行了,一个亮点一俩行,xxx技术解决,xxx问题带来xxx提升。第一页学历不行,然后啥有价值的信息也没有,到第二页看到项目了,第一个项目九点,第二个项目像凑数的俩点。总体给人又臭又长,一起加油吧兄弟
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
06-30 18:19
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务