MATLAB实现软件无线电信道化接收机

文章介绍了如何使用MATLAB进行软件无线电的信道化设计,包括正交下变频、CIC滤波器与多级半带滤波器的级联,以降低采样率并提取特定带宽信号。通过仿真和功率谱图展示,验证了设计的正确性。

        在计算机飞速发展的今天,单纯用硬件进行信号接收与处理也变得效率低下,如何利用软件即各种优秀的算法对信号进行处理从而实现各种各样的功能,这已成为通信领域几乎必备的知识。今天我们来对一个某高校真实的例程进行剖析,进而更深刻的理解软件无线电。

        先看任务内容:某软件无线电对0~5MHz信号进行采样,采样率为16MHz。已知在2MHz处有一带宽为40kHz的信号,设计信道化方案,要求最终输出的零中频信号采样率为100KHz。使用MATLAB对所设计的信道化方案进行仿真,并使用提供的采样数据对方案进行验证。

        任务要求如下:

  1. 设计包括正交下变频和多级滤波抽取在内的信道化方案,要求使用CIC+HB+FIR滤波器的多级级联抽取,确定每一级的抽取倍数。
  2. 利用filterDesigner设计每一级HB/FIR滤波器,确定滤波器阶数,得到幅频响应和相频响应曲线,并导出滤波器系数。
  3. 编写m脚本文件,读取data.mat数据(16MHz采样率)作为系统输入,使用正交下变频、CIC(按所设计的阶数)以及第(2)步获得的各HB/FIR滤波器系数完成信道化仿真,以验证方案的正确性。

        首先我们根据要求,零中频的信号采样率为100k,原信号采样率为16M,可知降采样倍数为16M/100k=160,而160分解因式可为5*2*2*2*2*2,由此可见,我们需要设计一个抽取比为5的CIC滤波器和5个半带滤波器,但是CIC一般不用做最后一级滤波,故最后用一个FIR滤波器收尾。

        明确思路后,我们开始敲代码:

        首先读取数据:

load data.mat;        %% 读取原始采样数据
N = length(data);        %% 数据长度
fs = 16e6;               %% 原始采样率
Bw = 40e3;               %% 待提取信号带宽
f_Lo = 2e6;              %% 待提取信号中心频率

Power_xdBm(data(1:2^20),fs);  %画原始采样信号功率谱图,data为从data.mat中读出的原始采样数据
title('输入信号功率谱图 采样率16MHz 频谱分辨率15.259Hz');

        然后我们通过正交混频将频谱信号搬到零频处。

Lo = exp( - 1j * 2 * pi * f_Lo * ( 0 : N - 1 ) / fs ); %% 用于正交混频的本振信号

mixing_data = data .* Lo;  
Power_xdBm_complex(mixing_data,fs);  %画正交混频后信号
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大胆无敌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值