软件无线电学习-发射机体系结构

2024-05-29 22:04

本文主要是介绍软件无线电学习-发射机体系结构,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文知识内容摘自《软件无线电原理和应用》

软件无线电主要由发射机和接收机两大部分组成。软件无线电发射机的主要功能是把需发射或传输的用户信息(话音、数据或图像)经基带处理(完成诸如FM、AM、FSK、PSK、MSK、QAM 等调制)和上变频,调制到规定的载频(中心频率)f_{0}上,再通过功率放大后送至天线,把电信号转换为空间传播的无线电信号,发向空中或经传输介质(如电缆、光缆)送到接收方的接收机前端,由其进行接收解调。其过程如下图所示。

如前所示,任何一个无线电信号均可以表示为:

s(t)=a(t)cos(2\pi f_{0}t+\omega (t))

式中,a(t)和\omega (t)分别表示该信号的幅度调制信息和相位调制信息,f_{0}为信号载频(中心频率),而频率调制信息也反映在相位调制信息中,即:

f_{t}=\tfrac{d\omega (t))}{dt}

对上述式子进行数字化

s(n)=a(nT_{s})cos(2\pi f_{0}nT_{s}+\omega )(nT_{s})

其中,T_{s}=1/f_{s}为采样间隔,上式子简写为:

s(n)=a(n)cos(\omega _{0}n+\varphi (n))

式中,\omega _{0}=2\pi f_{0}T_{s}为数字角频率,取0-\pi(实信号),有时不加区分地把\omega _{0}f_{0}都称为角频率,只要记住在信号表达式中的真正含义就是了。为了便于信息调制,通常把上式进行正交分解:

s(n)=I(n)cos(\omega _{0}n)+Q(n)sin(\omega _{0}n)

其中I(n)=a(n)cos\varphi (n)Q(n)=-a(n)sin\varphi (n)

调制的方式是现求出I(n)和Q(n)然后分别与两个正交本振cos(\omega _{0}n)sin(\omega _{0}n)相乘并求和,即可得到调制信号s(n)

matlab仿真程序。

clc;
clear;
% 设置参数
fs = 5e9;       % 采样率 5GHz
fc = 50e6;       % 基带频率
fm = 100e6;    % NCO信号频率t = 0:1/fs:1e-3; % 时间序列,1微秒% 基带信号
i = cos(2*pi*fc*t);%余弦波
q = -sin(2*pi*fc*t);%正弦波% nco本振信号
i_nco = cos(2*pi*fm*t);
q_nco = sin(2*pi*fm*t);% iq调制
iq = i.*i_nco + q.*q_nco;% 绘制频域波形% 计算频谱
N = length(t);
f = (-fs/2:fs/N:fs/2-fs/N); % 频率向量
I = fftshift(fft(i));
Q = fftshift(fft(q));
I_NCO = fftshift(fft(i_nco));
Q_NCO = fftshift(fft(q_nco));
IQ= fftshift(fft(iq));
figure(1);
subplot(4,1,1);
plot(f, abs(I)/N,'b');
title('基带I频谱');
xlabel('频率 (GHz)');
ylabel('幅度');subplot(4,1,2);
plot(f, abs(Q)/N,'b');
title('基带Q频谱');
xlabel('频率 (GHz)');
ylabel('幅度');subplot(4,1,3);
plot(f, abs(I_NCO)/N,'g');
title('i_nco本振信号频谱');
xlabel('频率 (GHz)');
ylabel('幅度');subplot(4,1,4);
plot(f, abs(Q_NCO)/N,'r');
title('q_nco本振信号频谱');
xlabel('频率 (GHz)');
ylabel('幅度');figure(2);
plot(f, abs(IQ)/N,'b');
title('iq调制频谱');
xlabel('频率 (GHz)');
ylabel('幅度');

设置采样率为5ghz,基带信号为50mhz,nco本振为100mhz,第一步先求出基带信号的IQ信号,在求出正交本振cos和sin。相乘后相加。

实验现象如下如所示。

这篇关于软件无线电学习-发射机体系结构的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1014748

相关文章

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

安装centos8设置基础软件仓库时出错的解决方案

《安装centos8设置基础软件仓库时出错的解决方案》:本文主要介绍安装centos8设置基础软件仓库时出错的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录安装Centos8设置基础软件仓库时出错版本 8版本 8.2.200android4版本 javas

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

如何确定哪些软件是Mac系统自带的? Mac系统内置应用查看技巧

《如何确定哪些软件是Mac系统自带的?Mac系统内置应用查看技巧》如何确定哪些软件是Mac系统自带的?mac系统中有很多自带的应用,想要看看哪些是系统自带,该怎么查看呢?下面我们就来看看Mac系统内... 在MAC电脑上,可以使用以下方法来确定哪些软件是系统自带的:1.应用程序文件夹打开应用程序文件夹

重新对Java的类加载器的学习方式

《重新对Java的类加载器的学习方式》:本文主要介绍重新对Java的类加载器的学习方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、介绍1.1、简介1.2、符号引用和直接引用1、符号引用2、直接引用3、符号转直接的过程2、加载流程3、类加载的分类3.1、显示

Java学习手册之Filter和Listener使用方法

《Java学习手册之Filter和Listener使用方法》:本文主要介绍Java学习手册之Filter和Listener使用方法的相关资料,Filter是一种拦截器,可以在请求到达Servl... 目录一、Filter(过滤器)1. Filter 的工作原理2. Filter 的配置与使用二、Listen

Java进阶学习之如何开启远程调式

《Java进阶学习之如何开启远程调式》Java开发中的远程调试是一项至关重要的技能,特别是在处理生产环境的问题或者协作开发时,:本文主要介绍Java进阶学习之如何开启远程调式的相关资料,需要的朋友... 目录概述Java远程调试的开启与底层原理开启Java远程调试底层原理JVM参数总结&nbsMbKKXJx

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操

Ubuntu 怎么启用 Universe 和 Multiverse 软件源?

《Ubuntu怎么启用Universe和Multiverse软件源?》在Ubuntu中,软件源是用于获取和安装软件的服务器,通过设置和管理软件源,您可以确保系统能够从可靠的来源获取最新的软件... Ubuntu 是一款广受认可且声誉良好的开源操作系统,允许用户通过其庞大的软件包来定制和增强计算体验。这些软件

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert