当前位置:   article > 正文

信号采样、调制与搬移—对奈奎斯特定理的讨论_实采样和复采样的区别

实采样和复采样的区别

信号采样、调制与搬移—对奈奎斯特定理的讨论

1 理论

1.1 实信号与虚信号的区别1

实信号存在负频率,但是虚信号没有。因而下面实信号的带宽是500Hz,虚信号的带宽是150Hz。根据奈奎斯特采样定理,fs=2B才可以保证信号不失真。定理对于虚信号有效,对于实信号只需要fs=B即可。
虚信号
DraggedImage.png
实信号
DraggedImage-1.png
采样前后的对比,此时采样率为3000Hz,因而在右图中最高频率与最低频率之间相差3000Hz。
DraggedImage-2.png

  • 这里另外介绍一个概念:实采样与复采样
    不违反。LTE系统中进行的是复采样(complex-valued sampling),包含幅度和相位两个信息,也就是说每一个采样点的值y=A+jB实际上是两个正交值的叠加,故带宽为20M的系统只需要20M的采样速率。而课本中通常讲的是实采样(real-valued sampling)。
    那么在代码里应该都是复采样。下图用采样率210Hz对B为200Hz的信号(复数信号)进行采样。
    在这里插入图片描述
    那么如何在代码中进行实采样?待补充。

1.2 成型滤波器的影响

对于升余弦滚降成型滤波器,假设采样倍数为4倍。滤波器首先进行4倍上采样,然后卷积滤波处理。上采样会导致信号频谱图产生周期性的重叠(上采样的特点),如右图;滤波处理后如左图。
DraggedImage-3.png

1.3 频谱搬移

频率向右搬移100Hz,代码在第二部分,结果如下图所示:
DraggedImage-4.png

2 代码

仿真验证代码如下图所示:

clear;close all;
% ----------------------------------------------------------------------
%  step 1 生成信号
% ------------------------------------------------------------
sr = 1000;                       % 符号率,1s内符号点的个数(决定了时钟)
t = 1:1/sr:10;                  % 针对函数的时钟
f_sig = [100:0.5:250 ];           % 实在
sig = 0;
sigmode = 'real';
switch sigmode
    case 'real'
        for i = 1:length(f_sig)
            sig = sig + sin(2*pi*f_sig(i)*t)*(1+1j);          % 模拟OFDM信号
        end
    case 'imag'
        for i = 1:length(f_sig)
            sig = sig + exp(1j*2*pi*f_sig(i)*t);
        end
end

f_B = max(f_sig)-min(f_sig);                        % 频率,同时也是带宽B
% figure;plot(t,sig);hold on
% 为什么符号率和信号带宽没关系?因为这是sin信号
% 如果对于普通的调制信号(QPSK或者BPSK),那么信号的带宽B就是sr/2,所以采样的话,只需要2*B=sr就可以采样。
% 为什么?因为实信号与复信号之间的区别
% ------------------------------------------------
% step 2 线性插值+采样
% ------------------------------------------------
t_BS = 20;                       % 模拟采样偏差,时钟偏差(前后的采样时钟不准确)(这个具体怎么理解?)
fs   = t_BS*f_B;                % 采样频率 >2B
% fs   = 500;                     % 采样频率
t_cy = 1:1/fs:10;               % 采样的时钟
sig_fj = interp1(t,sig,t_cy,'spline');      % 采样的函数
% -----------------------------------------------
% fft 实际信号的频谱
NN = length(sig);figure;plot((-NN/2+1:NN/2)/NN*sr,20*log10(abs(fftshift(fft(sig)))));axis([-inf,inf,-inf,inf]);xlabel('fs Hz');ylabel('幅度谱 dB')
% fft 采样后的频谱
NN = length(sig_fj);figure;plot((-NN/2+1:NN/2)/NN*fs,20*log10(abs(fftshift(fft(sig_fj)))));title('采样后');axis([-inf,inf,-inf,inf]);xlabel('fs Hz');ylabel('幅度谱 dB')
% ------------------------------------------------
% 频谱搬移

delta_f = 100;                   % 需要搬移的频率,也可以认为是频偏(正表示向右边搬移)
sig_by = sig.*exp(1j*2*pi*delta_f/sr.*(1:length(sig)));     % 频谱搬移
NN = length(sig_by);figure;plot((-NN/2+1:NN/2)/NN*sr,20*log10(abs(fftshift(fft(sig_by)))));
% ----------------------------------------------------------------------
% FPGA对于样点的处理
% ------------------------------------------------------------
% 成型滤波 
alfa  = 0.35;               % 滚降
delay = 6;                  % 延时
Ns    = 4;                     % 滤波成型倍数
fs2   = Ns*sr;                % 另一种采样
HopSendOutRcos = rcosflt(sig,sr,fs2,'fir/sqrt',alfa,delay); % 升余弦成型
HopSendOutRcos = HopSendOutRcos.';
NN = length(HopSendOutRcos);figure;plot((-NN/2+1:NN/2)/NN*fs2,20*log10(abs(fftshift(fft(HopSendOutRcos)))));title('滤波成型后');axis([-inf,inf,-inf,inf])
% 上采样,产生周期性延展,相当于把信号变成离散的,离散信号的频谱是周期性延展的
sigUpsam = upsample(sig,Ns);        
NN = length(sigUpsam);figure;plot((-NN/2+1:NN/2)/NN*fs2,20*log10(abs(fftshift(fft(sigUpsam)))));title('滤波成型后');axis([-inf,inf,-inf,inf])
% 
% % 滤波后与原信号重合
% % -------------------------------------------------------------
% 接收机部分的ADC芯片对模拟信号在采样上的偏差
offset = 1*sr/4;
samplefre = fs2 + offset;
time1 =fs2/samplefre.*(1:length(HopSendOutRcos));
signalsample = interp1((1:length(HopSendOutRcos)),HopSendOutRcos,time1,'spline');  
NN = length(signalsample);figure;plot((-NN/2+1:NN/2)/NN*fs2,20*log10(abs(fftshift(fft(signalsample)))));title('加上ADC采样偏差后')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67

3 频谱对调及解决方法2

3.1 问题描述

950MHz混频2000MHz得到1050MHz,951MHz混频2000MHz得到1049MHz?

3.2 问题分析

假设发送的频率为 f 1 f_{1} f1,则我们发送的射频信号为 ( I + j Q ) × ( cos ⁡ 2 π f 1 t + j sin ⁡ 2 π f 1 t ) (I+j Q) \times\left(\cos 2 \pi f_{1} t+j \sin 2 \pi f_{1} t\right) (I+jQ)×(cos2πf1t+jsin2πf1t) ,这个信号是一个单频谱信号,也即没有负半轴的频谱,但是实际中,我们发射的信号为:
real ⁡ [ ( I + j Q ) × ( cos ⁡ 2 π f 1 t + j sin ⁡ 2 π f 1 t ) ] = I cos ⁡ 2 π f 1 t − Q sin ⁡ 2 π f 1 t \operatorname{real}\left[(I+j Q) \times\left(\cos 2 \pi f_{1} t+j \sin 2 \pi f_{1} t\right)\right]=I \cos 2 \pi f_{1} t-Q \sin 2 \pi f_{1} t real[(I+jQ)×(cos2πf1t+jsin2πf1t)]=Icos2πf1tQsin2πf1t
这是一个实信号,所以空中的这个实信号必然会有正负半轴的对称谱出现,也即如下图所示
按照上面的理论,经过2000MHz混频后,信号的频谱为:
DraggedImage-5.png
而我们对上述信号选取了1049MHz到1050MHz频谱的信号进入基带处理,可知,我们取了实信号 I cos ⁡ 2 π f 1 t − Q sin ⁡ 2 π f 1 t I \cos 2 \pi f_{1} t-Q \sin 2 \pi f_{1} t Icos2πf1tQsin2πf1t 的负半轴频谱进行处理,也即,我们收到的信号与我们发送的信号(发送的信号实际就是我们的正半轴频谱)颠倒了。

3.3 公式推导

从以上分析可以知道,我们收到的信号时负半轴频谱,这里先补充一下知识,假设收到的信号为X收 ,则取正半轴谱时应使用如下公式:
X 4 k × ( cos ⁡ 2 π f 1 t − j sin ⁡ 2 π f 1 t ) X_{4 k} \times\left(\cos 2 \pi f_{1} t-j \sin 2 \pi f_{1} t\right) X4k×(cos2πf1tjsin2πf1t)
取负半轴谱时应使用如下公式:
X 4 k × ( cos ⁡ 2 π f 1 t + j sin ⁡ 2 π f 1 t ) X_{4 k} \times\left(\cos 2 \pi f_{1} t+j \sin 2 \pi f_{1} t\right) X4k×(cos2πf1t+jsin2πf1t)
按照上面的分析,我们取的是负半轴的信号,所以这里对接收到的信号混频到基带应为:
( I cos ⁡ 2 π f 1 t − Q sin ⁡ 2 π f 1 t ) × ( cos ⁡ 2 π f 1 t + j sin ⁡ 2 π f 1 t ) = [ I cos ⁡ 2 2 π f 1 t − Q sin ⁡ 2 π f 1 t cos ⁡ 2 π f 1 t ] + j [ I cos ⁡ 2 π f 1 t sin ⁡ 2 π f 1 t − Q sin ⁡ 2 2 π f 1 t ]

(Icos2πf1tQsin2πf1t)×(cos2πf1t+jsin2πf1t)=[Icos22πf1tQsin2πf1tcos2πf1t]+j[Icos2πf1tsin2πf1tQsin22πf1t]
=(Icos2πf1tQsin2πf1t)×(cos2πf1t+jsin2πf1t)[Icos22πf1tQsin2πf1tcos2πf1t]+j[Icos2πf1tsin2πf1tQsin22πf1t]
推导:
( I cos ⁡ 2 π f 1 t − Q sin ⁡ 2 π f 1 t ) × ( cos ⁡ 2 π f 1 t + j sin ⁡ 2 π f 1 t ) = [ I cos ⁡ 2 2 π f 1 t − Q sin ⁡ 2 π f 1 t cos ⁡ 2 π f 1 t ] + j [ I cos ⁡ 2 π f 1 t sin ⁡ 2 π f 1 t − Q sin ⁡ 2 2 π f 1 t ] = 1 2 [ I ( 1 + cos ⁡ 2 π 2 f 1 t ) − Q sin ⁡ 2 π 2 f 1 t ] + 1 2 j [ I sin ⁡ 2 π 2 f 1 t − Q ( 1 − cos ⁡ 2 π 2 f 1 t ) ]
(Icos2πf1tQsin2πf1t)×(cos2πf1t+jsin2πf1t)=[Icos22πf1tQsin2πf1tcos2πf1t]+j[Icos2πf1tsin2πf1tQsin22πf1t]=12[I(1+cos2π2f1t)Qsin2π2f1t]+12j[Isin2π2f1tQ(1cos2π2f1t)]
==(Icos2πf1tQsin2πf1t)×(cos2πf1t+jsin2πf1t)[Icos22πf1tQsin2πf1tcos2πf1t]+j[Icos2πf1tsin2πf1tQsin22πf1t]21[I(1+cos2π2f1t)Qsin2π2f1t]+21j[Isin2π2f1tQ(1cos2π2f1t)]

通过低通滤波器去掉高频分量后上述信号便为:
I 2 − j Q 2 \frac{I}{2}-j \frac{Q}{2} 2Ij2Q

3.4 基带信号处理流程

DraggedImage-6.png


  1. https://blog.csdn.net/zj15527620802/article/details/81274510 ↩︎

  2. 张少侃 「频谱分析及对调方法」 ↩︎

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/木道寻08/article/detail/1005791
推荐阅读
相关标签
  

闽ICP备14008679号