菜鸟之MATLAB学习——QPSK OQPSK信号生成及频谱分析

news2024/10/5 17:12:28

本人MATLAB学习小白,仅做笔记记录和分享~~

% qpsk && oqpsk 

clc;
close all;

Ts=1;
fc=10;

N_sample=16;
N_sum=100;
dt=1/fc/N_sample;
t=0:dt:N_sum*Ts-dt;
T=dt*length(t);

d1=sign(randn(1,N_sum));
d2=sign(randn(1,N_sum));

gt=ones(1,fc*N_sample);                          %基本码元波形
s1=sigxpand(d1,fc*N_sample);
s2=sigxpand(d2,fc*N_sample);

b1=conv(gt,s1);
b2=conv(gt,s2);

s1=b1(1:length(s1));
s2=b2(1:length(s2));

st_qpsk=s1.*cos(2*pi*fc*t)-s2.*sin(2*pi*fc*t);   %QPSK波形
s2_delay=[ones(1,fc*N_sample/2),s2(1:end-fc*N_sample/2)];  %%  重要!!!
st_oqpsk=s1.*cos(2*pi*fc*t)-s2_delay.*sin(2*pi*fc*t);

                                     %QPSK 与OQPSK原始信号波形
subplot(421),plot(t,st_qpsk);xlabel('QPSK原始信号');
axis([0,40,-2,2])
subplot(422),plot(t,st_oqpsk);xlabel('OQPSK原始信号');
axis([0,40,-2,2])

%-----------将QPSK和OQPSK经过BPF--------------%

bpf1=sinc(2/Ts*t).*cos(2*pi*fc*t);
st_bpf_qpsk=conv(st_qpsk,bpf1);
st_bpf_qpsk=st_bpf_qpsk(1:length(st_qpsk));

st_bpf_oqpsk=conv(st_oqpsk,bpf1);
st_bpf_oqpsk=st_bpf_oqpsk(1:length(st_oqpsk));
                                      %QPSK 与OQPSK原始信号波形
subplot(423),plot(t,st_bpf_qpsk);xlabel('QPSK经过低通滤波器后信号');
axis([0,40,-40,40]);
subplot(424),plot(t,st_bpf_oqpsk);xlabel('OQPSK经过低通滤波器后信号');
axis([0,40,-40,40]);

%----------------------end--------------------%

%-----------QPSK和OQPSK经过BPF前频谱------------------%
[f,sf_qpsk]=T2F(t,st_qpsk(1:length(t)));
[f,sf_oqpsk]=T2F(t,st_oqpsk(1:length(t)));
subplot(425),plot(f,abs(sf_qpsk));xlabel('QPSK经过滤波器前的频谱');hold on;
subplot(426),plot(f,abs(sf_oqpsk),'r--');xlabel('OQPSK经过滤波器前的频谱');
%----------------------end--------------------%


%-------------QPSK和OQPSK经过BPF后频谱-----------------%
[f,sf_qpsk_lpf]=T2F(t,st_bpf_qpsk(1:length(t)));
[f,sf_oqpsk_lpf]=T2F(t,st_bpf_oqpsk(1:length(t)));


subplot(427),plot(f,abs(sf_qpsk_lpf));hold on;xlabel('QPSK经过滤波器后的频谱');
subplot(428),plot(f,abs(sf_oqpsk_lpf),'r--');xlabel('OQPSK经过滤波器后的频谱');
%----------------------end--------------------%


运行结果

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1350663.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

反转链表、链表的中间结点、合并两个有序链表【LeetCode刷题日志】

一、反转链表 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 思路一:翻转单链表指针方向 这里解释一下三个指针的作用: n1&#xff1…

【Linux驱动】设备树模型的LED驱动 | 查询方式的按键驱动

🐱作者:一只大喵咪1201 🐱专栏:《Linux驱动》 🔥格言:你只管努力,剩下的交给时间! 目录 🍮设备树模型的LED驱动🍩设备树文件🍩驱动程序 &#x1…

抽象类和接口的区别(小白版)

抽象类和接口的区别: 抽象类(Abstract Class): 抽象类是一种不能被实例化的类,它只能被用作其他类的父类(基类)。抽象类可以包含抽象方法和非抽象方法。抽象方法是没有具体实现的方法&#xf…

【JAVA】实验二 类与对象

实验名称 实验二 类与对象 实验目的 1. 深刻理解类的封装与继承; 2. 熟练掌握类的定义、包与路径、对象的创建、方法的调用、类的继承、方法的重写、运行时多态、访问权限修饰符的使用等; 3. 熟练运用JDK提供的常用类及API。 实验内容&…

测试自动创建设备节点的功能

一. 简介 上一篇文章在 新设备驱动框架代码的基础上,添加了自动创建设备节点的代码。文章地址如下: 自动创建设备节点代码的实现-CSDN博客 本文对自动创建设备节点的功能进行测试。 二. 自动创建设备节点代码的测试 1. 编译驱动,并拷贝…

Python 数据库(一):使用 mysql-connector-python 操作 MySQL 数据库

大家好,我是水滴~~ 当涉及到使用 Python 操作 MySQL 数据库时,mysql-connector-python 库是一个强大而常用的选择。该库提供了与 MySQL 数据库的交互功能,使您能够执行各种数据库操作,如连接数据库、执行查询和插入数据等。在本文…

2024年美赛数学建模ABCDEF题思路选题分析

文章目录 1 赛题思路2 美赛比赛日期和时间3 赛题类型4 美赛常见数模问题5 建模资料 1 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 2 美赛比赛日期和时间 比赛开始时间:北京时间2024年2月2日(周五&#xff…

[笔记] GICv3/v4 ITS 与 LPI

0. 写在前面 由于移植一个 pcie 设备驱动时,需要处理该 pcie 设备的 msi 中断(message signaled interrup)。 在 ARM 中, ARM 建议 msi 中断实现方式为: pcie 设备往 cpu 的一段特殊内存(寄存器)写某一个值&#xff0…

浅谈开关量信号隔离器在钢铁厂除鳞系统的应用-安科瑞 蒋静

摘要:在钢铁生产线中,轧制是其中一项重要的加工工艺。通过轧制将金属坯料进行延展和定型,满足不同行业的使用要求。在轧制前需要进行除鳞,除鳞系统是通过高压水形成扇形水束,喷射到钢坯表面将氧化铁层剥离。高压水由高…

精益生产敏捷实践手册:软件行业的精益转型之路——张驰咨询

精益生产培训的内容相当广泛,涵盖创立精益的理念、工具、执行策略和管理方法。下面将详细介绍各种培训内容以及它们的作用: 理念建设 精益生产基本概念:什么是精益,它的历史和核心理念等。 组织变革管理:怎样在组织…

数据库攻防学习之Redis

Redis 0x01 redis学习 在渗透测试面试或者网络安全面试中可能会常问redis未授权等一些知识,那么什么是redis?redis就是个数据库,常见端口为6379,常见漏洞为未授权访问。 0x02 环境搭建 这里可以自己搭建一个redis环境&#xf…

2024网络安全趋势—— “双刃剑”效应带来全新冲击和挑战

“生成式AI”正以前所未有的方式影响着人们的生活和工作方式。 在网络安全方面,这项技术也正深刻改变着对抗形态和攻防模式,其在打开人类认知世界新路径的同时,也成为黑客开展网络攻击的“利器”。随着生成式AI的深入发展,“双刃…

别划走!3分钟看懂 Git 底层工作原理

这是一篇能让你迅速了解 Git 工作原理的文章,实战案例解析,相信我,3 分钟,绝对能够有收获! Git 目录结构 Git 的本质是一个文件系统(很重要,记住这句话,理解这句话)&am…

oracle-undo

tips:串行化隔离级别:事务开始后,对一张表不会被别人影响,对于审计工作比较有用,避免了幻读。 undo表空间:自动生成段,自动生成区,自动维护的,不像一般的表空间&#xff…

【响应式编程-01】Lambda表达式初体验

一、简要描述 Lambda初体验Lambda表达式的语法格式Lambda表达式应用举例Lambda表达式底层实现 二、什么是Lambda表达式 Java8新特性,来源于数学中的λ[l:mdə]演算 是一套关于函数(f(x))定义、输入量、输出量的计算方案 Lambda表达式 -> 函数 使代码变得简洁…

智慧园区物联综合管理平台之架构简述

总体架构 系统总体划分为物联感知系统层、 核心平台层、 综合运营服务平台和展示层四部分。 物联感知系统层 物联感知系统主要是支撑园区智能化运行的各子系统, 包括门禁系统、 视频监控系统、 车辆管理系统等。 核心平台层 核心平台层包括: 园区物联综合管理平台和园区…

6.4 通过IO实现文件的读取与写入

6.4 通过IO实现文件的读取与写入 1. File类及常用方法2. 通过字节字符流实现文件读取与写入1. 流2. 字节输入流 InputStream 3.2. 1. File类及常用方法 package com.imooc.io;import java.io.File; import java.io.IOException;public class FileSample {public static void ma…

Premiere分屏特效图文内容幻灯片展示视频素材PR模板下载

Premiere Pro 模板,多屏幕内容展示PR幻灯片模板,分屏特效图文视频素材pr模板下载。 这是一个高质量、组织良好且易于自定义的视频剪辑模板。只需替换图像或视频,编辑文本,添加音频,微微调整即可! 来自PR模板…

Java经典框架之SpringBoot

SpringBoot Java 是第一大编程语言和开发平台。它有助于企业降低成本、缩短开发周期、推动创新以及改善应用服务。如今全球有数百万开发人员运行着超过 51 亿个 Java 虚拟机,Java 仍是企业和开发人员的首选开发平台。 课程内容的介绍 1. SpringBoot基础 2. Spring…

GraalVM Native学习及使用

概述 在开发Spring Boot 应用或者其他JAVA程序的过程中,启动慢、内存占用大是比较头疼的问题,往往需要更多的资源去部署,成本大幅提高。为了优化上述问题,常常使用优化程序、使用更小消耗的JVM、使用容器等措施。 现在有一个叫做…