首页 > 其他分享 >CW信号的正交解调

CW信号的正交解调

时间:2024-12-22 20:57:36浏览次数:5  
标签:cos frac space 解调 varphi 正交 pi CW sin

1.CW信号

  CW可以叫做等幅电报,它通过电键控制发信机产生短信号"."(点)和长信号"--"(划),并利用其不同组合表示不同的字符,从而组成单词和句子。

  CW信号可以看作一种幅度调制信号,类似于幅移键控(2ASK信号)其携带的信息保存在其幅度中,通过改变载波的幅度来实现基带数据的传输。

其函数表达式如下:

\[s(t) = m(t)*cos(2\pi ft + \varphi)\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space m(t) \in \left \{ 0,1\right \} \]

其中:
\(m(t)\):表示基带信号。
\(cos(2\pi ft + \varphi)\):是调制载波。

2.CW的数字正交解调

原理:

通过正交的方式即可解调出基带信号,其数学推导如下:

  假设基带信号为\(m(t)\),调制的载波频率为\(f_1\),解调的载波频率为\(f_2\),相位为\(\varphi\),LPF为低通滤波器,则:

I路:

\[I(t) = LPF(s(t)*cos(2\pi f_2t + \varphi)) = LPF(m(t)*cos(2\pi f_1t) *cos(2\pi f_2t + \varphi)) \]

根据三角函数公式:

\[\begin{split} I(t) &= LPF(m(t)*cos(2\pi f_1t) *cos(2\pi f_2t + \varphi))\\ &= LPF(\frac{1}{2}m(t)*[cos(2\pi (f_1 + f_2)t+\varphi) + cos(2\pi (f_1 - f_2 )+ \varphi)]) \\ &= \frac{1}{2}m(t)*cos(2\pi (f_1 - f_2 )+ \varphi)) \\ \end{split} \]

同理:Q路:

\[\begin{split} Q(t) &= LPF(m(t)*cos(2\pi f_1t) *sin(2\pi f_2t + \varphi))\\ &= LPF(\frac{1}{2}m(t)*[cos(2\pi (f_1 + f_2)t+\varphi) - sin(2\pi (f_1 - f_2 )+ \varphi)]) \\ &= -\frac{1}{2}m(t)*sin(2\pi (f_1 - f_2 )+ \varphi)) \\ \end{split} \]

为了计算方便假设:

\[K=2\pi (f_1 - f_2 )+ \varphi \]

则:

\[\begin{split} & I(t) = \frac{1}{2}m(t)*cos(K) \\ & Q(t) = -\frac{1}{2}m(t)*sin(K) \end{split} \]

根据三角函数公式:

\[K = arctan(\frac{-Q(t)}{I(t)}) \]

注:\(arctan\)函数有作用域\((-\pi/2\space\space\space\space\pi/2)\)要求,所以将使用atan2函数替代。

\[\begin{split} & I(t) = \frac{1}{2}m(t)*cos(arctan(\frac{-Q(t)}{I(t)})) \\ & Q(t) = -\frac{1}{2}m(t)*sin(arctan(\frac{-Q(t)}{I(t)})) \end{split} \]

  向量旋转,将一个向量\((cos(\theta_1),sin(\theta_1))\),逆时针旋转\(\theta_2\),旋转后的坐标为\((cos(\theta_1-\theta_2),sin(\theta_1-\theta_2))\)。将I和Q看着一个向量,将其逆时针旋转\(arctan(\frac{-Q(t)}{I(t)})\),那么:

\[\begin{split} & I'(t) = \frac{1}{2}m(t)*cos(arctan(\frac{-Q(t)}{I(t)}) - arctan(\frac{-Q(t)}{I(t)})) =\frac{1}{2}m(t)\\ & Q'(t) = -\frac{1}{2}m(t)*sin(arctan(\frac{-Q(t)}{I(t)}) - arctan(\frac{-Q(t)}{I(t)})) = 0 \end{split} \]

这样就消除了相位差和频率差带来的误差,\(I'(t)\)就是我们解调的结果。其结果与频率差与相位差无关。

3.拍频信号

  看过电视剧里面发电报的应该不陌生,电台在发出或者接收电台信号的时候,经常会听到滴滴答答的声音,CW信号如何转化为音频信号,就需要通过拍频器来完成,将电信号转化为人耳可以识别的声音信号频率(20-20000Hz),通过扬声器播放。

4.MATLAB仿真

仿真代码:

close all;
fs = 100E3;%采样率
base_data = [1,0,0,1,0,1,0,0,0,1,1,0,0,1,0];
len = 1E3;
mt = interp1((1:length(base_data)), base_data, (0:length(base_data)/len:length(base_data)-length(base_data)/len), 'nearest');
f_carr_1 = 20E3;%调制载波频率
f_carr_2 = 21E3;%解调载波频率
fi = 0.2;%解调载波初始相位
t = 0:1/fs:(len-1)/fs;
cw_data = mt.*cos(2*pi*f_carr_1*t);

I = mt.*cos(2*pi*(f_carr_1-f_carr_2)*t-fi)/2 + randn(size(t))/1000;
Q = -mt.*sin(2*pi*(f_carr_1-f_carr_2)*t-fi)/2 + randn(size(t))/1000;

%% 向量旋转
theta0 = atan2(Q./(-mt),I./(mt));
It0 = I.*cos(theta0) - Q.*sin(theta0);
Qt0 = Q.*cos(theta0) + I.*sin(theta0);

f_p = 4E3;%拍频频率
theta1 = (0:1:length(I)-1)*(f_p*(2*pi)/fs);
It1 = It0.*cos(theta1) ;

%% 保存IQ数据FPGA使用仿真
% fid = fopen('CW.txt','w');
% for i = 1:l
%     fprintf(fid,'%d %d\n',floor(I(i)* (2^13)),floor(Q(i)* (2^13)));
% end
% fclose(fid);

%% 绘制
figure
time = 6;
subplot(time,1,1);
plot(mt);
title('基带数据');

subplot(time,1,2);
plot(cw_data);
title('调制数据');

subplot(time,1,3);
plot(I);
title('I路');

subplot(time,1,4);
plot(Q);
title('Q路');

subplot(time,1,5);
plot(It0);
title('解调数据');

subplot(time,1,6);
plot(It1);
title('解调数据(拍频)');

结果:

4.FPGA解调

有空补上

标签:cos,frac,space,解调,varphi,正交,pi,CW,sin
From: https://www.cnblogs.com/SuperBigSaltFish0/p/18622511

相关文章

  • ACwing 1524. 最长回文子串
    ACwing1524.最长回文子串因为这个题的数据范围只有1000,所以能O(n)枚举,枚举回文子串的中点,然后向两边延展,看看极限长度是多少,注意每次要区分奇数长度字串和偶数长度字串,两种的计算方式不一样。#include<iostream>#include<cstdio>#include<cstdlib>intmain(){ std::s......
  • 【硬件测试】基于FPGA的2FSK调制解调系统开发与硬件片内测试,包含信道模块,误码统计模
    1.算法仿真效果本文是之前写的文章 基于FPGA的2FSK调制解调系统,包含testbench,高斯信道模块,误码率统计模块,可以设置不同SNR_fpga2fsk-CSDN博客 的硬件测试版本。 在系统在仿真版本基础上增加了ila在线数据采集模块,vio在线SNR设置模块,数据源模块。 硬件ila测试结......
  • 12.19 CW 模拟赛 T1. 烟花
    思路转化题意移步赛时记录详细题解见题解下载好的那么主要问题仍然是怎样做才能扔掉后效性,乍一看是不可能的,但是我们可以慢慢的考虑首先我们需要利用有效时间段\(\leq500\)这个条件,我们考虑建出每种选择的情况,再按照树上的仇恨关系建出图具体的,对于每一种\([j......
  • 12.19 CW 模拟赛 T2. 数
    思路赛时读错题了,虽然说读对了不一定能做出来,但是还是比较可惜首先阐述一下题意,对\(S\)数组进行插入和删除操作,每次询问让你用\(T\)中的质数组合出\(x\),然后将\(S\)中的数乘以\(x\)之后求最多的完全立方数个数那么显然的,我们对于每一个数,都可以拆成质......
  • 12.19 CW 模拟赛 赛时记录
    前言考试的时候只需要管考试的策略就行了,其他的想他干嘛看题一般来说,涨信心模拟赛都不会涨信心像一位故人出的题?\(\rm{T1}\)相信自己,冲一下\(\rm{T2}\)看不懂\(\rm{T3}\)博弈\(\rm{T4}\)困难\(\rm{T1}\)机房两青轴是真的蚌埠思路转化题意,对于\(N\)条线......
  • 12.17 CW 模拟赛 赛时记录
    前言这一次又来更新比赛策略讲真打了这么久,还没有一个好的比赛策略真的是抽象回去吃点感冒药看题怎么\(\rm{T1\T2}\)是一个题\(\rm{T1}\)可能是\(\rm{dp}\)题\(\rm{T3}\)有些不好做\(\rm{T4}\)这种题一般都不会做,能骗多少是多少\(\rm{T1}\)思路转化题意......
  • 12.17 CW 模拟赛 T4. 记忆碎片
    思路转化题意,问你在一个带权无向完全图中,如何填上\(w_i\in\left[1,\frac{n\cdot(n-1)}{2}\right]\),使得其最小生成树上的边权为给定的\(n-1\)个数考虑模仿\(\rm{kruskal}\)的方式,令\(f_S\)表示当前点集为\(S\),每次转移,如果当前边权需要在最小生......
  • (84)QPSK频带调制(载波调制)解调与性能仿真的MATLAB实现源码
    文章目录前言一、QPSK调制简介1.QPSK调制的原理2.QPSK调制的特点与应用二、MATLAB仿真源码三、仿真结果1.QPSK基带调制信号与频带调制信号的波形图2.接收机QPSK星座图3.QPSK频带调制系统的性能仿真曲线四、子函数与完整代码总结前言本文给出QPSK频带调制传输......
  • 正交活动标架与自然标架的关系
    目录正交活动标架与自然标架的关系性质1性质2正交活动标架与自然标架的关系注意到(E......
  • 12.12 CW 模拟赛 T3. 消除贫困
    思路朴素容易发现一个人资金变化是这样的:对于\(op=1\)的情况,会将其直接变成\(x\)对于\(op=2\)的情况,将其变成\(\max(x,当前值)\)直接用线段树暴力的维护即可巧妙容易发现\(op=2\)相当于一个大保底,我们先倒着处理出每个人到\(i\)位置至少有多少......